Мы разрабатываем наш собственный модуль ядра, который использует продвинутый исходный код nat в фильтре предварительной маршрутизации netfilter. После обновления с ядра Linux 2.6.32 (Ubuntu 10.04) до 2.6.35 (Ubuntu 10.04 lucid-back-ports) кажется, что пакеты SNATted просто отбрасываются внутри ядра Linux.
Я знаю, что SNAT никогда не советовали делать в хуках Prerouting для общего использования ( Список рассылки Netfilter ), но все же есть некоторые причины, по которым мы предпочли бы выполнять поиск источника перед фактическим решением о маршрутизации сделано.
Кто-нибудь имел опыт разработки модулей ядра, которые делают SNAT в подсистеме предварительной маршрутизации netfilter для ядра Linux 2.6.35+? Что именно следует изменить в коде linux-kernel / netfilter-kernel-module, чтобы пакеты SNATted не отбрасывались? Может быть, SNAT в предварительной маршрутизации - просто плохая идея для ядра Linux 2.6.35+, и нам лучше использовать nf_marks для принятия решения о маршрутизации и использовать SNAT в пост-маршрутизации?
Я использую Ubunut 10.04 с бэк-портированным ядром Linux (2.6.35) на X86_64.