2つの異なるインターフェイスを使用して外部IPをpingする方法は?

2つの異なるインターフェイスを使用して外部IPをpingする方法は?

私はこのサイトで複数のインターフェースをpingするいくつかの例を見てきましたが、これらの方法のどれも私に適しているようではありません。

2つのインターフェースがあります

  • eth0(192.168.0.x)
  • 無線LAN 0(192.168.1.2)

eth0 は dhcp サーバから IP を取得します。

wlan0には固定IPがあります。

私がコマンドを実行すると

ping -I eth0 www.google.com

私が得た結果はeth0(ipv6エントリ)から来たようです。

私がコマンドを実行すると

ping -I wlan0 www.google.com

私は次のような結果を得ます。

connect: Network is unreachable

eth0を切り離してコマンドを再実行すると、目的の結果が得られます。

インターフェイスを選択して外部サーバーをpingする方法は?一人が支配し、一人がいる場合、他の人は無視されるのとほぼ同じです。

答え1

問題は、ルーティングがどのように機能するかです。

複数のインターフェイスがある場合は、各インターフェイスをゲートウェイとして設定できます。あなたの特定のシステムでルーティングテーブルがどのように入力されるかはわかりませんが、あなたのシステムは最初の基本パスに最高の優先順位を与え、次に2番目の基本パスに最も高い優先順位を与えるように進んでいるようです。 。最適なデフォルトパスのみが有効になります。そのインターフェイスを終了すると、そのインターフェイスのデフォルトパスも消えるので、他のデフォルトパスがある場合はそのインターフェイスが置き換えられます。この優先順位を「メトリック」といいます。

pingを行うと、システムは送信元アドレスを含むパケットを生成します。自分でアドレスを選択できますが(ローカルネットワークパスの「src」属性で)、-Iスイッチを使用して使用するアドレスまたはローカルネットワークパスがアドレスを取得するインターフェイスを指定できます。これがまさにこのスイッチが行うことです。ソースアドレスのみを設定します。パスを選択せず​​、使用されるインターフェイスには影響しません。

結果:「最初」インターフェイスから「2番目」インターフェイスの送信元アドレスを使用して、「最初」ゲートウェイにパケットを送信します。そのソースアドレスに到達する方法(応答が必要な場合は誰に応答する必要がありますか?)がわからないか、そのように表示されたくないゲートウェイに削除される可能性があります。

何をすべきか?出発地の住所に基づいてルーティングを設定する必要があります。これは高度なトピックです。 Linux では、それぞれ異なる基本パスを持つ複数のルーティング テーブルを設定し、システムにパケット ソース アドレスに基づいて使用するルーティング テーブルを選択するように指示します。これをマルチホーミングといいます。

Linuxでは、状況に応じたデフォルトのマルチホーミング設定は次のとおりです。

ip route add default via 192.168.0.GW0 table 1
ip route add default via 192.168.1.GW1 table 2
ip rule add from 192.168.0.x lookup 1
ip rule add from 192.168.1.2 lookup 2

最初の2つはrespを持つデフォルトパスです。ゲートウェイ、3番目と4番目は、どのテーブルがどのアドレスに使用されるかです。もちろん、具体的な実際の値をプレースホルダに入れることをお勧めします。動的ホスト構成プロトコル?マルチホーミングを忘れたり、アドレスを受信したときにすべてを動的に設定し、アドレスが失われた場合は削除するスクリプトを作成します(通常はパスは自動的に削除され、ルールは常に手動で削除する必要があります)。起動時に自動的に設定しますか?展開マニュアルは、ネットワークの中断を準備し、クリーンな状態に復元する方法を知るための正しいアプローチを案内できます。

関連情報