Интерфейсы 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/, Примеры дополнительных возможностей).