Ubuntuの物理ネットワークを介して独自にトラフィックを送信します。

Ubuntuの物理ネットワークを介して独自にトラフィックを送信します。

デュアルポートイーサネットNICがあります。両方のポートをリングに接続し、次のIPを2つのイーサネットインターフェイスに割り当てたとします。

  • eth2 -> 192.168.2.1
  • eth3 -> 192.168.3.1

192.168.3.1たとえば、pingなどの物理ネットワークを介してポートの1つから別のポートにトラフィックを送信したいとします192.168.2.1。ただし、LinuxカーネルのTCP / IPスタックはこれら2つのアドレスをローカルアドレスとして認識し、トラフィックをループバックアダプタに送信するため、トラフィックは物理ネットワークに到達しません。

私が持っていた最も近い解決策はAnastasovのものでした。自分にパッチを送る残念ながら、カーネル3.6から中断され、Ubuntu 13.10(カーネル3.11)では実行されません。 3.11用のパッチを再構築しようとしましたが、Ubuntuディストリビューションには見つかりませんでした。

  • /linux/inetdevice.hを含む
  • net/ipv4/devinet.c
  • net/ipv4/fib_frontend.c
  • ネットワーク/ipv4/route.c
  • ドキュメント/ネットワーク/ip-sysctl.txt

「自分自身に送信」パッチを機能させる方法はありますか、それとも別の解決策がありますか?

ベストアンサー1

ネットワークネームスペースを作成し、インターフェイスの1つをそのネームスペースに移動します。

ip netns add test
ip link set eth1 netns test

新しい名前空間でシェルを起動します。

ip netns exec test bash

その後、2台のコンピュータがあるかのように進みます。完了したら、シェルを終了して名前空間を削除します。

ip netns del test

おすすめ記事