VRRP#

Описание#

Протокол VRRP позволяет организовать избыточность на уровне маршрутизаторов в формате активный-резервный. Протокол VRRP объединяет несколько маршрутизаторов в отказоустойчивый кластер. Все маршрутизаторы, которые являются участниками отказоустойчивого кластера имеют общий виртуальный адрес IP (VIP) адрес и общий номер группы или VRID (Virtual Router Identifier). Один маршрутизатор может состоять в нескольких группах, каждая из которых должна иметь свою уникальную пару VIP/VRID. Все маршрутизаторы делятся на два типа: VRRP Master и VRRP Backup.

  • VRRP Master — это маршрутизатор, который занимается пересылкой пакетов для данного виртуальной группы.

  • VRRP Backup — это маршрутизатор, который ожидает пакет от Master. Если пакеты от Master перестают приходить, Backup пытается перейти в состояние Master.

При запуске маршрутизаторы обмениваются сообщениями, выбирая таким образом между собой активного. Активным становится тот маршрутизатор который имеет наивысший приоритет. Виртуальный IP адрес назначается активному маршрутизатору. Все остальные маршрутизаторы с приоритетом ниже становятся резервными. В процессе работы активный маршрутизатор рассылает остальным маршрутизаторам keepalive пакеты на широковещательный адрес 224.0.0.18, чтобы сообщить Backup маршрутизаторам, что он работает. Master отправляет сообщения согласно таймеру advertise-interval, равный по умолчанию 1 секунде. В качестве MAC адреса отправителя используется адрес группы 00:00:5E:00:01:xx, где xx — VRID в шестнадцатеричном формате. Если Backup маршрутизаторы не получают сообщения в течении трех advertise-interval (количество интервалов определяется параметром failure-count), то новым Master становится маршрутизатор с наибольшим приоритетом. Если в группе появится Backup маршрутизатор с более высоким приоритетом, то он перехватит роль Master у маршрутизатора с более низким приоритетом. Однако, когда у Backup маршрутизатора, который имеет более высокий приоритет активирован параметр no-preempt, такой Backup маршрутизатор не станет перехватывать роль у Master маршрутизатора. VRRP приоритет задается в значениях от 1 до 254. Значение 0 зарезервировано для случаев, когда Master необходимо снять с себя ответственность за маршрутизацию. Значение 255 устанавливается маршрутизатору владельцу VIP. Если VRRP-маршрутизатор является владельцем VIP адреса, то он всегда перехватывает роль Master. Приоритет по умолчанию равен 100, но может задаваться административно. VRRP маршрутизатор может иметь три состояния:

  • Initialize

  • Backup

  • Master

VRRP маршрутизатор изменяет свои состояния последовательное.

В состоянии Initialize маршрутизатор ожидает начала работы. Если этот маршрутизатор является владельцем VIP адреса (приоритет равен 255), то маршрутизатор отправляет сообщения о том что он становится Master. Он также отправляет gratuitous ARP-запрос, в котором MAC-адрес источника равен адресу виртуального маршрутизатора. Затем он переходит в состояние Master. Если маршрутизатор не является владельцем VIP, то он переходит в состояние Backup.

В состоянии Backup маршрутизатор ожидает пакеты от Master маршрутизатора. Маршрутизатор в этом состоянии не отвечает на ARP-запросы от VIP-адреса. Также он не принимает пакеты, у которых в качестве адреса назначения стоит MAC-адрес виртуального маршрутизатора.

Если Backup не получает сообщения от Master в течение количества advertise-interval, заданных в параметре failure-count (по умолчанию установлено значение 3 интервала), то он отправляет VRRP сообщение о том, что собирается стать Master. Затем этот маршрутизатор отправляет широковещательное VRRP сообщение, в котором MAC-адрес источника равен адресу этого виртуального маршрутизатора. В данном сообщении маршрутизатор указывает свой приоритет.

В состоянии Master маршрутизатор обрабатывает пакеты, адресованные виртуальному маршрутизатору. Он так же отвечает на ARP-запросы к VIP. Master маршрутизатор рассылает VRRP сообщения каждые advertise-interval (по умолчанию значение равно 1 секунде), чтобы подтвердить что он работает.

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

