Protokół VRRP – opis i konfiguracja na routerze Cisco

Zagadnieniem jakim dziś się zajmiemy jest redundancja sieci LAN. Urządzenia sieciowe jakie możemy spotkać dziś na rynku w większości są dobrej jakości, można powiedzieć, że ponad standardowej. Jednak wystąpienie awarii jakiegoś elementu sieci pojawia się z mniejszym lub większym prawdopodobieństwem.

Słuszność wprowadzania nadmiarowości w sieciach lokalnych to czas niedostępności oraz starty finansowe poniesione w przypadku wystąpienia awarii sieci. Stacje robocze magazynują w swojej konfiguracji tylko jeden adres bramy domyślnej. Jest to jeden z potencjalnych punktów awarii. Urządzenia sieciowe warstwy trzeciej modelu OSI/ISO np. routery, również mają swój MTBF (ang. Mean Time Before Failure), czyli średni czas między awariami wyrażany
w godzinach. W ich przypadku możliwość zapewnienia niezawodności wykonywany jest przez adekwatne protokoły takie jak:

  • Protokół HSRP
  • Protokół VRRP
  • Protokół GLBP

O protokole HSRP było już mówione we wcześniejszym artykule. Natomiast w niniejszym omówimy drugi w kolejności.

Protokół VRRP- co to takiego?

W skrócie mówiąc protokół VRRP (ang. Virtual Router Redundancy Protocol) eliminuje pojedynczy punkt awarii w sieci, gdzie występują trasy statyczne. Przy pomocy tego protokołu tworzony jest wirtualny router, tzw. symulowany, który korzysta z jednego z routerów nadmiarowych (głównego).

Jak to wygląda w praktyce? Mianowicie tak, że router główny rozgłasza innym routerom komunikat Hello co 1 sekundę. Inne routery, które są zapasowymi w danej sieci czekają na komunikat ogłoszenia routera głównego. Jeżeli w tym czasie router główny nie odpowie to zapasowe routery uznają go lub połączenie z nim za nieprawidłowo działające. W tym momencie dochodzi do procesu wyboru nowego routera głównego. Routerem głównym zostaje wybrany ten, który ma wyższy priorytet. Jeżeli w sieci występuje więcej niż jeden zapasowy router z takim samym priorytetem to głównym zostaje ten który ma wyższy adres logiczny.

Konfiguracja VRRP

Konfiguracja tego protokołu wygląda bardzo podobnie jak konfiguracja HSRP, choć różni się pewnymi aspektami. Jedną z różnic jest stosunek do adresu VIP, czyli wirtualnego IP. 

Poniższy schemat sieci pomoże zobrazować na czym polega ta różnica oraz jak konfiguruje się VRRP.

Na początku skonfigurujemy router R1. Konfigurujemy wszystkie porty według naszej adresacji i je podnosimy.

Schemat adresacji sieci
Schemat adresacji sieci
R1(config)#interface fastEthernet 0/0
R1(config)#ip address 192.168.1.2 255.255.255.0
R1(config)#no shut
R1(config)#interface fastEthernet 1/0
R1(config)#ip address 192.168.2.1 255.255.255.0
R1(config)#no shut

Następnie na routerze R1 musimy skonfigurować jeszcze routing statyczny z trasą domyślną, ponieważ za nim znajduje się jeszcze wyjście na świat, które to imituje router R3. Wydajemy więc polecenie
ip route 0.0.0.0 0.0.0.0 f1/0. Dzięki temu wszystkie pakiety, które nie odpowiadają do informacji
w tablicy routingu będą przechodzić przez interfejs f1/0.

R1(config)#ip route 0.0.0.0 0.0.0.0 f1/0

Kolejnym krokiem jest konfiguracja routera R2. Wykonujemy dokładnie te same kroki co na routerze R1, tylko przydzielamy odpowiednie adresy IP.

R2(config)#interface fastEthernet 0/0
R2(config)#ip address 192.168.2.2 255.255.255.0
R2(config)#no shut
R2(config)#interface fastEthernet 1/0
R2(config)#ip address 192.168.1.3 255.255.255.0
R2(config)#no shut

Również na tym routerze uruchamiamy routing statyczny z tą różnicą, że podajemy trasę przez interfejs f0/0.

R2(config)#ip route 0.0.0.0 0.0.0.0 f0/0

Następny etap to konfiguracja routera R3, który imituje chmurę. Do interfejsu f0/0 na tym routerze, do którego jest podłączony switch1 przypiszmy adres ip 192.168.2.10/24. Ponadto skonfigurujmy interfejs loopback0, który będzie symulował wyjście na sieć zewnętrzną. Jemu przypiszmy adres 4.2.2.2/24.

R3(config)#interface fastEthernet 0/0
R3(config)#ip address 192.168.2.10 255.255.255.0
R3(config)#no shut
R3(config)#interface loop0
R3(config)#ip address 4.2.2.2 255.255.255.0
R3(config)#no shut

