0

netfilter prerouting フックで高度なソース nat を実行する独自のカーネル モジュールを開発しています。Linux カーネル 2.6.32 (Ubuntu 10.04) から 2.6.35 (Ubuntu 10.04 lucid-back-ports) にアップグレードした後、SNATted パケットが Linux カーネル内でドロップされるだけのようです。

一般的な用途 ( Netfilter メーリング リスト)の Prerouting フックで SNAT を実行するように勧められていないことは知っていますが、実際のルーティングの決定が行われる前にソース natting を実行することを好む理由がまだいくつかあります。

2.6.35+ Linux カーネルの netfilter prerouting フックで SNAT を実行するカーネル モジュールを開発した経験のある人はいますか? SNATted パケットがドロップされないようにするには、linux-kernel/netfilter-kernel-module コードで正確に何を変更する必要がありますか? おそらく、プレルーティングでの SNAT は 2.6.35 以降の Linux カーネルでは単純に悪い考えであり、ルーティングの決定には nf_marks を使用し、ポストルーティングで SNAT を行うべきではないでしょうか?

X86_64でバックポートされたLinuxカーネル(2.6.35)でUbunut 10.04を使用しています。

4

2 に答える 2

0

ソース IP を更新した後、すべてのチェックサムを再計算しましたか? src/dst IP アドレスに基づいているため、TCP/UDP チェックサムも更新する必要があることに注意してください。

于 2015-09-30T01:53:19.453 に答える
0

パケットをドロップする正確な行を見つけることから始めます。

于 2011-04-15T15:57:56.097 に答える