Это старая версия документа!
VRRP
Поддержка VRRP реализована в СКАТ при помощи Линукс-демона keepalived. Собственно VRRP-протокол реализует демон, в котором конфигурируются скрипты вызова CLI-команд для перевода СКАТ в режим master или backup.
В режиме master доступна вся функциональность СКАТ, в режиме backup СКАТ работает только как мост, никакие пакеты сам СКАТ не эмитирует. Предполагается, что в режиме backup на СКАТ не должно приходить вообще никакого трафика.
Поддержка VRRP включается в СКАТ конфигурационным параметром vrrp_enable
в fastdpi.conf:
# [hot] Флаг включения поддержки VRRP # 0 - выключено (default) # 1 - включено vrrp_enable=1
По умолчанию поддержка VRRP отключена.
Все СКАТы, входящие в одну VRRP-группу, должны иметь одинаковую конфигурацию. В частности, следующие параметры обязательно должны быть заданы и быть одинаковыми во всех СКАТах VRRP-группы, так как они задают виртуальные MAC и IP-адреса:
bras_arp_mac
- виртуальный MAC-адрес СКАТаbras_arp_ip
- виртуальный IP-адрес СКАТа
Если включена поддержка IPv6, то также должны быть заданы и быть одинаковыми параметры bras_ipv6_link_local
и bras_ipv6_address
- виртуальные link-local и глобальный IPv6-адреса соответственно.
Перевод СКАТа в режим master/backup производится CLI-командами:
# перевести СКАТ в режим master # эту команду должен вызывать keepalived-скрипт notify_master fdpi_cli vrrp set master # перевести СКАТ в режим backup # эту команду должен вызывать keepalived-скрипт notify_backup fdpi_cli vrrp set backup
СКАТ всегда стартует в режиме master. Предполагается, что сразу после старта демон keepalived увидит, что участник VRRP-группы ожил и вызовет соответствующий скрипт. То есть сразу после старта СКАТ должен быть явно переведен в режим master или backup.
При переводе СКАТа в режим master CLI-командой fdpi_cli vrrp set master
СКАТ посылает gARP (gratuitous ARP) на все свои in и out-интерфейсы, чтобы сообщить коммутаторам, что виртуальный MAC и IP адреса (bras_arp_mac
и bras_arp_ip
соответственно) теперь находятся на портах коммутаторов, к которым подключен данный экземпляр СКАТа. Получив такой gARP, коммутатор должен понять, что виртуальный MAC/IP-адрес СКАТа теперь находится на данном порту, и переключить весь трафик на этот СКАТ (в этот порт).
Число gARP-оповещений и интервал между ними регулируются следующими параметрами fastdpi.conf:
# Параметры отправки gratuitous ARP при переходе в master-режим # gratuitous ARP отправляются на все интерфейсы СКАТа # На каждый интерфейс отправляется vrrp_arp_count gratuitous ARP пакетов # с интервалом между пакетами vrrp_arp_timeout секунд # # [hot] Тайм-аут между отправками, секунд (default=1) #vrrp_arp_timeout=1 # [hot] Число повторных отправок, default=10 #vrrp_arp_count=10
Текущий режим работы СКАТ можно узнать CLI-командой
fdpi_cli vrrp stat
Открытые вопросы
1. keepalived привязывается к конкретному интерфейсу, через который идет обмен VRRP-пакетами. Это обычный линуксовый интерфейс (управляющий интерфейс), а не in/out девайс СКАТа. Собственно, именно на этот интерфейс keepalived назначает виртуальный IP-адрес при переходе в режим master. Нам же нужно, чтобы в идеале keepalived не привязывал наш виртуальный IP-адрес на этот интерфейс, а просто вызывал скрипты перевода СКАТа в режим master или backup.
2.