Принцип работы протокола VRRP
Оригинал: Хабр
FHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких физических маршрутизаторов в один виртуальный, который и выступает шлюзом для конечных устройств.
Представьте себе следующую сеть:

Она состоит из:
- 2 маршрутизатора с выходом в интернет, объединённых в VRRP-кластер;
- коммутатора, объединяющего устройства в сегмент;
- компьютера, использующего виртуальный IP как шлюз по умолчанию.
Такая конфигурация позволит в случае отказа основного маршрутизатора (R1) практически незаметно для пользователя переключиться на резервный (R2).
Как это выглядит на практике#
Для примера возьмём два MikroTik, коммутатор и один ПК.
Пусть у нас будет следующая адресация:
| Устройство | IP |
|---|---|
| R1 (Master) | 192.168.1.2/24 |
| R2 (Backup) | 192.168.1.3/24 |
| VRID 33 | 192.168.1.1/24 |
| ПК | 192.168.1.100/24 |
Настроим VRRP на первом маршрутизаторе:
/ip address
add address=192.168.1.2/24 interface=ether2
/vrrp
add interface=ether2 vrid=33 priority=255
/ip address
add address=192.168.1.1/24 interface=vrrp33
Затем на втором:
/ip address
add address=192.168.1.3/24 interface=ether2
/vrrp
add interface=ether2 vrid=33 priority=100
/ip address
add address=192.168.1.1/24 interface=vrrp33
Для ПК шлюзом по умолчанию укажем 192.168.1.1.
В VRRP маршрутизатор с наибольшим приоритетом становится Master, второй — Backup. Master отвечает на ARP-запросы виртуального IP и перенаправляет трафик; Backup следит за состоянием Master и принимает роль Master при отказе (приоритет 255 — маршрутизатор является адресуемым владельцем виртуального IP).
Проверка отказа#
Посмотрим таблицу ARP до отказа:

Отключим R1 и повторим проверку:

Как видно, MAC-адрес шлюза сменился с R1 на R2 — переключение произошло автоматически, ПК продолжил работу без изменения настроек.
Как работает выбор Master#
Маршрутизаторы в одном VRID обмениваются анонсами VRRP (multicast 224.0.0.18, IP-протокол 112). Master рассылает их с интервалом Advertisement Interval (по умолчанию 1 секунда). Если Backup не получает анонсы в течение Master Down Interval (3 × Advertisement Interval + Skew Time), он считает Master отказавшим и prendет роль Master. Маршрутизатор с приоритетом 255 (владелец IP) всегда перехватывает роль Master, когда доступен.
Для подсчёта Skew Time используется формула: (256 − приоритет) / 256. Чем выше приоритет, тем меньше Skew Time — то есть маршрутизаторы с более высоким приоритетом быстрее prendут роль Master.
Порядок обработки пакетов#
Входящий в кластер пакет проходит следующий путь:
- Пакет приходит на виртуальный MAC-адрес.
- Аппаратное обеспечение маршрутизатора принимает пакет.
- Пакет проверяется: если пакет предназначен Master-маршрутизатору, он обрабатывается им; если текущий маршрутизатор — Backup, а пакет не является VRRP-пакетом, он отбрасывается (кроме случаев preemption-сценариев).
Практические советы#
- Настраивайте preempt, чтобы маршрутизатор с большим приоритетом возвращал себе роль Master после восстановления.
- Используйте аутентификацию (в классическом VRRP — простую текстовую, что не даёт защиты от подмены; для безопасности полагайтесь на изоляцию сегмента управления).
- Мониторьте состояние VRRP: резкие смены Master/Backup могут указывать на проблемы с линками.
Заключение#
VRRP позволяет создать отказоустойчивый шлюз без изменения конфигурации конечных устройств. За счём простоты (один виртуальный IP, один виртуальный MAC и выборы по приоритету) он широко поддерживается производителями и подходит для большинства задач резервирования шлюза по умолчанию.