Объеденение двух сетевых интерфейсов в один в терминологии Windows называется teaming, а в терминологии Linux — bonding. Этот режим может использоваться для повышения отказоустойчивости и/или пропускной способности сетевого подключения.
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:
root@localhost:~$ 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:
root@localhost:~$ echo "bonding" >> /etc/modules
Перезапускаем службу настройки сети:
root@localhost:~$ invoke-rc.d networking restart
Если все получилось, выглядеть должно примерно так:
root@localhost:~$ 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