April 24, 2022

L3 Redundancy. Как организовать систему горячего резервирования маршрутизаторов и одновременно защитить её?

Привет! В этой статье ты узнаешь о протоколах класса FHRP, зачем они нужны и как с помощью них ты можешь повысить уровень отказоустойчивости своей сети.


Что такое система горячего резервирования?

Горячая система резервирования (a.k.a Hot Spare) - принцип данной техники заключается в том, чтобы обеспечить отказоустойчивость таким образом, чтобы резервное устройство подменяло вышедший из строя компонент в автоматическом режиме и при этом, вызвать минимальный уровень прерывания работы сети, насколько это возможно. Устройства под управлением горячей системы резервирования постоянно находятся в нагруженном режиме и всегда готовы к инциденту, который может возникнуть в сети.

Что такое FHRP?

FHRP (First Hop Redundancy Protocol) - это семейство протоколов, специально предназначенных для создания избыточности/резервирования сетевого шлюза по умолчанию. Главная концепция FHRP заключается в том, чтобы объединить несколько маршрутизаторов в один виртуальный, логический маршрутизатор с общим IP-адресом в сети. Данный IP-адрес будет назначаться оконечным устройствам, как адрес шлюза по умолчанию (Default Gateway). Самыми популярными протоколами класса FHRP являются: HSRP, VRRP, GLBP.

Но в рамках этой статьи я рассмотрю протокол VRRP, ибо он независим от каких-либо экосистем вендоров и при таком раскладе может в масштабируемость сети, нежели протоколы HSRP и GLBP (они разработаны инженерами Cisco Systems). Хотя, у VRRP со "свободной" реализацией есть кое-какие нюансы, ибо он основан на феноменах протокола HSRP. Так что полностью свободным VRRP не назовёшь, но тем не менее.

Однако, подход к отказоустойчивости с помощью организации резервирования маршрутизаторов может повлечь за собой следующие последствия:

  • Усложнение администрирования сети;
  • Проблемы с NAT и PBR;
  • Балансировки нагрузки как таковой нет, ибо происходит просто объединение маршрутизаторов в один общий домен, в котором маршрутизаторы могут быстро подменять друг друга в случае возникновения сетевой аварии на стороне главенствующего маршрутизатора

Протокол VRRP

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

VRRP Master Router - это активный маршрутизатор, отвечающий за передачу легитимного трафика в сети;

VRRP Backup Router - маршрутизатор, находящийся в режиме ожидания, как только текущий Master Router "упадет", он перехватит его роль и будет выполнять его функции;

VRRP Virtual MAC Address - виртуальный MAC-адрес в группе VRRP (00:00:5E:01:XX) Вместо XX - номер группы VRRP;

VRRP Virtual IP Address - это IP-адрес под которым расположены маршрутизаторы в группе VRRP, они объединяются в группу VRRP под одним общим IP-адресом.

VRRP Multicast IP Address - это специальный IP-адрес мультикастовой рассылки, который использует протокол VRRP для рассылки специальных служебных VRRP-объявлений в рамках одного домена VRRP. Его адрес - 224.0.0.18

Как проходят выборы в домене VRRP?

Выбор главного (Master) маршрутизатора происходят на основе некоторого значения приоритета, который может быть в диапазоне от 1 до 255. Чем больше значение приоритета у маршрутизатора, тем выше вероятность, что именно он станет главным маршрутизатором. Приоритет в группе VRRP может быть настроен вручную, что влияет на процесс выбора. Однако, если инженер не настроил вручную значения приоритетов в VRRP и используется значение по умолчанию (оно эквивалентно 100) для всех маршрутизаторов, то главным маршрутизатором станет тот, у кого больше IP-адрес на интерфейсе. (Именно на интерфейсе, на котором настроен процесс VRRP)

Практика

В качестве практики выступит небольшой полигон, представленный картинкой ниже. Рассмотрим практическую настройку VRRP для Cisco IOS и MikroTik RouterOS.

Топология тестового полигона

Будет использована вторая версия протокола VRRP. В нашем случае маршрутизатор R1 является Master Router (так как его приоритет значительно больше - 150) и он будет заниматься всей суетой по поводу передачи легитимного трафика в сети. Маршрутизатор R2 будет в роли Backup Router и ждать пока не "упадёт" Master Router, взяв его роль в свои руки. R1 и R2 подключены к коммутатору, а облачко символизирует домен VRRP. Группа VRRP будет под номером 1, а значение виртуального IP-адреса: 10.1.1.254

