Consultation & Training
Providing the Right Solutions with Right Skills
Namespace演習(名前空間の演習)
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
名前空間を作成
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip netns add server
sudo ip netns add gateway
sudo ip netns add client
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
gateway名前空間におけるルーティングを有効化
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip netns exec gateway sysctl net.ipv4.ip_forward=1
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
関係性を定義した上で仮想インターフェースを作成
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip link add server-veth type veth peer name gw-server-veth
sudo ip link add client-veth type veth peer name gw-client-veth
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
名前空間に対して、仮想インターフェースを割り当て
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip link set server-veth netns server
sudo ip link set gw-server-veth netns gateway
sudo ip link set gw-client-veth netns gateway
sudo ip link set client-veth netns client
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
仮想インターフェースにIPアドレスを付与
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip netns exec server ifconfig server-veth 192.168.0.100
sudo ip netns exec gateway ifconfig gw-server-veth 192.168.0.1
sudo ip netns exec gateway ifconfig gw-client-veth 10.0.0.1
sudo ip netns exec client ifconfig client-veth 10.0.0.100
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
仮想インターフェースのデフォルトゲートウェイを設定
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip netns exec client route add default gw 10.0.0.1
sudo ip netns exec server route add default gw 192.168.0.1
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
clientからserverに対してPINGを実施
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip netns exec client ping 192.168.0.100 -I 10.0.0.100 -c 3
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
名前空間を削除
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
sudo ip netns delete server
sudo ip netns delete gateway
sudo ip netns delete client
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
名前空間構成図
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
+------------+
| Server |
+------------+ (server-veth 192.168.0.100 default gw 192.168.0.1)
|
+------------+ (gw-server-veth 192.168.0.1)
| Gateway |
+------------+ (gw-client-veth 10.0.0.1)
|
+------------+ (client-veth 10.0.0.100 default gw 10.0.0.1)
| Client |
+------------+