Protokoli za “Layer 3” redundanciju : HSRP

 

[toc]

 

 

 

Zbog čega nam uopće treba Layer 3 redundancija ?

(Layer 3 : OSI i/ili  TCP/IP model – sloj 3 tj. IP)

U slučajevima kada nam je bitan ulaz odnosno izlaz prema internetu, prva stvar koju moramo osigurati uz postojeću (primarnu) vezu prema internetu, je druga (backup) veza. preko istog ili drugog internet providera (ISP-a). Bez obzira da li se radi o istom ili drugačijem tipu veze (pr. optika, ADSL, SDSL ili drugo),sa strane mreže, prema korisničkim računalim ili poslužiteljima, potrebno je osigurati jedinstvenu metodu izlaza na internet (tj. u konačnici jedinstvenu IP adresu).

Tu IP adresu zapravo koristimo kao “Default Gateway”.

2xISP-osnovno

Koje najčešće opcije imamo:

a.) Primarni Router (Router1) i pripadajući link su stalno aktivni a sekundarni (Router2) tj. backup ručno uključujemo po potrebi (u slučaju kvara primarnog) – ovo nije baš najsretnije riješenje.

b.) Oba uređaja su aktivna, svaki ima svoju inside IP adresu (pr. 20.20.20.x) i svima je preko DHCP poslužitelja kao Default Gateway postavljena IP adresa prvog Routera (pr. 20.20.20.1). U slučaju kvara prvog, na DHCP poslužitelju mijenjamo svima Default Gateway u drugi Router (pr. 20.20.20.2) te svi korisnici moraju ponovno pokupiti IP parametre sa DHCP poslužitelja (iz GUI-a ili komandne linije) ili restartati računalo – ovo je malo bolje ali i dalje primitivno riješenje

c.) Ili nešto slično kao a.) i b.)

d.) Upotreba protokola za Layer 3 redundanciju (nazivaju se i “First Hop Redundancy Protocols” ili protokoli koji osiguravaju dostupnost “Default Gateway-a”)

  • (1) : HSRP (Cisco only, razvijen 1994)
  • (2) : VRRP (Industrijski standard , opisan u RFC 2338, razvijen 1999, po uzoru na HSRP )
  • (3) : GLBP (Cisco only, razvijen 2005)

Dakle zaključili smo da želimo automatizam koji će riješiti ovaj problem.

 

(1) Što nam nudi HSRP i kako on radi:

HSRP (Hot Standby Routing Protocol) je razvio Cisco te se koristi (i radi) samo na Cisco uređajima. On pojednostavljeno radi tako da dva ili više uređaja preko HSRP protokola dijele jednu virtualnu IP adresu (koju mi koristimo kao Default Gateway). Na tu virtualnu IP adresu svaki puta odgovara Router koji je Aktivan HSRP Router a ostali ništa ne rade, osim što svako malo provjeravaju da li su svi živi i koji od živih routera ima najviši prioritet.

Naime onaj Router koji u određenom trenutku ima najviši HSRP prioritet, on postaje i aktivan i preko njega zapravo teće sav promet. Kao na slici.

2xISP-HSRP-osnovno

Mana HSRP protokola je u tome što je u svakom trenutku samo jedan aktivan Router te se drugi (tj. svi ostali ako imamo više Routera/ISP-ova) ne koriste za promet, kao što se ne iskorištavaju niti sekundarni/backup linkovi prema internetu.

Postoji i poluautomatsko riješenje za to.

Naime HSRP protokol, sa Virtualnom IP adresom, svim routerima koji učestvuju u HSRP “razgovoru/dogovoru” te prioritetima istih (uz potencijalnu autentikaciju) se definira na nivou tkzv. “HSRP grupe”, kojih može biti više istovremeno.

Dakle krenimo malo dublje.

 

Sve gore navedeno za HSRP se definira za HSRP grupu, što znači da možemo imati jednu grupu u kojoj je Router 1 aktivan i drugu grupu u kojoj je Router 2 aktivan, problem je samo kako konfigurirati klijente.