Aby ten router mógł komunikować się z dwoma pozostałymi w sieci wewnętrznej, również na nim trzeba ustawić trasę statyczną przez interfejs f0/0.

R3(config)#ip route 0.0.0.0 0.0.0.0 f0/0

Gdy mamy już wstępnie wyprofilowaną sieć to teraz przejdźmy do konfiguracji protokołu VRRP. Wydajemy polecenie vrrp [domyślny numer] ip [adres vip] na porcie f0/0 na routerze R1. Należy tu wspomnieć, że adres wirtualny nie jest oddzielnym adresem w naszej sieci, dlatego też musimy użyć adresu ip fizycznego interfejsu. Po wprowadzeniu tego adresu router z automatu osiągnie status Master (w przypadku HSRP status Active). Patrząc na nasz schemat można się domyśleć, że drugi router po konfiguracji powinien otrzymać status Backup (w przypadku HSRP status Standby). Wydajemy więc komendę na routerze R1 vrrp 1 ip 192.168.1.2.

R1(config)#interface fastEthernet 0/0

R1(config-if)#vrrp 1 ip 192.168.1.2

*Mar 12 21:09:07.435: %VRRP-6-STATECHANGE: Fa0/0 Grp 1 state Init -> Master

Jak widzimy router ustawił swój status na Master. 

Kolejnym ważnym elementem w tej konfiguracji jest przeprowadzenie adresacji na urządzeniu końcowym PC1. Ustawiamy adres ip komputera na 192.168.1.10 z maską 24 bitową. Natomiast istotną zmianą jest adresacja bramy domyślnej. Ten parametr musimy ustawić na adres 192.168.1.2, gdyż jest to adres VIP w naszej konfiguracji. Z automatu ten atrybut przy tej adresacji byłby ustawiony na 192.168.1.1.

W programie GNS3, przy pomocy którego wykonujemy doświadczenie, aby dokonać adresacji urządzenia końcowego PC1 musimy uruchomić urządzenie i wejść w konsolę. Następnie wpisujemy
ip [adres urządzenia/maska] 192.168.1.10/24 [adres bramy domyślnej] 192.168.1.2.

PC1> ip 192.168.1.10/24 192.168.1.2

Checking for duplicate address…

PC1 : 192.168.1.10 255.255.255.0 gateway 192.168.1.2

Aby sprawdzić, czy zmiany są poprawnie wprowadzone wydajemy polecenie sh ip. Poniższy listing obrazuje ustawienia sieciowe PC1.

PC1> sh ip
NAME        : PC1[1]
IP/MASK     : 192.168.1.10/24
GATEWAY     : 192.168.1.2
DNS         :
MAC         : 00:50:79:66:68:00
LPORT       : 10000
RHOST:PORT  : 127.0.0.1:10001
MTU:        : 1500

Następnym krokiem jest przeprowadzenie konfiguracji routera R2. Wykonujemy na nim te same kroki jakie robiliśmy podczas konfigurowania routera R1. Ważnym aspektem jest to aby wskazać jako adres IP ten sam adres IP interfejsu f0/0 routera R1. Gdy to zrobimy otrzymamy informacjęe zwrotną, w której to możemy odczytać, że router zmienił swój status na Backup.

R2(config)#interface fastEthernet 1/0

R2(config-if)#vrrp 1 ip 192.168.1.2

*Mar 12 21:09:07.435: %VRRP-6-STATECHANGE: Fa1/0 Grp 1 state Init -> Backup

Teraz wydajmy polecenie ping 4.2.2.2, aby sprawdzić czy urządzenie końcowe komunikuje się z portem wychodzącym na świat. Jeżeli urządzenie komunikuje się z tym portem to wszystko jest w porządku. Poniższy listing to obrazuje.

PC1> ping 4.2.2.2
4.2.2.2 icmp_seq=1 timeout
84 bytes from 4.2.2.2 icmp_seq=2 ttl=254 time=38.569 ms
84 bytes from 4.2.2.2 icmp_seq=3 ttl=254 time=24.966 ms
84 bytes from 4.2.2.2 icmp_seq=4 ttl=254 time=16.869 ms
84 bytes from 4.2.2.2 icmp_seq=5 ttl=254 time=29.273 ms

Następnie sprawdźmy czy konfiguracja VRRP na obu routerach jest trwale zapisana. Aby tego dokonać wydajmy na R1 i R2 polecenie sh vrrp.

