Объединение сетeвых интерфейсов в Ubuntu Linux при помощи «bonding»

Опубликовано:

В статье рассказано, как объединить два физических сетевых интерфейса в один
для увеличения пропускной способности или для повышения отказоустойчивости
сети. В Linux это делается при помощи модуля bonding и утилиты ifenslave. В
большинстве новых версий дистрибутивов модуль ядра bonding уже есть и готов к
использованию, в некоторых вам придется собрать его вручную. Я настраивал
данное решение на Ubuntu 8.04 server amd64, поэтому примеры установки ПО взяты оттуда.

Установим нужное ПО:

aptitude install ifenslave ethtool

Затем добавим модуль bonding в автозагрузку и пропишем опции для его запуска,
для этого в конец файла /etc/modules добавим текст из примера ниже, примеров
будет два: для создания одного интерфейса из двух физических и для создания
двух интерфейсов из четырех физических.

Подробнее о режимах работы bonding можно почитать
здесь.

Пример для одного виртуального интерфейса из двух физических:

alias bond0 bonding
options bonding mode=0 miimon=100

Пример для создания двух интерфейсов из четырех физических:

alias bond0 bonding
alias bond1 bonding
options bonding mode=0 miimon=100 max_bonds=2

Затем загрузим модуль bonding

## Один виртуальный интерфейс
modprobe bonding mode=0 miimon=100
## Два виртуальных интерфейса
modprobe bonding mode=0 miimon=100 max_bonds=2

Настроим параметры сетевых интерфейсов bonding`a, для этого отредактируем файл
настроек интерфейсов /etc/network/interfaces. В примере шаблоны для настройки
двух виртуальных интерфейсов.

# The bond0 network interface
auto bond0
allow-hotplug bond0
iface bond0 inet static
address
netmask
network
broadcast
gateway
dns-nameservers
dns-search
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1

# The bond1 network interface
auto bond1
allow-hotplug bond1
iface bond1 inet static
address
netmask
network
broadcast
gateway
dns-nameservers
dns-search
up /sbin/ifenslave bond1 eth2
up /sbin/ifenslave bond1 eth3

Более подробно по опциям файла /etc/network/interfaces можно прочитать выполнив
команду man interfaces

После того как прописаны настройки интерфейсов нужно перезапустить сеть
командой /etc/init.d/networking restart и проверить, поднялись ли интерфейсы
bond0, и если настраивали два, то bond1.

Понравилась статья, расскажи о ней друзьям, нажми кнопку!