Konfiguracija klijenata (pr. PC računala) za ovaj slučaj je najpraktičnija tako da se na DHCP poslužitelju podjele DHCP rezervacije na pola te da se prvoj polovici konfigurira kao Default Gateway prva Virtualna IP (gdje je Router 1 aktivan) a drugoj polovici Virtualna IP adresa od druge HSRP grupe , u kojoj je Router 2 aktivan. Na ovaj način smo iskoristili oba routera i oba linka prema internetu.

 

HSRP osnovni dio konfiguracije Routera bi tada izgledao ovako:

 

Napomena:

FastEthernet 0/0  ⇒ Veza prema ISP-u i internetu

FastEthernet 0/1  ⇒ LAN mreža

 

Router 1 :

========

interface Fast Ethernet 0/1

 ip address 20.20.20.1 255.255.255.0

 standby 1 priority 105

 standby 1 ip 20.20.20.254

 

 standby 10 priority 100

 standby 10 ip 20.20.20.253

 

 

 

Router 2 :

========

interface Fast Ethernet 0/1

 ip address 20.20.20.2 255.255.255.0

 standby 1 priority 100

 standby 1 ip 20.20.20.254



 standby 10 priority 105

 standby 10 ip 20.20.20.253

 

Konfiguracija DHCP Poslužitelja (DHCP rezervacije klijenata):

PC1 : 20.20.20.100 : ……. , Default gateway : 20.20.20.254 ,….

PC2 : 20.20.20.101 : ……. , Default gateway : 20.20.20.254 ,….

… … … …

PC10 : 20.20.20.110 : ……. , Default gateway : 20.20.20.253 ,….

PC11 : 20.20.20.111 : ……. , Default gateway : 20.20.20.253 ,….

Što će se dogoditi ako jedan od routera ili link ne rade ?

1. U slučaju da Router uopće ne radi , prvi Router u istoj HSRP grupi će preuzeti ulogu aktivnog i proslijeđivati promet, te će ostati aktivan do daljnjeg !

⇒ Osim ako smo konfigurirali tkzv “preemptive”:

U slučaju da smo samo konfigurirali preemptive (za HSRP grupe 1 i 10) pr.:

standby 1 preempt

standby 10 preempt

 

Tada će Router koji je inicijalno bio aktivan, kada se ponovno uključi preuzeti ulogu aktivnog od onoga koji je trenutno aktivan.

Ovdje postoji problem, jer ako Router koji je prvi bio aktivan, pa je otišao u standby (zbog metode objašjene nekoliko rečenica dolje [točka 2.]) zbog toga što mu se pokvario mrežni interface te se stalno pali i gasi (što zna biti slučaj u praksi), prvi router će malo malo postajati standby pa ponovno active, jer smo uključili “preempt” .

 

“Preempt”

Zbog toga se preporuča uz “preempt” dodati i timere tj. vremenski odmak (delay) koji mora proći, prije nego router preuzme ulogu aktivnog, naredba bi u našem slučaju bila

((za HSRP grupe 1 i 10)):

standby 1 preempt delay minimum 180

standby 10 preempt delay minimum 180

 

Dakle 180 sekundi je okvirno potencijalno dovoljno sigurno da se gore opisana greška vrlo vjerojatno neće dogoditi.

Osim parametra minimum , postoje i reload i sync od kojih je praktičan i reload .jer čeka – ako se router restartao, nakon restarta definiran period vremena : pr.:

standby 1 preempt delay reload 180

standby 10 preempt delay reload 180

 

 

U praksi je najsigurnije ne koristiti “preempt” osim ako stvarno ne znate što radite.

 

Interface tracking

2.Došli smo i do slučaja da samo link prema internetu ne radi, što onda ?

Moramo dodati još jedan parametar u konfiguraciji koji će pratiti i stanje krucijalnih interface-a (indirektno ili direktno, linka prema internetu u našem slučaju).

