В статье рассказано, как объединить два физических сетевых интерфейса в один для увеличения пропускной способности или для повышения отказоустойчивости сети. В Linux это делается при помощи модуля bonding и утилиты ifenslave. В большинстве новых версий дистрибутивов модуль ядра bonding уже есть и готов к использованию, в некоторых вам придется собрать его вручную. Я настраивал данное решение на Ubuntu 8.04 server amd64, поэтому примеры установки ПО взяты оттуда.
Установим нужное ПО:
aptitude install ifenslave ethtool
Затем добавим модуль bonding в автозагрузку и пропишем опции для его запуска, для этого в конец файла /etc/modules добавим текст из примера ниже, примеров будет два: для создания одного интерфейса из двух физических и для создания двух интерфейсов из четырех физических.
Подробнее о режимах работы bonding можно почитать [[http://www.linuxfoundation.org/collaborate/workgroups/networ... здесь]].
Пример для одного виртуального интерфейса из двух физических:
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 <ip-address>
netmask <netmask>
network <network-address>
broadcast <broadcast-address>
gateway <gateway-address>
dns-nameservers <nameserver-one> <nameserver-two>
dns-search <domain-name>
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1
# The bond1 network interface
auto bond1
allow-hotplug bond1
iface bond1 inet static
address <ip-address>
netmask <netmask>
network <network-address>
broadcast <broadcast-address>
gateway <gateway-address>
dns-nameservers <nameserver-one> <nameserver-two>
dns-search <domain-name>
up /sbin/ifenslave bond1 eth2
up /sbin/ifenslave bond1 eth3
Более подробно по опциям файла /etc/network/interfaces можно прочитать выполнив команду man interfaces
После того как прописаны настройки интерфейсов нужно перезапустить сеть командой /etc/init.d/networking restart и проверить, поднялись ли интерфейсы bond0, и если настраивали два, то bond1.
URL: http://sudouser.com/join-netifs-with-bonding.html
Обсуждается: http://www.opennet.dev/tips/info/2344.shtml