Хабрахабр

[Из песочницы] Принцип работы протокола VRRP

FHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом. Этот IP адрес будет назначаться на хостах как адрес шлюза по умолчанию. Свободной реализацией данной идеи является протокол VRRP (Virtual Router Redundancy Protocol). В этой статье рассмотрим основы протокола VRRP.

VRRP-маршрутизаторы объединяются в один виртуальный маршрутизатор. Все маршрутизаторы в группе имеют общий виртуальный IP (VIP) адрес и общий номер группы или VRID (Virtual Router Identifier). Один маршрутизатор может состоять в нескольких группах, каждая из которых должна иметь свою уникальную пару VIP/VRID.

В случае с Cisco виртуальный маршрутизатор задается на интересующем нас интерфейсе командой:

R1(config-if)# vrrp <group-number> ip <ip-address>

Все маршрутизаторы делятся на два типа: VRRP Master и VRRP Backup.

VRRP Master — это маршрутизатор, который занимается пересылкой пакетов для данного виртуальной группы.

Если пакеты от Master перестают приходить, Backup пытается перейти в состояние Master. VRRP Backup — это маршрутизатор, который ожидает пакет от Master.

Master постоянно рассылает сообщения на широковещательный адрес 224. Маршрутизатор становится Master, если имеет наивысший приоритет. 0. 0. Master отправляет сообщения согласно таймеру Adver Timer, равный по умолчанию 1 секунде. 18, чтобы сообщить Backup маршрутизаторам, что он работает.

При этом в качестве MAC адреса отправителя используется адрес группы 00:00:5E:00:01:xx, где xx — VRID в шестнадцатеричном формате. В данном примере используется первая группа.

Если Backup маршрутизаторы не получают сообщения в течении трех Adver Timer (Master Down Timer), то новым Master становится маршрутизатор с наибольшим приоритетом, либо маршрутизатор с наибольшим IP. При этом Backup маршрутизатор с более высоким приоритетом перехватит роль Master с более низким приоритетом. Однако, когда у Backup отключен режим preempt, Backup не станет перехватывать роль у Master.

R1(config-if)# no vrrp <group-number> preempt

Если VRRP-маршрутизатор является владельцем VIP адреса, то он всегда перехватывает роль Master.

Значение 0 зарезервировано для случаев, когда Master необходимо снять с себя ответственность за маршрутизацию. VRRP приоритет задается в значениях от 1 до 254. Приоритет по умолчанию равен 100, но может задаваться административно: Значение 255 устанавливается маршрутизатору владельцу VIP.

R1(config-if)#vrrp <group-number> priority <priority 1-254>

Здесь мы можем увидеть приоритет маршрутизатора, когда он задан административно:

А тут представлен случай, когда маршрутизатор является владельцем VIP:

VRRP маршрутизатор может иметь три состояния: Initialize, Backup, Master. Эти состояния маршрутизатор последовательное меняет.

Если этот маршрутизатор является владельцем VIP адреса (приоритет равен 255), то маршрутизатор отправляет сообщения о том что становится Master. В состоянии Initialize маршрутизатор ожидает начала работы. Затем он переходит в состояние Master. Он также отправляет gratuitous ARP-запрос, в котором MAC-адрес источника равен адресу виртуального маршрутизатора. Если маршрутизатор не является владельцем VIP, то он переходит в состояние Backup.

В состоянии Backup маршрутизатор ожидает пакеты от Master. Маршрутизатор в этом состоянии не отвечает на ARP-запросы от VIP-адреса. Также он не принимает пакеты, у которых в качестве адреса назначения стоит MAC-адрес виртуального маршрутизатора.

Затем отправляет широковещательное VRRP сообщение, в котором MAC-адрес источника равен адресу этого виртуального маршрутизатора. Если Backup не получает сообщения от Master в течение Master Down Timer, то он отправляет VRRP сообщение о том, что собирается стать Master. В данном сообщении маршрутизатор указывает свой приоритет.

Он так же отвечает на ARP-запросы к VIP. В состоянии Master маршрутизатор обрабатывает пакеты, адресованные виртуальному маршрутизатору. Master рассылает VRRP сообщения каждые Adver Timer, чтобы подтвердить что он работает.

*May 13 19:52:18.531: %VRRP-6-STATECHANGE: Et1/0 Grp 1 state Init -> Backup
*May 13 19:52:21.751: %VRRP-6-STATECHANGE: Et1/0 Grp 1 state Backup -> Master

VRRP также позволяет балансировать нагрузку между несколькими маршрутизаторами. Для этого на одном интерфейсе создается две VRRP группы. Одной группе назначается больший приоритет, чем другой. При этом на втором маршрутизаторе приоритет задается противоположным образом. Т.е. если на одном маршрутизаторе приоритет первой группы равно 100, а второй группы — 200, то на другом маршрутизаторе приоритет первой группы будет 200, а второй 100.

В итоге, мы получаем два ip адреса, обслуживаемые двумя маршрутизаторами, каждый из которых может служить шлюзом по умолчанию. Как сказано ранее, в каждой группе должен быть свой уникальный VIP.

Половине компьютеров назначается один адрес шлюза по умолчанию, половине другой. Таким образом половина трафика будет идти через один маршрутизатор, а половина через другой. При выходе из строя одного из маршрутизаторов, второй перехватывает на себя работу обеих VIP.

Таким образом VRRP позволяет организовать отказоустойчивость шлюза по умолчанию, повысив надежность сети. А в случае использования нескольких виртуальных маршрутизаторов можно и балансировать нагрузку между реальными маршрутизаторами. Скорость реакции на отказ может быть сокращена за счет уменьшения таймеров.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть