Princíp HSRP
V praxi je bežné, že máme v lokálnej sieti redundantné cesty na L2 (podľa OSI modelu), takže výpadok niektorého aktívneho prvku alebo prepojovacieho kábla nepreruší komunikáciu v celej sieti. V takejto sieti bežne prevádzkujeme celú radu VLAN a tie sú medzi sebou spojené pomocou inter-VLAN routingu . Táto komunikácia je už na L3 a my potrebujeme riešiť výpadok switche / routeru, ktorý všetky VLANy prepája a slúži ako brána (gateway). Je to o to zložitejšie, že všetky stanice majú zadanú IP adresu tohto routera ako svoju gateway. Práve túto situáciu nám rieši HSRP, kedy síce potrebujeme záložný router, ale v prípade výpadku sa komunikácia automaticky prepne na tento záložný. Navyše záložný router môže byť menej výkonný.
Pozn .: Rovnaká je aj situácia, kedy sa jedná o centrálnej bránu, ktorú sme pripojení do internetu. Ovšem býva to zložitejšie o to, že tu väčšinou beží Firewall.
HSRP je proprietárny protokol firmy Cisco. Existuje aj štandardizovaný protokol, svojou funkciou zhodný, ktorý sa volá Virtual Router Redundancy Protocol – VRRP . Podľa mojich skúseností sa však v praxi viac používa práve verzie od Cisca, teda HSRP.
Princíp funkcie je taký, že máme virtuálne IP adresu (interfacu) brány, ktorú používajú klienti, ak nej virtuálne MAC adresu . Tieto virtuálne adresy zdieľa nakonfigurované skupina routerov (ich rozhraní majú svoju vlastnú IP a MAC adresu). Jeden z routerov je vybratý ako aktívny , ten drží virtuálne adresy, a ostatné sú standby (záložné). HSRP detekuje výpadok aktívneho routeru a v tom prípade standby router prevezme virtuálne IP a MAC adresu a tým sa stane aktívnym zariadením, ktoré routuje prevádzku. Informácie o dostupnosti routeru sa vykonáva pomocou Hello paketov.
Ako je vidieť, tak štandardne máme jeden aktívny router, ktorý pracuje, a jeden záložný, ktorý len čaká na výpadok aktívneho. Pomocou Hot Standby group môžeme vytvoriť viac konfigurácií pre rôzne skupiny VLAN a rozdielne nastaviť aktívny a standby router, takže dochádza k vyvažovanie (manuálnemu) záťaže.
Hlavné vlastnosti
- popísané v RFC 2281
- z routerov, ktoré sú súčasťou HSRP skupiny, sa jeden zvolí ako primárny – active , jeden ako záložný – standby a ostatní počúvajú – listen
- HSRP skupiny môžu mať čísla 0 až 255, ale často môžeme použiť maximálne 16 skupín dohromady
- podporuje Ethernet, FDDI, Token Ring
- skupina používa virtuálne IP adresu a MAC adresu
0000.0c07.acXX
, kdeXX
je číslo skupiny - aktívny router sa volí podľa standby priority , vyššia hodnota víťazí, defaultná je 100 z rozsahu 1 až 255
- standby track interface priority je 10
- to že je aktívna router živý sa overuje pomocou hello paketu , ktorý sa štandardne posiela každé 3s
- ak po dobu holdtime (defaultne 10s) nedostane hello paket , tak vyhlási aktívny router za nefunkčné
- prechádza sa niekoľko stavov – Disabled, Init, Learn, Listen, Speak (začína posielať hello pakety), Standby, Active
Konfigurácia HSRP
HSRP môžeme konfigurovať na L3 rozhranie:
- VLAN interface (SVI)
- fyzický routovanie port
- EtherChannel
Vlastné zapnutie HSRP na interfacu sa vykonáva príkazom
SWITCH (config-if) # standby 1 ip 192.168.1.1
Kde číslo 1 je číslo skupiny , môže nadobúdať hodnoty 0 až 255, kedy 0 je defaultný a nemusí sa zadávať. IP adresa je virtuálna adresa brány.
Príklad základného nastavenia
Switch1 (config) # interface vlan 100
Switch1 (config-if) # ip address 192.168.1.2 255.255.255.0 // vlastnú adresa interfacu
Switch1 (config-if) # standby 1 ip 192.168.1.1 // zapnutie HSRP a nastavenie virtuálnej adresy
Aby malo nastavenie zmysel, tak je treba nakonfigurovať aj druhý router:
Switch2 (config) # interface vlan 100
Switch2 (config-if) # ip address 192.168.1.3 255.255.255.0
Switch2 (config-if) # standby 1 ip 192.168.1.1
Ďalším, čo asi v praxi nakonfigurujeme, je určenie priority, podľa ktorej sa volí aktívne router.
Switch1 (config-if) # standby 1 priority 150 // nastaví prioritu na 150, defaultná je 100 (rozsah 1 - 255), vhodné je voliť hodnoty väčšie
Switch1 (config-if) # standby 1 preempt // zabezpečí, aby po nabehnutí pôvodného aktívneho routeru sa stal opäť aktívnym
Takže náš predchádzajúci príklad môžeme doplniť tak, aby Switch1 bol primárne aktívny:
Switch1 (config-if) # standby 1 priority 150
Switch1 (config-if) # standby 1 preempt
Switch2 (config-if) # standby 1 priority 120
Switch2 (config-if) # standby 1 preempt
Pozn .: Pre inter-VLAN routing samozrejme musíme nakonfigurovať HSRP i pre ďalšie VLANy, ktoré sú routované. Pre rôzne VLANy môžeme použiť jednu HSRP skupinu, ale často je lepšie rozdeliť VLANy do niekoľkých skupín. Celá skupina sa vždy prepína naraz.
Pre zobrazenie informácií o HSRP máme príkaz
SWITCH # show standby
Nasledujúci príkaz nám zobrazí, ktorá strana je aktívna, a či je dostupný ďalší člen.
SWITCH # show standby brief
Pri bežnej prevádzke nesmieme zabudnúť na to, že sa medzi routery v danej VLAN musí šíriť multicasty s hello pakety , inak nám prepínanie nebude fungovať. Takže keď konfigurujeme ACL na VLAN , musíme povoliť túto komunikáciu, napríklad niečo ako:
permit udp any 224.0.0.0 0.0.0.255
Multiple HSRP
Pre load balancing môžeme použiť rozšírenie HSRP nazvanej MHSRP . To nám dovolí zadať do konfigurácie viacerých skupín s rozdielnou prioritou a časť klientov nakonfigurovať pre jeden router a časť pre druhý.
To sa môže hodiť pre niektoré situácie, ale pre bežný inter-VLAN routing skôr využijeme rôzne skupiny, takže niektoré VLANy budú štandardne routované jedným routerom a ostatné druhým.
Príklad nastavenia:
Switch1 (config) # interface g1 / 0/1
Switch1 (config-if) # no switchport // aby sa interface stal iba L3 (routovacie)
Switch1 (config-if) # ip address 192.168.1.10 255.255.255.0
Switch1 (config- if) # standby 1 ip 192.168.1.1
Switch1 (config-if) # standby 1 priority 150
Switch1 (config-if) # standby 1 preempt
Switch1 (config-if) # standby 2 ip 192.168.1.2
Switch1 (config-if) # standby 2 priority 110
Switch1 (config-if) # standby 2 preempt
Switch2 (config) # interface g1 / 0/1
Switch2 (config-if) # no switchport // aby sa interface stal iba L3 (routovacie)
Switch2 (config-if) # ip address 192.168.1.11 255.255.255.0
Switch2 (config- if) # standby 1 ip 192.168.1.1
Switch2 (config-if) # standby 1 priority 110
Switch2 (config-if) # standby 1 preempt
Switch2 (config-if) # standby 2 ip 192.168.1.2
Switch2 (config-if) # standby 2 priority 150
Switch2 (config-if) # standby 2 preempt
Pre konfiguráciu HSRP je k dispozícii ešte rad ďalších možností, pre bežnú prax však stačí iba to vyššie uvedené.
ICMP Internet Router Discovery Protocol – IRDP
- popísané v RFC 1256
- hosť si pomocou ICMP zistí skutočnú adresu routera (nepoužíva sa virtuálne)
- počúva multicastovej pakety od routerov a podľa nich nájde GW na svojom subnetu
- používa správy ICMP router advertisement (periodicky) a router solicitation
- ak nedostane pravidelnú správu od svojej GW, tak prepne na záložné
- perióda odosielanie advertisement býva v poriadku minút, takže prepnutie na záložné router môže trvať dlho
- ak stanica naštartuje, tak nemusíme čakať, než dorazí advertisement , ale môžeme odoslať solicitation správu ako dotaz na údaje
Virtual Router Redundancy Protocol – VRRP
- štandard opísaný v RFC 2338
- veľmi podobné HSRP
- používa virtuálny router, ktorý má virtuálne IP adresu a MAC
0000.5e00.01xx
, kdexx
je číslo skupiny v hexa (VRID) - hlavný router je master, má najvyššiu prioritu (môže nadobúdať hodnoty 1 až 254, 100 je default) v skupine (skupiny majú číslo 0 až 255)
- ostatné routery sú backup
- každú 1s (default) posiela advertisement
- defaultne používa preempt – keď je dostupný router s vyššou prioritou, preberá úlohu master
- nemá žiadny mechanizmus pre interface tracking (sledovanie stavu interfacu a podľa toho úprava priority)
- ako virtuálna IP adresa sa môže použiť skutočná IP adresa jedného z routerov
Gateway Load Balancing Protocol – GLBP
- Cisco proprietárnu protokol, ktorý k vlastnostiam obdobným ako HSRP pridáva Load Balancing
- všetky routery v skupine forwardují dáta, využíva Load Balancing per hosť pomocou Round Robin (nemá žiadny vzťah k záťaži)
- Load Balancing je pomocou ARP odpovedí, kedy sa odosiela MAC adresa vybraného routera zo skupiny
- klienti majú rovnakú IP adresu brány, ale inú MAC adresu
- routery posielajú (defaultne) hello paket každé 3s na multicast adresu
224.0.0.102 UDP port 3222
- volí Active Virtual Gateway (AVG), ktoré prideľuje virtuálne MAC adresy
- routery, ktoré prijmú túto MAC, sa označujú ako Active Virtual Forwarder (AVF), môže ich byť max. 4 pre skupinu
- podporuje Weighting – určuje, či router funguje ako AVF, keď hodnota klesne, pod danú hranicu, tak nie je AVF a tracking – sleduje stav interfacu, a keď ide interface dole, tak sa zníži hodnota Weighting
Príklad funkcie Weighting a interface tracking:
SWITCH (config) # track 1 interface serial 2/0 line-protocol
SWITCH (config) # interface f0 / 1
SWITCH (config-if) # glbp 10 Weighting 110 lower 95 upper 105
SWITCH (config-if) # glbp 10 Weighting track 1 decrement 10