Bonding (port channel) интерфейсы

Интерфейсы Bonding являются виртуальными сетевыми интерфейсами, которые объединяют несколько физических сетевых интерфейсов для увеличения отказоустойчивости и пропускной способности канала. Данные интерфейсы работают в соответствии со стандартом IEEE 802.3ad (если настроен протокол LACP).

Примечание. Запрещено объединять в один Bonding интерфейс физические интерфейсы, входящие в разные группы – доверенные и недоверенные. Например, запрещено объединять интерфейсы из LAN и WAN сегментов, так как физические интерфейсы, объединенные в Bonding, становятся неконтролируемыми с точки зрения СКЗИ и МЭ. Соответственно, политику СКЗИ и правили МЭ нужно применять на виртуальном Bonding интерфейсе, который является логическим объединением физических интерфейсов.

Bonding интерфейсы описываются в файлах /etc/network/interfaces.d/bondN.

Примечание. Cisco-like консоль не поддерживает изменение сетевых параметров (MTU/IP адрес/состояние) для Bonding (port channel) интерфейсов.

Рассмотрим пример объединения физических интерфейсов eth1/eth2 в bonding интерфейс с протоколом LACP:

Примечание. Если в файле /etc/network/interfaces или в файлах директории /etc/network/interfaces.d/ присутствуют строки с настройками для интерфейсов eth1 и eth2, то необходимо их удалить (изменять файл /etc/ifaliases.cf относительно данных интерфейсов не нужно).

Примечание. Bonding интерфейсы описываются в файлах /etc/network/interfaces.d/bondN 

Если настройка интерфейсов выполняется в файлах в директории /etc/network/interfaces.d/, то в файле /etc/network/interfaces должна быть ссылка на указанную директорию вида:

source-directory /etc/network/interfaces.d

1.   Отредактируйте файл /etc/network/interfaces.d/bond0, добавив в него описание для Bonding (port channel) интерфейса, например:

root@sterragate:~# cat /etc/network/interfaces.d/bond0

auto bond0

iface bond0 inet static

address 192.168.2.1

netmask 255.255.255.0

mtu 1500

slaves eth1 eth2

bond_mode 802.3ad

bond_miimon 100

bond_xmit_hash_policy layer2+3

·      address <IP адрес> – IP адрес логического интерфейса bond0;

·      netmask <маска> – сетевая маска для IP адрес логического интерфейса;

·      mtu <значение> – параметр для задания MTU интерфейса; значение по умолчанию – 1500; при изменении MTU интерфейса bond0 меняется MTU и объединяемых интерфейсов eth1 и eth2;

·      slaves <интерфейсы> – имена физических интерфейсов, объединяемых в агрегированный канал;

·      bond_mode – настройка, отвечающая за протокол, который обеспечивает работу агрегации каналов (в данном примере – это LACP, который основан на стандарте 802.3ad);

·      bond_miimon <интервал> – параметр, определяющий интервал времени в миллисекундах. Через заданное время будет происходить проверка физических интерфейсов на их доступность;

·      bond_xmit_hash_policy – параметр, определяющий уровень (в соответствии с эталонной моделью OSI), на котором будет происходить вычисление хеш-функции для последующей балансировки трафика.

2.   Чтобы Bonding интерфейс bond0 появился в системе, выполните команду ifup bond0, после чего убедитесь, что данный интерфейс действительно доступен в системе, а интерфейсы eth1/eth2 добавлены в bond0:

root@sterragate:~# ifup bond0

root@sterragate:~# ip address show bond0

136: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP

    link/ether 00:50:56:9e:bf:69 brd ff:ff:ff:ff:ff:ff

    inet 192.168.2.1/24 brd 192.168.2.255 scope global bond0

root@sterragate:~# ip address show eth1

3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000

    link/ether 00:50:56:9e:bf:69 brd ff:ff:ff:ff:ff:ff

root@sterragate:~# ip address show eth2

4: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000

    link/ether 00:50:56:9e:bf:69 brd ff:ff:ff:ff:ff:ff

Видно, что Bonding интерфейс bond0 присутствует в системе и сконфигурирован, а также интерфейсы eth1/eth2 добавлены в bond0. Расширенную информацию о bond0 можно посмотреть при помощи команды cat /proc/net/bonding/bond0.

3.   Добавьте Bonding интерфейс bond0 в файл /etc/ifaliases.cf:

root@sterragate:~# cat /etc/ifaliases.cf

interface (name="GigabitEthernet0/0" pattern="eth0")

interface (name="GigabitEthernet0/1" pattern="eth1")

interface (name="GigabitEthernet0/2" pattern="eth2")

interface (name="Port-channel1" pattern="bond0")

interface (name="default" pattern="*")

·      значение параметра name должно быть задано в виде Port-channelN.

·      значение параметра pattern должно соответствовать имени Bonding интерфейса в нотации Linux.

4.   Пересчитайте контрольную сумму файлa /etc/ifaliases.cf:

root@sterragate:~# integr_mgr calc -f /etc/ifaliases.cf

 

 

SUCCESS:  Operation was successful.

5.   Перезапустите VPN сервис:

root@sterragate:~# service vpngate restart

Теперь для интерфейса Port-channel1 можно задать политику СКЗИ и правила МЭ посредством Cisco-like консоли или LSP.

Объединение физических интерфейсов в режиме Active-Passive описано в инструкции «Агрегирование сетевых интерфейсов» (http://doc.s-terra.ru/, Примеры дополнительных возможностей).