使用されているクライアントIPを確認してください。

使用されているクライアントIPを確認してください。

奇妙な理由から、同じ物理ネットワークインターフェイスに2つのIPアドレスがあり、両方のIPが同じサブネットにあるLinuxボックスがあります。両方のIPを介してデバイスにアクセスでき、すべてが問題ないようです。

このコンピュータがNASサービスを使用する必要があるという事実を知るまでです。そして、このNASはIPに基づいてロックされています。 2番目のIPが追加されたため、NAS共有をマウントできなくなったようです。確実な解決策は、IP制限を削除するか、2番目のIPを追加することです。

私の質問は:コンピュータに複数のIPがある場合にトラフィックを送信するためにどのIPを使用しますか?つまり、このデュアルIPシステムがクライアントとして機能している場合、サーバーはどのクライアントIPを見ますか?

編集:今、いくつかのクライアントアプリケーションが発信トラフィックに使用されるインターフェイスを指定できることを理解しています。これは私にとって新しいものです。だから私の顧客は

  • NFSマウント( mount -t nfs ...)
  • 平らな

発信トラフィックのIPを指定する方法は?クライアントアプリケーションがこれを指定しない場合、オペレーティングシステムはどのように選択しますか?発信トラフィックのためのオペレーティングシステムの選択はインターフェイスの1つを好むのですか、それとも両方のインターフェイスを好むのですか?

答え1

クライアントが接続を開始しようとすると、独自のクライアントIPを指定するか、そのアドレスINADDR_ANY(AKA 0.0.0.0:)を送信元アドレスとして使用できます。 INADDR_ANYを使用すると、クライアントが呼び出されたときにLinuxは自動的にアドレスを選択します。つながる()- バラより人々 7 IP


最も簡単な修正顧客にどのIPを選択するかを教えてください。

インストール時にオプションmount -t nfs ...を設定するだけです(参照:clientaddr人5 NFS)。目的のIPが10.20.30.41の場合は、次のオプションを追加できます。

... -o clientaddr=10.20.30.41 ...`

または、すでに存在する場合は、-o他のオプションをカンマで区切ることもできます。変化

... -o foo=bar

到着

... -o foo=bar,clientaddr=10.20.30.41

INADDR_ANYを使用してクライアントを停止できない場合それから...

私が知る限り、ソースアドレスはsrcルーティングテーブルのアドレスによって設定されます。バラよりピープル8 IPルーティング

したがって、Linuxは接続するリモート(NAS)IPを確認し、ルーティングテーブルでそのアドレスを探します。srcそこに指定されたアドレスを選択してください。

ターミナルでルーティングテーブルを見ると、ip route次のようなことができます。

default via 192.168.1.254 dev wlan0 proto dhcp src 192.168.1.143 metric 600 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.19.0.0/16 dev br-ff4f53a0f3b5 proto kernel scope link src 172.19.0.1 
172.22.0.0/16 dev br-66358811b693 proto kernel scope link src 172.22.0.1 linkdown 
172.29.0.0/16 dev br-ce3d9cbbad0b proto kernel scope link src 172.29.0.1 linkdown 
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.143 
192.168.1.254 dev wlan0 proto dhcp scope link src 192.168.1.143 metric 600 

ここから何でも接続しようとすると、Linuxがソースアドレスとして172.17.x.x選択していることがわかります。172.17.0.1同様に、パブリックインターネット上のすべての項目は「デフォルトルート」を通過するため選択されます192.168.1.143

ip route add ...ip route change ...ルーティングテーブルを使用して変更できますip route del ...

他の問題を避けるために、ルーティングテーブルをできるだけ少し変更することをお勧めします。単一 IP のルートを作成すると、サブネット全体のパスよりも優先されます。たとえば、LANが10.20.30.0/24の場合、システムのセカンダリIPアドレスもインターフェイス上で10.20.30.22です。イーサネット0また、このLANのNASも10.20.30.31を使用します。

ip route add 10.20.30.31/32 dev eth0 src 10.20.30.22

または、NASがアドレス172.20.30.31のゲートウェイ10.20.30.1を介してアクセスできる別のネットワークにある場合:

ip route add 172.20.30.31/32 via 10.20.30.1 src 10.20.30.22

警告:上記の内容をテストする機会はありませんでした。

関連情報