0

これは 2 つの例です: カーネル空間からパケットにデータを追加する方法は? カーネル空間で netfilter フックを使用して分割されたパケットをルーティングする方法 フック LOCAL_IN でサーバーからのデータを変更したいだけです。これは同様の分割された例です。追加データの例では、それで問題ありません。しかし、分割された例、それはうまくいきません。問題は更新長、チェックサムudp、ipパケットだと思います(例:フックLOCAL_INとLOCAL_OUTでチェックサムを計算する際の値オフセットは異なります(intオフセット= skb_transport_offset(skb))。パケットが入ると、パケットが処理される前に移動するためですudp レイヤー)。htons -> ntohs を変更しようとしましたが、うまくいきません。

誰でも解決する考えがありますか? ありがとう

4

1 に答える 1

0

問題は、異なる機能のチェックサムです。送信者側で、フック (POST_ROUTING または LOCAL_OUT) で udp チェックサムを更新すると、疑似ヘッダーのみのチェックサムになり、udp データグラムは含まれません。

受信側で、フック (PRE_ROUTING または LOCAL_IN) で udp チェックサムを更新する場合、チェックサムには疑似ヘッダー + udp データグラムが含まれている必要があります。

于 2013-05-03T05:42:24.963 に答える