Протокол VRRP выполняет свои функции в одном из двух режимов:

  • C наследование роли Master - если маршрутизатор с наивысшим приоритетом

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

  • Без наследования роли Master - маршрутизатор, которому была назначена

  • роль активного, сохраняет ее и назначенный виртуальный IP адрес вне зависимости от поведения маршрутизатора с приоритетом выше.

Настройка#

Алгоритм настройки VRRP группы:#

  1. Указать IP адреса и задать описание интерфейсов физических интерфейсов маршрутизатора

  2. Задать имя и описание для VRRP группы

  3. Указать физический интерфейс маршрутизатора, который будет являться участником VRRP группы

  4. Определить приоритет маршрутизатора для VRRP группы

  5. Задать виртуальный адрес VIP для VRRP группы

  6. Указать общий номер VRRP группы VRID

  7. Выполнить аналогичные настройки на втором маршрутизаторе

Пример настройки#

В качестве примера рассмотрим ситуацию, когда есть два маршрутизатора (Router-A и Router-B) у которых внешние WAN интерфейсы объединены в одну VRRP группу, а внутренние LAN интерфейсы в другую VRRP группу. Маршрутизатор Router-A будет иметь наивысший приоритет и являть Master маршрутизатором. В случае выхода из строя маршрутизатора Router-A роль Master перейдет к маршрутизатору Router-B. Если маршрутизатор Router-A восстанавливает работоспособное состояние, роль Master снова переходит к нему, а маршрутизатору Router-B возвращается роль Backup.

Настройка маршрутизаторов будет выполнена в соответствии со схемой, представленной ниже:

Пример базовой конфигурацииПример базовой конфигурации

Исходные данные для настройки VRRP группы:#

  • 192.168.100.1/29 - адрес внутреннего LAN интерфейса eth0 на первом маршрутизатора Router-A

  • 10.250.44.1/29 - адрес внешнего WAN интерфейса eth1 на первом маршрутизатора Router-A

  • 192.168.100.2/29 - адрес внутреннего LAN интерфейса eth0 на первом маршрутизатора Router-B

  • 10.250.44.2/29 - адрес внешнего WAN интерфейса eth1 на первом маршрутизатора Router-B

  • LAN-HA - имя VRRP группы, которая объединяет внутренние интерфейсы маршрутизаторов Router-A и Router-B

  • WAN-HA - имя VRRP группы, которая объединяет внешние интерфейсы маршрутизаторов Router-A и Router-B

  • 192.168.100.6/29 - виртуальный адрес (VIP) для внутреннего LAN интерфейса VRRP группы LAN-HA

  • 10.250.44.6/29 - виртуальный адрес (VIP) для внешнего WAN интерфейса VRRP группы WAN-HA

  • 210 - номер VRID для VRRP группы LAN-HA

  • 220 - номер VRID для VRRP группы WAN-HA

  • 10 - приоритет для VRRP групп на маршрутизаторе Router-A

  • 5 - приоритет для VRRP групп на маршрутизаторе Router-B

Команды для настройки#

Список команд для настройки VRRP групп на маршрутизаторе Router-A:

set interfaces ethernet eth1 address '192.168.100.1/29'
set interfaces ethernet eth1 description 'LAN'
set interfaces ethernet eth2 address '10.250.44.1/29'
set interfaces ethernet eth2 description 'WAN'
set high-availability vrrp group LAN-HA description 'LAN Interface Hight Availability'
set high-availability vrrp group LAN-HA interface 'eth1'
set high-availability vrrp group LAN-HA priority '10'
set high-availability vrrp group LAN-HA virtual-address 192.168.100.6/29
set high-availability vrrp group LAN-HA vrid '210'
set high-availability vrrp group WAN-HA description 'LAN Interface Hight Availability'
set high-availability vrrp group WAN-HA interface 'eth2'
set high-availability vrrp group WAN-HA priority '10'
set high-availability vrrp group WAN-HA virtual-address 10.250.44.6/29
set high-availability vrrp group WAN-HA vrid '220'

