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"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
setup: runner: loadbalance ports: ens32 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 ens34 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 |
[/codesyntax]
* как видим, используется runner loadbalance; объединены интерфейсы ens32 и ens34, которые находятся в состоянии up.
Командой:
ip a
… мы можем посмотреть состояние интерфейсов и назначенные IP-адреса.