Что касается сервера DHCP, при наличии домена VRRP в сети, желательно вывести службу DHCP на отдельный сервер. Вдруг DHCP-сервер сконфигурированный на маршрутизаторах R1/R2 будет недоступен в случае отказа в обслуживании? Во избежание такой курьёзной ситуации, DHCP-сервер рекомендуется реализовывать на отдельном сервере.

Настройка IP-адресации

Cisco IOS:

R1(config)#int g0/0

R1(config-if)# ip address 10.1.1.100 255.255.255.0

R1(config-if)# no shutdown

R2(config)#int g0/0

R2(config-if)# ip address 10.1.1.200 255.255.255.0

R2(config-if)# no shutdown

RouterOS:

[admin@R1] /ip address> add address=10.1.1.100 netmask=255.255.255.0 interface=ether1

[admin@R2] /ip address> add address=10.1.1.200 netmask=255.255.255.0 interface=ether1

Настройка VRRP на интерфейсах

Необходимо указать номер группы VRRP, при необходимости значение приоритета и Virtual IP Address

Cisco IOS:

R1(config)#int g0/0

R1(config-if)# vrrp 1 priority 150

R1(config-if)# vrrp 1 ip 10.1.1.254

R2(config)#int g0/0

R2(config-if)# vrrp 1 priority 90

R2(config-if)# vrrp 1 ip 10.1.1.254

RouterOS:

[admin@R1] /interface vrrp> add name=vrrp-1 interface=ether1 priority=150 version=2

[admin@R2] /interface vrrp> add name=vrrp-1 interface=ether1 priority=90 version=2

В случае использования RouterOS для созданного интерфейса VRRP необходимо дополнительно назначить IP-адрес. В нашем случае это 10.1.1.254

[admin@R1] /ip address> add address=10.1.1.254 netmask=255.255.255.0 interface=vrrp-1

[admin@R2] /ip address> add address=10.1.1.254 netmask=255.255.255.0 interface=vrrp-1

Маршрутизатор R1, имеющий роль Master Router выполняет рассылку специальных анонсов VRRP, позволяющим остальным маршрутизаторам в домене понимать, что он ещё в строю и продолжает свою работу.

Дамп VRRP трафика

Вот примерно так бы шел трафик легитимного клиента в сеть Интернет

На этом настройка VRRP на маршрутизаторах закончена, для данной сети обеспечена отказоустойчивость шлюзов. Кстати говоря, если у тебя в сети несколько UP-линков до интернет-провайдера, рекомендую настроить IP SLA или подобную технологию на маршрутизаторах, иначе словишь black-hole.

Безопасность VRRP

Наивысший приоритет 255

Установка приоритета 255 позволяет исключить возможность атаки злоумышленника со стороны внутренней сети. Безусловно, он может поднять на своей стороне ложный маршрутизатор и войти в домен VRRP с наивысшим значением приоритета 255, но если это значение уже настроено на легитимном маршрутизаторе, то ему уже ничего не светит.

Cisco IOS:

R1(config-if)# vrrp 1 priority 255

RouterOS:

[admin@R1] /interface vrrp> set priority=255 vrid=1 numbers=0

В значении numbers, вместо 0, укажи свой номер интерфейса.

Использование аутентификации

Настройка аутентификации в домене VRRP не позволяет новым маршрутизаторам входить в домен VRRP не пройдя специальный процесс аутентификации. В реализации Cisco IOS, домен VRRP может быть защищен с помощью MD5-аутентификации или даже с использованием Key-Chain.

Что касается RouterOS, VRRP можно защитить с использованием AH-аутентификации.

Пример настройки MD5-аутентификации в Cisco IOS:

R1(config-if)# vrrp 1 authentication md5 key-string vi3w_fr0m_ab0ve

R2(config-if)# vrrp 1 authentication md5 key-string vi3w_fr0m_ab0ve

Пример настройки AH-аутентификации в RouterOS:

[admin@R1] /interface vrrp> set authentication=ah password=vi3w_fr0m_ab0ve numbers=0

[admin@R2] /interface vrrp> set authentication=ah password=vi3w_fr0m_ab0ve numbers=0