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

Linux bond mode 4 (802.3ad) - 2 коммутатора - 4 NIC

Я знаю, что вы можете использовать режим связывания 4 с 1 серверами с 2 nic, используя 2 переключателя.

Связь 0 состоит из: Nic 1, порт 1 -> коммутатор A, Nic 2, порт 1 -> коммутатор B

В этом случае я могу потерять коммутатор, или адаптер, или кабель, и моя сеть все равно будет работать, если все работает, у меня будет агрегация каналов на вершине высокой доступности.

Мой вопрос: можете ли вы сделать то же самое, но с 4 сетевыми адаптерами, чтобы иметь большую скорость и при этом не рисковать.

Связь 0 состоит из: Nic 1 порт 1 -> коммутатор A Nic 1 порт 2 -> коммутатор B Nic 2 порт 1 -> коммутатор A Nic 2 порт 2 -> коммутатор B

Переключатель, вероятно, будет CISCO.

Ура

Фактически вы можете настроить связь LACP с двумя отдельными коммутаторами.

Допустим, у вас есть следующее:

+------+     +-----+
| eth0 =-----= sw1 |
| eth1 =-----=     |
|      |     +-----+
|      |     +-----+
| eth2 =-----= sw2 |
| eth3 =-----=     |
+------+     +-----+

Со всем ethX интерфейсы в bond0, и каждый коммутатор с отдельным активным LACP порт-каналом.

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

Итак, у облигации есть два агрегатора: один для sw1, а другой - для sw2. Первый агрегатор активен по умолчанию, поэтому весь трафик будет между eth0 / eth1 и sw1. eth2 / eth3 и sw2 остаются в режиме ожидания.

Скажем, порт 1 sw1 вышел из строя, поэтому агрегатор для sw1 имеет только один активный порт. sw1 по-прежнему будет активным агрегатором. Однако вы можете переключить его на sw2 с помощью ad_select=bandwidth (в зависимости от того, какой Agg имеет наибольшую пропускную способность) или ad_select=count (в зависимости от того, какой у Agg больше всего подчиненных) параметр модуля связи.

Скажем, sw1 полностью отказал, тогда этот агрегатор выйдет из строя, а sw2 возьмет верх.

Я только что закончил настраивать точно такую ​​же настройку на сервере Ubuntu 14.04 LTS.
Процедура должна быть идентичной для любого дистрибутива Linux, который настраивает сеть через файл интерфейсов. (Например, Debian и большинство его производных, таких как Ubuntu и Mint.)

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

На сервере:
Сначала установите пакет ifenslave-2.6 через менеджер пакетов.
Затем отредактируйте / etc / modules и добавьте к нему дополнительную строку со словом «bonding».
Например.:

# /etc/modules: kernel modules to load at boot time
loop
lp
rtc
bonding

Выполните «modprobe bonding» один раз, чтобы загрузить модуль связывания прямо сейчас.
Затем отредактируйте / etc / network / interfaces, чтобы определить настоящие сетевые карты как ручные интерфейсы, являющиеся подчиненными для нового интерфейса «bond0».
Например.:

# The loopback interface
auto lo
iface lo inet loopback

# The individual interfaces
auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto eth2
iface eth2 inet manual
bond-master bond0

auto eth3
iface eth3 inet manual
bond-master bond0

# The bond interface
auto bond0
iface bond0 inet static
address 192.168.1.200
gateway 192.168.1.1
netmask 255.255.255.0
bond-mode 4
bond-miimon 100
bond-slaves eth0 eth1 eth2 eth3
bond-ad_select bandwidth

Последнее утверждение гарантирует, что какая из двух пар имеет полное соединение, получит весь трафик, когда выйдет из строя только 1 интерфейс.
Таким образом, если eth0 и eth1 подключаются к коммутатору A, а eth2-eth3 переходит к коммутатору B, соединение будет использовать коммутатор B, если eth0 или eth1 выйдет из строя.

Последний, но тем не менее важный:

ifup eth0 & ifup eth1 & ifup eth2 & ifup eth3 & ifup bond0

Вот и все. Он работает и автоматически возвращается в онлайн после перезагрузки.
Вы можете наблюдать за поведением при отказе, отключая отдельные интерфейсы ethX с помощью ifdown, и наблюдать за результирующей агрегированной пропускной способностью через «ethtool bond0».
(Не нужно идти в серверную и тянуть кабели.)

Имейте в виду, что с 802.3ad все ссылки в вашей связке должны быть подключены к одному и тому же коммутатору, если только коммутатор не поддерживает совместное использование информации 802.3ad с другими коммутаторами через конфигурацию типа стек / виртуальный коммутатор.

Тем не менее, вы все равно можете получить свою конфигурацию с 4 сетевыми модулями и двумя коммутаторами, просто подключив каждый коммутатор, например:

NIC1/port1 -> bond0 -> switch1
NIC1/port2 -> bond1 -> switch2
NIC2/port1 -> bond0 -> switch1
NIC2/port2 -> bond1 -> switch2

Таким образом вы получаете избыточность от сбоя одного сетевого адаптера или коммутатора и увеличиваете пропускную способность при работе коммутаторов, но вам придется самостоятельно управлять переключением IP-адресов.

В качестве альтернативы вы можете переключиться в режим связывания 6, отказаться от требования 802.3ad и запустить конфигурацию, которую вы предложили в своем вопросе.