Гайд по VRRP в MikroTik

На текущий момент у MikroTik нет стекируемых решений, либо протоколов для аппаратной синхронизации и переключения устройств. Даже решений с несколькими линиями питания не так много. Поэтому если у вас появилась задача сделать аппаратное резервирования, то вариантов у MikroTik очень и очень не много (и работать они будут далеко не так как хочется), один из них vrrp.

Что нужно значть про VRRP

VRRP (Virtual Router Redundancy Protocol) — открытый стандарт для объединения группы маршрутизаторов в один виртуальный маршрутизатор с целью увеличения доступности. На wikipedia говорится про «шлюз по умолчанию», но на деле это может быть совершенно любой маршрутизатор.

MikroTik поддерживает две версии протокола vrrp (v2 и v3), в 3 версии присутствует поддержка IPv6, но не работает аутентификция (по крайней мере так написано на wiki).

При создании vrrp интерфейса необходимо указать ID для виртуального роутера (VRID), он может принимать значения 0-255. Один реальный маршрутизатор может быть частью нескольких виртуальных маршрутизаторов VRRP.

Каждому маршрутизатору в составе VRID необходимо выставить приоритет (Priority). Маршрутизатор с наибольшим приоритетом будет выбран в качестве master и станет держателем virtual ip (адрес по которому с маршрутизатором будут связываться другие устройства в сети).

Master маршрутизатор раз в секунду (можно изменить) отправляет сообщения о свой активности на multicast адрес 224.0.0.18 (IPv6: FF02:0:0:0:0:0:0:12) в качестве mac получателя указан 00:00:5E:00:01:XX (IPv6: 00:00:5E:00:02:XX), где XX — 16-ричное представление VRID.

Virtual IP — адрес виртуального маршрутизатора, настраивается на vrrp интерфейсе.

В составе виртуального маршрутизатора может быть больше двух роутеров, при этом стандарт открыт и в теории можно использовать оборудование разных вендеров.

Еще пара замечаний

VRRP не отвечает за синхронизацию конфигурации, либо состояния соединений. Мало того у MikroTik нет встроенных средств для подобного функционала. Можно отлавливать изменения на master через log, создавать файл с измененными секциями, средствами fetch отправлять файлы на backup, который будет по таймеру проверять наличие файлов выполнять их. Либо использовать сторонний diff-сервер, который будет раз в день сравнивать конфигурацию и заливать изменения на backup, но все это выходит за рамки vrrp.

Основная схема применения описанных ниже схем — использования двух (или более) роутеров запитанных от различных (независимых) линий питания с бесшовным переключением при проблемах на одной из линий.

Схема 1. Резервирование с участием двух провайдеров

Предварительный конфиг MikrotTik master:

/interface ethernet set [ find default-name=ether1 ] name=eth1-wan set [ find default-name=ether2 ] name=eth2-vrrp /ip address add address=1.1.1.2/30 interface=eth1-wan /ip route add distance=1 gateway=1.1.1.1 /system identity set name=vrrp-master

Предварительный конфиг Mikrotik Backup:

/interface ethernet set [ find default-name=ether1 ] name=eth1-wan set [ find default-name=ether2 ] name=eth2-vrrp /ip address add address=2.2.2.2/30 interface=eth1-wan /ip route add distance=1 gateway=2.2.2.1 /system identity set name=vrrp-backup

Добавление vrrp на vrrp-master:

[Interfaces]->[VRRP]->[+]
name: vrrp100(можно любое)
interface: eth2-lan
VRID: 100
Priority: 150
Auth: ah
Pass: testvrrp
Version: 2

VRRP работает на интерфейсе локальной сети, поэтому имеет смысл поставить аутентификацию для защиты от диверсий.

Добавление служебного ip:
[IP]->[Address]->[+]
interface: eth2-vrrp
address: 10.10.10.1/32

В данной конфигурации не обязательно использовать /32 адреса т.к. адрес рабочей подсети и служебные адреса vrrp не пересекаются. При использовании адресов из рабочей подсети (например 192.168.100.251 — master; 192.168.100.252 — backup) использование /32 является обязательным условием, в противном случае у вас могут образоваться ECMP маршрут до lan подсети и все будет работать очень плохо.

Если служебные и реальные адреса совпадают, есть еще одна особенность. Роутер у которого на реальном интерфейсе будет настроен virtual ip в независимости от приоритета считается master.

Добавление рабочего ip:

Virtual IP в терминологии VRRP.
[IP]->[Address]->[+]
interface: vrrp100-lan
address: 192.168.100.1/24

Консольный вариант:

/interface vrrp add authentication=ah interface=eth2-vrrp name=vrrp100-lan password=testvrrp priority=150 version=2 vrid=100  /ip address add address=10.10.10.1/32 interface=eth2-vrrp add address=192.168.100.1/24 interface=vrrp100-lan

Добавление vrrp на vrrp-backup:

[Interfaces]->[VRRP]->[+]
name: vrrp100-lan
interface: eth2-vrrp
VRID: 100
Priority: 100(ниже чем у master)
Preemption mode: off
Auth: ah
Pass: testvrrp
Version: 2

Preemption mode — настройка для backup роутера. Если включено, то роутер не будет возвращать управление роутеру с большим приоритетом, при появлении такового в сети.

Добавление служебного ip:

[IP]->[Address]->[+]
interface: eth2-vrrp
address: 10.10.10.2/32

Добавление рабочего ip:

[IP]->[Address]->[+]
interface: vrrp100-lan
address: 192.168.100.1/24

Консольный вариант:

/interface vrrp add authentication=ah interface=eth2-vrrp name=vrrp100-lan password=testvrrp priority=100 version=2 vrid=100 preemption-mode=no  /ip address add address=10.10.10.2/32 interface=eth2-vrrp add address=192.168.100.1/24 interface=vrrp100-lan

После настройки произойдет согласование — роутеры обменяются hello и решат чей priority выше.
Состояние vrrp-master([R]unning, [M]aster)

Состояние vrrp-backup([B]ackup)

Выше я постарался максимально наглядно назвать интерфейсы, чтобы не было путаницы при добавлении правил firewall и пр. За локальную сеть отвечает интерфейс vrrp100-lan. за технический трафик vrrp отвечает интерфейс eth2-vrrp. Если на интерфейсе локальной сети используются vlan, то настраивать его необходимо на vrrp интерфейсе.

Схема 2. Резервирование и балансировка с участием двух провайдеров

Предыдущая схема работает хорошо, но один из провайдеров висит в воздухе и не используется практически никогда, можно исправить ситуацию используя несколько default route в сети. Раздать пользователям различные default router можно средствами dhcp, либо вбив статикой. В любом случае конфигурация получается не гибкой. Но это пример хорошо показывает работу роутера в нескольких виртуальных маршрутизаторах vrrp.

Берем за основу предыдущую схему и добавляем дополнительный vrrp интерфейс.

На vrrp-master:

Консольный вариант:

/interface vrrp add authentication=ah interface=eth2-vrrp name=vrrp200-lan password=testvrrp priority=100 version=2 vrid=200 preemption-mode=no  /ip address add address=192.168.100.2/24 interface=vrrp200-lan

На vrrp-backup:

Консольный вариант:

/interface vrrp add authentication=ah interface=eth2-vrrp name=vrrp200-lan password=testvrrp priority=150 version=2 vrid=200  /ip address add address=192.168.100.2/24 interface=vrrp200-lan

Здесь не совсем уместно использовать терминологию master/backup т.к. теперь оба роутера одновременно являются и тем и другим по отношению к разным vrid.

Результат для vrrp-master:

Результат для vrrp-backup:

Схема 3. Резервирование с участием одного провайдера

Предварительный конфиг MikroTik Master:

/interface ethernet set [ find default-name=ether1 ] name=eth1-wan set [ find default-name=ether2 ] name=eth2-vrrp /ip address add address=1.1.1.2/30 interface=eth1-wan /ip route add distance=1 gateway=1.1.1.1 /system identity set name=vrrp-master

Предварительный конфиг Mikrotik Backup:

/interface ethernet set [ find default-name=ether1 ] name=eth1-wan disabled=yes set [ find default-name=ether2 ] name=eth2-vrrp /ip address add address=1.1.1.2/30 interface=eth1-wan /ip route add distance=1 gateway=1.1.1.1 /system identity set name=vrrp-backup

Важно: на mikrotik vrrp-backup по умолчанию отключен eth1-wan интерфейс.

Базовая конфигурация VRRP схожа со случаем с двумя провайдерами.

Настройка vrrp-master:

С vrrp все аналогично.

Но появляется дополнительный скрипт в [System]->[Schedulers], который при загрузке на несколько секунд отключает wan интерфейс. Это позволяет избежать коллизий (если на backup сменен mac) либо бана на свиче оператора.

Консольный вариант:

/interface vrrp add authentication=ah interface=eth2-vrrp name=vrrp100-lan password=testvrrp priority=150 version=2 vrid=100  /ip address add address=10.10.10.1 interface=eth2-vrrp add address=192.168.100.1/24 interface=vrrp100-lan /system scheduler add name=wan-off on-event="/interface set eth1-wan disabled=yes\r\     \n:delay 3\r\     \n/interface set eth1-wan disabled=no" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup

Настройка vrrp-backup:

Все аналогично, но в скриптах vrrp появляются действия для переключения состояния eth1-wan.

И добавляется sheduller, который отключает eth1-wan при загрузке (если нужно vrrp включит его сам).

Консольный вариант:

/interface vrrp add authentication=ah interface=eth2-vrrp name=vrrp100-lan on-backup="/interface set eth1-wan disabled=yes\r\     \n" on-master="/interface set eth1-wan disabled=no" password=testvrrp preemption-mode=no version=2 vrid=100  /ip address add address=10.10.10.2 interface=eth2-vrrp add address=192.168.100.1/24 interface=vrrp100-lan  /system scheduler add name=wan-off on-event="/interface set eth1-wan disabled=yes" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup

Если провайдер ограничивает доступ по mac, то не забываем изменить его на интерфейсе backup роутера.

В такой схеме у нас появляется слабое место — свитч перед wan интерфесами. Можно договориться с провайдером, что он проведет вам два провода и они будут подключены к различным сегментам его сети с пробросами vlan и т.д. Либо… поставить пассивный тройник, да это ужасная порнография и при старте любого из роутеров будет пара коллизий, но работоспособно (если не включать руками eth1-wan на backup роутере).

И конечно, можно использовать vrrp на wan интерфейсе (если настройки по статике), но тогда установки дополнительного свича, либо переговоров с провайдером не избежать.

Схема 4. Резервирование с участием одного WISP провайдера

Вам может показаться, что vrrp это странное недоразумение, которому нельзя придумать применение вне лаборатории без костылей. На самом деле есть одна схема, она очень похожа на предыдущую, но построена на wireless мостах.

Со стороны провайдера есть ap-bridge (желательно с широкой зоной покрытия). Со стороны клиента есть две тарелки (например SXT с одинм ether) разнесенные по различным мачтам (или углам здания), которые питаются от различных линий питания, но предоставляют доступ в интернет для одной подсети.

Настройки полностью аналогичны предыдущей схеме, только wan интерфейсом станет wlan1, а lan интерфейсом ether1. Тарелки можно настроить максимально статично, а всем трафиком управлять на дополнительном устройстве за ними. Это вполне работая анти-вандальная схема, без дополнительного взаимодействия с провайдером.

FavoriteLoadingДобавить в избранное
Posted in Без рубрики

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *