Исходный нат в netfilter prerouting hooks - PullRequest
0 голосов
/ 15 апреля 2011

Мы разрабатываем наш собственный модуль ядра, который использует продвинутый исходный код 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.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2015

Пересчитали ли вы все контрольные суммы после обновления исходного IP-адреса?Помните, что вам также необходимо обновить контрольные суммы TCP / UDP, так как они основаны на IP-адресе src / dst.

0 голосов
/ 15 апреля 2011

Начните с поиска точной строки, которая отбрасывает пакет.

...