Список команд для настройки VRRP групп на маршрутизаторе Router-A:

set interfaces ethernet eth1 address '192.168.100.2/29'
set interfaces ethernet eth1 description 'LAN'
set interfaces ethernet eth2 address '10.250.44.2/29'
set interfaces ethernet eth2 description 'WAN'
set high-availability vrrp group LAN-HA description 'LAN Interface Hight Availability'
set high-availability vrrp group LAN-HA interface 'eth1'
set high-availability vrrp group LAN-HA priority '5'
set high-availability vrrp group LAN-HA virtual-address 192.168.100.6/29
set high-availability vrrp group LAN-HA vrid '210'
set high-availability vrrp group WAN-HA description 'LAN Interface Hight Availability'
set high-availability vrrp group WAN-HA interface 'eth2'
set high-availability vrrp group WAN-HA priority '5'
set high-availability vrrp group WAN-HA virtual-address 10.250.44.6/29
set high-availability vrrp group WAN-HA vrid '220'

Список команд#

Основные настройки#

set high-availability vrrp group <name> vrid <id>#

Задает имя <name> и идентификатор <id> для VRRP группы

set high-availability vrrp group <name> interface <interface>#

Добавляет сетевой интерфейс <interface> для VRRP группы <name>

set high-availability vrrp group <>name> virtual-address <address>#

Добавляет виртуальный адрес <address> для VRRP группы <name>

Примечание

Значение параметра virtual-address может быть представлено как IPv4, так и IPv6 адресом, однако вы не можете использовать их комбинацию в рамках отдельной группы VRRP. Для этого необходимо создать разные группы VRRP с разными VRID, одна из которых будет использовать IPv4 адрес в качестве виртуального, а другая - IPv6 адрес.

set high-availability vrrp group <name> disable#

Отключает определенную группу VRRP <name>.

Примечание

Дезактивированная группа VRRP будет полностью исключена из процесса VRRP, равно как и маршрутизатор, входящий в группу с данным VRID. Информация о дезактивированной группе VRRP также не будет присутствовать в выводе на экран результатов выполнения соответствующих команд в эксплуатационном режиме, а сама группа больше не будет выполнять роль резервной.

Дополнительные настройки#

set high-availability vrrp group <name> priority <number>#

Задает приоритет <number> для VRRP группы <name>

Примечание

Значение приоритета должно быть представлено целым числом в диапазон от 1 до 255. Наивысшее значение приоритета определяет, какой из маршрутизаторов будет определен как активный при очередной процедуре выбора.

set high-availability vrrp group <name> no-preempt#

Переводит протокол VRRP в режим без наследования роли. По умолчанию протокол VRRP выполняет свои функции в режиме с наследованием роли.

set high-availability vrrp group <name> preempt-delay <number>#

Задает временной интервал для задержки перед изменением роли наследования маршрутизатора с наивысшим приоритетом.

set high-availability vrrp group <name> peer-address <address>#

Задает адрес <address> для одноадресной (unicast) рассылки в VRRP группе <name>

set high-availability vrrp group <name> hello-source-address <address>#

Задает адрес источника <address> для рассылки hello пакетов в VRRP группе <name>

set high-availability vrrp group <name> rfc3768-compatibility#

Создает новый VRRP интерфейс, которому автоматически назначаются виртуальный IP адрес и виртуальный MAC адрес.

Примечание

RFC 3768 определяет порядок задания и использования виртуальных MAC адресов для каждого маршрутизатора в процессе VRRP. Виртуальный MAC адрес используется в качестве адреса отправителя для всех периодических сообщений, источником которых является активный маршрутизатор.

Мониторинг#

show vrrp#

Выводит на экран информацию о созданной группе VRRP.

Пример работы команды show vrrp:

admin@fakel:~$ run show vrrp
Name        Interface      VRID  State    Last Transition
----------  -----------  ------  -------  -----------------
Foo         eth1             10  MASTER   2s