Объединение с nmcli: сбой соединения
На виртуальной коробке 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)?
Мне не нужно "решать" это - я был бы рад отдать награду тому, кто помогает мне понять, что происходит.
1 ответ
Мы довольно часто используем объединение/объединение, в основном в Oracle Unbreakable Linux (RH CLONE). Обычно мы используем NMTUI, потому что мы ленивы... но в том, что вы делаете, я заметил следующее:
- снести интерфейс команды
- потом вызываю командный интерфейс и как ни странно он ждет слейвов...
- затем вы вручную поднимаете один из слейвов, а другой становится недоступным.
Нам не обязательно этого делать. Если мы отключим командный интерфейс, когда мы его активируем, он проверяет подключение подчиненных устройств и активирует их без каких-либо дополнительных команд. На самом деле вы никогда не «сбивали» ни одного из рабов, поэтому вам не придется их «поднимать».
Вы достаточно долго ждали, пока рабы подойдут? Наши появляются почти сразу, и у меня на многих серверах есть такое, включая vsphere на голом железе, а также Oracle Unbreakable Linux.
«Связанный» (командный) интерфейс должен управлять всеми участниками соединения (подчиненными). И да, вы также можете использовать его с DHCP.
Некоторые примеры вывода:
[root@goliath etc]# nmcli connection show
NAME UUID TYPE DEVICE
Ethernet connection 1 d676e7bb-4612-4946-b5c9-6afd694ec754 802-3-ethernet em1
Ethernet connection 3 8c6b99d1-e8c0-494d-9795-4fec4f5ba871 802-3-ethernet em3
Bond connection 1 1e7952cf-2b62-4494-8b3c-2b7bdde786c8 bond bond0
Ethernet connection 4 7c79016c-95a8-4e19-9a9b-30ea20d5455c 802-3-ethernet em4
Ethernet connection 2 b8c82461-9fae-4912-adc8-fc40fb13125b 802-3-ethernet em2
[root@goliath etc]#
[root@goliath etc]# nmcli dev status
DEVICE TYPE STATE CONNECTION
bond0 bond connected Bond connection 1
em1 ethernet connected Ethernet connection 1
em2 ethernet connected Ethernet connection 2
em3 ethernet connected Ethernet connection 3
em4 ethernet connected Ethernet connection 4
lo loopback unmanaged --
[root@goliath etc]#
А вот как это выглядит из nmtui:
А вот как выглядит определение интерфейса в NMTUI:
Я также получил данные с одного из других серверов, и, возможно, это поможет:
]# nmcli dev show
GENERAL.DEVICE: bond0
GENERAL.TYPE: bond
GENERAL.HWADDR: 80:18:44:E5:39:E8
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: etherchannel 13 on CISCO
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/4
IP4.ADDRESS[1]: 192.168.10.10/0
IP4.GATEWAY: 192.168.10.129
IP4.ROUTE[1]: dst = 192.168.10.129/32, nh = 0.0.0.0, mt = 300
IP4.ROUTE[2]: dst = 192.168.10.10/32, nh = 0.0.0.0, mt = 0
IP4.ROUTE[3]: dst = 192.168.10.129/32, nh = 0.0.0.0, mt = 0
IP4.ROUTE[4]: dst = 0.0.0.0/0, nh = 192.168.10.129, mt = 0
IP4.ROUTE[5]: dst = 0.0.0.0/0, nh = 192.168.10.129, mt = 300
IP4.DNS[1]: 192.168.10.203
IP4.DNS[2]: 10.1.8.9
IP6.ADDRESS[1]: fe80::8218:44ff:fee5:39e8/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 256
GENERAL.DEVICE: em2
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 80:18:44:E5:39:E8
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: Ethernet connection 2
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER: on
IP4.GATEWAY: --
IP6.GATEWAY: --
GENERAL.DEVICE: em3
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 80:18:44:E5:39:E8
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: Ethernet connection 3
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.GATEWAY: --
IP6.GATEWAY: --
GENERAL.DEVICE: em4
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 80:18:44:E5:39:E8
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: Ethernet connection 4
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.GATEWAY: --
IP6.GATEWAY: --
GENERAL.DEVICE: em1
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 80:18:44:E5:39:EA
GENERAL.MTU: 1500
GENERAL.STATE: 30 (disconnected)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: on
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
[root@loki xyz]# nmcli dev status
DEVICE TYPE STATE CONNECTION
bond0 bond connected etherchannel 13 on CISCO
em2 ethernet connected Ethernet connection 2
em3 ethernet connected Ethernet connection 3
em4 ethernet connected Ethernet connection 4
em1 ethernet disconnected --
lo loopback unmanaged --
Изначально самой сложной задачей для меня было убедиться, что конфигурация соединения между серверами и сетевыми коммутаторами правильна, чтобы обе стороны понимали связь. Затем мы протестировали, отсоединив кабели.
Я очень надеюсь, что это помогло.
Спасибо, Дэвид