Агрегация сетевых интерфейсов в Debian Lenny 1


Объеденение двух сетевых интерфейсов в один в терминологии Windows называется teaming, а в терминологии Linux — . Этот режим может использоваться для повышения отказоустойчивости и/или пропускной способности сетевого подключения.

Linux поддерживает несколько режимов агрегации интерфейсов:

  • 0 (balance-rr) — round-robin распределение пакетов между интерфейсами. Обеспечивает отказоустойчивость и повышение пропускной способности.
  • 1 (active-backup) — в каждый момент времени работает только один интерфейс, в случае его выхода из строя, mac-адрес назначается второму интерфейсу и трафик переключается на него.
  • 2 (balance-xor) — обеспечивает балансировку между интерфейсами на основании MAC-адресов отправителя и получателя.
  • 3 (broadcast) — отправляет пакеты через все интерфейсы одновременно, обеспечивает отказоустойчивость.
  • 4 (802.3ad) — обеспечивает агрегацию на основании протокола 802.3ad.
  • 5 (balance-tlb) — в этом режиме входящий трафик приходит только на один «активный» интерфейс, исходящий же распределяется по всем интерфейсам.
  • 6 (balance-alb) — балансирует исходящий трафик как tlb, а так же входящий IPv4 трафик используя ARP.

Настроим агрегацию сетевых интерфейсов eth0 и eth1 в один bond0, используя round-robin алгоритм балансировки пропускной способности.

Установим ifenslave:

[email protected]:~$ apt-get install ifenslave-2.6

Далее нужно привести конфиг /etc/network/interfaces примерно к такому виду:

auto bond0
iface bond0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1

Создаем файл /etc/modprobe.d/bonding.conf:

alias bond0 bonding
options bonding mode=0 miimon=100 downdelay=200 updelay=200

Добавляем модуль bonding в /etc/modules:

[email protected]:~$ echo "bonding" >> /etc/modules

Перезапускаем службу настройки сети:

[email protected]:~$ invoke-rc.d networking restart

Если все получилось, выглядеть должно примерно так:

[email protected]:~$ ifconfig
bond0     Link encap:Ethernet  HWaddr 00:1e:58:99:f2:a0
inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
RX packets:6533845 errors:0 dropped:0 overruns:0 frame:0
TX packets:6583132 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3584238626 (3.3 GiB)  TX bytes:5339636447 (4.9 GiB)
eth0      Link encap:Ethernet  HWaddr 00:1e:58:99:f2:a0
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:3741006 errors:0 dropped:0 overruns:0 frame:0
TX packets:3291562 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1893688937 (1.7 GiB)  TX bytes:2677192063 (2.4 GiB)
Interrupt:21
eth1      Link encap:Ethernet  HWaddr 00:1e:58:99:f2:a0
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:2792839 errors:0 dropped:0 overruns:0 frame:0
TX packets:3291570 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1690549689 (1.5 GiB)  TX bytes:2662444384 (2.4 GiB)
Interrupt:28 Base address:0xa000

Мысль на тему “Агрегация сетевых интерфейсов в Debian Lenny

  • Кирилл

    Большооое спасибо!) пол дня просидел, перепробовал множество методов) но только этот метод сработал 😀
    P.S ubuntu server 12.10.2

Комментарии закрыты