2つのIPアドレスを持つインターフェースを備えたマシンがあります。
inet 192.168.1.15/32 scope global eth0
inet 10.10.118.45/24 brd 10.10.118.255 scope global eth0:hosts4
たとえばip -s route get 8.8.8.8、を実行すると、これに従って、出力パケットには送信元IPアドレスが含まれます10.10.118.45。
8.8.8.8 via 10.10.118.254 dev eth0 src 10.10.118.45
cache users 1 used 1
しかし、私は、例えばpingまたはSSHに8.8.8.8、[ソースIPです192.168.1.15。
15:19:38.092508 IP 192.168.1.15 > 8.8.8.8: ICMP echo request, id 9135, seq 2, length 64
15:19:38.097962 IP 8.8.8.8 > 192.168.1.15: ICMP echo reply, id 9135, seq 2, length 64
この場合ip route get、正しい送信元IPアドレスが表示されない理由は何ですか?
なんて
—
zeppelin 2017年
ip route show to match 8.8.8.8言うの?
@Martin
—
JohanMyréen17年
ip route getは、ルーティング選択アルゴリズムの結果を出力しsrc、一致するルーティングテーブルエントリのフィールドから送信元アドレスを出力します。ただし、アプリケーションはアドレスをソケットにバインドできます。ソケットは、IPパケットのソースアドレスとして代わりに使用されます。送信元アドレスの選択を参照してください。多分あなたのpingプログラムはこれをしますか?(いくつかのpingプログラムがあります。どのパッケージからのものですか?)
ip rule list何ですか?リストされている各テーブルの出力はip route list table $table何ですか?