Ako naši routeri 1 i 2 imaju opremu ISP-a, spojenu na mrežne interface FastEthernet 0/0 , tada bi naša konfiguracija trebala izgledati ovako  ((za HSRP grupe 1 i 10)):

standby 1 track  FastEthernet 0/0

standby 10 track  FastEthernet 0/0

 

Na ovaj način se prati stanje interface-a FastEthernet 0/0 i ako se on sruši, prioritet HSRP grupe 1 , se spušta za vrijednost 10 (default), te pada na 95 , što znaći da router sa većim prioritetom – u našem slućaju 100 (Router 2) , preuzima ulogu aktivnog. Isti sistem vrijedi i za HSRP grupu 10.

Ako želimo promjeniti smanjivanje prioriteta (decrement) sa 10 na neku drugu vrijednost tu vrijednost dodajemo na kraj naredbi od prije – neka bude za 20

standby 1 track  FastEthernet 0/0  20

standby 10 track  FastEthernet 0/0  20

 

 

Dodatne opcije HSRP-a, su :

 

Autentikacija

Autentikacija – za svaku HSRP grupu moguće je i definirati iautentikaciju (dakle lozinku).

Postoji nekoliko opcija.:

  • 1.) Plain text
  • 2.) MD5

U našem slučaju koristiti ćemo običnu “plain text“ lozinku, a to se radi ovako

(u našem slučaju za HSRP grupe 1 i 10):

standby 1 authentication Lozinka1

standby 10 authentication Lozinka10

Mana “plain text” lozinke je sigurnosne prirode jer se lozinka šalje preko mreže nekriptirana.

Pogledajmo komunikaciju sa Routera 1, na mreži, u slučaju da smo ostavili HSRP grupu bez definirane autentikacije:

HSRP-Auth-default

Vidljivo je da se unatoč činjenici da nismo defnirali lozinku, u pozadini ipak koristi “default” lozinka (cisco).

Sada ćemo probati definirati lozinku (Lozinka), te pogledajmo kako sada izgleda isti paket na mreži:

HSRP-Auth-Lozinka

Dakle vidimo da se sada koristi lozinka (Lozinka), koju smo kreirali.

Iz oba primjera potvrdili smo i to da se lozinke šalju nekriptirane.

 

Upotreba MD5 metode riješava ovaj problem jer se više ne šalje nekriptirani ključ, ali o njoj nekom drugom prilikom.

 

 

 

“Hello” poruke

Hello Message Timeri – dakle svako malo Routeri unutar svake HSRP grupe šalju određene pakete , koji sadrže slijedeće poruke (za router koji šalje paket):

Prioritet routera : 0 – 255 (veći ima prioritet)

Hello Time (default 3.s.) : Svakih koliko sekundi (moguće je konfigurirati i msec) se   šalje paket

Holdtime (default 10.s) : Vrijeme unutar kojeg se smatra da su “Hello Time”  poruke važeće i da je sve u redu.

 

 

 

Dijagram toka HSRP poruka

 

Rad HSRP-a pojednostavljeno radi ovako:

1. Kreiramo HSRP grupe,pripadajuće IP adrese i druge parametre, na svim Routerima

2. Šalju se Hello paketi od strane svih Routera koji koriste HSRP, svake 3 sekunde na sve routere (zapravo na multicast adresu 224.0.0.2 na koju su “pretplačeni” svi routeri)

3. Na osnovi ovih paketa se odlučuje (rade se izbori [election]) koji Router će postati “Active”.

4. Kreira se Virtualna IP adresa i virtualna MAC adresa za koju je zadužen aktivni router

 

Oblik virtualne MAC adrese za svaku HSRP grupu je :

00:00:0C 07:AC _ _
Cisco ID HSRP ID ID (broj) HSRP grupe

 

Potom virtualnu MAC adresu zapamti prvi Switch i stavi ju u svoju tablicu (MAC →  Port Nr.)

Dakle “ljepi” se MAC adresa na port na switchu na kojem je aktivni HSRP Router, prema kojoj se svi paketi prosljeđuju na njega.

