Linuxカーネルバージョン4.0および3.16でカスタムネットワークデバイスドライバを実装しようとしています。
そしてリンクではうまくいきます。しかし、最近、デバイスに配信に関連するいくつかの問題があることがわかりました。
(device 1) (gateway) (device 2)
[ユーザー定義ネットワークデバイス] - [ユーザー定義ネットワークデバイス '+ eth0' ] - [ eth0 ]
pingテストをしてみました。以下は結果です。
最初のpingテスト(デバイス2からデバイス1へ)
ping要求メッセージがデバイス1に到着します。 Ping 応答メッセージがゲートウェイに到達します。
ただし、応答メッセージはデバイス 2 に到達しません。
2番目のpingテスト(デバイス1からデバイス2へ)
ping 要求メッセージがゲートウェイに到着します。
ただし、ping 要求パケットがデバイス 1 に到達できませんでした。
デバイスドライバはarpテーブルなしで実装されています。パケットがeth0 'ネットワークデバイスによって受信されたようです。 eth0 'ネットワークデバイスのRXカウンタは増加しますが、TXカウンタは増加しません。
パケットがゲートウェイからIP層にうまく転送されることがわかります。ゲートウェイに "sysctl -w net.ipv6.conf.all.forwarding=1" コマンドを使用しました。そして、状態を保存しない自動設定のためにradvdデーモンを利用してください。ゲートウェイでファイアウォールを無効にするには、「ufwdisable」コマンドを使用します。この問題は、私のカスタムネットワークドライバを使用している場合にのみ発生し、この症状はeth1ネットワークデバイスの問題ではないようです。助けてください
答え1
この問題は解決されました。このあいまいな質問をして申し訳ありません。カスタムドライバはMacブロードキャストを使用してIPパケットを送信します。この部分をmac unicastに変更したところ、ついに問題が解決しました。