Ответ
VRRP (Virtual Router Redundancy Protocol) — это стандартный протокол (RFC 5798) уровня сетевого доступа, предназначенный для обеспечения высокой доступности (High Availability) шлюза по умолчанию (default gateway) в локальной сети. Он решает проблему единой точки отказа на маршрутизаторе.
Как это работает в инфраструктуре DevOps (например, для кластера веб-серверов):
- Группа VRRP: Несколько физических маршрутизаторов (или L3-коммутаторов) объединяются в виртуальную группу.
- Виртуальный IP (VIP): Группе назначается один общий виртуальный IP-адрес (например,
192.168.1.1), который и будет использоваться всеми хостами в сети в качестве шлюза по умолчанию. - Роли: Внутри группы один маршрутизатор становится Master (активным), остальные — Backup (резервными).
- Master — отвечает на ARP-запросы для VIP, маршрутизирует трафик.
- Backup — слушают multicast-сообщения (адрес
224.0.0.18) от Master.
- Отказоустойчивость: Если Master перестаёт отправлять сообщения (heartbeats), Backup-маршрутизатор с наивысшим приоритетом автоматически берёт на себя роль Master, объявляя себя владельцем VIP. Для конечных устройств (серверов) смена происходит прозрачно, их настройки шлюза (
192.168.1.1) не меняются.
Пример конфигурации на Linux (используя keepalived), типичной для отказоустойчивого балансировщика нагрузки:
# Установка: apt-get install keepalived
# Конфигурация /etc/keepalived/keepalived.conf на узле 1 (Master):
vrrp_instance VI_1 {
state MASTER # Роль
interface eth0 # Сетевой интерфейс
virtual_router_id 51 # ID группы (должен совпадать на всех узлах)
priority 150 # Приоритет (выше = главнее)
advert_int 1 # Интервал объявлений (сек)
authentication {
auth_type PASS
auth_pass secret123
}
virtual_ipaddress {
192.168.1.100/24 dev eth0 # Виртуальный IP (VIP)
}
}
На втором узле конфигурация будет аналогичной, но с state BACKUP и priority 100.
Ключевые особенности и сравнение:
- Стандарт: VRRP — открытый стандарт (поддерживается разными вендорами). Его проприетарный аналог от Cisco — HSRP.
- Преимущество (Preempt): По умолчанию включено. Если вышедший из строя Master восстановится, он снова станет активным, т.к. у него приоритет выше.
- Использование в DevOps: Часто применяется в связке с ПО вроде
keepalivedдля создания отказоустойчивых кластеров веб-серверов (Nginx/Apache) или балансировщиков нагрузки (HAProxy), где VIP «плавает» между нодами.