CCNP Switch 300-115 – Redundancja HSRP

Dodaj komentarz | , autor: Damian Michalak

PODAJ TO

HSRP, czyli Hot Standby Router Protocol, jest protokołem zastrzeżonym przez Cisco, powstałym w 1994 roku i zdefiniowanym w RFC 2281. Protokół ten możemy zatem używać jedynie na urządzeniach wyprodukowanych przez Cisco. Zadaniem HSRP jest świadczenie redundancji bramy domyślnej, o której możesz przeczytać we wcześniejszym artykule “FHRP – wszystko co musisz wiedzieć o redundancji bramy domyślnej“. Na wstępie chciałbym podkreślić, że wszędzie gdzie będzie mowa o routerach, możemy równie dobrze mówić o switchach warstwy trzeciej.

Podstawy

W artykule tym rozważania będę opierał na poniższej topologii, która przedstawia typowy przypadek użycia protokołu HSRP:
hsrpW HSRP routery przypisujemy do wspólnej grupy HSRP, której numer może wynosić od 0 do 255. Przypisania tego dokonujemy na poziomie interfejsu, któremu chcemy zapewnić redundancję. Pierwsza podstawowa komenda to zdefiniowanie wirtualnego adresu IP, który będzie współdzielony przez routery należące do tej samej grupy HSRP. Do konfiguracji HSRP używamy słowa kluczowego “standby“, a następnie numeru grupy, którą chcemy konfigurować.

Warto zwrócić uwagę, że nie trzeba podawać maski sieciowej – router użyje maski z interfejsu, na którym konfigurujemy daną grupę HSRP. Standby IP konfigurujemy oczywiście na obu routerach.

W momencie utworzenia wirtualnego adresu IP, router automatycznie tworzy także wirtualny adres MAC. W momencie gdy host PC1 będzie chciał rozwiązać adres bramy sieciowej 10.0.0.1 na adres MAC, router będący w danej chwili w stanie active odpowie na komunikat ARP wirtualnym adresem MAC. Adres ten ma następującą postać:

0000.0C07.AC01
gdzie:
0000.0C – identyfikator producenta – w tym przypadku Cisco (24 bity)
07.AC – identyfikator protokołu HSRP (16 bitów)
01 – identyfikator grupy HSRP (8 bitów)

Dobrą praktyką jest przypisywanie do grupy HSRP takiego samego numeru, jak numer VLANu dla którego dana grupa będzie świadczyła redundancję (jeśli oczywiście konfigurujemy HSRP dla interfejsów SVI). Warto jednak podkreślić, że wiele switchy Cisco Catalyst obsługuje jedynie do 16 unikalnych numerów grup. Co istotne, grupy muszą być unikalne jedynie w obrębie danego interfejsu – innymi słowy, są lokalnie znaczące (locally significant). Możemy więc przykładowo przypisać grupę 1 zarówno do interfejsu VLAN 10 jak i VLAN 11:

Aby grupa spełniała warunki redundancji musimy mieć oczywiście przynajmniej dwa routery, możliwe jest jednak aby w jednej grupie znajdowały się więcej niż dwa urządzenia. Jedno z urządzeń zostaje wybrane w drodze elekcji jako pełniące funkcję aktywnej bramy – czyli active router, inne natomiast jako brama zapasowa – czyli standby router. Wszystkie pozostałe urządzenia w grupie HSRP przechodzą natomiast w stan nasłuchiwania (listen).

Timery

Router będący w stanie active wysyła w regularnych interwałach (domyślnie co 3 sekundy) komunikaty Hello. Na komunikaty te nasłuchuje jedynie urządzenie w stanie standby, dzięki czemu pozostaje ono świadome stanu aktywnego routera. Komunikaty te wysyłane są na multicastowy adres 224.0.0.2 (wszystkie routery) przy użyciu portu UDP 1985. Standby router posiada również Hold-timer, ustawiony domyślnie na 10 sekund. Oznacza to, że jeśli komunikat Hello od aktywnego urządzenia nie zostanie odebrany w ciągu 10 sekund to router standby stwierdzi jego niedostępność i przejdzie w stan active. Warto mieć na uwadze, że HSRP, jako protokół z 1994 roku ma domyślne wartości timerów niedostosowane do dzisiejszych realiów. Dobrą praktyką jest zatem zmniejszenie ich wartości aby skrócić czas konwergencji. W komendzie najpierw podajemy wartość timera Hello, a następnie Holdtime. Domyślnie wartości są interpretowane w sekundach, możemy natomiast zejść na poziom milisekund, poprzedzając każdą wartość słowem kluczowym “msec“:

Priorytety

O wyborze aktywnego routera decyduje mechanizm elekcji wykorzystujący priorytety, których wartość może wynosić od 0 do 255. Każdy router w grupie HSRP posiada domyślny priorytet wynoszący 100. Elekcję wygrywa urządzenie posiadające najwyższy priorytet. Do ustawienia priorytetu używamy słowa kluczowego (a jakże by inaczej) – priority:

Preemption

