Perché “mostrare adiacenza” impiega così tanto tempo a funzionare?


9

Perché il comando "mostra adiacenza" impiega così tanto tempo (nell'ordine dei minuti) su Cisco IOS Software, Software 7200 (C7200P-SPSERVICESK9-M), Versione 12.4 (4) XD5, SOFTWARE DI RILASCIO (fc1)? Il router è un router perimetrale su Internet che esegue BGP? Che cosa significano "(5)", "(10003)" o "(75845)" dopo gli indirizzi? Sembra enumerare principalmente gli indirizzi su una rete direttamente connessa / 23. La CPU è <2% e la memoria non sembra essere la causa di ciò.

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

C'è un modo per interrompere l'esecuzione di questo comando prima di chiudere la sessione poiché Ctrl- ^ x non ha alcun effetto?


Hai provato diverse versioni di IOS? La visualizzazione dei risultati ha sempre impiegato molto tempo o è appena iniziata?
Adam Loveless,

Ctrl-Shift-6 è la sequenza di interruzioni in IOS.
Yosef Gunsburg,

1
Per favore, spiega quanto tempo impiega "show agg"
Mike Pennington,

1
Quella versione del codice non è solo vecchia (4+ anni) ma anche all'interno di quel treno viene sostituita molte volte. Ci sono state sicuramente correzioni e modifiche alla gestione del CEF e tenderebbe a suggerire che sarebbe meglio risolvere i problemi su un rev di codice più recente (o finale all'interno del treno).
rnxrx,

1
@rnxrx, mi aspettavo almeno un commento sull'età di quella versione del codice. Promuovi per te.
generalnetworkerror

Risposte:


8

Hai controllato per vedere se la ricerca del dominio è disabilitata? ( no ip domain lookup)

È possibile che il tuo comando stia impiegando così tanto tempo a tornare mentre sta cercando di risolvere tutti gli IP in nomi host.


Questo è un suggerimento interessante - Non penso che IOS tenterebbe di fare la risoluzione dei nomi per le voci di adiacenza CEF poiché la maggior parte di essi rappresenterà prefissi con una lunghezza <32.
John Jensen,

Avevo configurato "nome dominio ip" e "elenco domini ip", ma nessun "nome server ip". L'impostazione di un paio di server dei nomi ha reso l'output visualizzato quasi istantaneamente.
generalnetworkerror

È fantastico! Adoro imparare cose nuove.
John Jensen,

Grande cattura @ David, non mi è venuto in mente neanche. Il DNS non è così noto come la mancanza di "trasporto preferito nessuno" sotto la linea VTY :)
ytti,

Grazie per i commenti degli ingegneri di rete più esperti del gruppo; Non mi sento così male che è stata una ricerca inversa che mi ha sconcertato.
generalnetworkerror

4

Che cosa significano "(5)", "(10003)" o "(75845)" dopo gli indirizzi?

Il valore tra parentesi si riferisce al numero di volte in cui una voce FIB punta a una voce di adiacenza. Menzionato qui .


2

Il router sta prendendo i tavoli completi? Se lo è, suppongo che non sarei sorpreso dal fatto che ci vorrà molto tempo, visto che deve risolvere comunque molte reti che rappresentano una tabella completa per un'interfaccia di uscita (RIB-> FIB). Ricorda inoltre che il 7200 è ancora una piattaforma di inoltro basata su software. Hai ancora 3 livelli di CEF in più sopra di te in termini di quali sono più veloci.

Se un gran numero di tali adiacenze sono adiacenti punt (una voce che dovrebbe essere puntata al metodo di commutazione di livello successivo) o adiacenti, questo potrebbe anche spiegare perché ci vuole molto tempo - e immagino che un grande il numero di loro sarebbe - di nuovo, sempre supponendo che sia un tavolo completo qui.

Il numero tra parentesi si chiama refcount e rappresenta il numero di volte in cui l'adiacenza è indicata dalle voci FIB.

Modifica: per quanto riguarda l'annullamento del comando, prova Ctrl + C (ripetutamente) - a volte questo funziona per me per l'uccisione di comandi di lunga durata. OTOH se so che il comando produrrà molto output, imposterò "lunghezza terminale" su qualcosa come "50", in questo modo ho la possibilità di uccidere il comando tramite l'impaginazione dell'output.


Ciao John, non sono sicuro di seguire il commento su altri 3 livelli di CEF ... puoi approfondire?
Mike Pennington,

Certo - in generale stavo parlando dei metodi di commutazione "migliori" (secondo Cisco), in ordine: hardware dCEF -> hardware CEF -> commutazione PXF -> CEF basata su software -> commutazione rapida -> commutazione di processo
John Jensen

Ma non vedo perché sia ​​importante menzionare altri percorsi di commutazione ... AFAIK, altri percorsi di commutazione più efficienti nello spostamento dei pacchetti non hanno nulla a che fare con il tempo necessario per scaricare la tabella di adiacenza su un router 7200.
Mike Pennington,

Era pertinente al mio punto che un 7200 sia una piattaforma basata su software piuttosto che qualcosa come un cat65k o un 7600 che fa CEF nell'hardware; sembrerebbe un presupposto sicuro che una piattaforma che fa CEF in hardware si comporterebbe un po 'più scattante in caso di adozioni di dumping, no? Sinceramente, anche se la mia esperienza con i 7200 in produzione è limitata, sono sempre stato abbastanza "fortunato" da lavorare con le più grandi scatole multistadio basate su ASIC.
John Jensen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.