У меня на сервере есть интерфейсы для передачи данных: eno5, eno6, ens3f0 и ens3f1. Мне нужно создать соединение портов с этими четырьмя интерфейсами с идентификатором VLAN 101 и именем связи data0.
Больше информации:
РЕДАКТИРОВАТЬ: Дополнительная информация:
Первая попытка: Сделал ровно все в этом документе RHEL: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-configuring_a_vlan_over_a_bond
за исключением того, что в этом документе два интерфейса, а у меня четыре. Я изменил имена интерфейсов и связей на свои собственные значения. И конечно же; IP, шлюз и подсеть тоже были моими собственными.
Результат: systemctl перезапуск сети в порядке. Но интерфейс не может даже пинговать собственный шлюз ...
Об этой попытке:
Вторая попытка: Сделал ровно все по этому документу: http://villasyslog.net/rhel-bonding-and-vlan-tagging/
И снова у меня четыре интерфейса, поэтому я изменил значения.
Результат: systemctl перезапустить сеть не удалось. Моя облигация не получила адрес IPv4. Вместо этого он показал мои глупые вещи о IPv6.
Об этой попытке:
При первой попытке у меня были файлы в каталоге / etc / sysconfig / network-scripts / ifcfg- * для моих четырех интерфейсов и файла конфигурации связи (всего 5).
Второй документ предлагает больше файлов. Четыре интерфейса, один для связи и дополнительный для тегирования VLAN. К сожалению, у меня нет первых файлов конфигурации, но есть вторые. Они здесь:
ifcfg-data0
DEVICE=data0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
BONDING_MODULE_OPTS="mode=4 miimon=100"
BONDING_SLAVE0=ens3f1
BONDING_SLAVE1=ens3f0
BONDING_SLAVE2=eno6
BONDING_SLAVE3=eno5
VLAN=yes
IPV6INIT=no
ifcfg-data0.101
DEVICE=data0.101
BOOTPROTO=none
ONBOOT=yes
IPADDR=host IP
NETMASK=netmask
GATEWAY=gateway
NETWORK=first IP of network
BROADCAST=broadcast IP
USERCTL=no
BONDING_MODULE_OPTS="mode=4 miimon=100"
BONDING_SLAVE0="ens3f1"
BONDING_SLAVE1="ens3f0"
BONDING_SLAVE2="eno6"
BONDING_SLAVE3="eno5"
VLAN=yes
IPV6INIT=no
Остальные четыре интерфейса:
TYPE=Ethernet
BOOTPROTO=none
UUID=device uuid
DEVICE=eno5
ONBOOT=yes
MASTER=data0
SLAVE=yes
NM_CONTROLLED=no
TYPE=Ethernet
BOOTPROTO=none
UUID=device uuid
DEVICE=eno6
ONBOOT=yes
MASTER=data0
SLAVE=yes
NM_CONTROLLED=no
TYPE=Ethernet
BOOTPROTO=none
UUID=device uuid
DEVICE=ens3f0
ONBOOT=yes
MASTER=data0
SLAVE=yes
NM_CONTROLLED=no
TYPE=Ethernet
BOOTPROTO=none
UUID=device uuid
DEVICE=ens3f1
ONBOOT=yes
MASTER=data0
SLAVE=yes
NM_CONTROLLED=no
/ proc / net / bonding запросы:
Я вижу два файла в / proc / net / bonding. Один из них - bond0, и я понятия не имею, что это такое:
Связь0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: down
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Данные
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens3f1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: (MAC is here)
Slave queue ID: 0
Slave Interface: ens3f0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: (MAC is here)
Slave queue ID: 0
Slave Interface: eno6
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: (MAC is here)
Slave queue ID: 0
Slave Interface: eno5
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: (MAC is here)
Slave queue ID: 0
systemctl перезапустить сеть:
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
Состояние сети systemctl:
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2020-02-28 13:48:49 +03; 32s ago
Docs: man:systemd-sysv-generator(8)
Process: 37887 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists
Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists
Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists
Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists
Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists
Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists
Feb 28 13:48:49 (host name here) systemd[1]: network.service: control process exited, code=exited status=1
Feb 28 13:48:49 (host name here) systemd[1]: Failed to start LSB: Bring up/down networking.
Feb 28 13:48:49 (host name here) systemd[1]: Unit network.service entered failed state.
Feb 28 13:48:49 (host name here) systemd[1]: network.service failed.
Сначала был запущен NetworkManager. Я отключил его, но все же перезапуск сети systemctl не работает. Вывод статуса systemctl NetworkManager:
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2020-02-28 13:46:58 +03; 2min 13s ago
Docs: man:NetworkManager(8)
Main PID: 35612 (code=exited, status=0/SUCCESS)
Feb 27 16:26:51 (host name here) NetworkManager[35612]: <info> [1582810011.3824] agent-manager: req[0x56187f15d3c0, :1.936/nmcli-connect/0]: agent registered
Feb 27 16:26:51 (host name here) NetworkManager[35612]: <info> [1582810011.3830] audit: op="connection-activate" uuid="09bce14a-449a-3065-8d1b-d4bcde243bd8" name="Vlan data0.744" result="fail" reason="Failed to find a compatible device for this connection"
Feb 28 13:46:58 (host name here) systemd[1]: Stopping Network Manager...
Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8800] caught SIGTERM, shutting down normally.
Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8846] device (ens3f0): released from master device data.744
Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8851] device (ens3f1): released from master device data.744
Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8856] device (eno5): released from master device data.744
Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8860] device (eno6): released from master device data.744
Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8890] exiting (success)
Feb 28 13:46:58 (host name here) systemd[1]: Stopped Network Manager.
Прежде всего, спасибо всем комментариям к моему вопросу.
Насколько я понимаю, связывание портов похоже на регулярное выражение. Каждый что-то пишет в гайде, и у них это как-то работает. Ну не для меня.
До недавнего времени было непонятно, чего мне нужно достичь. Но теперь у меня все заработало. Остался только тест отработки отказа.
Какой в этом смысл?
Итак, как этого добиться? Во-первых, мне нужно убедиться, что NetworkManager не запущен и отключен:
systemctl stop NetworkManager
systemctl disable NetworkManager
Затем проверьте, работают ли интерфейсы. Для этого нужно убедиться, что сетевая служба запущена:
systemctl status network #check if working
systemctl start network #start if not working
Перечислите все интерфейсы:
ip a
Если какой-либо интерфейс имеет IP-адрес, убедитесь, что нет конфликтов с вашим связыванием.
Для установки собственной конфигурации остановите сетевой сервис:
systemctl stop network
Ваши файлы конфигурации должны быть в / и т.д. / sysconfig / сетевая служба / каталог.
Пример ведомого:
ifcfg-eno5
DEVICE=eno5
NAME=bond0-slave3
TYPE=Ethernet
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=no
Пойдем построчно.
В остальном это классический интерфейс Ethernet. MASTER будет bond0 и да, это раб. Сетевой менеджер не должен управлять этим интерфейсом.
Пример облигации:
ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=4 miimon=100 lacp_rate=slow"
NM_CONTROLLED=no
Фактически здесь выполняется связывание портов (за исключением того, что нам нужно определить IP, подсеть и шлюз). Как я слышал, до этого времени мне удалось настроить как "режим доступа". Это означает, что на этом коммутаторе может работать только одна VLAN. Но это не то, что мы хотим, и Switch не ожидает такой конфигурации. Поэтому мне нужно определить идентификатор VLAN и сообщить об этом коммутатору. Этот тип конфигурации называется «режим магистрали».
Допустим, мой идентификатор VLAN - 111.
Пример тегирования VLAN:
ifcfg-bond0.111
DEVICE=bond0.111
TYPE=Vlan
NAME=vlan-bond0.111
BOOTPROTO=none
ONPARENT=yes
IPADDR=IP adresi
NETMASK=subnet mask
GATEWAY=gateway
VLAN=yes
VLAN_ID=111
NM_CONTROLLED=no
Я дал своему виртуальному устройству имя. Имя должно быть BOND_NAME.VLAN_ID, поэтому я использовал bond0.111
Тип важен. Это ни Ethernet, ни Bond. Это влан. Этот интерфейс не имеет ничего общего с загрузкой сервера. Если родитель работает (я имею в виду bond0), это тоже должно произойти.
Линии IP, сетевой маски и шлюза определяют сами себя.
VLAN = да !!!! В документации RHEL говорится об этом, и это очень важно. Но я не знаю. TYPE is Vlan, почему я должен также установить флаг yes для VLAN? Без разницы.
Я пока не видел VLAN_ID ни в одном документе. Это идентификатор моей VLAN.
После установки всех файлов конфигурации,
systemctl start network
Это должно работать нормально. Работал у меня.