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

Код:

aptitude install ifenslave ethtool

Затем добавим модуль bonding в автозагрузку и пропишем опции для его запуска, для этого в конец файла/etc/modules добавим текст из примера ниже, примеров будет два, для создания одного интерфейса из двух физических, и для создания двух интерфейсов из четырех физических. Подробнее о режимах работы bonding можно почитать здесь: http://www.linuxfoundation.org/collaborate/workgroups/networking/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 <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.
На этом настройка закончена.

Anti-Spam Protection by WP-SpamFree