Najlepsza praktyka w zakresie kombinacji HSRP i ECMP


19

Połączenie ECMP (lub innych przyczyn ścieżek asymetrycznych) i HSRP jest domyślnie zepsute w Cisco IOS; domyślne zachowanie w tym projekcie nadmiernie zalewa ruch emisji pojedynczej.

Jaka jest najlepsza praktyka stosowania HSRP z ECMP w celu zapobiegania powodziom nieznanej emisji pojedynczej?

Szczegóły / Tło

Dla wielu naszych obiektów mamy topologię HSRP podobną do pierwszego diagramu poniżej. Nasze routery WAN Cisco mają takie same trasy do wszystkich innych witryn; dlatego możemy cały czas widzieć asymetryczne efekty routingu. Zwykle przypisujemy R1 jako główny HSRP, ale ECMP zezwala na ruch powrotny przez R1 lub R2.

Problem polega na tym, że gdy PC1 montuje zdalny napęd iSCSI w sieci WAN, ruch opuszcza witrynę przez R1, ale może powrócić przez R2. Dopóki ruch iSCSI wraca przez R1, nie ma żadnych problemów.

HSRP_Broken_00

Problem występuje, gdy ruch PC1 powraca przez R2. Załóżmy, że sesja iSCSI rozpoczyna się o 8:00:00, a oba routery i oba przełączniki uczą się jednocześnie komputera Mac PC1. Pomiędzy 8:00:00 a 8:00:05 nie występują problemy z zalaniem, ponieważ oba przełączniki nadal mają adres mac PC1 w tabeli CAM.

HSRP_Broken_01

Pięć minut po rozpoczęciu sesji iSCSI wpis CAM S2 dla komputera Mac PC1 wygasa z tabeli CAM, a S2 zalewa ruch PC1 ze wszystkich portów (w tym przypadku do Po1, Gi0 / 3 i Gi0 / 4). Jeśli sesja iSCSI PC1 zużywa dużo przepustowości, to nieznane zalewanie emisji pojedynczej może wyssać nietrywialną pojemność z łączy do PC3 i PC4.

Przełączniki Cisco IOS mają domyślny zegar CAM wynoszący 300 sekund ...

S2# show mac address-table aging-time
Vlan Aging Time
---- ----------
1    300
17   300

Jednak domyślny zegar ARP interfejsu Cisco IOS to 4 godziny ...

R2# show interface gi0/0
GigabitEthernet0/0 is up, line protocol is up 
  Hardware is AmdP2, address is 000a.dead.beef (bia 000a.dead.beef)
  Internet address is 172.17.1.252/24
  MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  ARP type: ARPA, ARP Timeout 04:00:00       <--------------

Dlatego S2 zaczyna zalewać ruch iSCSI na PC1 po pięciu minutach.

HSRP_Broken_02


Dlaczego ludzie sami zamieszczają pytania, a następnie same na nie odpowiadają? Nie, jak w, szukali i znaleźli odpowiedź, już ją mieli? To jest strona pytań i odpowiedzi, a nie blog (nie dlatego, że nie napisałeś dobrego pisma!)
jwbensley

8
@javano: SE zachęca do samodzielnego udzielania odpowiedzi. ref meta.networkengineering.stackexchange.com/questions/4/…
Craig Constantine

1
@CraigConstantine Tak, wiem, ale jestem pewien, że ludzie zadają pytania, a następnie odpowiedzą na cieśninę po niedługim czasie, kiedy wymyślą odpowiedź na pytanie (nawet jeśli to tylko 5 minut później), odpowiedzą na cieśninę ponieważ znali już odpowiedź przed opublikowaniem pytania. Uważam to za nieco dziwne.
jwbensley

6
Jednak faktem jest, że napisanie Q i natychmiastowej odpowiedzi jest wyraźnie zalecane.
Craig Constantine

