
私はインターフェイスeth0からすべての着信ネットワークパケットをeth1に転送するようにDebianコンピュータを設定しようとしています。私のハードウェア設定は次のとおりです。
送信者マシン A(eth0)---->(eth0) 転送マシン B(eth1)---->(eth0) 受信マシン C
マシンAはネイティブソケットを使用してさまざまな種類のネットワークパケット(UDP、TCP、ICMP)を生成し、それをマシンBのeth0インターフェイスに直接接続されているインターフェイスeth0を介して送信します。
これで、マシンBが宛先IPアドレスに関係なく、eth0で受信したすべての着信パケットをeth1に転送し、マシンCが最終的にインターフェイスeth0でこれらのパケットを受信できるようにします。私がこれをしたかったのは、大学での実験のためでした。
ただし、BマシンのデフォルトゲートウェイがCマシンのIPに設定されていても、パケットは転送されません。興味深いことに、システムAからシステムCへの直接pingは正しく機能します(ルーティングが正しく設定されています)。また、/proc/sys/net/ipv4/ip_forwardは1に設定され、インターフェイスeth0(マシンBの「受信」インターフェイス)は無差別モードに設定されるため、ターゲットMACアドレスは問題になりません。
なぜこれがうまくいかないのか知っている人はいますか?興味深いことに、コンピュータBがDebianの代わりにFreeBSDを実行している場合はうまくいきます。
いくつかの詳細:
- マシンBはRaspberry Pi 2で、2番目のインターフェイスはUSBイーサネットアダプタです。
- 送信されるすべてのパケットはIPv4です。
よろしくお願いします!