• Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    Объединение Bonding сетевых интерфейсов в Linux Debian


    Данной статье описанны возможности объединения сетевых интерфейсов для отказоустойчивости и увеличения пропускной способности. Называется это в Linux - BONDING интерфейсов, в windows - Teaming интерфейсов.

    Типы агрегации (объединения) интерфейсов в Linux

    mode=0 (balance-rr)
    Этот режим используется по-умолчанию, если в настройках не указано другое. balance-rr обеспечивает балансировку нагрузки и отказоустойчивость. В данном режиме пакеты отправляются "по кругу" от первого интерфейса к последнему и сначала. Если выходит из строя один из интерфейсов, пакеты отправляются на остальные оставшиеся.При подключении портов к разным коммутаторам, требует их настройки.

    mode=1 (active-backup)
    При active-backup один интерфейс работает в активном режиме, остальные в ожидающем. Если активный падает, управление передается одному из ожидающих. Не требует поддержки данной функциональности от коммутатора.

    mode=2 (balance-xor)
    Передача пакетов распределяется между объединенными интерфейсами по формуле ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.

    mode=3 (broadcast)
    Происходит передача во все объединенные интерфейсы, обеспечивая отказоустойчивость.

    mode=4 (802.3ad)
    Это динамическое объединение портов. В данном режиме можно получить значительное увеличение пропускной способности как входящего так и исходящего трафика, используя все объединенные интерфейсы. Требует поддержки режима от коммутатора, а так же (иногда) дополнительную настройку коммутатора.

    mode=5 (balance-tlb)
    Адаптивная балансировка нагрузки. При balance-tlb входящий трафик получается только активным интерфейсом, исходящий - распределяется в зависимости от текущей загрузки каждого интерфейса. Обеспечивается отказоустойчивость и распределение нагрузки исходящего трафика. Не требует специальной поддержки коммутатора.

    mode=6 (balance-alb)
    Адаптивная балансировка нагрузки (более совершенная). Обеспечивает балансировку нагрузки как исходящего (TLB, transmit load balancing), так и входящего трафика (для IPv4 через ARP). Не требует специальной поддержки коммутатором, но требует возможности изменять MAC-адрес устройства.


    Настройка bonding в Debian
    Для корректной работы объединения интерфейсов необходимо установить пакет ifenslave-2.6 и проверить наличие модуля bonding:

    root@bond-srv:~# apt-cache search ifenslave
    ifenslave-2.6 - Attach and detach slave interfaces to a bonding device
    root@bond-srv:~# modprobe -l | grep bondi
    kernel/drivers/net/bonding/bonding.ko

    Для настройки объединения интерфейсов необходимо отредактировать файл конфигурации сети до следующего вида:

    root@bond-srv:~# cat /etc/network/interfaces
    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    auto bond0 eth0 eth1
    # настроим параметры бонд-интерфейса
    iface bond0 inet static
    # адрес, маска, шлюз. (можно еще что-нибудь по вкусу)
    address 10.0.0.11
    netmask 255.255.255.0
    gateway 10.0.0.254
    # определяем подчиненные (объединяемые) интерфейсы
    bond-slaves eth0 eth1
    # задаем тип бондинга
    bond-mode balance-alb
    # интервал проверки линии в миллисекундах
    bond-miimon 100
    # Задержка перед установкой соединения в миллисекундах
    bond-downdelay 200
    # Задержка перед обрывом соединения в миллисекундах
    bond-updelay 200
    Далее перезапускаем сеть и видим как все работает:

    root@bond-srv:~# /etc/init.d/networking stop && /etc/init.d/networking start
    Deconfiguring network interfaces...
    done.
    Configuring network interfaces...
    done.
    root@bond-srv:~# ifconfig
    bond0 Link encap:Ethernet HWaddr 00:02:b3:b0:27:98
    inet addr:10.0.0.11 Bcast:10.0.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
    RX packets:289786 errors:0 dropped:0 overruns:0 frame:0
    TX packets:144029 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:88731609 (84.6 MiB) TX bytes:8668925 (8.2 MiB)

    eth0 Link encap:Ethernet HWaddr 00:02:b3:b0:27:98
    UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
    RX packets:144766 errors:0 dropped:0 overruns:0 frame:0
    TX packets:72000 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:44351263 (42.2 MiB) TX bytes:4345219 (4.1 MiB)

    eth1 Link encap:Ethernet HWaddr 00:02:b3:b0:27:24
    UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
    RX packets:145020 errors:0 dropped:0 overruns:0 frame:0
    TX packets:72029 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:44380346 (42.3 MiB) TX bytes:4323706 (4.1 MiB)
    Диагностика bonding

    Для проверки работы объединения интерфейсов необходимо просмотреть содержимое каталога /proc/net/bonding/ на наличие каждого из бонд-интерфейсов:

    root@bond-srv:~# ls -la /proc/net/bonding/
    итого 0
    dr-xr-xr-x 2 root root 0 Июл 28 22:07 .
    dr-xr-xr-x 5 root root 0 Июл 28 22:07 ..
    -r--r--r-- 1 root root 0 Июл 28 22:07 bond0
    root@bond-srv:~# cat /proc/net/bonding/bond0
    Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

    Bonding Mode: adaptive load balancing
    Primary Slave: eth0
    Currently Active Slave: eth0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 200
    Down Delay (ms): 200

    Slave Interface: eth0
    MII Status: up
    Link Failure Count: 0
    Permanent HW addr: 00:02:b3:b0:27:98

    Slave Interface: eth1
    MII Status: up
    Link Failure Count: 0
    Permanent HW addr: 00:02:b3:b0:27:24

     

    Автор: admin, 29 сентября 2014
    Рубрики: OS Linux
    Метки: , , , , , ,

    Написать комментарий

    Последние статьи