VRRP EcoRouter Documentation / VRRP
- Базовая настройка
- Дополнительные функции
- Поддерживаемые версии протокола
- Пример конфигурации
- Известные особенности взаимодействия EcoRouter с оборудованием других производителей
VRRP — Virtual Router Redundancy Protocol, протокол резервирования L3 устройств в сетях IPv4/6.
Протокол VRRP решает задачу по резервированию L3-интерфейса, выполняющего роль next-hop'a для IPv4 маршрутов. Принцип работы протокола подразумевает наличие в сегменте некоторого множества маршрутизаторов, один из которых исполняет роль владельца общего виртуального IP-адреса. Остальные маршрутизаторы являются резервными и принимают на себя роль мастера только в случае, если первоначальный мастер вышел из строя. При этом все устройства прослушивают входящий трафик на предмет служебных VRRP сообщений и сравнивают значение собственного приоритета с соответствующими значениями в сообщениях соседей.
Маршрутизатор, имеющий наибольшее значение приоритета, принимает роль мастера.
Только маршрутизатор, выполняющий роль мастера, имеет право на обработку транзитного трафика, отправляемого на общий виртуальный MAC-адрес, а также только он имеет право отвечать на ARP запросы, адресованные владельцу виртуального IP-адреса.
Базовая настройка
Для настройки протокола VRRP необходимо выполнить следующие шаги.
Шаг 1. Перейдите из конфигурационного режима в контекстный режим конфигурирования протокола с помощью команды router vrrp <VRRP-ID> <NAME>, где VRRP-ID - это номер группы, имеющий значение в пределах от 1 до 255, а NAME - имя интерфейса, участвующего в группе.
Шаг 2. Укажите IP-адрес, который будет использован в качестве виртуального. Для этого введите команду virtual-ip <IPv4>. В случае если роль мастера необходимо назначить конкретному маршрутизатору, например, наиболее производительному в сегменте, удобно назначать виртуальный IP равным реальному транспортному адресу. При этом значение приоритета автоматически становится равным 255, что означает безусловное принятие роли мастера при корректной работе устройства.
Шаг 3. Если это необходимо, то сконфигурируйте явный приоритет маршрутизатора. Значение приоритета устанавливается с помощью команды priority <значение>. При этом значение имеет вид числа в диапазоне от 1 до 254 и по умолчанию равно 100.
Шаг 4. Активируйте работу протокола командой enable.
После активации протокола при каждом внесении изменений необходимо останавливать его работу командой disable.
Дополнительные функции
В реализации EcoRouterOS VRRP также поддерживает ряд функций, описанных ниже.
Функция preempt-mode
Если необходимо, чтобы вышедший из строя мастер по возвращению в работу игнорировал тот факт, что назначенное ему значение приоритета выше, чем у текущего мастера, необходимо отключить режим вытеснения командой preempt-mode false. В этом режиме вернувшийся к работе маршрутизатор с более высоким заданным приоритетом не будет анонсировать служебные сообщения, что в противном случае привело бы к вытеснению текущего мастера. Для возвращения режима вытеснения применяется команда preempt-mode true.
Функция switch-back-delay
Для задания времени ожидания, в течение которого вернувшийся к работе маршрутизатор с более высоким приоритетом не будет анонсировать служебные сообщения, применяется команда switch-back-delay <1-500000>, где единственный аргумент - продолжительность ожидания, выраженная в ms. Данная функция не является дополнением к вышеописанной, а применяется в качестве альтернативного поведения в случаях, когда необходимо избежать частую смену ролей в нестабильной топологии.
Функция circuit-failover
Для отслеживания состояния какого-либо сетевого соединения маршрутизатора, при выходе из строя которого потребуется смена роли устройства, используется команда circuit-failover <Имя наблюдаемого интерфейса> <декремент приоритета>, где последний аргумент - число, на которое уменьшается значение приоритета маршрутизатора. Пример использования данной функции - отслеживание состояния соединений с маршрутизаторами, которые находятся выше в иерархии. В случае VRRP-мастера потеря соединения с таким маршрутизатором приводит к тому, что устройство не может обслуживать трафик и вынуждено передать свою роль соседу.
Функция accept-mode
Согласно RFC 5798, по умолчанию мастер отбрасывает трафик, адресованный виртуальному IP-адресу непосредственно. Однако в ряде случаев необходимо, чтобы такой трафик обрабатывался. Для изменения поведения по умолчанию необходимо воспользоваться командой accept-mode {false | true}. Использование аргумента true приводит к переходу в режим обработки трафика, адресованного виртуальному IP. Аргумент false применяется для отключения этого режима.
Функция advertisement-interval
Для изменения интервала отправки VRRP-сообщений необходимо воспользоваться командой advertisement-interval <5-4096>, где в качестве единственного аргумента указывается продолжительность интервала, выраженная в сентисекундах (1 cs = 0.01 s).
Функция vrrp vmac
Согласно RFC 5798, по умолчанию виртуальный MAC-адрес указывается в Ethernet-заголовке служебных VRRP-сообщений в поле Source MAC Address. Для повышения эффективности диагностики в указанное поле можно устанавливать значение реального MAC-адреса сетевого устройства, сформировавшего служебный пакет. Для этого в конфигурационном режиме следует использовать команду vrrp vmac {enable | disable}.
Поддерживаемые версии протокола
На данный момент существует 3 версии протокола VRRP, из которых реально используются только v2 и v3, при этом, по ряду причин, наиболее актуальной является v2. EcoRouterOS поддерживает обе версии протокола, при этом по умолчанию используется только v3.
Если требуется использовать EcoRouter в одном VRRP-домене с маршрутизаторами, которые не поддерживают VRRP v3, в EcoRouterOS необходимо включить поддержку v2. Для этого сследует выполнить два действия:
- в конфигурационном режиме ввести команду: ecorouter(config)#vrrp compatible-v2;
- в контекстном режиме конфигурации работы протокола в контексте конкретного интерфейса применить команду: ecorouter(config-router)#v2-compatible.
При этом EcoRouter будет передавать VRRP-анонсы в формате v2 и v3 одновременно, то есть по два сообщения один раз в интервал. Аналогично анонсированию маршрутизатор будет обрабатывать и учитывать все служебные сообщения от соседей, в том числе и сообщения в формате v3. Во избежание ошибок дизайна необходимо применять только одну версию протокола на всех маршрутизаторах других производителей, находящихся в одном VRRP-домене с EcoRouter. Под VRRP-доменом здесь подразумевается множество маршрутизаторов, обслуживающих общий виртуальный IP-адрес в конкретном локальном сегменте и анонсирующих общее значение VRRP-ID.
Пример конфигурации
VRRP протокол часто применяется для резервирования шлюза по умолчанию в пользовательском сегменте сети. При этом хосты, выполняющие роль пользователей, имеют минимальную конфигурацию протокола IP, предполагающую наличие незначительного количества сетей, подключенных непосредственно, и маршрутизатора в качестве узла, обслуживающего передачу трафика в направлении всех остальных пунктов назначения. Если сегмент обслуживается только одним маршрутизатором его выход из строя в отношении конечных узлов означает, что трафик за пределы сегмента перестанет отправляться. Применение двух маршрутизаторов с одинаковым значением IP-адреса приводит к конфликту в отсутствии дополнительных средств контроля. В качестве такого средства применяется VRRP протокол.
В приведенной схеме топологии в подсети для VRRP-протокола задействованы 2 маршрутизатора: EcoRouter и маршрутизатор другого производителя (OtherVendorRouter). Маршрутизатор R2 фигурирует в качестве пограничного для AS узла и является шлюзом по умолчанию для обоих маршрутизаторов, реализующих VRRP протокол. Его настройка не предполагает использование VRRP протокола и по этой причине выходит за рамки данной статьи. Оба VRRP-маршрутизатора подключены к L2-сегменту, обслуживающему подсеть 192.168.0.0/24. В данном сегменте присутствует конечный хост, имеющий две маршрутных записи: маршрут в непосредственно подключенную сеть 192.168.0.0/24, а также маршрут по умолчанию, где в качестве шлюза выступает устройство с адресом 192.168.0.1. На маршрутизаторе другого производителя выполнена минимальная настройка, обеспечивающая работу VRRP-протокола v2, при которой значение приоритета маршрутизатора оставлено равным значению по умолчанию (100), значение обслуживаемого виртуального IP - 192.168.0.1, а ID сегмента - 1. Его собственный IP-адрес имеет значение 192.168.0.3. EcoRouter также выступает в качестве VRRP-маршрутизатора, однако имеет более сложную настройку, которая предполагает работу протокола v2, выставленный пользователем более высокий приоритет, временную задержку при возвращении, а также отслеживание состояния интерфейса e1.
Конфигурация EcoRouter:
Задание имени устройства.
ecorouter(config):hostname EcoRouter
Включение VRRP
ecorouter(config)#vrrp compatible-v2 enable
Включение протокола, задание группы и имени интерфейса.
ecorouter(config)#router vrrp 1 e0
Задание виртуального адреса.
virtual-ip 192.168.0.1
Задание приоритета для этого маршрутизатора.
ecorouter(config-router)#priority 150
Включение отслеживания интерфейса.
ecorouter(config-router)#circuit-failover e1 100
Задание времени ожидания, после которого восстановятся анонсы.
ecorouter(config-router)#switch-back-delay 5000
Включение поддержки совместимости с протоколом второй версии.
ecorouter(config-router)#v2-compatible
Настройка интерфейсов и портов.
ecorouter(config)#interface e0
ecorouter(config-if)#ip address 192.168.0.2/24
ecorouter(config)#interface e1
ecorouter(config-if)#ip address 192.168.100.2/24
ecorouter(config)#port ge0/0
ecorouter(config-port)#service-instance ge0/0-e0
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e0
ecorouter(confige)#port ge0/1
ecorouter(config-port)#service-instance ge0/1-e0
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e1
В результате описанных действий в качестве мастера будет выбран EcoRouter (по причине более высокого значения priority). В дальнейшем в случае, если его интерфейс «e1», используемый для подключения к вышестоящему маршрутизатору, не сможет продолжать передачу трафика, приоритет EcoRouter будет понижен до значения 50.
Приоритет второго маршрутизатора в этом случае станет наибольшим в сегменте, и он сможет продолжить обработку трафика до возвращения EcoRouter.
Когда связь с вышестоящим маршрутизатором будет восстановлена, EcoRouter запустит таймер ожидания, равный 5 секундам, после чего начнет вещание VRRP-сообщений, вынудив соседа сменить роль и перестать отвечать на ARP-запросы, отправляемые владельцу IP-адреса 192.168.0.1.
Известные особенности взаимодействия EcoRouter с оборудованием других производителей
Реализация протокола VRRP в EcoRouterOS стремится к максимальному соответствию RFC-документации, однако существует ряд вопросов, связанных как с реализацией EcoRouterOS, так и реализацией других производителей, проявление которых может привести к неожиданному для пользователя поведению:
- согласно RFC 5798, маршрутизатор, выполняющий роль резервного, при получении служебных сообщений от соседей принимает во внимание только значение поля приоритета. Значение транспортного адреса принимается во внимание только маршрутизаторами, выполняющими роль мастера. Однако, данный принцип может быть нарушен другими производителями, что приводит к тому, что два и более маршрутизаторов, обслуживающих один сегмент, могут принять роль мастера со всеми вытекающими отсюда конфликтами;
- согласно RFC 5798, маршрутизатор, выполняющий роль резервного, не должен обрабатывать трафик, отправляемый на общий виртуальный MAC-адрес. В EcoRouterOS данный принцип соблюден, что необходимо учитывать в дизайне сети так же как и поведение маршрутизаторов других производителей;
- в реализации EcoRouterOS отсутствует возможность применения авторизации в работе VRRP;
- в реализации EcoRouterOS отсутствует возможность анонсирования множества IP-адресов в качестве виртуальных.