veth 裝置對實驗
阿新 • • 發佈:2020-07-10
首先建立2個netns
[root@zabbix-server ~]# ip netns add netns1
[root@zabbix-server ~]# ip netns add netns2
建立1對veth
[root@zabbix-server ~]# ip link add veth1 type veth peer name veth2
使用 ip link show 可以看到2個veth
[root@zabbix-server ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:50:56:be:11:34 brd ff:ff:ff:ff:ff:ff 4: veth2@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 02:8d:80:1d:9e:63 brd ff:ff:ff:ff:ff:ff 5: veth1@veth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether ce:6a:a5:1d:8c:6c brd ff:ff:ff:ff:ff:ff
我們首先核實一下2個網路名稱空間裡面的網路 裡面都只有一個lo迴環裝置
[root@zabbix-server ~]# ip netns exec netns1 bash [root@zabbix-server ~]# ip a 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 [root@zabbix-server ~]# exit exit [root@zabbix-server ~]# ip netns exec netns2 bash [root@zabbix-server ~]# ip a 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 [root@zabbix-server ~]# exit exit
我們現在把veth一頭分給netns1 使用命令 ip link show 檢視只剩下一個了
[root@zabbix-server ~]# ip link set veth1 netns netns1 [root@zabbix-server ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:50:56:be:11:34 brd ff:ff:ff:ff:ff:ff 12: veth2@if13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether de:05:80:c6:9b:6b brd ff:ff:ff:ff:ff:ff link-netnsid 0
我們把veth2 分給 netns2使用命令 ip link show 在宿主機上已經看不到veth
[root@zabbix-server ~]# ip link set veth2 netns netns2 [root@zabbix-server ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:50:56:be:11:34 brd ff:ff:ff:ff:ff:ff
我們現在登入2個netns去檢視一下,都多了一個veth
[root@zabbix-server ~]# ip a 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 13: veth1@if12: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether fe:5f:58:a3:43:67 brd ff:ff:ff:ff:ff:ff link-netnsid 1 [root@zabbix-server ~]# exit exit
[root@zabbix-server ~]# ip netns exec netns2 bash
[root@zabbix-server ~]# ip a
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 12: veth2@if13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether de:05:80:c6:9b:6b brd ff:ff:ff:ff:ff:ff link-netnsid 0 [root@zabbix-server ~]# exit exit