При сбое основного сетевого интерфейса система может автоматически переключаться на резервный интерфейс, обеспечивая бесперебойное сетевое соединение. Это особенно важно для серверов и критически важных сервисов.
Разберём, как настроить failover-интерфейсы в Linux с помощью bonding и keepalived.
▪️ Метод 1: Используем bonding. Он позволяет объединять два интерфейса в один логический и автоматически переключаться на рабочий при отказе основного.
1️⃣ Установите модуль bonding:
sudo modprobe bonding
2️⃣ Настроим интерфейсы (пример для Ubuntu/Debian в /etc/netplan/01-netcfg.yaml):
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
eth1:
dhcp4: no
bonds:
bond0:
interfaces: [eth0, eth1]
parameters:
mode: active-backup
primary: eth0
Режим active-backup: Используется eth0, если он работает. Если eth0 выходит из строя, подключается eth1.
3️⃣ Применяем настройки:
sudo netplan apply
Проверяем статус:
cat /proc/net/bonding/bond0
▪️ Метод 2: Используем keepalived для виртуального IP. Этот метод позволяет создать виртуальный IP (VIP), который будет переключаться между интерфейсами при отказе.
1️⃣ Установите keepalived:
sudo apt install keepalived -y
2️⃣ Настроим keepalived (файл
/etc/keepalived/keepalived.conf):
vrrp_instance FAILOVER {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.1.100/24
}
}
3️⃣ Запускаем сервис:
sudo systemctl enable --now keepalived
Проверяем виртуальный IP:
ip a show eth0
▪️ Итоги:
bonding: объединяет интерфейсы в один и автоматически переключается между ними.
keepalived: создаёт виртуальный IP, который "переезжает" на другой интерфейс при отказе основного.
BashTex 📱 #linux #networks