4
@javano, jeśli rozwiążesz problem, który Twoim zdaniem spotka innych, SE chce ruchu w wyszukiwarce w celu rozwiązania tego problemu ... nie obchodzi ich, czy opublikuję odpowiedź w tym samym czasie, czy nie ... w rzeczywistości na dole formularza internetowego pytania znajduje się małe pole wyboru: „Odpowiedz na własne pytanie - podziel się swoją wiedzą, zadaj pytania i odpowiedzi w stylu”
Mike Pennington

Odpowiedzi:


14

Prostą odpowiedzią jest ustawienie timera CAM na równy lub nieco dłuższy niż odpowiedni interfejs ARP timera , ale istnieją co najmniej trzy różne opcje do wyboru ...

Opcja 1: Obniż wszystkie zegary ARP interfejsu

Ta opcja działa najlepiej, jeśli masz przyzwoitą sieć przełączaną w warstwie 2, rozsądną liczbę wpisów ARP i kilka routowanych interfejsów. Ta metoda jest również preferowana, jeśli chcesz szybko sprawdzić, jak wpisy na komputerze Mac przestarzałe z topologii.

  • Na wszystkich interfejsach Ethernet IOS stojących przed przełącznikiem Ethernet: arp timeout 240
  • Na wszystkich interfejsach Ethernet IOS stojących naprzeciw przełącznika Ethernet: hold-queue 200 ini hold-queue 200 outaby uniknąć upuszczania pakietów ARP podczas okresowych odświeżeń ARP (te limity mogą być wyższe lub niższe w zależności od liczby odświeżeń ARP, które Twoim zdaniem musisz obsłużyć naraz). Jeśli dostosowujesz wartości selektywnego odrzucania pakietów , powinieneś postępować zgodnie ze wskazówkami w dokumencie, który połączyłem.

Zmusza to Cisco IOS do odświeżenia tabeli ARP w ciągu czterech minut, jeśli nie nastąpiło inaczej dla danego wpisu ARP. Oczywistą wadą jest to, że nie skaluje się to dobrze, jeśli masz dużo wpisów ARP ... limity różnią się w zależności od platformy. Użyłem tego z kilkoma setkami ARP na router na Catalyst 4500/6500 (SVI warstwy 3) bez żadnych problemów.

Opcja 2: Zwiększ czas przełączników CAM

Ta opcja działa najlepiej, jeśli masz dużą liczbę wpisów ARP (tj. Tysiące, na przykład intensywne środowisko VMWare).

  • Na wszystkich przełącznikach IOS: mac address-table aging-time 14400lub w mac address-table aging-time 14400 vlan <vlan-id>przypadku każdego wzbudzającego niepokój Vlana.

Ta zmiana dostosowuje liczniki, które według większości osób są ustawione na 300 sekund (w systemie Cisco IOS), więc pamiętaj o uwzględnieniu tego w dokumentacji ciągłości. Efektem ubocznym jest to, że wpisy w tabeli CAM pozostają przez 4 godziny po wyjęciu komputera (co może być dobre lub złe, w zależności od twojego PoV). Jeśli 4 godziny są za długie, zobacz następną opcję ...

Opcja 3: Zmień zarówno timery ARP interfejsu, jak i przełączniki Timery CAM

Ta opcja pozwala uniknąć strasznie długich timerów CAM w Opcji 2 kosztem większej konfiguracji. Możesz wybrać, czy potrzebujesz 900 sekund, 1800 sekund, czy cokolwiek innego ... po prostu upewnij się, że timery CAM i ARP są zgodne; dlatego musisz skonfigurować zarówno Opcję 1, jak i Opcję 2 w swoich topologiach.


4
Rozwiązaliśmy ten problem wybierając pierwsze proponowane rozwiązanie, ale nie byliśmy pewni, w jakiej kolejności IOS wyczyści tabelę, a następnie ustawiliśmy limit czasu ARP na 293s (najbliższa liczba pierwsza poniżej limitu czasu tabeli adresów MAC). Nadal nie wiem, czy to był dobry wybór, czy nie
Marco Marzetti