5. Šalju se (i očekuju) paketi unutar 10. sekundi, nakon toga ponovno se šalju i primaju novi, ako je sve po starom ništa se ne mijenja a ako se pojavio Router sa većim HSRP prioritetom (ovo se dešava za svaku HSRP grupu) skače se na točku 2 te se preskače na točku 4.

 

Standardno se svake 3 sekunde šalju poruke i drže se 10 sekundi. Dakle može se reći i ovako – ako poruka ne stigne od trenutno aktivnog routera unutar Holdtime-a (default 10 sekundi) , nakon toga dolazi do reizbora novog aktivnog routera koji switchevima šalje promijenu za virtualnu MAC adresu – dakle sada switchevi imaju port spojen na njega kao destination virtualnu MAC adresu od virtualne IP adrese (tako za svaku HSRP grupu)

5.1 Poseban slučaj tj. iznimka je slučaj kada smo uključili praćenje (track) nekog interface-a, pr:

standby 1 track  FastEthernet 0/0

 

⇒ Ako se dogodi ispad interface-a, koji se prati, u roku od nekoliko milisekundi isti router šalje Hello paket sa porukom u kojoj se vidi da mu je pao prioritet. Gotovo trenutno prvi slijedeći Router (po HSRP prioritetu) preuzima ulogu aktivnog.

6.Povratak na točku 1.

 

 

 

Sada se možemo vratiti na Hello Time i Hold Time.

Ako želimo optimizirati/mijenjati timere, osnovno pravilo kaže:

Hold Time = min. 3 x Hello Time

Zbog čega 3 x Hello Time →   jer je nedolazak 3 paketa ili isticanje Hold Time-a okidač za reizbore unutar HSRP grupe.

 

Naš primjer bi bio tuning HSRP-a sa brzinama VRRP-a:, dakle smanjivanje na slanja paketa svake sekunde i istek vremena na 4 sekunde, što je dovoljno da 3 paketa dođu.

standby 1 timers 1 4

standby 10 timers 1 4

 

Možemo ići i dalje (brže), te smanjiti vrijeme u milisekunde (150ms i 600ms)

standby 1 timers msec 150 msec 600

standby 10 timers msec 150 msec 600

 

 

Sa ovim zadnjim postavkama možemo biti sigurni da će se sve odigrati ispod jedne sekunde.

Napomena : treba biti oprezan i ne pretjerivati jer pr. ovako generiramo pakete svakih 150ms i dodatno opterečujemo Router (ili Layer3/4 Switch) !! .

 

Nakon što smo oba routera konfigurirali za dvije HSRP grupe,  pogledajmo što nam govore HSRP statusi:

 

Router 1

Router1#sh standby
FastEthernet0/1 - Group 1
State is Active
2 state changes, last state change 00:01:27
Virtual IP address is 20.20.20.254
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.676 secs
Preemption disabled
Active router is local
Standby router is 20.20.20.2, priority 100 (expires in 8.052 sec)
Priority 105 (configured 105)
IP redundancy name is "hsrp-Fa0/1-1" (default)
FastEthernet0/1 - Group 10
State is Standby
2 state changes, last state change 00:01:03
Virtual IP address is 20.20.20.253
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.644 secs
Preemption disabled
Active router is 20.20.20.2 priority 105 (expires in 8.524 sec)
Standby router is local
Priority 100 (default 100)
IP redundancy name is "hsrp-Fa0/1-10" (default)

Router 2:

Router2#sh standby
FastEthernet0/1 - Group 1
State is Standby
1 state change, last state change 00:01:32
Virtual IP address is 20.20.20.254
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.876 secs
Preemption disabled
Active router is 20.20.20.1, priority 105 (expires in 9.560 sec)
Standby router is local
Priority 100 (default 100)
IP redundancy name is "hsrp-Fa0/1-1" (default)
FastEthernet0/1 - Group 10
State is Active
1 state change, last state change 00:01:24
Virtual IP address is 20.20.20.253
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.000 secs
Preemption disabled
Active router is local
Standby router is 20.20.20.1, priority 100 (expires in 9.556 sec)
Priority 105 (configured 105)
IP redundancy name is "hsrp-Fa0/1-10" (default)

 Iz ispisa statusa HSRP-a, vidljivo je :

