内部に含まれるプロトコルの大規模なマングリングを行うモジュールを構築しています。レイヤ 4 パケットをマングルしているだけです。私はそれらを反対側で本来あるべき姿に戻します。パケット サイズは 1:1 のままなので、skb を再割り当てする必要はありません...
そうは言っても、私は を変更し、フックからskb->data
戻ります。sk_buff が に渡されることを示す別のフックがありますが、パケットが実際にホストを離れることはありません (Wireshark では表示されないため)。何が起こっているのかわかりません。パケットがどこかでドロップされていませんか? 私は netfilter フック以外のカーネル フックを使用しておらず、送信先を操作していないので、間違いなくマシンから離れるはずです。NF_ACCEPT
NF_IP_LOCAL_OUT
NF_IP_POST_ROUTING
それを引き起こしている可能性のあるアイデアはありますか?カスタム IPPROTO をカーネルに登録する必要がありますか? 私はそれを持ってい/etc/protocols
ます。それで十分だと思いました。それとも、完全に間違った道を進んでいるだけですか? IPsec のカーネルにある ESP および AH コードを使用してみました。これもパケットを破壊するためですが、すべての変換コードは必要以上に複雑です。