1
Technicznie Cisco IOS odpala walker ARP w 60-sekundowych odstępach, więc powinieneś użyć 240 ... Zlekceważyłem włączenie tego w mojej odpowiedzi ... edytowanie go ... jestem ciekawy, dlaczego wybrałeś liczbę pierwszą ...
Mike Pennington,

ACK. Limit czasu ARP mniejszy lub równy limitowi czasu MAC powinien wynosić BCP. HSRP nie musi nawet istnieć, tylko jeśli są dwa routery, może cię ugryźć i spowodować nawet pętle.
ytti

Nie wiedziałem Nasza sztuczka jest więc całkowicie bezużyteczna. Wybraliśmy liczbę pierwszą, aby zminimalizować nakładanie się timerów.
Marco Marzetti,

4
@MikePennington, dziękuję. W każdym razie masz rację Rozdzielczość limitu czasu ARP jest wdrażana w kilka minut
Marco Marzetti

1

Dla mnie ECMP jest tutaj prawdziwym problemem - więc oprócz powyższych kroków, aby ograniczyć zalewanie nieznanej emisji pojedynczej, możesz również dostroić metryki trasy w kierunku WAN, aby R1 był preferowany zamiast R2 dla ruchu powrotnego. Jednym ze sposobów osiągnięcia tego jest lista dystrybucji w R2 w następujący sposób: (EIGRP używany tylko na przykład, to samo można osiągnąć za pomocą OSPF lub BGP z innymi poleceniami)

!
ip lista prefiksów R1-PREFER sekw. 5 zezwolenie 172.17.1.0/24
!
mapa tras R1-PREFER-MAP zezwolenie 10
 dopasuj listę adresów IP R1-PREFER
 ustaw metryczny 1 1 1 1 1
... (zezwól na wszystkie inne trasy)
!
router eigrp 1
 ....
 lista dystrybucji mapa tras R1-PREFER-MAP out Ser1 / 0
 ....
!

Spowoduje to, że sieć WAN przekieruje cały ruch dla 172.17.1.0 do R1. Jeśli R1 Se1 / 0 zawiedzie, trasa zostanie zainstalowana w kierunku R2. Możesz dalej dostroić te parametry, aby trasa tworzenia kopii zapasowych do R2 była w rzeczywistości wykonalnym następcą szybszego przełączania awaryjnego. HSRP i śledzenie zajmą się ruchem wyjściowym.


w istocie jesteś odpowiadając na pytanie, które chcesz, a nie moje pytanie ... który wymaga zarówno fhrp i ECMP
Mike Pennington

przepraszam za to - przyzwyczajam się do tego forum i nie spełniłem tego wymogu!
smoothbSE

Nie ma problemu ... witamy na NE :)
Mike Pennington,

0

Pomysł, aby nie używać ECMP, jeśli HSRP jest w użyciu, może być odpowiedni dla SERWERÓW, w których ruch wejściowy może być większy niż ruch wyjściowy, w sytuacji na komputerze OGÓLNIE ruch wejściowy z sieci WAN (odpowiedzi) jest większy niż ruch wyjściowy (wejście). Lubimy, jak większość ludzi ustawia timery ARP. możesz zadzierać z licznikami CAM, ALE jeśli powiesz MDF z przełącznikiem warstwy 3 i IDF z 2 przełącznikami kolekcji i powiedz 5 przełączników dostępu, konfiguracja LI SVI jest dużo łatwiejsza niż wykonywanie wszystkich przełączników dostępu.


0

Można użyć stosu przełączników, aby złagodzić problem wygaśnięcia wpisu adresu MAC w drugim przełączniku.


0

Ach, pamiętam ten. Kilka tygodni temu miałem z tym wiele radości. Jedną z pomarszczeń jest to, że zdarzenia STP wprowadzą sieci vlans w tryb szybkiego starzenia się, więc ustawienie timera MAC na dłużej niż timer ARP nie pomaga