Jeśli wszystkie priorytety są równe to elekcję wygrywa urządzenie posiadające najwyższy adres IP na interfejsie przynależącym do grupy HSRP. Urządzenie, które uzyskało drugi rezultat przyjmuje stan standby. W przypadku gdy dopiero co uruchamiamy urządzenia w sieci to pierwszy router, który “podniesie” swój interfejs HSRP przejdzie w stan active – nawet jeśli jego priorytet nie jest najwyższy. Aby router z największym priorytetem przejął stan active to należy na nim skonfigurować specjalną funkcjonalność – preemption. W przeciwnym wypadku priorytet będzie znajdował swoje zastosowanie tylko w sytuacji kiedy aktywny router przestaje działać.

Przejęcie stanu active możemy opóźnić. Jest to często pożądane – wyobraźmy sobie sytuację, w której poprzednio aktywny router “flapuje”. W takiej sytuacji preemption spowoduje oddanie stanu active routerowi, który lada chwila stanie się nieosiągalny. Skutki można sobie łatwo wyobrazić. W celu skonfigurowania opóźnienia dodajemy do komendy słowo kluczowe “delay“, a po nim opcję “minimum” lub “reload“. Możemy też użyć obie te opcje. “Minimum” określa nam opóźnienie przejęcia po wykryciu przez router, że to on ma najwyższy priorytet. “Reboot” opóźnia natomiast próbę przejęcia stanu active po zrestartowaniu urządzenia. Cisco rekomenduje aby wartość ta wynosiła połowę czasu, jaki routerowi zajmuje pełny restart (przykładowo dla 2 minut będzie to 60 sekund). Wartość opóźnienia podajemy w sekundach:

Stany HSRP

Przechodzenie w stan active jest wieloetapowe – proces HSRP na każdym urządzeniu musi przejść przez szereg stanów:

1. Disabled
2. Initialize
3. Learn
4. Listen
5. Speak
6. Standby
7. Active

Maszyna stanowa HSRP jest nieco bardziej złożonym tematem, który zostanie pewnie kiedyś przeze mnie omówiony w osobnym artykule. Zainteresowanych samodzielnym zgłębieniem tego tematu odsyłam tymczasem na stronę Cisco.

Uwierzytelnianie

Aby zabezpieczyć HSRP możemy uruchomić uwierzytelnianie. Pierwsza metoda nie należy do najskuteczniejszych: na obu urządzeniach, na których działa HSRP, definiujemy klucz w postaci zwykłego ciągu znakowego. Klucz ten jest przesyłany wraz z komunikatami HSRP w czytelnej postaci:

Znacznie lepszym pomysłem jest zastosowanie uwierzytelniania MD5. W tym celu podajemy w komendzie nasz klucz w postaci czytelnej (słowo kluczowe “0”) lub zaszyfrowanej (słowo kluczowe “7”):

Możemy też skonfigurować oczywiście uwierzytelnianie za pomocą pęku kluczy (key-chain):

HSRP nie posiada co prawda mechanizmu load-balancingu (w przeciwieństwie do GLBP), możemy jednak użyć funkcje HSRP w taki sposób aby użyć posiadane routery w maksymalnie efektywny sposób. W tym celu posiadając przykładowo dwa routery, należy jeden z nich skonfigurować jako active router dla połowy używanych w naszej sieci VLANów, odpowiednio manipulując priorytetem. Oczywiście drugi router konfigurujemy w takim wypadku jako active router dla drugiej połowy VLANów.

Tracking

HSRP będzie doskonale zapewniało redundancję w wypadku awarii jednego z routerów. Co jednak z sytuacją, w której łącze WAN na aktywnym routerze staje się nieużywalne (przykładowo interfejs zmienia stan na up/down lub down/down)? Z pomocą przychodzi funkcja śledzenia/monitorowania stanu interfejsu – track. Konfiguracja jest banalna i polega na określeniu wartości o jaką zostanie zmniejszony priorytet aktywnego routera w przypadku wykrycia zmiany stanu interfejsu:

W powyższym przykładzie, gdy interfejs FastEthernet0/1 zmieni status na “down”, priorytet HSRP dla grupy 10 zostanie zmniejszony o 20.

Sytuacja ulega skomplikowaniu gdy co prawda łącze WAN na aktywnym routerze działa, ale problem z komunikacją pojawia się gdzieś dalej, np. u dostawcy usług internetowych. W takim wypadku, z pomocą przychodzi dostępna na urządzeniach Cisco funkcja IP SLA, o której jednak porozmawiamy w jednym z kolejnych artykułów.

Podsumowanie

To by było na tyle w temacie HSRP. Czy jest coś co mógłbym sprecyzować? Pominąłem jakiś istotny szczegół? A może jest jakiś konkretny temat, o którym chcesz przeczytać w następnym artykule? Daj znać w komentarzu!

SPODOBAŁ CI SIĘ TEN ARTYKUŁ?
Dołącz do moich subskrybentów, a nie przegapisz kolejnych ciekawych artykułów!

Nie ujawnię nikomu Twojego adresu. Zero spamu.
Damian MichalakCCNP Switch 300-115 – Redundancja HSRP