Mikrotik. VRRP

Материал из Wiki
Перейти к навигации Перейти к поиску

Description

Для обмена служебными сообщениями маршрутизаторы должны находиться в одном широковещательном домене 192.168.111.0/24. Кроме того, адрес виртуального маршрутизатора также принадлежит этой сети, но с более узкой маской – 192.168.25.254/32 (если использовать одинаковые маски на физическом и виртуальном интерфейсах, относящихся к одной сети, то в таблице маршрутизации будет формироваться два connected-маршрута с поддержкой ECMP и протокол VRRP может работать некорректно).

В процессе обмена служебными сообщениями маршрутизаторы должны распределить между собой роли, выбрав какое из устройств будет в данный момент являться active, а какое находиться в резерве. Протокол подразумевает следующие роли:

   Master — маршрутизатор, являющийся активным в данный момент. Master-маршрутизатор выбирается исходя из большего приоритета, либо, если приоритеты совпадают, в соответствии с бОльшим ip-адресом интерфейса;

   Backup — маршрутизатор, являющийся резервным в данный момент. Backup-маршрутизаторами становятся все маршрутизаторы, не ставшие master;

   Owner — частный случай master, в котором ip-адрес виртуального маршрутизатора совпадает с ip-адресом интерфейса маршрутизатора. В официальной документации Микротик такая конфигурация не рекомендуется.

Служебные сообщения инкапсулируются в ip-пакет со следующими специфическими параметрами:

   Номер протокола     112

   ip-адрес отправителя     ip-адрес интерфейса, ассоциированного с широковещательным доменом

   ip-адрес получателя     224.0.0.18

   TTL     255 (если получен служебный пакет со значением TTL, отличным от 255, пакет будет отброшен)

Сразу после этапа распределения ролей, master формирует gratuitous ARP request, предназначенный всем хостам в LAN. Данная операция необходима для заполнения arp-таблицы устройств локальной сети и forwarding-таблицы коммутатора. В качестве MAC-адреса отправителя используется сформированный виртуальный MAC-адрес 00:00:5E:00:01:**, где ** - номер идентификатора виртуального маршрутизатора VRID.

После распределения ролей master-маршрутизатор продолжает рассылку служебных сообщений для backup-маршрутизаторов с заданной периодичностью interval. В случае отсутствия служебных сообщений от master в течении down-interval (down-interval=3*interval), backup-маршрутизаторы повторяют процедуру распределения ролей, выбирая master среди существующих backup. В этот момент на пользовательских устройствах наблюдается кратковременный перерыв связи.

Приоритет маршрутизатора

Приоритет (priority) — параметр, влияющий на процесс распределения ролей: устройства с бОльшим значением приоритета становится master. Значение приоритета является целым числом, лежащим в интервале от 1 до 255, однако существует несколько зарезервированных значений:

   0 - значение приоритета, формируемое в advertisement-сообщении master-маршрутизатором в случае его выключения. Предназначено для ускоренного запуска процесса выбора master среди backup-маршрутизаторов, не дожидаясь down-interval

   1-254 - значения, доступные пользователю для конфигурации

   255 - значение приоритета owner-маршрутизатора (RouterOS позволяет вручную выставить данное значение, однако,

   для совместимости с другим оборудованием, использование этого значения не рекомендуется)

   100 - значение приоритета по умолчанию

Preemption-mode

Рассмотрим ситуацию, когда маршрутизатор R1 в схеме на рисунке 1 имеет приоритет 254, а маршрутизатор R2 — 100. При конфигурации VRRP маршрутизатор R1 становится master, а R2 — backup. При выходе из строя R1, функцию master возьмёт на себя R2 в соответствии с логикой протокола.

Опция preemption-mode указывает на то, станет ли R1 master-маршрутизатором после восстановления: если опция активна, то при восстановлении работоспособности R1 будет заново запущен процесс распределения ролей и R1 станет master, а R2 — backup.

Owner-маршрутизаторы игнорируют сконфигурированное значение preemption-mode, принимая его равным “yes”.

Параметры виртуального маршрутизатора

При создании интерфейса виртуального маршрутизатора (меню /interface vrrp) возможны следующие настройки:

   arp     (disabled | enabled | proxy-arp | reply-only; Default: enabled)     не требуется     режим работы протокола arp на виртуальном маршрутизаторе

   authentication     (ah | none | simple; Default: none)     требуется     режим аутентификации

   interface     (string)     не требуется     имя интерфейса, ассоциированного с широковещательным доменом

   interval     (time [10ms..4m15s]; Default: 1s)     требуется     интервал рассылки служебных advertisement сообщений, формируемых master

   mtu     (Default: 1500)     не требуется     размер mtu

   name     (string)     не требуется     имя виртуального интерфейса

   on-backup     (script text)     не требуется     текст скрипта, запускаемый в случае перехода роли маршрутизатора из master в backup

   on-master     (script text)     не требуется     текст скрипта, запускаемый в случае перехода роли маршрутизатора из backup в master

   password     (string)     требуется     значение пароля при использовании аутентификации

   preemption-mode     (yes | no; Default: yes)     требуется     опция приоритетного режиме

   priority     (integer: 1..254; Default: 100)     не требуется     приоритет маршрутизатора

   v3-protocol     (ipv4 | ipv6; Default: ipv4)     требуется     используемый протокол (опция применяется только для vrrp ver.3)

   version     (integer [2, 3]; Default: 3)     требуется     версия протокола vrrp (в версии 3 добавлена поддержка ipv6)

   vrid     (integer: 1..255; Default: 1)     требуется     идентификатор виртуального маршрутизатора

Configuring

R1

/interface ethernet

set [ find default-name=ether2 ] name=ether2-lan

set [ find default-name=ether3 ] name=ether3-wan

/interface vrrp

add interface=ether2-lan name=vrrp1

/ip address

add address=192.168.1.100/24 interface=ether3-wan network=192.168.1.0

add address=192.168.111.101/24 interface=ether2-lan network=192.168.111.0

add address=192.168.111.108 interface=vrrp1 network=192.168.111.0

/ip route

add distance=1 gateway=192.168.1.1

R2

/interface ethernet

set [ find default-name=ether2 ] name=ether2-lan

set [ find default-name=ether3 ] name=ether3-wan

/interface vrrp

add interface=ether2-lan name=vrrp1 priority=90

/ip address

add address=192.168.111.102/24 interface=ether2-lan network=192.168.111.0

add address=192.168.111.108 interface=vrrp1 network=192.168.111.0