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

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

Так уже получилось что писал статью для howtoforge. И естественно тут же все это оказалось в русском варианте на других сайтах. Только вот незадача: в статье были допущены неточности, и публицисты с других «сайтов» вставили as-is.
Хочу попробовать исправить это оплошность.
Для чего это надо?
Объясню на примере: был у меня фтп с 2мя сетевыми картами, но использовалась одна. Со временем весь 1Гб/с начал забиваться по вечерам — и людям плохо, и у меня iowait растет. Но есть вторая сетевая карта. Так вот такое объединение позволит использовать 2 (3, 4, 5. ) как одну с 2Гб/с.
Но это не «потолок», вот полный список режимов:
mode=0 (balance-rr)
Последовательно кидает пакеты, с первого по последний интерфейс.
mode=1 (active-backup)
Один из интерфейсов активен. Если активный интерфейс выходит из строя (link down и т.д.), другой интерфейс заменяет активный. Не требует дополнительной настройки коммутатора
mode=2 (balance-xor)
Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.
mode=3 (broadcast)
Все пакеты на все интерфейсы
mode=4 (802.3ad)
Link Agregation — IEEE 802.3ad, требует от коммутатора настройки.
mode=5 (balance-tlb)
Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса. Не требует настройки коммутатора.
mode=6 (balance-alb)
Тоже самое что 5, только входящий трафик тоже распределяется между интерфейсами. Не требует настройки коммутатора, но интерфейсы должны уметь изменять MAC.
Настройка
Очень простая. Вы выбираете режим, втыкаете в коммутатор второй кабель.
Дальше в зависимости от системы, я делал это на Debian Lenny
#apt-get install ifenslave-2.6
Дальше есть 2 варианта:
Вариант №1 Подправить /etc/network/interfaces к примеру так.
iface bond0 inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1
и подправить /etc/modprobe.d/arch/i386 примерно так
alias bond0 bonding
options bonding mode=5 miimon=100 downdelay=200 updelay=200
Естественно указать свой режим и настройки сети.
# update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart
Вариант №2 Все настройки через /etc/network/interfaces
iface bond0 inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
bond_mode balance-tlb
bond_miimon 100
bond_downdelay 200
bond_updelay 200
slaves eth0 eth1
Сохраняем и пишем:
update-modules
# ifdown eth0 eth1
# ifup bond0
# /etc/init.d/networking restart
После этого должен появится один интерфейс bond0. Далее можно плодить интерфейсы bon0:0 и т.д.
UPD: Перенес из своего блога в нужный
UPD 2: Спасибо infotim, за правки.

Читайте также:  Обновления ядра linux системы

Источник

Объединение сетевых карт в Linux

Nov 30, 2015 15:52 · 547 words · 3 minute read hardware

Объединение сетевых карт в Linux (bonding) используется для агрегирования нескольких физических сетевых интерфейсов в один логический.

Чаще всего сетевые интерфейсы работают в режиме горячего резерва или балансировки нагрузки — все зависит от выбранной политики. Давайте разберемся с объединением сетевых карт в ОС Debian Wheezy!

В нашем примере используется одноранговая сеть (peer-to-peer) между двумя серверами, по которой синхронизируются drbd-разделы. Необходимо использовать объединение сетевых карт в режиме balance-rr (round-robin) на случай выхода из строя одного из сетевых интерфейсов.

Настройки будут проводиться на серверах:

lsb_release -a Distributor ID: Debian Description: Debian GNU/Linux 7.8 (wheezy) Release: 7.8 Codename: wheezy 

Устанавливаем необходимый пакет ifenslave на оба сервера:

aptitude install ifenslave-2.6 

Правим /etc/network/interfaces на первом сервере, добавляем следующие строки:

auto bond0 iface bond0 inet static address 172.16.0.1 netmask 255.255.255.0 gateway 172.16.0.254 bond_mode balance-rr bond_miimon 100 bond_downdelay 200 bond_updelay 200 slaves eth2 eth3 

На втором сервере в /etc/network/interfaces добавляем:

