Меню

Red hat настройка bonding

How to configure network interface bonding on RHEL 8 / CentOS 8 Linux

Software Requirements and Conventions Used

What bonding mode?

There are basically 7 bonding modes we can use:

Round Robin

Packets are distributed equally, in sequential order, to all the slave interfaces (from the first to the last). This mode provides both load balancing and fault tolerance, but needs support on the switches.

Active Backup

Only the primary slave interface is used. If it fails, another slave is used in its place. It does only provide fault tolerance; there are no special requirements.

XOR (Exclusive OR)

Packets are transmitted and assigned to one of the slave interfaces depending on the hash of the source and destination MAC addresses, calculated with the following formula:

This mode provides both fault tolerance and load balancing.

Broadcast

When this mode is used, all packets are transmitted on all the slave interfaces, providing fault tolerance but not load balancing.

802.3ad

This mode makes use of the IEEE 802.3ad link aggregation which must be supported on the switches. Creates aggregation groups that share same speed and duplex settings. Transmits and receives on all slaves in the active group. Provides both load balancing and fault tolerance.

Adaptive transmit load balancing

Outgoing packets are transmitted across the slave interfaces depending on their load, and incoming traffic is received by the current slave. If the latter fails, another slave takes over its MAC address. This mode provides fault tolerance and load balancing.

Adaptive load balancing

The environment

The system has currently two ethernet links, enp1s0 and enp7s0 :

Creating the network bonding

As a first thing, we will delete the current existing configurations for the slave interfaces. This is not strictly necessary, since we could edit such configurations in place, but to start from scratch we will proceed this way. Let’s invoke nmtui :

From the main menu we select «Edit a connection» and confirm.

Finally, we confirm that we want to delete the connection:

We repeat the operation for the other interface. Once we removed all the existent configurations, we can create the bond interface. We select in the menu, and from the list of connection types, we choose Bond :

Enter the device name, select and confirm. The operation must be repeated for each one of the slave interfaces.

The next step is to select the bonding mode : for the sake of this tutorial we will use the Active Backup one. We select the related option in the menu and in the «Primary» field we specify the name of the primary slave interface. Finally, we just select to confirm the bond interface creation.

Читайте также:  Восстановление базовых настроек андроид

We can now exit the nmtui application. To verify that the bonding creation was successful, we can launch the following command:

The result is the following:

The ifcfg configuration files related to our configuration have been generated inside the /etc/sysconfig/network-scripts directory:

To view the current state of the bond0 interface as seen by the kernel, we can run:

The output of the command is reported below:

We can see how both the slave interfaces are up, but only enp1s0 is active, since it is the one used as the primary slave.

Testing the Active Backup

How can we verify that our configuration works? We can put the primary slave interface down and see if the machine still responds to pings. To put down the interface we run:

Does the machine still respond? Let’s verify it:

It does! Let’s see how the status of the bond changed:

Conclusions

Источник

заметки системного администратора

воскресенье, 13 декабря 2009 г.

Обеспечение безотказной работы сети в RedHat Linux (bonding) длянескольких IP сетей

Один из важнейших элементов обеспечения бесперебойной работы ответственных серверов ( работающих по схемам 24/7 или 365/24/7 ) это резервирование сетевых интерфейсов. В самом деле, какой смысл в дорогом оборудовании, RAID 1+0, spare disks, если сервер соединен со свичем через один адаптер, один кабель, один порт? Да и свич тоже может выйти из строя.

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

Для начала попросим нашего network engineer подать на порты свичей оба VLAN’а, чтобы они были доступны с обоих сетевых адаптеров.

Останавливаем сеть:
# service network stop

Итак, возвращаемся к VLAN’ам. Последовательно наполняем содержимым файлики с описанием интерфейсов для VLAN.

=======
ifcfg-eth0.10:

DEVICE=eth0.10
ONBOOT=yes
BOOTPROTO=none
VLAN=yes
TYPE=Ethernet
USERCTL=no
MASTER=bond0
SLAVE=yes
=======
ifcfg-eth0.20:

DEVICE=eth0.20
ONBOOT=yes
BOOTPROTO=none
VLAN=yes
TYPE=Ethernet
USERCTL=no
MASTER=bond1
SLAVE=yes
=======
ifcfg-eth1.10:

DEVICE=eth1.10
ONBOOT=yes
BOOTPROTO=none
VLAN=yes
TYPE=Ethernet
USERCTL=no
MASTER=bond0
SLAVE=yes
=======
ifcfg-eth1.20:

DEVICE=eth1.20
ONBOOT=yes
BOOTPROTO=none
VLAN=yes
TYPE=Ethernet
USERCTL=no
MASTER=bond1
SLAVE=yes
=======

Хочу обратить внимание. При использовании bonding параметр HWADDR в ifcfg-ethX.X и в ifcfg-bondX указывать нельзя, т.к. возникнут проблемы при запуске сети. Однако можно (и иногда нужно) указывать в ifcfg-ethX.

