22. Служба vrrp

Служба vrrp предназначена для применения протокола VRRP в ПАК “Фортикс”. VRRP (Virtual Router Redundancy Protocol) — сетевой протокол, предназначенный для обеспечения отказоустойчивости маршрутизаторов, которая обеспечивается путём объединения нескольких маршрутизаторов в одну группу, обслуживающую общие виртуальные IP-адреса. Объединение нескольких ПАК “Фортикс” называется кластером, внутри кластера каждый ПАК “Фортикс” называется нодой. На каждой ноде настраиваются экземпляры службы vrrp, позволяющие отнести ноду к некоторому кластеру.

22.1. Базовая настройка

Настройка службы vrrp осуществляется на следующем уровне конфигурации:

[edit service vrrp]

Для заупска службы VRRP применяется команда:

[edit service vrrp]
# set enable

Для функционирования службы vrrp необходимо создание хотя бы одного экземпляра (instance). Для создания экземпляра применяется команда:

[edit service vrrp]
# set instance <instance-name>

где <instance-name> – слово.

Настройка экземпляров осуществляется на следующем уровне конфигурации:

[edit service vrrp instance <instance-name>]

где <instance-name> – слово.

На данном уровне конфигурации доступны следующие обязательные настройки:

  • router-id <router-id> – задать идентификатор экземпляра, где <router-id> – число от 1 до 255 (на каждой ноде одного кластера настраиваются экземпляры с одинаковыми идентификаторами);

  • state master|backup – задать первоначальную роль (состояние) ноды (одна нода кластера настраивается как master, остальные – backup);

  • interface <interface-name> – указать имя первичного интерфейса, используемого для VRRP-оповещений, где <interface-name> – имя существующего интерфейса.

На данном уровне конфигурации доступны следующие дополнительные настройки:

  • ipv4 – перейти на уровень конфигурации IPv4 для настройки виртуальных IP-адресов;

  • ipv6 – перейти на уровень конфигурации IPv6 для настройки виртуальных IP-адресов;

  • adv-interval <adv-interval-value> – указать интервал времени, с которым осуществляются VRRP-оповещения, где <adv-interval-value> – число секунд от 0.00 до 3600.00;

  • auth <password> – задать пароль для аутентификации, где <password> – строка;

  • garp – перейти на уровень конфигурации и настроить Gratuitous ARP-оповещений для перехода в состояние master;

  • no-preempt – отключить перехват состояния у ноды с более низким приоритетом;

  • no-track-primary – отключить отслеживание состояния первичного интерфейса;

  • preempt-delay <preempt-delay-value> – задать задержку для перехвата состояния, где <preempt-delay-value> – число секунд от 0 до 3600;

  • priority <priority-value> – задать приоритет ноды в кластере, где <priority-value> – число от 0 до 255 (чем больше число, тем выше приоритет);

  • src-ip <address> – задать IP-адрес источника для мультикаст-пакетов, где <address> – IPv4-адрес в формате A.B.C.D или IPv6-адрес в формате A:B:..:H;

  • track – перейти на уровень конфигурации параметров отслеживания состояния интерфейса;

  • unicast – перейти на уровень конфигурации параметров unicast-оповещений, используемых вместо multicast-оповещений;

  • vmac – включить режим подмены MAC-адреса.

Пример обязательной настройки экземпляра для основной ноды:

[edit service vrrp]
# set instance main router-id 1 state master interface en0

Пример обязательной настройки экземпляра для резервной ноды:

[edit service vrrp]
# set instance main router-id 1 state backup interface en0

При наличии хотя бы двух нод с настроенными на них экземплярами, кластер может функционировать в режиме основной/резервный.

Если нода кластера с ролью backup перестаёт получать сообщения от ноды с ролью master, она принимает на себя роль master и начинает поддерживать настроенные виртуальные IP-адреса. Если первичный интерфейс или интерфейс, настроенный на уровне конфигурации track, переходит в выключенное состояние, нода не может исполнять роль master.

