Więcej

    Redundancja HSRP

    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:

    Topologia HSRP
    Topologia HSRP

    W 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ć.

    R1(config)# interface f0/0
    R1(config-if)# standby 1 ip 10.0.0.1
    R2(config)# interface f0/0
    R2(config-if)# standby 1 ip 10.0.0.1

    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:

    R1(config)# interface vlan 10
    R1(config-if)# standby 1 ip 10.0.10.1
    R1(config-if)# exit
    R1(config)# interface vlan 11
    R1(config-if)# standby 1 ip 10.0.11.1

    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„:

    R1(config-if)# standby 1 timers 1 3
    R1(config-if)# standby 1 timers msec 100 msec 300

    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:

    R1(config)# interface f0/0
    R1(config-if)# standby 1 priority 110

    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ć.

    R1(config-if)# standby 1 preempt

    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:

    R1(config-if)# standby 1 preempt delay minimum 10 reload 60

    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:

    R1(config-if)# standby 1 authentication nssrules

    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”):

    R1(config-if)# standby 1 authentication md5 key-string 0 nssrules
    R1(config-if)# standby 1 authentication md5 key-string 7 b846a2349a645151fc37723d9d268358

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

    R1(config)# key chain NSS
    R1(config-keychain)# key 1
    R1(config-keychain-key)# key-string 0 nssrules
    R1(config)# interface f0/0
    R1(config-if)# standby 1 authentication md5 key-chain NSS

    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:

    R1(config-if)# standby 1 track s0/0 20

    W powyższym przykładzie, gdy interfejs Serial0/0 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.

    To by było na tyle w temacie HSRP.

    Czy jest jakiś konkretny temat, o którym chcesz przeczytać w następnym artykule?

    🗳 Jak przydatna była ta publikacja?

    Średnia ocena 5 / 5. Ilość głosów: 13

    Brak ocen. Bądź pierwszy!

    Dziękujemy za ocenę! Zapraszamy Cię do obserwowania NSS w mediach społecznościowych!

    Przykro nam, że ta publikacja okazała się być dla Ciebie nieprzydatna!

    Uwaga: Twój głos będzie liczony tylko jeśli udzielisz feedbacku używając formularza poniżej.

    Jak możemy poprawić tę publikację?

    Damian Michalak
    Network Consultant, Twórca Na Styku Sieci

    2 KOMENTARZE

    guest
    2 - Ilość komentarzy
    Sortuj wg najstarszych
    Sortuj wg najnowszych Sortuj wg najlepszych
    Inline Feedbacks
    View all comments
    kamil

    Czy tu nie ma błędu?
    W powyższym przykładzie, gdy interfejs FastEthernet0/1 zmieni status na “down”, priorytet HSRP dla grupy 10 zostanie zmniejszony o 20.
    Powinno być
    W powyższym przykładzie, gdy interfejs Serial 0/0

    Sprawdź swoją wiedzę z CCNA

    Otrzymuj nasz cotygodniowy mailing "Czwartest" i sprawdź swoją wiedzę rozwiązując wyzywające zadania z zakresu certyfikacji CCNA. Dasz radę?

    Uzupełniając powyższe pole wyrażasz zgodę na otrzymywanie od GetGoodNet Damian Michalak z siedzibą we Wrocławiu newslettera zawierającego treści edukacyjne. Zgodę możesz wycofać w każdym czasie.

    NSS na Social Media

    1,611FaniLubię
    72ObserwującyObserwuj
    133ObserwującyObserwuj
    1,220SubskrybującySubskrybuj

    Najnowsze artykuły

    spot_img

    Może Cię też zainteresować...

    2
    0
    Co sądzisz na temat tej publikacji? Zostaw proszę komentarzx
    ()
    x