linux的網路名稱空間
建立兩個網路名稱空間 test1和test2
sudo ip netns add test1
sudo ip netns add test2
檢視當前的網路名稱空間 會顯示出創建出來的test1 test2
sudo ip netns list
檢視當前名稱空間的資訊 可以看到當前test1的lo是down的
sudo ip netns exec test1 ip a
開啟lo口
sudo ip netns exec test1 ip link set dev lo
sudo ip netns exec test2 ip link set dev lo
然後介面狀態會變成UNKNOWN 這是因為單個介面是沒辦法up起來的必須成對出現
接下來我們建立一條ip link將兩個名稱空間連結起來
ip link add veth-test1 type veth peer name veth-test2
ip link 檢視 會多出兩個 一個veth-test1 一個 veth-test2
接下來將ip link的兩端新增到test1和test2中
ip link set veth-test1 netns test1
ip link set veth-test2 netns test2
給veth-test1 veth-test2 兩個介面設定ip
sudo ip netns exec test1 ip address aad 192.168.1.1/24 dev veth-test1
sudo ip netns exec test2 ip address aad 192.168.1.2/24 dev veth-test2開啟這兩個介面
ip netns exec test1 ip link set dev veth-test1 up
ip netns exec test1 ip link set dev veth-test1 up
接下來驗證一下兩個netns的連通性
sudo ip netns exec test1 ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.705 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.088 ms