2つのネットワーク名前空間間のLinux ping

2つのネットワーク名前空間間のLinux ping

Linuxネットワークの初心者で、同様の質問に対する答えが見つかりませんでした

2つの名前空間を作成し、それらの間でpingを実行しようとしています

ip netns add red;
ip netns add blue;

ip link add dev v-red type veth peer name v-blue;
ip link set dev v-red netns red;
ip link set dev v-blue netns blue;

ip netns exec red ip addr add 192.168.15.1 dev v-red;
ip netns exec blue ip addr add 192.168.15.2 dev v-blue;

ip netns exec red ip link set dev v-red up;
ip netns exec blue ip link set dev v-blue up;

ip netns exec red ping 192.168.15.2;
-> ping: connect: Network is unreachable

デバッグ時に注意したこと

ip netns exec blue ifconfig
v-blue: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.15.2  netmask 255.255.255.255  broadcast 0.0.0.0

ip netns exec red ifconfig
v-red: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.15.1  netmask 255.255.255.255  broadcast 0.0.0.0

答え1

2 つのデバイスは 2 つの異なる論理 /32 ネットワークに配置されており、各ホストへの接続方法を示すルートやルーティング テーブルは存在しません。

実行すると、# ip netns exec red ip route get 192.168.15.2という応答が返されますRTNETLINK answers: Network is unreachable。ルーティング テーブルには、192.168.15.2/32 ネットワークにパケットを送信する方法に関する回答がないためです。

ただし、両方向のルートを追加すると、2 つのホストが隣接ホスト (技術的には直接接続されたピアに近い) であることを示すヒントとして機能し、パケットが送信されるはずです。

ip netns exec red ip route add 192.168.15.2/32 dev v-red
ip netns exec blue ip route add 192.168.15.1/32 dev v-blue

次に、ルーティング テーブルを印刷して、ルートがどのように指示されているかを確認できます。

ip netns exec blue ip route list
192.168.15.1 dev v-blue scope link

注意してください。ここで実際にデフォルト ルート ( ip netns exec red ip route add default dev v-red) を使用することは完全に有効です。これは、反対側に存在することがわかっているホストだけでなく、すべてのホストをカバーするためです。ただし、ここでの問題が何であるかを理解するために、通信しようとしていた特定のホストを追加しました。

この時点で、(ファイアウォールが許可する)ping は期待どおりに機能するはずです。

答え2

上記の回答ですべてが説明されました。セットアップをスケッチしてさらに説明しようとしています。各名前空間にルーティングがありません。名前空間は TCP/IP ルーティング スタック (ARP、インターフェイス、ルーティング、ファイアウォール ルールなど) の完全なインスタンスであることを覚えておいてください。

あなたの設定

お役に立てれば。

答え3

同じネットワーク内に赤と青の名前空間を配置することを意図している場合は、ルーターを排除する次の方法を使用するとよいでしょう。

ip netns exec red ipルート追加 192.168.15.2/24 dev v-red

ip netns exec blue ipルート追加 192.168.15.1/24 dev v-blue

関連情報