1

Я знаю, что ip link set tap0 netns XX может приписать пространство имен XX устройству tap0 в Linux. Но что мне делать после этого, если я хочу вернуть tap0 в публичное (безымянное) пространство имен?

1 ответ1

1

Сначала мы перечислим интерфейсы

[root@host ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:4e:ca:5c brd ff:ff:ff:ff:ff:ff
3: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether e6:da:05:95:2f:4e brd ff:ff:ff:ff:ff:ff
4: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 4a:73:df:f1:87:26 brd ff:ff:ff:ff:ff:ff

Ставим девайс veth1 в netns testns

[root@host ~]# ip link set veth1 netns testns

мы можем проверить это в

[root@host ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:4e:ca:5c brd ff:ff:ff:ff:ff:ff
4: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 4a:73:df:f1:87:26 brd ff:ff:ff:ff:ff:ff

[root@host ~]# ip netns exec testns ip link list
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether e6:da:05:95:2f:4e brd ff:ff:ff:ff:ff:ff

Затем мы возвращаем его в сеть по умолчанию

[root@host ~]# ip netns exec testns ip link set veth1 netns 1

И мы подтверждаем, что он вернулся в

[root@host ~]# ip netns exec testns ip link list
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
[root@host ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:4e:ca:5c brd ff:ff:ff:ff:ff:ff
3: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether e6:da:05:95:2f:4e brd ff:ff:ff:ff:ff:ff
4: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 4a:73:df:f1:87:26 brd ff:ff:ff:ff:ff:ff

В вашем случае вы должны заменить veth1 на tap0. Итак, на самом деле:

 [root@host ~]# ip netns exec testns ip link set tap0 netns 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .