Меню
Контакты
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
109147, Москва, ул.Воронцовская, 35Б, корп.2 офис.11, 4 этаж
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Гайд по VRRP в MikroTik

 14 Сен 2018    О настройках и установке оборудования производителя Mikrotik, Практика и программирование MikroTik, Полезные функции и другие возможности оборудования 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.


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

Предварительный конфиг 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. Тарелки можно настроить максимально статично, а всем трафиком управлять на дополнительном устройстве за ними. Это вполне работая анти-вандальная схема, без дополнительного взаимодействия с провайдером.

 


Источник публикации