Routing & Switching

Hot Standby Router Protocol

Hot Standby Router Protocol HSRP
W: Routing & Switching

HSRP, czyli Hot Standby Router Protocol, to protokół z grupy FHRP (First Hop Redundancy Protocol) opatentowany przez firmę Cisco w 1994 roku. Jego celem jest zapewnienie redundantności bramy domyślnej w przypadku awarii, bez konieczności zmian w konfiguracji urządzeń końcowych.

W HSRP urządzenia, takie jak routery czy switche warstwy trzeciej, przypisuje się do grup o numerach od 0 do 255. Przypisanie odbywa się na poziomie interfejsu fizycznego lub logicznego. Oznacza to, że nasze urządzenie może być członkiem wielu grup HSRP jednocześnie, zapewniając redundantność dla wielu sieci VLAN.

Grupa HSRP powinna składać się co najmniej z dwóch routerów, z których każdy może pełnić jedną z następujących ról:

  • Active – Jeden router odpowiedzialny za przekazywanie ruchu w grupie.
  • Standby – Drugi router oczekujący w gotowości, aby przejąć rolę Active.
  • Listen – Pozostałe urządzenia w grupie oczekujące na przejęcie roli Standby.

Konfiguracja

Konfiguracja HSRP jest bardzo prosta i polega na użyciu słowa kluczowego standby, numeru grupy oraz wirtualnego adresu 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 przypisany adres IP interfejsu oraz adres wirtualny dla grupy HSRP. Na podstawie tego ostatniego tworzony jest wirtualny adres MAC, którym router Active odpowiada na zapytania ARP urządzeń końcowych dotyczące adresu MAC bramy domyślnej.

Router pełniący rolę Active domyślnie wysyła pakiety Hello co 3 sekundy. Są one wysyłane na adres multicastowy 224.0.0.2 przy użyciu UDP 1985.

Router Standby nasłuchuje tych pakietów przez 10 sekund (domyślny timer Hold-Time), po czym 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żna 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
💡
Uwierzytelnienie w HSRP może stwarzać fałszywe poczucie bezpieczeństwa. Brak uwierzytelnienia między hostami prowadzi do sytuacji, w której oba rozgłaszają adres bramy domyślnej. To z kolei może prowadzić do niestabilności oraz routingu asymetrycznego.

Wybór routera Active

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

Preempt

Domyślnie router, który przyjął rolę Active, będzie utrzymywał ją nawet wtedy, gdy w sieci pojawi się urządzenie z wyższym priorytetem. Mechanizm preemption umożliwia przejęcie roli Active. Warto dodatkowo skonfigurować opóźnienie, aby urządzenia powodujące flapy nie destabilizowały sieci. Konfigurację preemption przeprowadza się 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

Awaria jednego z routerów nie stanowi problemu w przypadku HSRP. W zależności od timerów router Standby przejmie rolę Active i rozpocznie przesyłanie ruchu. 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 śledzenia (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 musi przejść przez szereg stanów, zanim przejmie rolę Active:

  1. Disable – nieużywany router
  2. Initialize – uruchomienie działania
  3. Learn – stan przejściowy między podłączeniem do sieci a gotowością do działania, proces „uczenia się”
  4. Listen – oczekiwanie na wiadomość „Hello” informującą o funkcjach
  5. Speak – oczekiwanie i wysyłanie wiadomości „Hello” co 3 sekundy
  6. Standby – tryb czuwania, w którym router dąży do przejęcia roli w przypadku awarii głównego urządzenia
  7. Active – pełnienie roli aktywnego routera

Load balancing

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 przypadku 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 balansowania obciążenia, przy odrobinie planowania można ten efekt z powodzeniem uzyskać.

Czy stosujesz w swojej sieci HSRP?

Napisane przez
Rafał Rudewicz
Pasjonat sieci komputerowych i automatyzacji. CCNP Enterprise & DevNet Specialist. IP/MPLS SME. Dołącz do mnie, aby razem odkrywać fascynujący świat technologii!
Komentarze
Spis treści
Świetnie! Udało ci się pomyślnie zarejestrować.
Witaj z powrotem! Zalogowałeś się pomyślnie.
Pomyślnie subskrybowałeś Inna Sieć.
Twój link wygasł.
Sukces! Sprawdź swoją skrzynkę e-mailową, aby uzyskać magiczny link do logowania.
Sukces! Twoje informacje rozliczeniowe zostały zaktualizowane.
Twoje informacje rozliczeniowe nie zostały zaktualizowane.