Dlaczego „okazywanie sąsiedztwa” trwa tak długo?

9

Dlaczego uruchomienie polecenia „pokaż sąsiedztwo” (w kolejności minut) w oprogramowaniu Cisco IOS Software, 7200 Software (C7200P-SPSERVICESK9-M), wersja 12.4 (4) XD5, RELEASE SOFTWARE (fc1)? Router jest internetowym routerem brzegowym z BGP? Co oznaczają „(5)”, „(10003)” lub „(75845)” po adresach? Wydaje się, że wylicza głównie adresy w bezpośrednio połączonej / 23 sieci. Procesor wynosi <2%, a pamięć nie wydaje się być tego przyczyną.

r-x-y-edge1#sh adjacency
Protocol Interface                 Address
IP       GigabitEthernet0/2        x.67.155.9(5)
IP       GigabitEthernet0/2        x.67.155.8(5)
IP       GigabitEthernet0/2        x.67.155.11(5)
IP       GigabitEthernet0/2        x.67.155.10(5)
IP       GigabitEthernet0/2        x.67.155.13(5)
IP       GigabitEthernet0/2        x.67.155.12(5)
IP       GigabitEthernet0/2        x.67.155.15(5)
IP       GigabitEthernet0/3        172.31.4.130(10003)
IP       Serial1/0                 point2point(75845)
...
<truncated>

CPU utilization for five seconds: 2%/1%; one minute: 3%; five minutes: 3%

Processor Pool Total:  864815572 Used:  547631528 Free:  317184044
      I/O Pool Total:   67108864 Used:    4520592 Free:   62588272

Czy istnieje sposób na przerwanie wykonania tego polecenia poza zamknięciem sesji, ponieważ Ctrl-^ x nie ma żadnego efektu?

generalnetworkerror
źródło
Czy próbowałeś różnych wersji IOS? Czy wyświetlanie wyników zawsze trwało długo, czy dopiero się zaczęło?
Adam Loveless
Ctrl-Shift-6 to sekwencja przerwania w IOS.
Yosef Gunsburg
1
Proszę wyjaśnić, ile czasu zajmuje „show przym”
Mike Pennington
1
Ta wersja kodu jest nie tylko stara (ponad 4 lata), ale nawet w tym pociągu jest wielokrotnie zastępowana. Zdecydowanie wprowadzono poprawki i zmiany w obsłudze CEF i sugerują, że lepiej byłoby rozwiązywać problemy z nowszym (lub końcowym w ramach kodu) rev.
rnxrx
1
@rnxrx, spodziewałem się co najmniej jednego komentarza na temat wieku tej wersji kodu. Głosuj za ciebie.
generalnetworkerror

Odpowiedzi:

8

Czy sprawdziłeś, czy masz wyłączone wyszukiwanie domen? ( no ip domain lookup)

Możliwe, że twoje polecenie tak długo wraca, ponieważ próbuje rozwiązać wszystkie adresy IP z nazwami hostów.

David Rothera
źródło
Jest to interesująca sugestia - nie sądzę, że IOS spróbuje wykonać rozpoznawanie nazw dla wpisów sąsiedztwa CEF, ponieważ większość z nich będzie reprezentować przedrostki o długości <32.
John Jensen
Skonfigurowałem „nazwę domeny ip” i „listę domen ip”, ale nie „serwer nazw ip”. Ustawienie kilku serwerów nazw spowodowało, że dane wyjściowe były wyświetlane niemal natychmiast.
generalnetworkerror
To super niesamowite! Uwielbiam uczyć się nowych rzeczy.
John Jensen
Świetny haczyk @David, nie przyszło mi do głowy. Nie tak dobrze znany DNS, jak brak „preferowanego transportu brak” w wierszu VTY :)
ytti
Dzięki za komentarze bardziej doświadczonych inżynierów sieciowych w grupie; Nie czuję się tak źle, że zaskoczyło mnie odwrotne wyszukiwanie.
generalnetworkerror
4

Co oznaczają „(5)”, „(10003)” lub „(75845)” po adresach?

Wartość w nawiasach odnosi się do tego, ile razy wejście FIB wskazuje na wpis sąsiedni. Wspomniano tutaj .

Adam Loveless
źródło
2

Czy router przyjmuje pełne tabele? Jeśli tak, to chyba nie zdziwiłbym się, że zajmuje to dużo czasu, ponieważ musi rozwiązać wiele sieci reprezentujących pełną tabelę interfejsu wyjściowego (RIB-> FIB). Pamiętaj również, że 7200 nadal jest platformą do przesyłania opartą na oprogramowaniu. Nadal masz 3 kolejne warstwy CEF pod względem tego, które z nich są szybsze.

Jeśli duża liczba tych przylegań to przylegania do wykopów (pozycja, która musiałaby zostać wykopana do metody przełączania następnego poziomu) lub zbierania przyległości, może to również wyjaśniać, dlaczego zajmuje to dużo czasu - i wyobrażam sobie, że duże liczba ich byłaby - znowu, zakładając, że jest to pełny stół.

Liczba w nawiasach nazywa się refcount i reprezentuje liczbę przypadków, w których przyleganie jest wskazywane przez wpisy FIB.

Edycja: jeśli chodzi o anulowanie polecenia, spróbuj Ctrl + C (wielokrotnie) - czasami działa to dla mnie na zabijanie długotrwałych poleceń. OTOH, jeśli wiem, że polecenie wygeneruje dużo danych wyjściowych, ustawię „długość terminala” na coś w rodzaju „50”, w ten sposób mam opcję zabicia polecenia za pomocą stronicowania danych wyjściowych.

John Jensen
źródło
Cześć John, nie jestem pewien, czy podążę za komentarzem o 3 kolejnych warstwach CEF ... możesz to rozwinąć?
Mike Pennington
Jasne - ogólnie mówiłem o „najlepszych” (według Cisco) metodach przełączania, w kolejności: sprzętowy dCEF -> sprzętowy CEF -> przełączanie PXF -> programowy CEF -> szybkie przełączanie -> przełączanie procesów
John Jensen
Ale nie rozumiem, dlaczego warto wspominać o innych ścieżkach przełączania ... AFAIK, inne ścieżki przełączania, które są bardziej wydajne w przenoszeniu pakietów, nie mają nic wspólnego z czasem, który zajmuje zrzucenie tabeli sąsiedztwa na routerze 7200.
Mike Pennington
Istotne było dla mnie stwierdzenie, że 7200 jest platformą opartą na oprogramowaniu, a nie czymś w rodzaju cat65k lub 7600, który robi CEF pod względem sprzętowym; wydawałoby się, że byłoby to bezpieczne założenie, że platforma, która robi CEF w sprzęcie, działałaby nieco łatwiej przy zrzucaniu przyległości, prawda? Będąc całkowicie szczerym, chociaż moje doświadczenie z produkcją 7200 jest ograniczone - zawsze miałem „szczęście” na tyle, że mogłem pracować z większymi, wieloetapowymi urządzeniami opartymi na ASIC.
John Jensen