ip link set ns1-veth0 netns ns1 ip link set ns2-veth0 netns ns2
再度確認します。
1
ip netns exec ns1 ip link show | grep veth
vethインターフェイスにIPアドレスを割り当てる
IPを使って通信をしたいため、IPアドレスの割り当てが必要です。
1 2
ip netns exec ns1 ip address add 192.0.2.1/24 dev ns1-veth0 ip netns exec ns2 ip address add 192.0.2.2/24 dev ns2-veth0
pingを送ります。
1
ip netns exec ns1 ping -c 3 192.0.2.2 -I 192.0.2.1
どうやら設定が不十分です。ネットワークインターフェイスの状態がUPになっていないためです。
1 2
ip netns exec ns1 ip link set ns1-veth0 up ip netns exec ns2 ip link set ns2-veth0 up
再度実行します。
1
ip netns exec ns1 ping -c 3 192.0.2.2 -I 192.0.2.1
繋がりました!
ルータの利用
Network Namespaceの再作成
新しくNetwork Namespaceを作成し直したいため、古いものを削除します。
1 2 3 4 5
ip netns delete ns1 ip netns delete ns2 ip netns add ns1 ip netns add router ip netns add ns2
vethインターフェイスの作成
1 2
ip link add ns1-veth0 type veth peer name gw-veth0 ip link add ns2-veth0 type veth peer name gw-veth1
Network Namespaceにvethインターフェイスを割り当て
1 2 3 4
ip link set ns1-veth0 netns ns1 ip link set gw-veth0 netns router ip link set gw-veth1 netns router ip link set ns2-veth0 netns ns2
ネットワークインターフェイスの状態をUPに変更
1 2 3 4
ip netns exec ns1 ip link set ns1-veth0 up ip netns exec router ip link set gw-veth0 up ip netns exec router ip link set gw-veth1 up ip netns exec ns2 ip link set ns2-veth0 up
IPアドレスの付与
1 2 3 4
ip netns exec ns1 ip address add 192.0.2.1/24 dev ns1-veth0 ip netns exec router ip address add 192.0.2.254/24 dev gw-veth0 ip netns exec router ip address add 198.51.100.254/24 dev gw-veth1 ip netns exec ns2 ip address add 198.51.100.1/24 dev ns2-veth0
セグメント内疎通確認
1 2
ip netns exec ns1 ping -c 3 192.0.2.254 -I 192.0.2.1 ip netns exec ns2 ping -c 3 198.51.100.254 -I 198.51.100.1
ルータ越し疎通確認
1
ip netns exec ns1 ping -c 3 198.51.100.1 -I 192.0.2.1
この時点では失敗します。
ルーティングエントリを追加
デフォルトルートをrouterに向けます。
1 2
ip netns exec ns1 ip route add default via 192.0.2.254 ip netns exec ns2 ip route add default via 198.51.100.254
ルータ越し疎通確認
1
ip netns exec ns1 ping -c 3 198.51.100.1 -I 192.0.2.1