Rozwiązałem problem, zmuszając ECMP do powrotu z serwerów, tworząc dwie pływające bramy HSRP, z jedną podstawową na każdym routerze. Następnie skonfigurowaliśmy obie bramy na każdym hoście. Wymuszając w ten sposób ruch hosta zarówno do R1, jak i R2, mamy pewność, że R2 nigdy nie zestarzeje adresów MAC.

Idealnie nie byłoby problemu, gdyby przełączniki L2 / 3 usuwały wpisy ARP związane z przestarzałymi adresami MAC. Następny pakiet do adresu IP spowodowałby wówczas nowe żądanie ARP, zapełniając zarówno pamięć podręczną ARP, jak i tabelę MAC. Myślę, że Cisco w końcu to zaimplementowało, ale nie jestem pewien.


0

Podsumowanie: MC-LAG lub HSRP GARP

Nigdy nie byłem fanem poprawiania timerów. Zegary są ustawione w określony sposób, zwykle z wielu powodów. Zmieniając je:

  • jest potencjalnie intensywny operacyjnie, aby utrzymać wszędzie to samo
  • czyni sprawy bardziej skomplikowanymi i trudnymi do rozwiązania
  • jak pokazał ostatni komentator, może mieć nieoczekiwane skutki uboczne
  • może nie „dobrze grać” z przyszłymi ulepszeniami Cisco

Na przemian:

  1. Użyj MC-LAG (aka „MEC” w dokumentacji Cisco). Jest to najlepsza opcja, ale powinieneś zrozumieć scenariusze wdrażania, w których można zastosować MC-LAG (nie jest to rozwiązanie uniwersalne i powinno zostać wdrożone tylko po odpowiednich badaniach i testach). Warianty MC-LAG zależą od sprzętu. Przykłady to:

    za. Układanie (Cat 3k)

    b. VSS (Cat4k / 6k)

    do. VPC (Nexus)

    re. Pseudo mLACP (ASR1k)

    mi. MC-LAG (ASR9k)

    fa. Klastrowanie (ASA)

  2. Włącz HSRP, aby okresowo wysyłać bezpłatne pakiety ARP . To prawda, że ​​jest to podobne do zmieniania timerów, ale jest to o wiele bardziej wdzięczna zmiana niż manipulowanie tabelą CAM i zegarami ARP. (Należy jednak pamiętać, że zależy to od kombinacji sprzętu i oprogramowania, nie wszystkie implementacje HSRP oferują taką możliwość).

    Domyślnie HSRP wysyła 3 GARP w 0, 2 i 4 sekundy po tym, jak router stanie się bramą przekazywania. Istnieje jednak parametr konfiguracyjny, który pozwala wybrać liczbę GARP (w tym „nieskończony”) i interwał.

Używam MC-LAG dość szeroko, szczególnie VSS, VPC i Clustering (nie jestem fanem układania).

Tam, gdzie nie mogę korzystać z MC-LAG ani GLBP, to mam zastosowanie do routerów granicznych L2 / L3 w kampusie (mam kampus z 350 budynkami, więc dość mocno używam Cat6k):

Cat6k-v15(config)#interface vlan 100
Cat6k-v15(config-if)#standby arp ?
  gratuitous  Setup gratuitous ARP interval and count

Cat6k-v15(config-if)#standby arp gratuitous ?
  count     Set HSRP gratuitous ARP count
  interval  Set HSRP gratuitous ARP interval
  <cr>

Cat6k-v15(config-if)#standby arp gratuitous count ?
  <0-60>  Number of gratuitous ARPs to send after group is activated (0 for continuous)

Cat6k-v15(config-if)#standby arp gratuitous count 0 ?
  count     Set HSRP gratuitous ARP count
  interval  Set HSRP gratuitous ARP interval
  <cr>

Cat6k-v15(config-if)#standby arp gratuitous count 0 interval ?
  <3-1800>  Gratuitous ARP Interval (sec)

Cat6k-v15(config-if)#standby arp gratuitous count 0 interval 60 ?
  count     Set HSRP gratuitous ARP count
  interval  Set HSRP gratuitous ARP interval
  <cr>

