ネットワークネームスペースとvethペアで構成される次のトポロジがあります。
------ ------ ------
| a1 | | r1 | | r2 |
| | a1-eth0-----------r1-eth0 | |r1-eth1--------------r2-eth1| |
-----(11.0.0.1/30) (11.0.0.2/30)----(11.0.0.9/30) (11.0.0.10/30)-----
のためr1
、net.ipv4.ip_forward is 1
。
次のコマンドを使用して正常にpingできますr2
。a1
ping -I a1-eth0 -c1 11.0.0.10
インターフェイスとコマンドを使用してr2
正常にpingすることもできます。r1
r1-eth1
ping -I r1-eth1 -c1 11.0.0.10
では、なぜインターフェースを使用してpingを実行できないのですかr2
?わかりました。r1
r1-eth0
宛先ホストに接続できません。:
ping -I r1-eth0 -c1 11.0.0.10
PING 11.0.0.10 (11.0.0.10) from 11.0.0.2 r1-eth0: 56(84) bytes of data.
From 11.0.0.2 icmp_seq=1 Destination Host Unreachable
--- 11.0.0.10 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
同様に、ルーターr1の1つのインターフェースは、そのルーターの他のインターフェースを介してpingできません。
# here I get Destination Host Unreachable again:
ping -I r1-eth0 -c1 11.0.0.9
# here I get Redirect Host(New nexthop: 11.0.0.9):
ping -I r1-eth1 -c1 11.0.0.2
これは r1 のデフォルトのルーティングテーブルです。
ip route
default via 11.0.0.10 dev r1-eth1
11.0.0.0/30 dev r1-eth0 proto kernel scope link src 11.0.0.2
11.0.0.8/30 dev r1-eth1 proto kernel scope link src 11.0.0.9
r1
だから私はビューにはルータのインターフェイスが互いに通信できないという問題があるようです。ただし、r1
トラフィックは通常との間で転送されます。a1
r2
興味を持ってくれてありがとう!
修正する:
問題を解決するには、上記の問題を解決する必要があります。tcpdump 履歴に Tc qdisc 遅延が表示されない。この問題の解決策を見つけ、リンクと一緒に投稿しました。したがって、この問題は不要になったため閉じます。読んで参加してくださった皆さんに感謝します!
ベストアンサー1
間違ったインターフェイス、つまり接続しようとしているネットワークに接続されていないインターフェイスを使用してパケットを送信するのはなぜですか?それは間違ったプラットフォームで地下鉄に乗るのと同じです。インターフェイス間通信はなく、ホスト間通信があります。ホストはネットワークを介して他のホストと通信します。インターフェイスの選択は、ルーティングテーブルエントリに基づいて行われます。私が知っている限り、-I
これらのオプションを完全に削除すると、pingコマンドが機能します。