Назад | Перейти на главную страницу

Мост на vlan при объединении для KVM

У меня проблема с созданием моста на vlan при объединении в команду. Почему я так делаю? - Kvm нужен мост - Vlan, потому что мне нужны виртуальные машины в разных подсетях - Teaming в опции active-backup (small HA)

Я делаю это на centos 7 x64 с NetworkManager. Два физических интерфейса:

TYPE=Ethernet
DEFROUTE=no
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_FAILURE_FATAL=no
NAME=enp8s0f0
UUID=311d4881-f3f1-45af-b01f-b48872b00b0f
ONBOOT=yes

TYPE=Ethernet
DEFROUTE=no
PEERDNS=no
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_FAILURE_FATAL=no
NAME=enp8s0f1
UUID=eb43a315-b9e7-42fb-ab52-97e09a162825
ONBOOT=yes

Мои шаги:

nmcli con add con-name team0 ifname team0 type team config '{"runner": {"name": "activebackup"}}'
nmcli con add con-name team0-port1 ifname enp8s0f0 type team-slave master team0
nmcli con add con-name team0-port2 ifname enp8s0f1 type team-slave master team0
nmcli con up team0-port2
nmcli con up team0-port1

После этого у меня есть:

NAME         UUID                                  TYPE            DEVICE
virbr0       f8b30bd2-0d92-43af-9b3d-f68c63d6822b  bridge          virbr0
team0        19542d40-dce1-4328-9b64-f44f2fd7f1fb  team            team0
team0-port2  301b2003-18d0-4186-992a-fbc758bb1c7a  802-3-ethernet  enp8s0f1
team0-port1  cafb8b30-60fc-475f-890d-0dc1191bc583  802-3-ethernet  enp8s0f0

Когда я назначаю IP для team0, я могу пинговать с этого интерфейсного шлюза. Далее я создаю vlan и мост:

nmcli con add con-name vlan24-team0 type vlan id 24 dev team0
nmcli con add con-name br24 type bridge ifname vibr24 stp yes
nmcli con add con-name br24-vlan24 type bridge-slave ifname team0.24 master vibr24

nmcli con show:

NAME          UUID                                  TYPE            DEVICE
virbr0        f8b30bd2-0d92-43af-9b3d-f68c63d6822b  bridge          virbr0
team0         19542d40-dce1-4328-9b64-f44f2fd7f1fb  team            team0
enp8s0f0      311d4881-f3f1-45af-b01f-b48872b00b0f  802-3-ethernet  --
enp8s0f1      eb43a315-b9e7-42fb-ab52-97e09a162825  802-3-ethernet  --
br24-vlan24   16fd96b7-10b0-42b6-88e6-38749b33f816  802-3-ethernet  --
br24          667cc267-3726-42cb-a5aa-0a2011167021  bridge          vibr24
vlan24-team0  8ec83969-254b-4f75-8bad-983bac7e1af0  vlan            team0.24
team0-port2   301b2003-18d0-4186-992a-fbc758bb1c7a  802-3-ethernet  enp8s0f1
team0-port1   cafb8b30-60fc-475f-890d-0dc1191bc583  802-3-ethernet  enp8s0f0

ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
6: enp8s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP qlen 1000
    link/ether 00:1b:21:79:55:4f brd ff:ff:ff:ff:ff:ff
7: enp8s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP qlen 1000
    link/ether 00:1b:21:79:55:4f brd ff:ff:ff:ff:ff:ff
8: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:1b:21:79:55:4f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::21b:21ff:fe79:554f/64 scope link
       valid_lft forever preferred_lft forever
9: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether 66:0e:c8:c8:9c:37 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
10: team0.24@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:1b:21:79:55:4f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::21b:21ff:fe79:554f/64 scope link
       valid_lft forever preferred_lft forever
11: vibr24: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether ca:88:56:46:e5:18 brd ff:ff:ff:ff:ff:ff

nmcli con up br24-vlan24
Error: no device found for connection 'br24-vlan24'.

nmcli con up br24
Error: Device 'vibr24' is waiting for slaves before proceeding with activation.

