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


10

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

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


nmapスキャンを試しましたか?
Ruban Savvy

パケットが物理的にネットワークに出て、再びルーティングされることに興味がありますか?それとも、それが表示されたように見せたいだけですか(ルーティングスタック、iptablesなどを通過します)?
Patrick

@パトリック私はそれが出て、ローカルルーターに到達することを望みます。滞在しているが、まるで外出したかのように地元を見ていることは、さまざまな状況で役立つこともあります。
Gilles「SO-邪悪なことをやめなさい」

@ギレスこれで何か成功したことはありますか?私は現在、2つのTAPアダプターといくつかの単純なブリッジングコードでこれを実行しようとしていますが、成功していません。ルーティングは正しいようですが、ARPが機能していないようです(src mac == dst macでパケットが送信されています)。それが役立つ場合、私は私のセットアップを説明できます。
Jonathon Reinhart、2014

1
@Gilles私はこれを試したことはありませんが、たとえば2つのルーター間の永遠のバウンスを防ぐために、ルーターが元の場所に何も送信しないようにルーターを実装することは想像できます。パッケージが出ても戻ってこない場合に備えて、テスト中は注意する必要があります。
Anthon 2014

回答:


7

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.