Este documento ilustra como usar o ping estendido e os comandos traceroute estendidos. O ping padrão e os comandos traceroute são cobertos extensivamente nestes documentos:
Este documento requer um entendimento dos comandos ping e traceroute que são descritos detalhadamente nos links fornecidos na seção de introdução deste documento.
As informações neste documento são baseadas nestas versões de software e hardware:
Versão do software Cisco IOS® 12.2(10b)
Todos os Cisco Series Routers
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
O comando ping (Packet InterNet Groper) é um método muito comum para solucionar problemas de acessibilidade dos dispositivos. Ele usa duas mensagens de consulta ICMP, requisições de eco ICMP e respostas de eco IMCP para determinar se um host remoto está ativo. O comando ping também mede o tempo total necessário para receber a resposta de eco.
O comando ping envia primeiro um pacote de solicitação de eco para um endereço e depois espera pela resposta. O ping apenas terá êxito se ECHO REQUEST obtiver o destino e se o destino for capaz de obter de volta um ECHO REPLY para a origem do ping dentro de um intervalo de tempo predefinido.
Quando um comando ping normal é enviado para um roteador, o endereço de origem do ping é o endereço IP da interface que o pacote usa para sair do roteador. Se um comando ping estendido for usado, o endereço IP de origem pode ser alterado para qualquer endereço IP do roteador. O ping estendido é usado para executar uma verificação mais avançada da acessibilidade do host e da conectividade de rede. O comando ping estendido trabalha apenas na linha de comando EXEC com privilégios. O ping normal funciona tanto no modo EXEC do usuário quanto no modo EXEC privilegiado. Para utilizar este recurso, insira ping na linha de comando e pressione Return . Você receberá um prompt dos campos de acordo com a seção Descrições do campo de comando ping deste documento.
Esta tabela lista as descrições de campo do comando ping. Esses campos podem ser modificados com o uso do comando ping estendido .
Campo | Descrição |
---|---|
Protocolo [ip]: | Solicita um protocolo suportado. Digite appletalk, clns, ip, novell, apollo, vines, decnet ou xns. O padrão é ip. |
Endereço IP de destino: | Solicita o endereço IP ou nome do host do nó de destino em que planeja fazer o ping. Se você especificou um protocolo compatível diferente de IP, digite o endereço adequado para esse protocolo aqui. O padrão é nenhum. |
Contagem de repetições [5]: | Número de pacotes de ping enviados para o endereço de destino. O padrão é 5. |
Tamanho do datagrama [100]: | Tamanho do pacote de ping (em bytes). Padrão: 100 bytes. |
Timeout em segundos [2]: | Intervalo. Padrão: 2 (segundos). O ping é declarado bem-sucedido somente se o pacote RESPOSTA EM ECO é recebido antes deste intervalo de tempo. |
Comandos Extended [n]: | Especifica se uma série de comandos adicionais aparece ou não. O padrão é não. |
Interface ou endereço de origem: | A interface ou o endereço IP do roteador para ser usado como endereço de origem para as sondas. O roteador normalmente captura o endereço IP da interface externa a ser usada. A interface também pode ser mencionada, mas com a sintaxe correta conforme mostrado aqui: Source address or interface: ethernet 0 Nota: É uma saída parcial do comando ping estendido . A interface não pode ser escrita como e0. |
Tipo de serviço [0]: | Especifica o Tipo de serviço (ToS). O ToS solicitado é colocado em cada probe, mas não há nenhuma garantia de que todos os roteadores processem o ToS. É a seleção de qualidade do serviço de Internet. O padrão é 0. |
Definir o bit DF em um cabeçalho de IP? [não]: | Especifica se o bit DF (Don't Fragment) deve ser definido no pacote ping. Se “sim” for especificado, a opção Não fragmentar não permite que este pacote seja fragmentado quando ele tiver que passar por um segmento com uma unidade máxima de transmissão (MTU) menor, e você receberá uma mensagem de erro do dispositivo que queria fragmentar o pacote. Essa opção é útil para determinar a menor MTU no caminho para um destino. O padrão é não. |
Validar dados de resposta? [não]: | Especifica se os dados da resposta devem ou não ser validados. O padrão é não. |
Padrão de dados [0xABCD] | Especifica o padrão de dados. São usados diferentes padrões de dados para fazer Troubleshooting de problemas de erros de enquadramento e problemas de sincronização em linhas seriais. O padrão é [0xABCD]. |
Loose (Livre), Strict (Estrito), Record (Registro), Timestamp (Estampa de tempo), Verbose (Detalhado), [none] (nenhum): | Opções de cabeçalho IP. Esse prompt oferece mais de uma opção a ser selecionada. São elas:
|
Intervalo de varredura dos tamanhos [n]: | Permite que você varie os tamanhos dos pacotes de eco enviados. Isso é utilizado para determinar os tamanhos mínimos das MTUs configuradas nos nós ao longo do caminho para o endereço de destino. Assim, os problemas de desempenho causados por fragmentação de pacotes são reduzidos. O padrão é não. |
!!!!! | Cada ponto de exclamação (!) indica o recebimento de uma resposta. Um ponto (.) indica que expirou o tempo de espera do servidor de rede por uma resposta. Consulte os caracteres de ping para obter uma descrição dos caracteres restantes. |
A taxa de sucesso é 100% | A porcentagem de pacotes ecoados de volta para o roteador com sucesso. Qualquer coisa inferior a 80 por cento é geralmente considerado problemático. |
round-trip min/avg/max = 1/2/4 ms | Intervalos de tempo de deslocamento de ida e volta para os pacotes de eco do protocolo, incluindo médio/mínimo/máximo (em milissegundos). |
Neste diagrama, Host 1 e Host 2 não conseguem fazer o ping entre si. Você pode solucionar este problema nos roteadores para determinar se há um problema de roteamento ou se um dos dois hosts não tem o gateway padrão definido corretamente.
Para que o ping do Host 1 ao Host 2 seja bem-sucedido, cada host precisa apontar seu gateway padrão para o roteador em seu respectivo segmento de LAN, ou o host precisa trocar informações de rede com os roteadores que usam um protocolo de roteamento. Se o host não tem gateway padrão configurado corretamente, ou não tem as rotas corretas em sua tabela de roteamento, ele não consegue enviar pacotes para destinos não presentes no cache do protocolo ARP (Protocolo de resolução de endereço). Também é possível que os hosts não consigam fazer o ping entre si, porque um dos roteadores não tem uma rota para a sub-rede na qual o host envia seus pacotes de ping.
Este é um exemplo do comando ping estendido originado da interface do Roteador A Ethernet 0 e destinado para a interface do Roteador B Ethernet. Se este ping for bem-sucedido, é uma indicação que não há problema de roteamento. O Roteador A sabe como ir para a Ethernet do Roteador B, e o Roteador B sabe como ir para a Ethernet do Roteador A. Além disso, ambos os hosts têm seus gateways padrão configurados corretamente.
Se o comando ping estendido do Roteador A falhar, significa que há um problema de roteamento. Pode haver um problema de roteamento em qualquer um dos três roteadores. O Roteador A poderia não ter uma rota para a sub-rede da Ethernet do Roteador B ou à sub-rede entre o Roteador C e B. O Roteador B poderia não ter uma rota para a sub-rede do Roteador A ou à sub-rede entre o Roteador C e o Roteador A; e o Roteador C pode ter um rota ausente para a sub-rede dos segmentos de Ethernet do Roteador A ou do Roteador B. Você deve corrigir qualquer problema de roteamento e, em seguida, o Host 1 deve tentar fazer o ping para o Host 2. Se o Host 1 ainda não conseguir executar ping no Host 2, os gateways padrão dos dois hosts deverão ser verificados. A conectividade entre a Ethernet do Roteador A e a Ethernet do Roteador B é verificada com o comando ping estendido.
Com um ping normal do Roteador A para a interface de Ethernet do Roteador B, o endereço de origem do pacote ping seria o endereço da interface de saída, ou seja, o endereço da interface serial 0 (172.31.20.1). Quando o Roteador B responde ao pacote de ping, ele responde para o endereço de origem (ou seja, 172.31.20.1). Desta forma, somente a conectividade entre a interface serial 0 do Roteador A (172.31.20.1) e a interface Ethernet do roteador B (192.168.40.1) é testada.
Para testar a conectividade entre o Roteador A Ethernet 0 (172.16.23.2) e o Roteador B Ethernet 0 (192.168.40.1), use o comando ping estendido. Com o ping estendido, você recebe a opção para especificar o endereço de origem do pacote de ping, conforme mostrado aqui.
Router A>enable Router A#ping Protocol [ip]: Target IP address: 192.168.40.1 !--- The address to ping. Repeat count [5]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Source address or interface: 172.16.23.2 !---Ping packets are sourced from this address. Type of service [0]: Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 162.108.21.8, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 36/97/132 ms !--- Ping is successful. Router A#
Este é um exemplo com comandos estendidos e detalhes de varredura:
Router A>enable Router A#ping Protocol [ip]: !--- The protocol name. Target IP address: 192.168.40.1 !--- The address to ping. Repeat count [5]: 10 !--- The number of ping packets that are sent to the destination address. Datagram size [100]: !--- The size of the ping packet in size. The default is 100 bytes. Timeout in seconds [2]: !--- The timeout interval. The ping is declared successful only if the !--- ECHO REPLY packet is received before this interval. Extended commands [n]: y !--- You choose yes if you want extended command options !--- (Loose Source Routing, Strict Source Routing, Record route and Timestamp). Source address or interface: 172.16.23.2 !--- Ping packets are sourced from this address and must be the IP address !--- or full interface name (for example, Serial0/1 or 172.16.23.2). Type of service [0]: !--- Specifies Type of Service (ToS). Set DF bit in IP header? [no]: !--- Specifies whether or not the Don’t Fragment (DF) bit is to be !--- set on the ping packet. Validate reply data? [no]: !--- Specifies whether or not to validate reply data. Data pattern [0xABCD]: !--- Specifies the data pattern in the ping payload. Some physical links !--- might exhibit data pattern dependent problems. For example, serial links !--- with misconfigured line coding. Some useful data patterns to test !--- include all 1s (0Xffff), all 0s (0x0000) and alternating !--- ones and zeros (0Xaaaa). Loose, Strict, Record, Timestamp, Verbose[none]: !--- IP header options. Sweep range of sizes [n]: y !--- Choose yes if you want to vary the sizes on echo packets that are sent. Sweep min size [36]: Sweep max size [18024]: Sweep interval [1]: Sending 179890, [36..18024]-byte ICMP Echos to 162.108.21.8, timeout is 2 seconds: !--- The count 179890 depends on the values of min sweep, !--- max sweep, sweep interval and repeat count. Calculations are based on: !--- 18024(high end of range) - 36(low end of range) = 17988(bytes in range) !--- 17988(bytes in range) / 1(sweep interval) = 17988 (steps in range) !--- 17988(bytes in range) + 1 (first value) = 17989(values to be tested) !--- 17989(values to be tested) * 10(repeat count) = 179890 (pings to be sent) !--- In order to decrease the value, increase the sweep interval or decrease !--- the repeat count, or you can even decrease the difference between !--- Minimum and Maximum sweep size. Based on the previous example, the !--- number 17890 is an expected value and tries to ping 17890 times. Packet sent with a source address of 172.16.23.2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Success rate is 100 percent, round-trip min/avg/max = 1/2/4 ms !--- Ping is successful. Router A#
Onde o comando ping pode ser utilizado para verificar a conectividade entre dispositivos, o comando traceroute pode ser usado para descobrir os caminhos que os pacotes assumem para um destino remoto, bem como o local o roteamento é dividido.
O propósito por trás do comando traceroute é gravar a origem de cada mensagem de "tempo excedido" de ICMP, a fim de fornecer um rastreamento do caminho do pacote até o destino.
O dispositivo que executa o comando traceroute envia uma sequência de datagramas de Protocolos UDP, cada um com valores incrementais Time-To-Live (TTL), para um endereço de porta inválido (padrão 33434) no host remoto.
Primeiro, três datagramas são enviados, cada um com um valor de campo TTL definido como 1. O valor TTL 1 faz com que o datagrama esgote o limite de tempo assim que atingir o primeiro roteador no caminho. Esse roteador então responde com uma mensagem de "tempo excedido" de ICMP, indicando que o datagrama expirou.
Em seguida, mais três mensagens de UDP são enviadas, cada uma com o valor TTL definido como 2. Isso faz com que o segundo roteador no caminho até o destino retorne mensagens de "tempo excedido" de ICMP.
Esse processo continua até que os pacotes alcancem o destino e até que o sistema (que origina o traceroute) receba mensagens de "tempo excedido" de ICMP de cada roteador no caminho até o destino. Como esses datagramas tentam acessar uma porta inválida (padrão 33434) no host de destino, o host responde com mensagens de "porta inacessível” de ICMP que indicam uma porta inacessível. Este evento sinaliza que o programa traceroute deve encerrar.
Nota: Verifique se você não desativou o comando ip unreachable usando no ip unreachables em qualquer VLAN. Esse comando faz com que o pacote seja descartado, sem enviar qualquer mensagem de erro de ICMP. Nesse caso, o traceroute não funciona.
O comando extended traceroute é uma variação do comando traceroute. Um comando traceroute estendido pode ser usado para ver qual caminho os pacotes percorrem para chegar a um destino. O comando também pode ser usado para verificar o roteamento ao mesmo tempo. Esse comando é útil ao solucionar problemas de loops de roteamento ou ao determinar onde os pacotes se perdem (se uma rota estiver faltando, ou se os pacotes estão sendo bloqueados por uma lista de controle de acesso [ACL] ou firewall). Você pode usar o comando ping estendido para determinar o tipo de problema de conectividade e, em seguida, o comando traceroute estendido para identificar onde o problema ocorre.
Uma mensagem de erro "tempo excedido" indica que um servidor de comunicação intermediário viu e descartou o pacote. Uma mensagem de erro de "destino inacessível" indica que o nó de destino recebeu o probe e o descartou porque não conseguiria entregar o pacote. Caso a temporização termine antes de receber a resposta, o trace imprime um asterisco (*). O comando termina quando qualquer um desses eventos acontece:
o destino responde
o TTL máximo é excedido
o usuário interrompe o rastreamento com a seqüência de escape
Nota: Você pode chamar esta sequência de escape ao pressionar simultaneamente Ctrl, Shift e 6.
Esta tabela lista as descrições de campo do comando traceroute.
Campo | Descrição |
---|---|
Protocolo [ip]: | Solicita um protocolo suportado. Digite appletalk, clns, ip, novell, apollo, vines, decnet ou xns. O padrão é ip. |
Endereço IP de destino | Você precisa inserir um nome do host ou um endereço IP. Não há padrão. |
Endereço origem: | A interface ou o endereço IP do roteador para ser usado como endereço de origem para as sondas. O roteador normalmente captura o endereço IP da interface externa a ser usada. |
Exibição numérica [n]: | O padrão é ter uma exibição simbólica e numérica; no entanto, você pode suprimir a exibição simbólica. |
Tempo limite em segundos [3]: | O número de segundos a esperar por uma resposta a um pacote de prova. O padrão é 3 segundos. |
Contagem da prova [3]: | O número de provas a serem enviadas em cada nível de TTL. A contagem padrão é 3. |
Minimum Time to Live [1]: | O valor TTL das primeiras provas. O padrão é 1, mas pode ser definido com um valor mais alto para eliminar a exibição de saltos desconhecidos. |
Tempo Máximo de Vida [30]: | O maior valor de TTL que pode ser usado. O padrão é 30. O comando traceroute é encerrado quando o destino é alcançado ou quando esse valor é atingido. |
Número de Porta [33434]: | A porta de destino usada pelas mensagens de teste UDP. O padrão é 33434. |
Loose (Livre), Strict (Estrito), Record (Registro), Timestamp (Estampa de tempo), Verbose (Detalhado), [none] (nenhum): | Opções de cabeçalho IP. Você pode especificar qualquer combinação. O comando traceroute emite prompts para os campos necessários. Observe que o comando traceroute colocará as opções solicitadas em cada probe. no entanto, não há qualquer garantia de que todos os roteadores (ou nós finais) processarão as opções. |
Router A>enable Router A#traceroute Protocol [ip]: Target IP address: 192.168.40.2 !--- The address to which the path is traced. Source address: 172.16.23.2 Numeric display [n]: Timeout in seconds [3]: Probe count [3]: Minimum Time to Live [1]: Maximum Time to Live [30]: Port Number [33434]: Loose, Strict, Record, Timestamp, Verbose[none]: Type escape sequence to abort. Tracing the route to 192.168.40.2 1 172.31.20.2 16 msec 16 msec 16 msec 2 172.20.10.2 28 msec 28 msec 32 msec 3 192.168.40.2 32 msec 28 msec * !--- The traceroute is successful. Router A#
Nota: O comando traceroute estendido pode ser executado apenas no modo EXEC privilegiado, enquanto o comando traceroute normal funciona nos modos EXEC com privilégios e de usuário.