На виртуальном ящике centos 7 я создаю такую команду:
nmcli connection add type team con-name team0 ifname veteam0
nmcli connection modify team0 team.config roundrobin.conf
[root@rhce1 ~]# cat roundrobin.conf
{
"device": "team0",
"runner": {"name": "roundrobin"},
"ports": {"enp0s9": {}, "enp0s10": {}}
}
# add slave interfaces
nmcli connection add type team-slave con-name team0-port0 ifname enp0s9 master team0
nmcli connection add type team-slave con-name team0-port1 ifname enp0s10 master team0
Теперь у меня есть следующие связи:
[root@rhce1 ~]# nmcli con s
NAME UUID TYPE DEVICE
team0 77869010-af1a-48a5-b10b-c05b3035837f team veteam0
team0-port1 99f54013-b20b-41d2-9661-d654b89870bd 802-3-ethernet enp0s10
team0-port0 3f5e5924-f7f3-409a-b4cb-661904ddbf60 802-3-ethernet enp0s9
Wired connection 1 acc2747d-9576-4ac5-a06a-d45d3a9a4ff4 802-3-ethernet enp0s3
enp0s3 b4db7dd8-8735-4590-b12f-621d1003841a 802-3-ethernet --
hostonly 8993c4c0-fa90-455d-ae83-d1a644c36886 802-3-ethernet enp0s8
Это правильно отображает все интерфейсы:
[root@rhce1 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
enp0s10 ethernet connected team0-port1
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected hostonly
enp0s9 ethernet connected team0-port0
veteam0 team connected team0
lo loopback unmanaged --
и я получаю IP от dhcp для интерфейса моей виртуальной команды:
[root@rhce1 ~]# ip addr show veteam0
6: veteam0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 08:00:27:c7:15:f1 brd ff:ff:ff:ff:ff:ff
inet 10.23.23.104/24 brd 10.23.23.255 scope global dynamic veteam0
valid_lft 1073sec preferred_lft 1073sec
inet6 fe80::a00:27ff:fec7:15f1/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
(Я знаю, что в типичном случае использования команды dhcp, вероятно, не используется, но основная проблема также существует со статическими IP-адресами.)
Теперь я хотел бы иметь возможность разорвать соединение, а затем снова включить его без перезагрузки:
[root@rhce1 ~]# nmcli con down team0
[root@rhce1 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected hostonly
enp0s10 ethernet disconnected --
enp0s9 ethernet disconnected --
lo loopback unmanaged --
[root@rhce1 ~]# nmcli con up team0
Error: Device 'veteam0' is waiting for slaves before proceeding with activation.
[root@rhce1 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected hostonly
veteam0 team connecting (getting IP configuration) team0
enp0s10 ethernet disconnected --
enp0s9 ethernet unavailable --
lo loopback unmanaged -
Теперь можно заставить интерфейс команды работать наполовину, сначала подключив enp0s10:
[root@rhce1 ~]# nmcli dev connect enp0s10
Device 'enp0s10' successfully activated with '99f54013-b20b-41d2-9661-d654b89870bd'.
[root@rhce1 ~]# nmcli con up team0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
Но моя команда сейчас состоит только из одного устройства:
[root@rhce1 ~]# nmcli dev st
DEVICE TYPE STATE CONNECTION
enp0s10 ethernet connected team0-port1
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected hostonly
veteam0 team connected team0
enp0s9 ethernet unavailable --
lo loopback unmanaged --
Моя проблема в том, что в настоящее время я не вижу, как запустить enp0s9 без перезагрузки, так как устройство находится в состоянии «недоступно». Я правильно понимаю, что я должен можно ли запустить enp0s9 без перезагрузки, как и enp0s10? Мне кажется, что с моим устройством enp0s9 что-то не так, но я не совсем понимаю, что. Я уже пробовал назначать новые MAC-адреса, но безрезультатно. Кроме того, используя традиционную конфигурацию ifcfg, я могу без проблем запускать и отключать свой интерфейс team0.
Или мой виртуальный коммутатор (я использую только сеть VirtualBox) не поддерживает (? - или должен быть настроен для поддержки) группировки?
РЕДАКТИРОВАТЬ: Я пытался создать команду только с одним рабом. Это сработало, и я получил такое же поведение, используя enp0s9 и enp0s10 - мне пришлось сначала подключить устройство, прежде чем я смог установить соединение. Означает ли это, что мой виртуальный коммутатор отключает одно устройство (которым случайно является enp0s9, но из-за его детерминированности всегда enp0s9)?
Мне действительно не нужно «решать» это - я был бы счастлив назначить награду тому, кто поможет мне понять, что происходит.