R1#sh vrrp
FastEthernet0/0 - Group 1
State is Master
Virtual IP address is 192.168.1.2
Virtual MAC address is 0000.5e00.0101
Advertisement interval is 1.000 sec
Preemption enabled
Priority is 255
Master Router is 192.168.1.2 (local), priority is 255
Master Advertisement interval is 1.000 sec
Master Down interval is 3.003 sec
R2#sh vrrp
FastEthernet1/0 - Group 1
State is Backup
Virtual IP address is 192.168.1.2
Virtual MAC address is 0000.5e00.0101
Advertisement interval is 1.000 sec
Preemption enabled
Priority is 100
Master Router is 192.168.1.2, priority is 255
Master Advertisement interval is 1.000 sec
Master Down interval is 3.609 sec (expires in 3.305 sec)

Jak widzimy na powyższych dwóch listingach VRRP jest skonfigurowane na obu routerach poprawnie. Router R1 ma status Master, a R2 status Backup.

Testowanie konfiguracji

Sprawdzenie poprawności działania protokołu VRRP będzie polegało na tym, że zasymulujemy awarię routera R1 polegająca na wyłączeniu interfejsu f0/0. Jednocześnie uruchomimy na stacji końcowej PC1 polecenie ping na adres 4.2.2.2. To pomoże zobaczyć jak długo trawa przełączenie statusu pomiędzy ruterami i przepuszczenie ruchu inna trasą po awarii.

Wyłączmy więc interfejs f0/0 na routerze R1 wydając polecenie shutdown. 

R1(config)#interface fastEthernet 0/0R1(config-if)#shut
R1(config-if)#shutdown
R1(config-if)#
*Mar 13 20:48:08.163: %VRRP-6-STATECHANGE: Fa0/0 Grp 1 state Master -> Init
R1(config-if)#
*Mar 13 20:48:10.171: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 13 20:48:11.171: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
R2#
*Mar 13 20:48:11.727: %VRRP-6-STATECHANGE: Fa1/0 Grp 1 state Backup -> Master

Na powyższym listingu możemy zauważyć, że status routera R1 od razu zmienił się na Init, natomiast router R2 z automatu zmienił swój na Master.

Poniższy listing prezentuje, jak długo trwa przełączanie trasy między routerami po wystąpieniu awarii. Po wydaniu polecenia ping na końcowym urządzeniu na port wychodzący na świat możemy zauważyć, że po wystąpieniu awarii utracono tylko 2 pingi. Jest to znikoma strata, której użytkownik nie zauważy podczas pracy w sieci LAN.

PC1> ping 4.2.2.2 -t
84 bytes from 4.2.2.2 icmp_seq=21 ttl=254 time=48.684 ms
84 bytes from 4.2.2.2 icmp_seq=22 ttl=254 time=45.840 ms
4.2.2.2 icmp_seq=23 timeout
4.2.2.2 icmp_seq=24 timeout
84 bytes from 4.2.2.2 icmp_seq=25 ttl=254 time=43.244 ms
84 bytes from 4.2.2.2 icmp_seq=26 ttl=254 time=46.621 ms

Gdy ponownie włączymy port f0/0 na routerze R1, to status tego routera zmieni się z powrotem na Master, a routera R2 na Backup. Spowoduje to, że komunikacja będzie znowu przechodzić przez interfejs f0/0 na routerze R1.

Co można jeszcze skonfigurować w VRRP?

W tym protokole możemy skonfigurować czasy, tzn. zmienić powszechność przesyłania rozgłoszeń VRRP. Aby to zrobić musimy wydać polecenie na routerze R1:

vrrp[nr grupy] timers advertise msec [wartość w milisekundach].

Możemy także skonfigurować uwierzytelnianie VRRP. Wygląda podobnie jak w przypadku HSRP. By to zrobić musimy wydać pewne komendy na obu routerach. Wydajemy polecenie na R1 na interfejsie, gdzie skonfigurowano VRRP.

vrrp 1 authentication md5 ?

Dzięki temu zobaczymy dostępne opcje, a są nimi:

key-chain łańcuch kluczy

key-string pojedynczy klucz

Gdy wybierzemy którąś z opcji następnie wpisujemy hasło. Cały listing będzie wyglądał następująco:

vrrp 1 authentication md5 key-string [hasło]

Kolejnym krokiem jest wydanie tej samej komendy na routerze R2. Gdy to już zostanie zrobione to autentykacja jest skonfigurowana poprawnie.

Podsumowanie

Wyniki powyższego eksperymentu obrazują, że usługa VRRP działa jak należy. Jej zasada działania jest zbliżona do protokołu HSRP lecz różni się pewnymi aspektami podczas konfiguracji. Jak widać usługa jest przydatna i powinna być używana przez administratorów podczas budowania swojej wewnętrznej sieci. Zapobiega to przed brakiem dostępu do niej w trakcie wystąpienia awarii. Ruch jest kierowany na router zastępczy, który przejmuje rolę głównego podczas jego niedostępności.
Z punktu widzenia np. korporacji lub większych firm, gdzie dostęp do sieci musi być 24 godziny na dobę, to ta usługa pomoże w utrzymaniu prawidłowego działania sieci w danej komórce organizacyjnej bez ponoszenia większych strat, np. finansowych.