Por que "mostrar adjacência" demora tanto para ser executado?

9

Por que o comando "show adjacency" demora tanto para ser executado (na ordem de minutos) no Cisco IOS Software, Software 7200 (C7200P-SPSERVICESK9-M), Versão 12.4 (4) XD5, RELEASE SOFTWARE (fc1)? O roteador é um roteador de borda da Internet executando BGP? O que significam "(5)", "(10003)" ou "(75845)" após os endereços? Parece enumerar principalmente endereços em uma rede / 23 diretamente conectada. A CPU é <2% e a memória não parece ser a causa disso.

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

Existe uma maneira de interromper a execução deste comando antes de fechar a sessão, pois Ctrl- ^ x não tem nenhum efeito?

generalnetworkerror
fonte
Você já tentou versões diferentes do IOS? Sempre demorou muito tempo para exibir resultados ou apenas começou a acontecer?
Adam Loveless 27/05
Ctrl-Shift-6 é a sequência de interrupção no IOS.
Yosef Gunsburg
11
Por favor, elabore quanto tempo "show adj" leva #
Mike Pennington
11
Essa versão do código não é apenas antiga (mais de 4 anos), mas mesmo dentro desse trem é substituída várias vezes. Definitivamente, houve correções e alterações no manuseio do CEF e tenderiam a sugerir que seria melhor solucionar problemas em uma revisão de código mais recente (ou final dentro do trem).
Rnxrx 28/05
11
@rnxrx, eu esperava pelo menos um comentário sobre a idade dessa versão de código. Voto a favor para você
generalnetworkerror

Respostas:

8

Você verificou se a pesquisa de domínio está desativada? ( no ip domain lookup)

Pode ser que o seu comando esteja demorando tanto para voltar, pois está tentando resolver todos os IPs para nomes de host.

David Rothera
fonte
Esta é uma sugestão interessante - eu não acho que IOS iria tentar fazer a resolução de nomes para as entradas de adjacência CEF já que a maioria deles vai representar prefixos com um comprimento <32.
John Jensen
Eu tinha "ip domain name" e "ip domain list" configurados, mas nenhum "ip name-server". Definir alguns servidores de nome fez com que a saída fosse exibida quase instantaneamente.
generalnetworkerror
Isso é super incrível! Adoro aprender coisas novas.
John Jensen
Grande captura @ David, também não me ocorreu. Não é tão conhecido o problema do DNS como a falta de 'transporte preferido nenhum' na linha VTY :)
ytti 28/05
Obrigado pelos comentários dos engenheiros de rede mais experientes do grupo; Não me sinto tão mal por ter sido uma pesquisa inversa que me surpreendeu.
generalnetworkerror
4

O que significam "(5)", "(10003)" ou "(75845)" após os endereços?

O valor entre parênteses refere-se ao número de vezes que uma entrada FIB aponta para uma entrada adjacente. Mencionado aqui .

Adam Loveless
fonte
2

O roteador está tomando tabelas completas? Se for, acho que não ficaria surpreso com o fato de que está demorando muito tempo, já que é necessário resolver o número de redes que representam uma tabela completa para uma interface de saída (RIB-> FIB). Lembre-se também de que o 7200 ainda é uma plataforma de encaminhamento baseada em software. Você ainda tem mais três camadas de CEF acima de você em termos de quais são mais rápidas.

Se um grande número dessas adjacências são adjacências de pontapé (uma entrada que precisaria ser direcionada para o método de comutação de próximo nível) ou adjacências de coleta, isso também pode explicar por que está demorando muito tempo - e eu imagino que uma grande número deles seria - novamente, ainda assumindo que é uma tabela completa aqui.

O número entre parênteses é chamado refcount e representa o número de vezes que a adjacência é apontada pelas entradas do FIB.

Editar: sobre o cancelamento do comando, tente Ctrl + C (repetidamente) - às vezes isso funciona para mim para matar comandos de longa execução. OTOH, se eu souber que o comando produzirá muita saída, configurarei "comprimento do terminal" para algo como "50"; dessa forma, tenho a opção de eliminar o comando por meio da paginação da saída.

John Jensen
fonte
Oi John, não tenho certeza se sigo o comentário sobre mais 3 camadas do CEF ... você pode elaborar?
Mike Pennington
Claro - em geral, eu estava falando sobre os "melhores" métodos de comutação (de acordo com a Cisco), em ordem: hardware dCEF -> hardware CEF -> comutação PXF -> CEF baseado em software -> comutação rápida -> comutação de processos
John Jensen
Mas não estou vendo por que é relevante mencionar outros caminhos de comutação ... AFAIK, outros caminhos de comutação mais eficientes na movimentação de pacotes não têm nada a ver com o tempo necessário para despejar a tabela de adjacência em um roteador 7200.
Mike Pennington
Foi relevante a meu ponto de vista que um 7200 é uma plataforma baseada em software, e não algo como um cat65k ou um 7600 que faz CEF em hardware; parece que seria uma suposição segura de que uma plataforma que CEF em hardware executaria um pouco mais rapidamente ao despejar adjacências, não seria? Sendo totalmente honesto, embora minha experiência com o 7200 na produção seja limitada - sempre tive a "sorte" de trabalhar com as caixas multiestágio maiores baseadas em ASIC.
John Jensen