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

Как правильно создать соединение портов на RHEL?

У меня на сервере есть интерфейсы для передачи данных: 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.

Прежде всего, спасибо всем комментариям к моему вопросу.

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

До недавнего времени было непонятно, чего мне нужно достичь. Но теперь у меня все заработало. Остался только тест отработки отказа.

Какой в ​​этом смысл?

  1. У меня есть четыре порта Ethernet 10 Гбит.
  2. Я хочу, чтобы эти четверо работали вместе и обрабатывали трафик 40 Гбит (теоретически).
  3. Поэтому мне нужно соединение портов с режимом lacp.
  4. Указанные порты должны быть настроены на стороне коммутатора для связывания портов с помощью lacp с данными каналами портов. Это вся сетевая работа. Не мой.

Итак, как этого добиться? Во-первых, мне нужно убедиться, что 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

Пойдем построчно.

  1. Это имя интерфейса, которое видит сам RHEL.
  2. Имя необязательно. Это для программного обеспечения TUI или GUI. Это раб облигации номер 3 по имени bond0. Следовательно, имя - bond0-slave3 (Помните, у меня было четыре подчиненных. Это последний. Остальные идут как bond0-slave2 (1, 0).

В остальном это классический интерфейс 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
  1. УСТРОЙСТВО - это название облигации. Я дал bond0.
  2. НАЗВАНИЕ такое же, как указано выше.
  3. ТИП не является Ethernet. Это облигация с большой буквы.
  4. Это виртуальное устройство является мастером связывания.
  5. Он запускается при загрузке.
  6. Понятия не имею, что это такое.
  7. Варианты склеивания будут разными для разных видов склеивания. Это лаковое соединение с низкой скоростью, также известное как режим соединения 4.
  8. Network Manager не должен управлять этим виртуальным интерфейсом.

Фактически здесь выполняется связывание портов (за исключением того, что нам нужно определить 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

Это должно работать нормально. Работал у меня.