Объединение интерфейсов

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

Содержание

Что такое "объединение" (bonding) сетевых интерфейсов и как оно работает?

Под словом объединение будем подразумевать - портовый транкинг (автоматическое распределение каналов по требованию). В дальнейшем будет использоваться слово - "объединение" потому, что происходит практически объединение в единое целое.

Объединение позволяет совокупно собрать несколько портов в одну группу, эффективно объединяя пропускную способность в одном направлении. Объединение так же позволяет создавать мульти-гигабитные каналы для транспортировки трафика через высокопропускные районы вашей сети. Например, вы можете объединить два порта по 100 мегабит в 200 мегабитный магистральный порт. Это эквивалентно одному интерфейсу с пропускной способностью 200 мегабит.

Где я могу использовать подобное решение?

Вы можете использовать его там, где необходима избыточность связи, отказоустойчивость и балансировка нагрузки сети. Это лучший способ иметь высокий сегмент доступности сети. Очень полезно использовать объединение в сетях с поддержкой 802.1q VLAN (ваше сетевое оборудование должно поддерживать протокол 802.1q).

Какие типы режимов объединения доступны?

Лучшая документация по http://sourceforge.net/projects/bonding/-Linux Channel Bonding Project.

 

mod = 1 (active-backup)

Работает только один интерфейс, остальные находятся в очереди горячей замены. Если ведущий интерфейс перестает функционировать, то его нагрузку подхватывает следующий (присвоив mac-адрес) и становится активным. Дополнительная настройка коммутатора не требуется.

mode = 2 (balance-xor)

XOR политика: Передача на основе [(исходный MAC-адрес → XORMAC-адрес получателя) %число интерфейсов]. Эта команда выбирает для каждого получателя определенный интерфейс в соответствии с mac-адресом. Режим обеспечивает балансировку нагрузки и отказоустойчивость.

mode = 3 (broadcast)

Все пакеты передаются на все интерфейсы в группе. Режим обеспечивает отказоустойчивость.

 

mode = 4 (802.3ad)

mode =5 (balance-tlb)

Адаптивная балансировка передаваемой нагрузки: канал связи не требует какой либо специальной настройки. Исходящий трафик распределяется в соответствии с текущей нагрузкой (вычисляется по скоростям) для каждого интерфейса. Входящий трафик принимается текущим интерфейсом. Если принимающий интерфейс выходит из строя, то следующий занимает его место приватизировав его mac-адрес.

mode = 6 (balance-alb)

Адаптивное перераспределение нагрузки: включает balance-tlb плюс receive load balancing (rlb) для трафика IPv4 и не требует специального конфигурирования. То есть все так же как и при mode =5, только и входящий трафик балансируется между интерфейсами. Полученная балансировка нагрузки достигается опросом ARP. Драйвер перехватывает ответы ARP, направленные в локальной системе в поисках выхода и перезаписывает исходный адрес сетевой карты с уникальным аппаратным адресом одного из интерфейсов в группе.

 

Объединение интерфейсов в CentOS 4.

Далее вы подключаете к коммутатору второй (третий ...) кабель. И проводите конфигурацию.

В файле modprobe.conf добавить следующее:

alias bond0 bonding
options bond0 miimon=80 mode=5

 

Обязательно добавте псевдоним сети.

 

 modes:
mode=0 (Balance Round Robin)
mode=1 (Active backup)
mode=2 (Balance XOR)
mode=3 (Broadcast)
mode=4 (802.3ad)
mode=5 (Balance TLB)
mode=6 (Balance ALB)

 

В каталоге /etc/sysconfig/network-scripts создать файл ifcfg-bond0

 

DEVICE=bond0
IPADDR=<ip address>
NETMASK=
NETWORK=
BROADCAST=
GATEWAY=
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

Изменить ifcfg-eth0:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes

Проверте состояние объединения.

cat /proc/net/bonding/bond0 

Вы можете использовать несколько объединенных интерфейсов. Для этого вам необходимо загрузить модули объединения столько, сколько вам нужно. Полагая, что вы хотите два объединенных интерфейса, вы должны настроить /etc/modules.conf следующим образом:

 alias bond0 bonding
options bond0 -o bond0 mode=0 miimon=100
alias bond1 bonding
options bond1 -o bond1 mode=1 miimon=100