FHRP (Протокол за повторна избагачаване на първа стъпка) — семейство протоколи, предназначени за създаване на резервираност на шлюза по подразбиране. Общата идея на тези протоколи е да обединят няколко маршрутизатора в един виртуален маршрутизатор с общ IP адрес. Този IP адрес ще бъде назначен на хостовете като адрес на шлюз по подразбиране. Свободна реализация на тази идея е протоколът VRRP (Протокол за резервираност на виртуалния маршрутизатор). В тази статия ще разгледаме основите на протокола VRRP.

VRRP маршрутизаторите се обединяват в един виртуален маршрутизатор. Всички маршрутизатори в групата имат общ виртуален IP (VIP) адрес и общ номер на групата или VRID (Идентификатор на виртуалния маршрутизатор). Един маршрутизатор може да бъде част от няколко групи, всяка от които трябва да има своя уникална двойка VIP/VRID.
В случай на Cisco виртуалният маршрутизатор се задава на интересуващия ни интерфейс с командата:
R1(config-if)# vrrp ipВсички маршрутизатори се делят на два типа: VRRP Master и VRRP Backup.
VRRP Master — това е маршрутизаторът, който се занимава с пренос на пакети за конкретната виртуална група.
VRRP Backup — това е маршрутизаторът, който изчаква пакет от Master. Ако пакетите от Master спрат да пристигат, Backup се опитва да премине в състояние Master.
Маршрутизаторът става Master, ако има най-висок приоритет. Master постоянно разпространява съобщения на широковещателния адрес 224.0.0.18, за да информира Backup маршрутизаторите, че работи. Master изпраща съобщения в съответствие с таймера Adver Timer, равен по подразбиране на 1 секунда.

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

Ако Backup маршрутизаторите не получат съобщения в течение на три Adver Timer (Таймер за изключен Master), новият Master става маршрутизатор с най-висок приоритет или маршрутизатор с най-висок IP. При това Backup маршрутизатор с по-висок приоритет взима ролята на Master с по-нисък приоритет. Въпреки това, когато Backup е изключил режима preempt, Backup няма да отнеме ролята от Master.
R1(config-if)# no vrrp preemptАко VRRP маршрутизаторът е собственик на VIP адреса, той винаги взима ролята на Master.
Приоритетът на VRRP се задава в стойности от 1 до 254. Стойността 0 е резервирана за случаи, когато Master трябва да се откаже от отговорността за маршрутизация. Стойността 255 се задава на маршрутизатора, който е собственик на VIP. По подразбиране приоритетът е 100, но може да се зададе административно:
R1(config-if)#vrrp priorityТук можем да видим приоритета на маршрутизатора, когато е зададен административно:

А тук е представен случай, в който маршрутизаторът е собственик на VIP:

Маршрутизаторът VRRP може да има три състояния: Инициализация, Резервен, Master. Тези състояния маршрутизаторът последователно променя.
В състояние Инициализация маршрутизаторът чака да започне работа. Ако този маршрутизатор е собственик на VIP адреса (приоритетът е 255), той изпраща съобщения, че става Master. Също така изпраща , в което MAC адресът на източника е равен на адреса на виртуалния маршрутизатор. След това преминава в състояние Master. Ако маршрутизаторът не е собственик на VIP, той преминава в състояние Резервен.

В състояние Резервен маршрутизаторът чака пакети от Master. Маршрутизаторът в това състояние не отговаря на ARP запитвания от VIP адреса. Също така не приема пакети, чието целево адрес е MAC адресът на виртуалния маршрутизатор.
Ако Резервен не получи съобщения от Master в рамките на времето за изключване на Master, той изпраща VRRP съобщение, че се подготвя да стане Master. След това изпраща широковещателно VRRP съобщение, в което MAC адресът на източника е равен на адреса на този виртуален маршрутизатор. В това съобщение маршрутизаторът указва своя приоритет.
В състояние Master маршрутизаторът обработва пакети, адресирани до виртуалния маршрутизатор. Той също така отговаря на ARP запитвания към VIP. 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 -> MasterVRRP също така позволява балансиране на натоварването между няколко рутера. За целта на един интерфейс се създават две VRRP групи. На едната група се определя по-висок приоритет от другата. На втория рутер приоритетът се задава по противоположния начин. Т.е. ако на един рутер приоритетът на първата група е 100, а на втората — 200, то на другия рутер приоритетът на първата група ще бъде 200, а на втората 100.
Както бе споменато по-рано, всяка група трябва да има уникален VIP адрес. В крайна сметка получаваме два IP адреса, обслужвани от два рутера, всеки от които може да служи като шлюз по подразбиране.

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

По този начин VRRP позволява организирането на отказоустойчивост на шлюза по подразбиране, повишавайки надеждността на мрежата. А при използване на няколко виртуални рутера може да се балансира натоварването между реалните рутери. Времето за реакция при отказ може да бъде намалено чрез намаляване на таймерите.
Източник: habr.com
