апреля 7 2010 11:08 дп
Объединение сетевых интерфейсов при помощи bonding

В этой статье я опишу как объединить два физических сетевых интерфейса в один, для увеличения пропускной способности, или повышения отказоустойчивости сети. В Linux это делается при помощи bonding и утилиты ifenslave. В большинстве новых версий дистрибутивов модуль ядра bonding уже есть и готов к использованию, в некоторых вам придется собрать его вручную. Я настраивал данное решение на Ubuntu 8.04 server amd64, поэтому примеры установки ПО взяты оттуда.
Установим нужное По
Код:
aptitude install ifenslave ethtool
Затем добавим модуль bonding в автозагрузку и пропишем опции для его запуска, для этого в конец файла /etc/modprobe.d/options добавим текст из примера ниже, примеров будет два, для создания одного интерфейса из двух физических, и для создания двух интерфейсов из четырех физических. Подробнее о режимах работы 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.
На этом настройка закончена.
Popularity: 6%
3 Комментариев »
3 Responses to “Объединение сетевых интерфейсов при помощи bonding”
Leave a Reply
You must be logged in to post a comment.



on 08 Апр 2010 at 11:22 #
[...] This post was mentioned on Twitter by Максим Степанов. Максим Степанов said: New blog post: Объединение сетевых интерфейсов при помощи bonding [...]
Доброго времени суток, извиняюсь за офтом, но у метя такой вопрос а если вот к примеру есть машинка у неё 2 интерфейса сетевых вот с 2 каналами от разных провов, все крутится и откликается на 1 интерфейсе , но вот получается что 1 интерфейс отваливается (ну там у прова проблемы или на линии вообщем в таком плане) вот как сделать так чтоб все переключалось автоматом на 2 интерфейс и теперь работало с него ?
Как то такhttp://www.opennet.ru/base/net/int_switcher.txt.html