HSRP, czyli Hot Standby Router Protocol to protokół z grupy FHRP (first-hop redundancy protocol) opatentowany przez Cisco w 1994r. Jego zadaniem jest zapewnienie redundancji bramy domyślnej w przypadku awarii, bez potrzeby zmiany w konfiguracji urządzeń końcowych.
W HSRP urządzenia takie jak routery czy switche L3 przypisujemy do grup od 0 do 255. Przypisanie dokonuje się na poziomie interfejsu fizycznego lub logicznego. Oznacza to, że nasze urządzenie może uczestniczyć w wielu grupach HSRP równocześnie, zapewniając redundancje dla wielu vlanów.
Grupa HSRP powinna zawierać przynajmniej dwa routery i każdy z nich może przyjąć jedną z następujących ról:
- Active – Jeden router, odpowiedzialny za przekazywanie ruchu w grupie.
- Standby – Jeder router, czeka w gotowości, aby przejąć rolę Active.
- Listen – Pozostałe urządzenia w grupie oczekują, aby przejąć rolę standby.
Konfiguracja HSRP
Konfiguracja HSRP jest bardzo prosta i sprowadza się do użycia słówka kluczowego standby numer grupy oraz wirtualny adres IP.
R1(config)# interface vlan 100
R1(config-if)# ip address 192.168.0.2 R1(config-if)# standby 100 ip 192.168.0.1
W konfiguracji mamy więc przypisany adres IP interfejsu oraz wirtualny dla grupy HSRP. Na podstawie tego ostatniego tworzony jest wirtualny adres MAC, którym router Active odpowiada na zapytanie ARP urządzeń końcowych o adres MAC bramy domyślnej.
Router pełniący rolę Active, domyślnie wysyła pakiety Hello co 3 sekundy. Wysyłane one są na adres multicastowy 224.0.0.2 przy użyciu UDP 1985. Router Standby nasłuchuje tych pakietów przez 10s (domyślny timer Hold-Time), po tym czasie stwierdza awarię routera Active i przejmuje jego rolę. Oba timery mogą być modyfikowane i zejść nawet do poziomu milisekund.
R1(config-if)# standby 100 timers msec 100 msec 300
Urządzenia w grupie HSRP możemy zabezpieczyć, konfigurując uwierzytelnianie (jawnym hasłem, MD5 lub za pomocą key-chain):
R1(config-if)# standby 100 authentication innasiec R1(config-if)# standby 100 authentication md5 key-string 0 innasiec R1(config-if)# standby 100 authentication md5 key-string 7 ab2805223b065a411824ca95063bf51c
R1(config-if)# standby 100 authentication md5 key-chain innasiec
Wybór routera active HSRP
W grupie HSRP routerem Active zostaje ten z najwyższym priorytetem. Wartość tego parametru może przyjmować wartość od 0 do 255. Domyślnie każde urządzenie ma ten parametr ustawiony na 100. Jeśli mamy remis, wygrywa router z najwyższym adresem IP w danej grupie.
Priorytet konfigurujemy w następujący sposób:
R1(config)# interface vlan 100 R1(config-if)# standby 100 priority 110
Preemption HSRP
Domyślnie router, który przyjął rolę Active, będzie ją utrzymywał, nawet jeśli w sieci pojawi się urządzenie z wyższym priorytetem. Preemption jest mechanizmem pozwalającym na przejęcie roli Active. Dodatkowo warto skonfigurować opóźnienie, tak aby flapujące urządzenie nie destabilizowało sieci. Preemption konfigurujemy w następujący sposób:
R1(config)# interface vlan 100 R1(config-if)# standby 100 preempt
R1(config-if)# standby 100 preempt delay 300
Track HSRP
Awaria jednego z routerów, w przypadku HSRP nie stanowi problemu. W zależności od timerów router Standby przejmie rolę Active i zacznie przesyłać ruch. Co jednak w przypadku gdy router Active działa, ale jego łącze uplinkowe (do ISP lub dalej sieć) uległo awarii?
Z pomocą przychodzi opcja track. Monitoruje ona konkretny interfejs i w momencie gdy zmieni on status, odpowiednio zmieni priorytet, tak, aby Standby mógł przejąć rolę Active.
R1(config-if)# standby 100 track gi0/0 20
Stany HSRP
Router, zanim przejmie rolę Active, musi przejść przez szereg stanów:
- Disable – nieużywany router
- Initialize – zainicjowanie działania
- Learn – stan przejściowy między podłączonym do sieci a gotowym do działania routerem, „uczenie się”
- Listen – nasłuchiwanie na wiadomość „Hello”, czyli informacji o pełnionych funkcjach
- Speak – nasłuchiwanie i nadawanie własnej wiadomości „Hello”. Wiadomość „Hello” jest wysyłana co 3 sekundy.
- Standby – tryb czuwania, który w momencie awarii głównego urządzenia dąży do przejęcia jego roli
- Active – działanie jako aktywny router
Load balancing HSRP
Wdrożenie HSRP w sieci oprócz korzyści, niesie ze sobą również pewien problem. Ponieważ tylko router Active przekazuje ruch, router Standby w tym czasie jedynie nasłuchuje czy aktywny nadal pracuje.
W takim wypadku warto odpowiednio podzielić vlany, tak aby jeden z routerów był Active dla połowy, a drugi z pary pełnił rolę Active dla pozostałych.
W ten sposób stosując prostą inżynierię ruchu, osiągamy pewien stopień rozłożenia ruchu w sieci, jednocześnie nie rezygnując z redundancji oferowanej przez HSRP.
Podsumowanie
HSRP jest jednym z kluczowych protokołów podnoszących niezawodność w sieciach kampusowych.
Pomimo braku wbudowanego mechanizmu load-balancingu, przy odrobinie planowania można ten efekt z powodzeniem uzyskać.
Stosujesz w swojej sieci HSRP?
A jak wygląda dostępność tego rozwiązania poza Cisco?
HSRP jest protokołem Cisco i nie jest dostępny dla innych producentów. VRRP jest jego odpowiednikiem jako standard IEEE.