Коротенько опишу как настроить Network Teaming или Team в Linux. Технология служит для агрегации портов с целью увеличения пропускной способности и обеспечения отказоустойчивости сети.
sudo apt install libteam-utils
teamnl team0 getoption mode
*NOMODE*
Типы режимов
Есть пять режимов работы, в основном используются первые три:
- activebackup
- roundrobin
- loadbalance
- broadcast
- lacp
activebackup
Один порт находится в активном состоянии, остальные в запасе. При пропадании линка на активном порту активный порт меняется на другой доступный.
roundrobin
В случае с Round robin все интерфейсы находятся в активном состоянии, запросы отправляются поочередно через все активные порты. Если линк на порту пропадает - запросы начинают идти через оставшиеся.
loadbalance
Все порты активны одновременно. Система пытается загружать их равномерно. С точки зрения принятых практик в индустрии мы используем activebackup и roundrobin. Балансировщики нагрузки реализуются на уровне приложений.
broadcast
Пакеты отправляются со всех портов
lacp
Реализует 802.3ad Link Aggregation Control Protocol. Может использовать те же возможности выбора порта передачи, что и loadbalance.
Настройка activebackup
/etc/teamd.d/team0.conf
{
"device": "team0",
"ports": {
"eth0": {
"link_watch": {
"name": "ethtool"
}
},
"eth1": {
"link_watch": {
"name": "ethtool"
}
}
},
"runner": {
"name": "activebackup",
"hwaddr_policy": "by_active"
}
}
sudo teamd -U -D -o -t team0 -f /etc/teamd.d/team0.conf
Настройка systemd
/etc/systemd/system/[email protected]
[Unit]
Description=Team Daemon for device %I
Before=network-pre.target
Wants=network-pre.target
[Service]
BusName=org.libteam.teamd.%i
ExecStart=/usr/bin/teamd -U -D -o -t %i -f /run/teamd/%i.conf
Restart=on-failure
RestartPreventExitStatus=1
systemctl enable teamd@team0
В ручном режиме
sudo ip link add type team team0
sudo teamnl team0 setoption mode activebackup
sudo ip link set dev eth0 master team0
sudo ip link set dev eth1 master team0