1. 程式人生 > 實用技巧 >veth 裝置對實驗

veth 裝置對實驗

首先建立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 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 4: veth2@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/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