web-dev-qa-db-ja.com

ターゲットがローカルホストの場合でも、ネットワーク経由でパケットを送信します

Linuxの場合 ネットワークインターフェイスの1つのアドレスにパケットを送信する場合 、このパケットは内部でルーティングされ、ネットワーク経由で送信されることはありません。これは、99.99%のケースで正しいことです。

場合によっては、ネットワーク構成をテストするときに、マシン自体をターゲットとして、マシン自体からローカルリンクを介してパケットを送信すると便利なことがあります。これどうやってするの?ポイントツーポイントリンクではないにしても、少なくともイーサネットなどのバスタイプのリンクの場合。私はIPパケット(IPv4とIPv6の両方)にのみ興味があります。

Linux上の各ネットワークアダプタには、sysctlブールパラメータaccept_local/proc/sys/net/ipv4/conf/eth0/accept_local)があります。関連するすべてのアダプタに対して0に設定してみてください(さらに、テスト設定に合わせてルーティングテーブルを変更する必要がある場合があります)。

また、rp_filter/proc/sys/net/ipv4/conf/eth0/rp_filter)が有効になっていることを確認してください(0ではありません)。

参照: http://code.metager.de/source/xref/linux/stable/Documentation/networking/ip-sysctl.txt

7
oakad