Объединение сетевых интерфейсов в CentOS с помощью teamd

Thank you for reading this post, don't forget to subscribe!

В двух сло­вах, teamd — еще один спо­соб агре­ги­ро­ва­ния сете­вых интер­фей­сов (подоб­но bond). Мы рас­смот­рим его настрой­ку для систе­мы Linux CentOS (Red Hat).

Установка teamd

В систе­ме дол­жен быть уста­нов­лен пакет teamd. Он нахо­дит­ся в репо­зи­то­ри­ях попу­ляр­ных систем и в CentOS уста­нав­ли­ва­ет­ся командой:

yum install teamd

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

Что­бы настрой­ки были посто­ян­ны­ми (объ­еди­не­ние сети так­же рабо­та­ло после пере­за­груз­ки ком­пью­те­ра), мы настро­им сеть через ifcfg-файлы.

Созда­ем кон­фи­гу­ра­ци­он­ный файл для team:

vi /etc/sysconfig/network-scripts/ifcfg-team0

ONBOOT=yes
DEVICE=team0
BOOTPROTO=static
DEVICETYPE=Team
NM_CONTROLLED=no
IPADDR=192.168.1.15
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=77.88.8.8
DNS2=8.8.4.4
DOMAIN=test.local
TEAM_CONFIG='{"runner": {"name": "loadbalance"}, "link_watch": {"name": "ethtool"}}'

* где TEAM_CONFIG — настрой­ка объ­еди­не­ния для интер­фей­са в фор­ма­те json; 

В при­ме­ре выше мы исполь­зу­ем runner loadbalance — балан­си­ров­ку тра­фи­ка. Вот воз­мож­ные вари­ан­ты и их описание:

Runner Опи­са­ние
lacp Объ­еди­не­ние сете­вых интер­фей­сов с помо­щью про­то­ко­ла LACP (802.3ad).
broadcast Весь тра­фик идет через все порты.
roundrobin Тра­фик идет через все интер­фей­сы пооче­ред­но в слу­чай­ном порядке.
loadbalance Рав­но­мер­ное рас­пре­де­ле­ние тра­фи­ка меж­ду все­ми интерфейсами.
activebackup Исполь­зу­ет­ся толь­ко один интер­фейс. Осталь­ные под­клю­ча­ют­ся, при недо­ступ­но­сти основ­но­го в соот­вет­ствии с выстав­лен­ны­ми приоритетами.

Так­же настро­им физи­че­ские интер­фей­сы (в дан­ном при­ме­ре ens32 и ens34):

vi /etc/sysconfig/network-scripts/ifcfg-ens32

ONBOOT=yes
DEVICE=ens32
DEVICETYPE=TeamPort
NM_CONTROLLED=no
TEAM_MASTER=team0

… и ens34:

vi /etc/sysconfig/network-scripts/ifcfg-ens34

ONBOOT=yes
DEVICE=ens34
DEVICETYPE=TeamPort
NM_CONTROLLED=no
TEAM_MASTER=team0

Пере­за­пус­ка­ем сете­вую службу:

Если один из сете­вых адап­те­ров уже исполь­зу­ет­ся, то пере­за­пуск сети может при­ве­сти к поте­ре уда­лен­но­го досту­па. В таком слу­чае, необ­хо­ди­мо пере­за­пу­стить ком­пью­тер командой
shutdown -r now.

systemctl restart network

Про­ве­ря­ем состо­я­ние team:

teamdctl team0 state

… в моем слу­чае это было:

[codesyntax lang="php"]

[/codesyntax]

* как видим, исполь­зу­ет­ся runner loadbalance; объ­еди­не­ны интер­фей­сы ens32 и ens34, кото­рые нахо­дят­ся в состо­я­нии up.

Коман­дой:

ip a

… мы можем посмот­реть состо­я­ние интер­фей­сов и назна­чен­ные IP-адреса.