ip netns命令操作网络名称空间
1、虚拟网络名称空间基本操作命令
# 查看pod接口与网络名称空间对应关系 ip link show type veth 8: cali2f982d35f9d@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP mode DEFAULT group default link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netns cni-58002bc0-6fdc-e9fc-f43e-cbbde77cba28 # 查看系统中有哪些network namespace ip netns list/show | grep cni-58002bc0-6fdc-e9fc-f43e-cbbde77cba28 cni-58002bc0-6fdc-e9fc-f43e-cbbde77cba28 (id: 0) # 创建一个名为netns1的network namespace ip netns add netns1 # 使用ip netns exec命令进入network namespace ip netns exec netns1 bash # 查看netns1中链路状态 ip netns exec netns1 ip link list # 把netns1设备中loopback口状态设置成UP ip netns exec netns1 ip link set dev lo up # 尝试ping netns1这network namespace的127.0.0.1 ip netns exec netns1 ping 127.0.0.1 # 删除network namespace ip netns delete netns1
2、2个虚拟网络名称空间互通
#!/bin/bash # 创建network namespace ns0 ns1 ip netns add ns0 ip netns add ns1 # 使用veth pair创建2张虚拟网卡;分别加到ns0 ns1 netowrk namespace ip link add veth0 type veth peer name veth1 ip link set veth0 netns ns0 ip link set veth1 netns ns1 # 绑定ip ip netns exec ns0 ip link set dev lo up ip netns exec ns1 ip link set dev lo up ip netns exec ns0 ifconfig veth0 10.1.1.1/24 up ip netns exec ns1 ifconfig veth1 10.1.1.2/24 up # 删除network namespace ip netns delete ns0 ip netns delete ns1
3、多个虚拟网络名称空间互通
#!/bin/bash ### centos ## yum install -y bridge-utils ### ubuntu ## apt-get install -y bridge-utils # 添加网桥br0 brctl addbr br0 # 启动网桥br0 ip link set br0 up # 创建network namespace ns0 ns1 ns2 ip netns add ns0 ip netns add ns1 ip netns add ns2 # 创建 veth peer ip link add veth0-ns type veth peer name veth0-br ip link add veth1-ns type veth peer name veth1-br ip link add veth2-ns type veth peer name veth2-br # 将 veth 的一端移动到netns中 ip link set veth0-ns netns ns0 ip link set veth1-ns netns ns1 ip link set veth2-ns netns ns2 # 绑定 ip ip netns exec ns0 ip link set dev lo up ip netns exec ns1 ip link set dev lo up ip netns exec ns2 ip link set dev lo up ip netns exec ns0 ifconfig veth0-ns 10.1.1.1/24 up ip netns exec ns1 ifconfig veth1-ns 10.1.1.2/24 up ip netns exec ns2 ifconfig veth2-ns 10.1.1.3/24 up # 设置默认路由,可以通宿主机 ip netns exec ns0 route add default gw 10.1.1.254 veth0-ns ip netns exec ns1 route add default gw 10.1.1.254 veth1-ns ip netns exec ns2 route add default gw 10.1.1.254 veth2-ns # 将 veth 的另一端启动并挂载到网桥上 ip link set veth0-br up ip link set veth1-br up ip link set veth2-br up brctl addif br0 veth0-br brctl addif br0 veth1-br brctl addif br0 veth2-br # 给网桥设置 IP ip addr add 10.1.1.254/24 dev br0 # 删除网桥 ifconfig veth0-br 0 ifconfig veth1-br 0 ifconfig veth2-br 0 brctl delif br0 veth0-br brctl delif br0 veth1-br brctl delif br0 veth2-br ip link set br0 down brctl delbr br0
浙公网安备 33010602011771号