Объединение каналов Ethernet, также известное как объединение сетевых карт в системах Linux
Объединение каналов Ethernet позволяет использовать две или более Карты сетевых интерфейсов (NIC) на одной виртуальной NIC карте, что может увеличить пропускную способность и обеспечивает резервирование сетевых карт. Это отличный способ обеспечить резервные каналы, отказоустойчивость или сети балансировки нагрузки в производственной системе. Если один физический NIC не работает или отключен, ресурсы автоматически переместятся на другую NIC карту. Связывание канала/NIC будет работать с помощью драйвера связывания в ядре. Мы будем использовать два NIC, чтобы продемонстрировать то же самое.
Доступно почти шесть типов Channel Bond. Здесь мы рассмотрим только два типа Channel Bond, которые популярны и широко используются.
- 0: Балансировка нагрузки (Round-Robin): трафик передается в последовательном или циклическом порядке от обоих сетевых адаптеров. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.
- 1: Активное резервное копирование: в любой момент времени активен только один подчиненный сетевой адаптер. Другая интерфейсная карта будет активна только в случае сбоя активной подчиненной сетевой карты.
Создание объединения каналов Ethernet
У нас есть две сетевые карты Ethernet, то есть eth1 и eth2, где bond0 будет создан для целей соединения. Для выполнения приведенных ниже команд необходимы права суперпользователя.
Балансировка нагрузки (циклический алгоритм)
Настроить eth1
Укажите параметр MASTER bond0 и интерфейс eth1 как SLAVE в файле конфигурации, как показано ниже.
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes
Настроить eth2
Здесь также укажите интерфейс MASTER bond0 и eth2 как SLAVE.
vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
Создать конфигурацию Bond0
Создайте bond0 и настройте интерфейс связывания каналов в каталоге «/etc/sysconfig/network-scripts/» под названием ifcfg-bond0.
Ниже приведен пример файла конфигурации объединения каналов.
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"
Примечание. В приведенной выше конфигурации мы выбрали параметры связывания mode=0, т. е. Round-Robin и miimon=100. (Интервал опроса 100 мс).
Давайте посмотрим на интерфейсы, созданные с помощью команды ifconfig, которая показывает, что «bond0» работает как MASTER, оба интерфейса «eth1» и «eth2 ». », работающий как РАБЫ.
ifconfig
bond0 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E
inet addr:192.168.246.130 Bcast:192.168.246.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1231555 (1.1 MiB) TX bytes:1622391 (1.5 MiB)
eth1 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1196931 (1.1 MiB) TX bytes:819042 (799.8 KiB)
Interrupt:19 Base address:0x2000
eth2 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:385 errors:0 dropped:0 overruns:0 frame:0
TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34624 (33.8 KiB) TX bytes:803583 (784.7 KiB)
Interrupt:19 Base address:0x2080
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:480 (480.0 b) TX bytes:480 (480.0 b)
Перезапустите сетевую службу, и интерфейсы должны быть в порядке.
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Проверка состояния облигации.
watch -n .1 cat /proc/net/bonding/bond0
Пример вывода
Ниже показано, что Режим связывания — это Балансировка нагрузки (RR) и eth1 и eth2. > появляются.
Every 0.1s: cat /proc/net/bonding/bond0 Thu Sep 12 14:08:47 2013
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0
Создать активную резервную копию
В этом сценарии Подчиненные интерфейсы остаются прежними. в интерфейсе связи будет только одно изменение ifcfg-bond0 вместо '0', это будет '1', как показано ниже. .
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"
Перезапустите сетевую службу и проверьте состояние соединения.
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Проверка состояния связи с помощью команды.
watch -n .1 cat /proc/net/bonding/bond0
Пример вывода
В режиме соединения отображается отказоустойчивость (активное резервное копирование), а ведомый интерфейс включен.
Every 0.1s: cat /proc/n... Thu Sep 12 14:40:37 2013
Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0
Примечание. Вручную опустите и поднимите подчиненные интерфейсы, чтобы проверить работу объединения каналов. Пожалуйста, смотрите команду, как показано ниже.
ifconfig eth1 down
ifconfig eth1 up
Вот и все!