Cat6k-v15(config-if)#standby arp gratuitous count 0 interval 60 

(Zamieszczam odniesienia do tych wszystkich, ale nie mam wystarczająco wysokiej „reputacji” na tej stronie, aby opublikować więcej niż dwa adresy URL).


To, co nazywacie MC-LAG, jest z pewnością opcją, ale jego dostępność na klasycznych platformach IOS jest nierówna. Brakuje mi również sposobu, w jaki HSRP Gratuitous ARP pomaga rozwiązać ten problem. Korzystając z przykładu w moim pytaniu, czy mógłbyś rozwinąć sposób, w jaki HSRP Gratuitous ARP rozwiązuje limit czasu wejścia ARP z 172.17.1.1? Zauważ, że domyślnym GW jest 172.17.1.254
Mike Pennington

Długa odpowiedź, więc podzielę to na dwie części. Część 1 ... Problem z HSRP polega na tym, że router odpowiada na zapytanie ARP za pomocą wirtualnego MAC. Jednak gdy router przesyła datagram do hosta, używa fizycznego adresu MAC. Przełączniki czyszczą swoją tabelę przesyłania dość szybko (często 300 sekund lub 5 minut), ale wpisy ARP często pozostają znacznie dłużej (8 godzin jest powszechne).
Weylin Piegorsch

Część 2 ... Po przekroczeniu limitu czasu przełączania wirtualnego adresu MAC z tabeli przesyłania, ruch z serwera do wirtualnego MAC staje się „nieznaną emisją pojedynczą”, przy czym przełącznik domyślnie zachowuje się jak w hubie i zalewa cały ruch porty. Przez okresowe wysyłanie GARP router odświeża tabelę przekazywania przełączników. Ponadto, wysyłając GARP, tabela ARP na serwerze jest odświeżana, co eliminuje konieczność wysyłania zapytania ARP.
Weylin Piegorsch

W odpowiedzi na moją 2-częściową odpowiedź, właśnie zdałem sobie sprawę, że pytanie zadaje z przeciwnego kierunku: adres MAC serwera jest usuwany z przełączników, a nie wirtualny MAC routera. Mieliśmy ten konkretny problem i ostatecznie rozwiązaliśmy go za pomocą MC-LAG (konkretnie VPC), a później, ponieważ już korzystaliśmy z Nexusa, przeszliśmy na FabricPath aka TRILL, co sprawiło, że problem zniknął. Ale oba są zależne od sprzętu i topologii.
Weylin Piegorsch

Właśnie zdałem sobie sprawę, że mój oryginalny komentarz jest prawidłowy - ale żałośnie niepełny. Nie tylko MC-LAG, ale MC-LAG na obu warstwach. Następnie masz do czynienia ze wspólną tabelą CAM na poziomie przełącznika i routera.
Weylin Piegorsch

0

Właśnie zdałem sobie sprawę, że mój oryginalny komentarz jest prawidłowy - ale żałośnie niepełny. Zaleceniem neutralnym dla dostawców jest budowanie w trójkątach, a nie prostokątach. Więc:

  1. Nie tylko MC-LAG, ale MC-LAG na obu warstwach. Następnie masz do czynienia ze wspólną tabelą CAM na poziomie przełącznika i routera.

  2. Jeśli nie możesz tego zrobić, MC-LAG albo router lub przełącznik, a MC-LAG do drugiej warstwy z dodatkowym łączem (tj. Pełna siatka między routerami i przełącznikami). STP zapewni topologię bez pętli.

  3. Jeśli nie możesz tego zrobić, nadal routery i przełączniki są pełne. STP zapewni topologię bez pętli, a tabele CAM przełączników będą nadal znały wszystkie odpowiednie reguły przekazywania MAC. Serwer zawsze wysyła swój MAC, a jeśli skonfigurujesz GARP HSRP w odstępach 1-minutowych, przełączniki również nie zapomną HSMR vMAC.

Preferowane opcje są w tej kolejności. Ale przynajmniej zainstaluj tę dodatkową parę linków.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.