"Склеивание" сетевых интерфейсов (NIC Teaming / Bonding) - не что иное, как слияние нескольких сетевых соединений в одно параллельное. Это позволяет увеличить пропускную способность канала и повысить отказоустойчивость сети в случае отказа одной из сетевых карт.
Ядро linux идет со встроенным драйвером для агрегирования нескольких сетевых интерфейсов в один, называемый bond0. В данном руководстве будет объяснено как настроить данный интерфейс под debian-based системой на конкретном примере.
В примере используется следующее оборудование:
Также хочу заметить, что эта инструкция будет работать и на Ubuntu Server. Ниже команды даны, исходя из того, что вы открыли root консоль, используя su или sudo -i.
Ifenslave используется для присоединения сетевых карт к bond-интерфейсу. Bond0 будет считаться в системе как обычный сетевой интерфейс, но будет посылать пакеты через присоединенные (slave) устройства, используя планировщик на алгоритме round-robin. Это позволит обеспечить простую и сбалансированную систему. Установим данное ПО с помощью команды:
apt-get install ifenslave*
Создадим файл /etc/modprobe.d/bonding.conf
nano /etc/modprobe.d/bonding.conf
Со следующим содержимым:
alias bond0 bonding
options bonding mode=0 arp_interval=100 arp_ip_target=192.168.1.254, 192.168.1.12
Сохраним и закроем файл. В данном случае опции обозначают:
Теперь загрузим драйвер, используя следующие команды:
modprobe -v bonding mode=0 arp_interval=100 arp_ip_target=192.168.1.254, 192.168.1.12
Проверьте журнал и наличие в системе интерфейса bond0.
tail -f /var/log/messages
ifconfig bond0
Первым делом остановим eth0 и eth1 (не делайте так в ssh сессии):
/etc/init.d/networking stop
Отредактируем /etc/network/interfaces, сделав его резервную копию (на всякий случай):
cp /etc/network/interfaces /etc/network/interfaces.bak
nano /etc/network/interfaces
Удалив из содержимого eth0 и eth1 конфигурацию и приведя файл к следующему виду:
############ WARNING #################### # You do not need an "iface eth0" nor an "iface eth1" stanza. # Setup IP address / netmask / gateway as per your requirements. ####################################### auto lo iface lo inet loopback # # The primary network interface auto bond0 iface bond0 inet static address 192.168.1.10 netmask 255.255.255.0 network 192.168.1.0 gateway 192.168.1.254 slaves eth0 eth1 # jumbo frame support mtu 9000 # Load balancing and fault tolerance bond-mode balance-rr bond-miimon 100 bond-downdelay 200 bond-updelay 200 dns-nameservers 192.168.1.254 dns-search nixcraft.net.in
Сохраняем и выходим. В данном случае опции означают:
Чуть выше мы установили bounding policy (mode) в значение 0, что означает balance-rr. Другие значения могут быть:
После внесения всех изменений в конфигурационные файлы необходимо запустить или перезапустить сервисы сети:
/etc/init.d/networking restart
или перезагрузка хоста.
Вводим в терминал следующую команду:
ifconfig
Вывод будет примерно следующим:
bond0 Link encap:Ethernet HWaddr 00:xx:yy:zz:tt:31 inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::208:9bff:fec4:3031/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:9000 Metric:1 RX packets:2414 errors:0 dropped:0 overruns:0 frame:0 TX packets:1559 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:206515 (201.6 KiB) TX bytes:480259 (469.0 KiB) eth0 Link encap:Ethernet HWaddr 00:xx:yy:zz:tt:31 UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1 RX packets:1214 errors:0 dropped:0 overruns:0 frame:0 TX packets:782 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:103318 (100.8 KiB) TX bytes:251419 (245.5 KiB) Memory:fe9e0000-fea00000 eth1 Link encap:Ethernet HWaddr 00:xx:yy:zz:tt:31 UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1 RX packets:1200 errors:0 dropped:0 overruns:0 frame:0 TX packets:777 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:103197 (100.7 KiB) TX bytes:228840 (223.4 KiB) Memory:feae0000-feb00000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
Используем cat, чтобы посмотреть текущее состояние bond драйвера и сетевых соединений:
cat /proc/net/bonding/bond0
В случае успеха вывод будет примерно следующим:
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: load balancing (round-robin) 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:xx:yy:zz:tt:31 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:xx:yy:zz:tt:30
Автор статьи Platon Puhlechev aka iFalkorr разрешает печатать данный текст.
Рекомендуемые темы:
Запрещаем приложению доступ в сеть.
21 пример использования iptables для администраторов.