teaming работает нормально, и я думаю, что существует проблема с сопоставлением моста с vlan, потому что интерфейс vibr24 не работает, а br24-vlan24 не сопоставляется с устройством vlan24-team0. Но я делаю это впервые и, может быть, я что-то пропускаю

VLAN=yes
TYPE=Vlan
PHYSDEV=team0
VLAN_ID=24
REORDER_HDR=0
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=vlan24-team0
UUID=8ec83969-254b-4f75-8bad-983bac7e1af0
ONBOOT=yes

TYPE=Ethernet
NAME=br24-vlan24
UUID=16fd96b7-10b0-42b6-88e6-38749b33f816
DEVICE=team0.24
ONBOOT=yes
BRIDGE=vibr24

DEVICE=vibr24
STP=yes
BRIDGING_OPTS=priority=32768
TYPE=Bridge
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br24
UUID=667cc267-3726-42cb-a5aa-0a2011167021
ONBOOT=yes

На другом сайте ссылки у меня есть коммутатор Cisco и настроенный порт-канал с транком. Это все шаги, которые я сделал, кто-нибудь может мне с этим помочь?

Я не знаком с NetworkManager. Лично я предпочитаю "старомодный" прямой подход с инструментами iproute2 / brctl / vconfig. Но я нашел этот отчет об ошибке и исправления: https://bugzilla.redhat.com/show_bug.cgi?id=1183420 которые очень связаны с вашей проблемой. У вас просто возникла проблема с добавлением VLAN к мосту вместо интерфейса связи, как там. Но обходной путь из этого отчета об ошибке тоже будет работать.

Вместо добавления br24-vlan24 (что не удастся, потому что у вас уже есть team0.24 устройство, связанное с vlan24-team соединение!), вы должны отредактировать vlan24-team0 свойства, чтобы сделать его рабом virb24.

Я пытался воспроизвести конфигурацию, подобную вашей. Но без объединения, потому что похоже, что у вас нет проблем с этой частью, так как вы можете пинговать от team0. Я создал мост br24 и vlan id 24 на моем сетевом адаптере enp2s0. В приведенной выше ссылке предлагается изменить соединение (в нашем случае VLAN) следующим образом:

# nmcli c mod bond-bond0 connection.master br0
# nmcli c mod bond-bond0 connection.slave-type bridge

Но это не удалось для меня на Linux Mint со следующей ошибкой:

$ nmcli c mod vlan24-enp2s0 connection.master vibr24
    Error: Failed to modify connection 'vlan24-enp2s0': connection.slave-type: Cannot set 'master' without 'slave-type'
$ nmcli c mod vlan24-enp2s0 connection.slave-type bridge
    Error: Failed to modify connection 'vlan24-enp2s0': connection.master: Slave connections need a valid 'master' property

Но установка обоих свойств в одной команде сработала:

$ nmcli c mod vlan24-enp2s0 connection.slave-type bridge connection.master vibr24
$ nmcli con up br24
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/50)
$ nmcli con show
NAME                    UUID                                  TYPE            DEVICE    
br24                    502643a8-1fbd-4881-9251-7bf1599bf05f  bridge          vibr24    
vlan24-enp2s0           70cb4491-0cfb-4f5c-a0b2-9cee71eb115a  vlan            enp2s0.24 
Connection 1  1e65cdef-c819-3c30-8fc8-23f4d13f7fe1  802-3-ethernet  enp2s0   

Проверяем это с помощью brctl, чтобы убедиться, что VLAN подключена и привязана к мосту:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
vibr24          8000.cafedefaced0       yes             enp2s0.24

Итак, адаптируя это к вашей конфигурации, это должно работать на вас:

nmcli con add con-name vlan24-team0 type vlan id 24 dev team0
nmcli con add con-name br24 type bridge ifname vibr24 stp yes
nmcli con mod vlan24-team0 connection.slave-type bridge connection.master vibr24

PS: Только что заметил, что этот вопрос на самом деле относится к 2015 году и был задан другим пользователем из-за награды. Тем не менее, мой ответ решает эту проблему, поскольку я воспроизвел эту ситуацию и получил то же самое «Не найдено подходящего устройства для этого соединения». проблема как OP, прежде чем я попробовал это решение.