Архитектура отказоустойчивой сети: как VRRP/HSRP и OSPF работают вместе
Отказоустойчивая сеть требует резервирования на двух уровнях. Первый уровень - шлюз по умолчанию для клиентов. Протоколы VRRP или HSRP создают виртуальный IP-адрес, который обслуживается одним из физических маршрутизаторов. При его сбое другой маршрутизатор мгновенно принимает роль активного. Второй уровень - маршрутизация внутри сети. OSPF динамически вычисляет оптимальные пути между всеми узлами. При отказе маршрутизатора OSPF перестроит таблицы маршрутизации для всего трафика.
Взаимодействие выглядит так. Клиенты используют виртуальный IP-адрес как шлюз. Активный маршрутизатор отвечает на их запросы. Внутри сети маршрутизаторы обмениваются информацией о состоянии каналов через OSPF. При сбое активного маршрутизатора резервный становится активным для клиентов в течение миллисекунд. Затем он отправляет в сеть OSPF сообщение об изменении состояния своего интерфейса. Все маршрутизаторы в сети получают это сообщение и пересчитывают маршруты, направляя трафик через новый активный маршрутизатор.
Схема и описание тестового стенда для примеров настройки
Все примеры конфигураций проверены на следующей топологии. Она типична для офисного сегмента или периметра небольшого ЦОД.
Сеть клиентов: 10.0.0.0/24.
Виртуальный IP-адрес шлюза (VIP): 10.0.0.1.
Маршрутизатор R1 (основной): физический интерфейс GigabitEthernet0/0 с IP 10.0.0.2.
Маршрутизатор R2 (резервный): физический интерфейс GigabitEthernet0/0 с IP 10.0.0.3.
Сеть между маршрутизаторами для OSPF: 192.168.1.0/30 (интерфейсы GigabitEthernet0/1).
OSPF Area 0 включает все интерфейсы маршрутизаторов.
Эта схема позволяет проверить резервирование шлюза для клиентов и перестроение маршрутов между маршрутизаторами. Настройки для Cisco IOS и Linux с Keepalived/FRR приведены для идентичной логической архитектуры.
Готовые конфигурации для Cisco IOS: HSRP и OSPF
Конфигурации ниже можно скопировать, подставить свои IP-адреса и применять на оборудовании Cisco с IOS. Они обеспечивают резервирование шлюза через HSRP и динамическую маршрутизацию через OSPF.
Конфигурация маршрутизатора R1 (Active для HSRP)
! Базовая настройка интерфейса для клиентов
interface GigabitEthernet0/0
description Client Network
ip address 10.0.0.2 255.255.255.0
no shutdown
! Настройка HSRP группы 1
standby 1 ip 10.0.0.1
standby 1 priority 110
standby 1 preempt
standby 1 timers 1 3
standby 1 name HSRP-CLIENT-VLAN
! Интерфейс для связи с R2 (OSPF)
interface GigabitEthernet0/1
description Link to R2
ip address 192.168.1.1 255.255.255.252
no shutdown
! Настройка OSPF процесс 1
router ospf 1
router-id 10.0.0.2
network 10.0.0.2 0.0.0.0 area 0
network 192.168.1.1 0.0.0.0 area 0
Комментарии. Команда standby 1 priority 110 задает высокий приоритет для R1, чтобы он стал активным. standby 1 preempt позволяет маршрутизатору вернуть роль активного при восстановлении. Таймеры standby 1 timers 1 3 задают отправку hello-пакетов каждую секунду и ожидание ответа 3 секунды. В OSPF router-id уникально идентифицирует маршрутизатор в сети.
Конфигурация маршрутизатора R2 (Standby для HSRP)
! Базовая настройка интерфейса для клиентов
interface GigabitEthernet0/0
description Client Network
ip address 10.0.0.3 255.255.255.0
no shutdown
! Настройка HSRP группы 1
standby 1 ip 10.0.0.1
standby 1 priority 90
standby 1 preempt
standby 1 timers 1 3
standby 1 name HSRP-CLIENT-VLAN
! Интерфейс для связи с R1 (OSPF)
interface GigabitEthernet0/1
description Link to R1
ip address 192.168.1.2 255.255.255.252
no shutdown
! Настройка OSPF процесс 1
router ospf 1
router-id 10.0.0.3
network 10.0.0.3 0.0.0.0 area 0
network 192.168.1.2 0.0.0.0 area 0
Конфигурация OSPF идентична на обоих маршрутизаторах. Это гарантирует установление соседства и корректный обмен маршрутами. Приоритет HSRP на R2 ниже (90), поэтому он остается резервным.
После настройки проверьте состояние.
Команда show standby brief покажет состояние группы HSRP. Активный маршрутизатор будет в состоянии Active, резервный - Standby.
Команда show ip ospf neighbor покажет соседа OSPF с состоянием FULL.
Для более детальной диагностики динамической маршрутизации можно использовать руководство по диагностике и мониторингу OSPF и BGP. В нем описаны конкретные команды для анализа логов и состояния протоколов.
Готовые конфигурации для Linux (Keepalived + FRR): VRRP и OSPF
Это решение для бюджетных проектов или виртуальной инфраструктуры. Keepalived реализует VRRP, FRRouting обеспечивает динамическую маршрутизацию OSPF.
Файл конфигурации Keepalived для ноды MASTER
global_defs {
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass secret_password
}
virtual_ipaddress {
10.0.0.1/24
}
track_interface {
eth0
}
}
Директива state MASTER указывает начальное состояние. Keepalived сам определяет активную ноду по приоритету. virtual_router_id должен совпадать на всех узлах группы. advert_int 1 задает интервал отправки VRRP сообщений в секунду. Блок authentication добавляет простую парольную защиту для предотвращения ложных объявлений.
Конфигурация FRRouting для OSPF (файл /etc/frr/frr.conf):
frr version 8.5.2
frr defaults traditional
hostname linux-router
log syslog informational
service integrated-vtysh-config
!
router ospf
ospf router-id 10.0.0.2
network 10.0.0.0/24 area 0
network 192.168.1.0/30 area 0
!
line vty
На резервной ноде (R2) конфигурация Keepalived отличается только приоритетом (priority 100) и начальным состоянием (state BACKUP). Конфигурация FRR идентична, кроме router-id (10.0.0.3).
После настройки запустите службы:
systemctl enable keepalived frr
systemctl start keepalived frr
Для проверки используйте команды:
ip addr show eth0 - виртуальный IP должен быть назначен на активной ноде.
vtysh -c "show ip ospf neighbor" - проверка соседства OSPF.
Тонкая настройка: таймеры, приоритеты и диагностика сбоев
Базовые настройки обеспечивают работу. Для критичных сервисов нужна оптимизация параметров для сокращения времени восстановления и повышения стабильности.
Как настроить время переключения (failover) менее 1 секунды
Сократите таймеры протоколов. Это увеличивает нагрузку на оборудование и требует стабильной линковой среды.
Для VRRP в Keepalived:
advert_int 0.2 - отправка сообщений каждые 200 миллисекунд.
Для HSRP в Cisco:
standby 1 timers msec 200 msec 600 - hello каждые 200ms, hold timer 600ms.
Для OSPF используйте быстрые hello.
В Cisco IOS:
interface GigabitEthernet0/1
ip ospf hello-interval 100
ip ospf dead-interval 400
В FRRouting:
interface eth1
ip ospf hello-interval 100
ip ospf dead-interval 400
Такие настройки сокращают время обнаружения сбоя до сотен миллисекунд. Используйте их только в пределах одного стойка или ЦОД с низкой латентностью. В сетях с нестабильными линками они могут вызвать флаппинг.
Команды для проверки работоспособности схемы
Следующие команды позволяют быстро проверить состояние системы после настройки или при возникновении проблемы.
| Задача | Команда на Cisco | Команда на Linux |
|---|---|---|
| Проверить состояние VRRP/HSRP группы | show standby brief |
ip addr show (для виртуального IP)journalctl -u keepalived |
| Убедиться в установлении соседства OSPF | show ip ospf neighbor |
vtysh -c "show ip ospf neighbor" |
| Посмотреть итоговую таблицу маршрутизации | show ip route |
vtysh -c "show ip route" или ip route show |
| Проверить детали OSPF интерфейса | show ip ospf interface |
vtysh -c "show ip ospf interface" |
В штатном режиме вывод show standby brief покажет активный маршрутизатор с приоритетом 110 и резервный с приоритетом 90. Вывод show ip ospf neighbor должен показывать соседа в состоянии FULL.
Для понимания принципов работы OSPF и оптимизации его параметров в корпоративных сетях полезно ознакомиться с детальным руководством по настройке OSPF. В нем описаны настройки областей, DR/BDR и агрегации маршрутов.
Cisco HSRP vs Linux VRRP: сравнение и рекомендации по выбору
Выбор технологии зависит от бюджета, среды и требуемой функциональности.
| Критерий | Cisco HSRP | Linux VRRP (Keepalived) |
|---|---|---|
| Стоимость | Проприетарная технология, требует оборудования Cisco и, часто, лицензий. | Бесплатное ПО, работает на любом сервере или виртуальной машине. |
| Функциональность | Расширенные возможности отслеживания интерфейсов и объектов (tracking), интеграция с другими функциями Cisco. | Базовый VRRP по стандарту RFC 5798. Keepalived добавляет гибкие скрипты проверки здоровья (check scripts) для сложных сценариев. |
| Экосистема и поддержка | Централизованное управление через Cisco IOS, поддержка от вендора. | Открытый код, управление через конфигурационные файлы и системные службы. Поддержка сообщества. |
| Гибкость | Ограничена возможностями IOS и модельным рядом оборудования. | Высокая. Скрипты проверки здоровья могут учитывать состояние любого сервиса (HTTP, база данных). |
| Сценарии использования | Гомогенные среды Cisco, корпоративные сети с централизованным управлением, где требуется максимальная интеграция. | Гибридные среды, виртуальная инфраструктура (KVM, ESXi), edge-решения, бюджетные проекты, whitebox оборудование. |
HSRP - решение для сред, построенных полностью на Cisco. VRRP на Keepalived подходит для смешанных инфраструктур или проектов с ограниченным бюджетом. Если вы планируете переход со статической маршрутизации на динамическую, полезно оценить общие риски и стратегии миграции в практическом сравнении протоколов маршрутизации.
Для управления и интеграции подобных сетевых сервисов в Linux-окружении базовые навыки администрирования можно получить из практического руководства по Linux.