alias bond0 bonding
alias bond1 bonding
options bond0 miimon=100 mode=active-backup max_bonds=2
options bond1 miimon=100 mode=active-backup max_bonds=2

Читайте также:  Xbox 360 настройка консоли

Полный список параметров модуля можно найти в документации к ядру или здесь

Ну, настройка собственно завершена. Осталось запустить сеть:
# service network start

Все должно работать.

Состояние виртуальных адаптеров можно посмотреть командой:

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0.10
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0.10
MII Status: up
Link Failure Count: 2
Permanent HW addr: 00:12:34:56:78:90

Slave Interface: eth1.10
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:12:34:56:78:91

PS. В качестве полезного дополнения крайне рекомендую прочитать также еще одну мою статью на эту же тему. В ней имеются важные дополнения, в частности, как определить primary interface для бондинга (через который идет трафик по умолчанию), что может быть очень важным при использовании множества интерфейсов и VLAN’ов одновременно.

Источник

Бонд. Джеймс Бонд или объединение сетевых интерфейсов (бондинг)

Подобная статья уже была от автора AccessForbidden: «Объединение сетевых интерфейсов в linux».
Эта статья именно о настройке, и установке. Пишу её потому, что недавно столкнулся с проблемами установки и настройки бондинга.

Ситуация была такова: Был стааренький компьютер на четырёх-поточном пентиуме, с гигабайтом ОЗУ, и встроенным гигабитным интерфейсом на мат.плате. Он был мне как шлюзом, так медиацентром, и NAS’ом. Но вот, когда уже дома появилось N-ное количество девайсов (телевизор, смартфоны и компьютеры) пропускной способности начало не хватать. Но была у меня хорошая интеловская сетевая карточка (тоже гигабитная) и я решил погуглить на тему объединения интерфейсов

Вообще, Ethernet bonding (если быть точнее) — это объединение двух или более физических сетевых интерфейсов в один виртуальный для обеспечения отказоустойчивости и повышения пропускной способности сети. Или (простым языком говоря)Raid для сетевых карт. Только их «заточенность» на пропускную способность, на одинакового производителя- не важна

Ну, для начала, нужно убедится, нуждаетесь вы в этом или нет (скорее всего, если вы это читаете, значит вам это возможно нужно. ). Перед тем, как начнём, предупреждаю: делать нужно всё на сервере и от рута.

Итак, начнём!

Вставляем сет.карту, если не вставали. ну и подключаем к свитчу (коммутатору) или роутеру обе карты

Этап подготовки:

Теперь, нам нужно поставить ifenslave. на данный момент, актуальна версия 2.6. Ставим:

Теперь, нам нужно выключить интерфейсы, которые мы объединяем (в моём случае, это — eth0, eth1).

Читайте также:  Настройка штрих кода на весах

Ну и останавливаем сеть:

Этап настройки:

Теперь нам нужно настроить файл /etc/network/interfaces

(я лично пользуюсь «нано»).

Поскольку показываю, как делал я, у меня он

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0

auto eth1
iface eth1 inet dhcp

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

iface bond0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0

slaves eth0 eth1
bond-mode balance-rr
bond-miimon 100
bond-downdelay 200
bond-updelay 200

Хочу обратить ваше внимание на:

Первое — если у вас dhcp сервер, то в /etc/default/isc-dhcp-server, в Interfaces я указал bond0. так и с остальными серверами.
Второе — тоже про dhcp. если у вас оный сервер, то в address, netmask, network bond’а0, указываем те же параметры что и у интерфейса на который до этого, работал dhcp
Третье — должен быть только bond0 (0 — в данном случае. Кстати, их может быть куча). Интерфейсы, которые мы объединили написав в строку slaves, мы убираем.

После сделанного пишем (в терминале уже):

Только его!
«включаем» сеть. Кстати на ошибки можно не обращать внимания. Они не критичны.
Можем перезагрузится.

bond0 Link encap:Ethernet HWaddr 00:16:e6:4d:5e:05
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::216:e6ff:fe4d:5e05/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:33518 errors:0 dropped:0 overruns:0 frame:0
TX packets:30062 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6687125 (6.3 MiB) TX bytes:17962008 (17.1 MiB)

eth0 Link encap:Ethernet HWaddr 00:16:e6:4d:5e:05
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:16630 errors:0 dropped:0 overruns:0 frame:0
TX packets:15031 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3288730 (3.1 MiB) TX bytes:8966465 (8.5 MiB)
Interrupt:43 Base address:0x6000

eth1 Link encap:Ethernet HWaddr 00:16:e6:4d:5e:05
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:16888 errors:0 dropped:0 overruns:0 frame:0
TX packets:15031 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3398395 (3.2 MiB) TX bytes:8995543 (8.5 MiB)
Interrupt:17 Memory:e1080000-e10a0000

Можно ещё добавлять интерфейсы bond0:0 и т.д.

Подходящий для вас режим, указывайте в /etc/network/interfaces в строке: bond-mode.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Adblock
detector