NetworkNamespaces: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 89: | Строка 89: | ||
23: ve1a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 |
23: ve1a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 |
||
link/ether 2a:62:f9:4f:c1:6c brd ff:ff:ff:ff:ff:ff |
link/ether 2a:62:f9:4f:c1:6c brd ff:ff:ff:ff:ff:ff |
||
− | <PRE> |
+ | </PRE> |
<PRE> |
<PRE> |
||
ip netns exec R0 ip link show |
ip netns exec R0 ip link show |
Версия 18:37, 11 мая 2013
Network NameSpaces
Network NameSpaces это способ виртуализации сетевого стека в Linux
В пределах одной физической ноды можно получить:
- отдельную таблицу маршрутизации
- отдельную arp-таблицу
- iptables
- виртуальные устройства или реальные со своими шейперами.
Простой пример
Вот простой роутрер (ноут), один линк через WiFi
ip link show
ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:1d:72:d2:2e:41 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:21:5d:40:2d:7a brd ff:ff:ff:ff:ff:ff 4: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 5a:c4:11:2e:48:99 brd ff:ff:ff:ff:ff:ff
(lxcbr0) - бридж для LXC, никак не мешает. Проверить наличие неймспейсов:
ip netns show
... ничего нет.
Добавляем 2 неймспейса
ip netns add R0 ip netns add R1
Проверяем:
ip netns list R1 R0
Добавляем 2 виртуальных линка (veth == virtual eth)
ip link add name ve0a type veth peer name ve0b ip link add name ve1a type veth peer name ve1b
ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:1d:72:d2:2e:41 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:21:5d:40:2d:7a brd ff:ff:ff:ff:ff:ff 4: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 5a:c4:11:2e:48:99 brd ff:ff:ff:ff:ff:ff 20: ve0b: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 2e:0c:69:1a:43:d1 brd ff:ff:ff:ff:ff:ff 21: ve0a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether b2:21:f3:95:e3:f6 brd ff:ff:ff:ff:ff:ff 22: ve1b: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 16:a4:78:2e:1f:56 brd ff:ff:ff:ff:ff:ff 23: ve1a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 2a:62:f9:4f:c1:6c brd ff:ff:ff:ff:ff:ff
Добавилось 4 виртуальных интерфейса или они же 2 виртуальных линка
Далее переносим виртуальные езернеты с индексом b внутрь name spaces
ip link set dev ve0b netns R0 ip link set dev ve1b netns R1
Как можно видеть ниже - интерфейсы перестали быть видны:
ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:1d:72:d2:2e:41 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:21:5d:40:2d:7a brd ff:ff:ff:ff:ff:ff 4: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 5a:c4:11:2e:48:99 brd ff:ff:ff:ff:ff:ff 21: ve0a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether b2:21:f3:95:e3:f6 brd ff:ff:ff:ff:ff:ff 23: ve1a: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 2a:62:f9:4f:c1:6c brd ff:ff:ff:ff:ff:ff
ip netns exec R0 ip link show ip netns exec R1 ip link show ip netns exec R0 ip addr add 172.19.0.1/24 dev ve0b ip netns exec R1 ip addr add 172.20.0.1/24 dev ve1b ip netns exec R0 ip link set up dev ve0b ip netns exec R1 ip link set up dev ve1b ip netns exec R0 ifconfig ip netns exec R1 ifconfig <PRE> <PRE> ip addr add 172.19.0.2/24 dev ve0a ip addr add 172.20.0.2/24 dev ve1a ip link set up dev ve0a ip link set up dev ve1a
Связанные темы
http://wiki.sirmax.noname.com.ua/index.php/LXC