22.2. Настройка виртуальных IP-адресов

У экземпляра может быть несколько виртуальных IPv4- или IPv6-адресов.

Для настройки виртуальных IP-адресов применяется команда:

[edit service vrrp instance <instance-name> ipv4|ipv6]
# set address <address> interface <interface-name>

где

  • <instance-name> – имя существующего экземпляра;

  • ipv4|ipv6 – уровень конфигурации IPv4/IPv6;

  • <address> – IPv4-адрес в формате A.B.C.D/M или IPv6-адрес в формате A:B:..:H/M в зависимости от уровня конфигурации;

  • <interface-name> – имя существующего интерфейса.

Если в команде указан несуществующий интерфейс, виртуальный IP-адрес устанавливается на первичный интерфейс.

Для включения режима подмены MAC-адреса применяется команда:

[edit service vrrp instance <instance-name> ipv4|ipv6]
# set address <address> vmac

где

  • <instance-name> – имя существующего экземпляра;

  • ipv4|ipv6 – уровень конфигурации IPv4/IPv6;

  • <address> – IPv4-адрес в формате A.B.C.D/M или IPv6-адрес в формате A:B:..:H/M в зависимости от уровня конфигурации.

Для отключения смены роли экземпляра при отказе интерфейса с виртуальным IP-адресом применяется команда:

[edit service vrrp instance <instance-name> ipv4|ipv6]
# set address <address> no-track

где

  • <instance-name> – имя существующего экземпляра;

  • ipv4|ipv6 – уровень конфигурации IPv4/IPv6;

  • <address> – IPv4-адрес в формате A.B.C.D/M или IPv6-адрес в формате A:B:..:H/M в зависимости от уровня конфигурации.

Для указания broadcast-адреса для виртуального IPv4-адреса применяется команда:

[edit service vrrp instance <instance-name> ipv4]
# set address <address> brd <brd-address>

где

  • <instance-name> – имя существующего экземпляра;

  • <address> – IPv4-адрес в формате A.B.C.D/M;

  • <brd-address> – broadcast-адрес в формате A.B.C.D.

Для отключения режима обнаружения повторяющихся адресов для виртуального IPv6-адреса применяется команда:

[edit service vrrp instance <instance-name> ipv6]
# set address <address> no-dad

где

  • <instance-name> – имя существующего экземпляра;

  • <address> – IPv6-адрес в формате A:B:..:H/M.

22.3. Группы синхронизации

Для объединения нескольких экземпляров в общую группу на одной ноде применяется команда:

[edit service vrrp]
# set group <group-name> instance <instance-name-1> instance <instance-name-2>

где

  • <group-name> – имя слово;

  • <instance-name-1> – имя существующего экземпляра;

  • <instance-name-2> – имя существующего экземпляра.

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

22.4. Настройка режима отслеживания

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

Настройка параметров отслеживания состояния интерфейсов для экземпляра осуществляется на следующем уровне конфигурации:

[edit service vrrp instance <instance-name> track]

где <instance-name> – имя существующего экземпляра.

Для настройки отслеживания состояния интерфейса применяется команда:

[edit service vrrp instance <instance-name> track]
# set interface <interface-name> [weight <weight-value>] [reverse]

где

  • <instance-name> – имя существующего экземпляра;

  • <interface-name> – имя существующего интерфейса;

  • <weight-value> – значение приоритета от -253 до 253;

  • reverse – увеличение приоритета для неработающего интерфейса.

Настройка параметров отслеживания состояния интерфейсов для группы осуществляется на следующем уровне конфигурации:

[edit service vrrp group <group-name> track]

где <group-name> – имя существующей группы.

Настройки данного уровня конфигурации аналогичны настройкам уровня конфигурации отслеживания для экземпляра.

22.5. Диагностика

Для просмотра статистики службы vrrp применяется команда:

> show service vrrp stat

Для просмотра журнала службы vrrp применяется команда:

> show journal service vrrp