auto bond0 iface bond0 inet static address 172.16.0.2 netmask 255.255.255.0 gateway 172.16.0.254 bond_mode balance-rr bond_miimon 100 bond_downdelay 200 bond_updelay 200 slaves eth2 eth3 

Подробнее об используемых параметрах:

  • bond_mode balance-rr — режим round-robin , применяется для отказоустойчивости и балансировки нагрузки;
  • bond_miimon 100 — периодичность MII мониторинга (миллисекунды);
  • bond_downdelay 200 — время задержки перед отключением интерфейса при сбое соединения (миллисекунды);
  • bond_updelay 200 — время задержки перед включением интерфейса при восстановлении соединения (миллисекунды);
  • slaves eth2 eth3 — при такой конфигурации описывать интерфейсы eth2 и eth3 в /etc/network/interfaces не нужно.

Далее на обоих серверах выполняем:

Примечание. Проверить, загружен модуль или нет можно с помощью команды lsmod | grep bonding .

Читайте также:  Рейтинг серверных linux дистрибутивов

Опять же, на обоих серверах:

ifdown eth2 eth3 && ifup bond0 

После проделанных действий проверим, что новые сетевые интерфейсы действительно добавились. Первый сервер:

ifconfig bond0 Link encap:Ethernet HWaddr 68:05:ca:20:4f:6a  inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0  inet6 addr: fe80::6a05:caff:fe20:4f6a/64 Scope:Link  UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1  RX packets:5091884726 errors:0 dropped:0 overruns:0 frame:0  TX packets:16029676320 errors:0 dropped:0 overruns:0 carrier:0  collisions:0 txqueuelen:0  RX bytes:424211603599 (395.0 GiB) TX bytes:22123967678480 (20.1 TiB) . 
ifconfig bond0 Link encap:Ethernet HWaddr 68:05:ca:20:51:ec  inet addr:172.16.0.2 Bcast:172.16.0.255 Mask:255.255.255.0  inet6 addr: fe80::6a05:caff:fe20:51ec/64 Scope:Link  UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1  RX packets:16029826998 errors:0 dropped:0 overruns:0 frame:0  TX packets:5091930656 errors:0 dropped:0 overruns:0 carrier:0  collisions:0 txqueuelen:0  RX bytes:22124111859139 (20.1 TiB) TX bytes:424213993831 (395.0 GiB) . 

При объединении сетевых карт в Linux можно использовать следующие режимы ( mode ) поведения сетевых интерфейсов:

  • balance-rr , или mode=0 — режим round-robin, последовательная отправка пакетов с первого по последний доступный интерфейс. Такая политика применяется для балансировки нагрузки и отказоустойчивости;
  • active-backup , или mode=1 — режим активный-резервный, работает только один сетевой интерфейс. Второй интерфейс становится активным, когда «падает» текущий активный интерфейс. Такая политика применяется для обеспечения отказоустойчивости;
  • balance-xor , или mode=2 — режим передачи данных когда один и тот же сетевой интерфейс передаёт пакеты одним и тем же получателям. Политика XOR используется для балансировки нагрузки и отказоустойчивости;
  • broadcast , или mode=3 — режим передачи всех пакетов на все сетевые интерфейсы, политика применяется для обеспечения отказоустойчивости путем избыточности;
  • 802.3ad , или mode=4 — режим агрегирования каналов по стандарту IEEE 802.3ad (объединение сетевых карт с одинаковой скоростью и дуплексом);
  • balance-tlb , или mode=5 — режим адаптивной балансировки передачи данных, входящие пакеты приходят на активную сетевую карту, а исходящие распределяются в зависимости от текущей загрузки каждого сетевого интерфейса;
  • balance-alb , или mode=6 — режим адаптивной балансировки передачи данных, при котором и входящие, и исходящие пакеты распределяются в зависимости от текущей загрузки каждого сетевого интерфейса.
Читайте также:  Downloading from ftp in linux

Read more

© Copyright 2023 Yevhen Lebid

Источник

Оцените статью
Adblock
detector