Za HSRP grupu 1 :

State is Active , – Za Router 1  , za Router 2 : Standby

Vidimo da Hello paketi istiću za 8.052 tj .

Virtualna IP : 20.20.20.254,

Virtualna MAC – podsjetimo se opisa  : 0000.0C07.ac01 

Hello time : 3.sec, HoldTime 10.s ec. (dakle vidljivo da smo ostavili default parametre)

Vidimo i da je preemption isključen.

 

Za HSRP grupu 10 :

State is Active , – Za Router 2  , za Router 1 : Standby

Vidimo da Hello paketi istiću za  9.556 sec.

Virtualna IP : 20.20.20.253,

Virtualna MAC – podsjetimo se opisa  : 0000.0C07.ac0a 

Hello time : 3.sec, HoldTime 10.s ec. (dakle vidljivo da smo ostavili default parametre)

Vidimo i da je preemption isključen.

 

 

 

Brza usporedba HSRP i VRRP protokola:

Razlike između HSRP i VRRP su minimalne, praktično u brzini konvergencije (koja je po default-u na strani VRRP ali se može konfigurirati u HSRP na istu ili bržu razinu).

Osim toga HSRP radi samo na Cisco opremi dok VRRP  radi na opremi svih proizvođaća (uključujući Cisco)

 

Timeri :

=======

HSRP : Hello time : 3 sekunde , Hold Time 10 sekundi

VRRP: Hello time : 1 sekunda , Hold Time 3 sekunde

 

 

Brza usporedab HSRP/VRRP i GLBP protokola :

HSRP i VRRP rade na principu Active/Standby (prema VRRP terminolgiji : Master/Backup) tj. samo jedan uređaj u svakoj grupi je aktivan te se iskorištava samo link aktivnog uređaja.

Kod GLBP (Gateway Load Balancing Protocol) protokola promet ide kroz sve uređaje te se iskorištavaju svi linkovi istovremeno, prema nekom od ponuđenih Load Balancing algoritama:

 

1. Round-robin : Na osnovi liste aktivnih (živih) routera se prosljeđuje promet sa krajnjih računala sekvencijalno prema routerima:

Pr. Ako imamo dva routera i 4 PC računala:

PC1 <==> Router 1

PC2 <==> Router 2

PC3 <==> Router 1

PC4 <==> Router 2

2. Weighted load-balancing :   Load Balancing algoritam koji na osnovi “težinskog” koeficjenta daje veći ili manji prioritet u opterečenju (slanju prometa) na određeni GLBP router u odnosu na ostale GLBP Routere.

 

3. Host-dependent : Promet će se raspoređivati prema GLBP routerima  tako da će  svaki puta isti host (krajnje računalo) prolaziti kroz isti Router:

Pr. Dva routera i 4 PC računala :

PC1 <==> Router 1 (svaki puta PC1 ide samo na Router 1),

PC2 <==> Router 2 (svaki puta PC2 ide samo na Router 2),

PC3 <==>Router 1 (svaki puta PC3 ide samo na Router 1),

PC4 <==> Router 2 (svaki puta PC4 ide samo na Router 2)

 

ali o detaljima o GLBP u nekom drugom članku.

 

 

Autor: Horvat Hrvoje

Hrvoje Horvat avatar
Hrvoje Horvat
Hrvoje Horvat mrežni je i sistem inženjer s dugogodišnjim (18+ g.) iskustvom u razvoju, testiranju i implementaciji, od najmanjih do enterprise kategorije IT sustava. Njegova područja rada su od mrežnih protokola do mrežnih servisa, preko standardne mrežne opreme do specijaliziranih komponenti i sustava, preko raznih mrežnih elemenata i sustava za mrežnu pohranu i dijeljenje podataka te platformi za Virtualizaciju, do protokola i sustava za redundanciju te sustava visoke dostupnosti (HA).