Utilizando os Comandos ping e traceroute Estendidos Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções O Comando ping O Comando ping Estendido Descrições dos Campos do Comando ping O Comando traceroute O Comando traceroute Estendido Descrições dos Campos do Comando traceroute Introdução Este documento ilustra como utilizar os comandos ping e traceroute estendidos. Os comandos ping e traceroute padrão são abordados em detalhes nestes documentos: Noções Básicas dos Comandos ping e traceroute Utilizando o Comando traceroute em Sistemas Operacionais Pré-requisitos Requisitos Este documento requer um entendimento dos comandos ping e traceroute descritos em detalhes nos links fornecidos na seção Introdução. Componentes Utilizados As informações neste documento são baseadas nestas versões de software e hardware: Cisco IOS® Software Release 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. Se a sua rede estiver em um ambiente de produção, esteja ciente do impacto potencial de qualquer comando. Convenções Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos. O Comando ping O comando ping (Packet InterNet Groper) é um método muito comum utilizado no troubleshooting da acessibilidade de dispositivos. Ele utiliza duas mensagens de consulta ICMP (Internet Control Message Protocol), bem como solicitações e respostas de eco ICMP para determinar se um host remoto está ativo. O comando ping também mede o tempo necessário para receber a resposta de eco. O comando ping envia primeiro um pacote de solicitação de eco a um endereço e aguarda a resposta. O ping só terá êxito se o ECHO REQUEST chegar ao destino e se este for capaz de obter de volta um ECHO REPLY para a origem do ping no intervalo de tempo predefinido. O Comando ping Estendido Quando um comando ping normal é enviado de um roteador, o endereço de origem do ping é o endereço IP da interface que o pacote utiliza para sair do roteador. Se um comando ping estendido for utilizado, o endereço IP de origem poderá ser alterado para qualquer endereço IP do roteador. O ping estendido é utilizado para executar uma verificação mais avançada da acessibilidade do host e da conectividade da rede. O comando ping estendido funciona somente na linha do comando EXEC privilegiado. O ping normal funciona tanto no modo EXEC de usuário quanto no modo EXEC privilegiado. Para utilizar esse recurso, digite ping na linha de comando e pressione Return. Você será solicitado a preencher os campos fornecidos na seção Descrições dos Campos do Comando ping deste documento. Descrições dos Campos do Comando ping Esta tabela lista as descrições dos campos do comando ping, os quais podem ser modificados com o comando ping estendido. Campo Descrição Protocol [ip]: Solicita um protocolo com suporte. Digite appletalk, clns, ip, novell, apollo, vines, decnet ou xns. O padrão é ip. Target IP address: Solicita o endereço IP ou o nome do host do nó de destino em que você planeja executar o ping. Se você tiver especificado um protocolo com suporte diferente de IP, digite o endereço adequado desse protocolo aqui. O padrão é nenhum. Repeat count [5]: O número de pacotes de ping enviados ao endereço de destino. O padrão é 5. Datagram size [100]: Tamanho do pacote de ping (em bytes). Padrão: 100 bytes. Timeout in seconds [2]: Intervalo de timeout. Padrão: 2 (segundos). O ping será considerado bem-sucedido somente se o pacote ECHO REPLY for recebido antes desse intervalo de tempo. Extended commands [n]: Especifica se uma série de comandos adicionais aparecerá ou não. O padrão é não. Source address or interface: A interface ou o endereço IP do roteador que será usado como o endereço de origem nas sondagens. O roteador normalmente captura o endereço IP da interface de saída a ser utilizada. A interface também pode ser mencionada, mas com a sintaxe correta, conforme mostrado aqui: Source address or interface: ethernet 0 Nota: Esta é uma saída parcial do comando ping estendido. A interface não pode ser escrita como e0. Especifica o Tipo de Serviço (ToS). O ToS solicitado é colocado Type of service em cada sondagem, mas não há qualquer garantia de que todos os [0]: roteadores o processarão. Ele é a seleção da qualidade do serviço da Internet. O padrão é 0. Especifica se o bit DF (Don't Fragment) deve ou não ser definido no pacote de ping. Se "yes" for especificado, a opção Don't Fragment não permitirá que esse pacote seja fragmentado quando Set DF bit in IP precisar atravessar um segmento com uma MTU (unidade máxima header? [no]: de transmissão) menor, e você receberá uma mensagem de erro do dispositivo que desejava fragmentar o pacote. Isso é útil para determinar a MTU mínima no caminho para um destino. O padrão é não. Validate reply data? [no]: Especifica se os dados da resposta devem ou não ser validados. O padrão é não. Data pattern [0xABCD] Especifica o padrão de dados. Diferentes padrões de dados são utilizados para o troubleshooting de erros de framing e de problemas de sincronização em linhas seriais. O padrão é [0xABCD]. Opções de cabeçalho IP. Este prompt oferece mais de uma opção para seleção. São elas: Verbose é selecionada automaticamente junto com qualquer outra opção. Record é uma opção muito útil porque exibe os endereços dos saltos (até nove) pelos quais o pacote passa. Loose permite que você influencie o caminho especificando os endereços dos saltos pelos quais o pacote deverá passar. Strict é utilizada para especificar os saltos pelos quais o pacote deverá passar, mas não é permitido que nenhum outro Loose, Strict, Record, Timestamp, Verbose[none]: salto seja visitado. Timestamp é utilizada para medir o tempo do trajeto de ida e volta até hosts específicos. A diferença entre utilizar a opção Record desse comando e o comando traceroute é que, além de informar os saltos percorridos pela solicitação de eco (ping) até o destino, a opção Record também informa os saltos que ela visitou no caminho de retorno. O comando traceroute não fornece informações sobre o caminho percorrido pela resposta do eco. O comando traceroute emite prompts para os campos necessários. Observe que o comando traceroute coloca as opções solicitadas em cada sondagem. No entanto, não há qualquer garantia de que todos os roteadores (ou nós finais) processarão as opções. O padrão é nenhum. Permite selecionar diversos tamanhos para os pacotes de eco enviados. Esta opção é utilizada para determinar os tamanhos Sweep range of mínimos das MTUs configuradas nos nós ao longo do caminho sizes [n]: para o endereço de destino. Assim, os problemas de desempenho causados pela 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 final (.) indica que ocorreu o timeout do servidor de rede enquanto ele aguardava uma resposta. Consulte caracteres de ping para obter uma descrição dos caracteres restantes. Success rate is 100 percent A porcentagem de pacotes ecoados de volta para o roteador com êxito. Qualquer valor inferior a 80% é geralmente considerado problemático. round-trip min/avg/max = 1/2/4 ms Intervalos de tempo do trajeto de ida e volta dos pacotes de eco do protocolo, incluindo mínimo/médio/máximo (em milissegundos). Neste diagrama, os Hosts 1 e 2 não são capazes de efetuar ping um no outro. É possível fazer o troubleshooting desse problema nos roteadores para determinar se existe um problema de roteamento ou se o gateway padrão de um dos dois hosts não está definido corretamente. Para que o ping do Host 1 para o Host 2 tenha êxito, cada host precisará apontar seu gateway padrão para o roteador em seu respectivo segmento de LAN ou o host precisará trocar informações sobre a rede com os roteadores que utilizam um protocolo de roteamento. Se qualquer um dos hosts não tiver seu gateway padrão definido corretamente ou se não tiver as rotas corretas em sua tabela de roteamento, ele não conseguirá enviar pacotes aos destinos que não estejam presentes em seu cache ARP (Address Resolution Protocol). Também é possível que os hosts não possam efetuar ping um no outro porque um dos roteadores não possui uma rota para a sub-rede a partir da qual o host está recebendo os pacotes de ping. Exemplo Este é um exemplo do comando ping estendido que tem origem na interface Ethernet 0 do Roteador A e destino na interface Ethernet do Roteador B. Se esse ping for bem-sucedido, isso indicará que não há problema de roteamento. O Roteador A sabe como alcançar a Ethernet do Roteador B, e o Roteador B sabe como alcançar a Ethernet do Roteador A. Além disso, os gateways padrão de ambos os hosts estão definidos corretamente. Se o comando ping estendido do Roteador A falhar, isso indicará que há um problema de roteamento. Poderá haver um problema de roteamento em qualquer um dos três roteadores. O Roteador A pode não ter uma rota para a sub-rede do segmento Ethernet do Roteador B ou para a sub-rede entre os Roteadores C e B; o Roteador B pode não ter uma rota para a sub-rede da sub-rede do Roteador A ou para a sub-rede entre os Roteadores C e A; e o Roteador C pode não ter uma rota para a sub-rede dos segmentos Ethernet do Roteador A ou B. Você deverá corrigir quaisquer problemas de roteamento e, em seguida, o Host 1 deverá tentar efetuar ping no Host 2. Se isso ainda não for possível, os gateways padrão de ambos os 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 Ethernet do Roteador B, o endereço de origem do pacote de ping seria o mesmo da interface de saída, ou seja, o endereço da interface serial 0 (172.31.20.1). Ao responder ao pacote de ping, o Roteador B responderá ao endereço de origem (ou seja, 172.31.20.1). Dessa maneira, 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) será testada. Para testar a conectividade entre a Ethernet 0 do Roteador A (172.16.23.2) e a Ethernet 0 do Roteador B (192.168.40.1), utilize o comando ping estendido. Com o ping estendido, é possível 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 !--- O endereço para o qual o ping deve ser enviado. Repeat count [5]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Source address or interface: 172.16.23.2 !--- Pacotes de ping são provenientes deste endereço. 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 bem-sucedido. Router A# Este é um exemplo com comandos estendidos e detalhes de varredura: Router A>enable Router A#ping Protocol [ip]: !--- O nome do protocolo. Target IP address: 192.168.40.1 !--- O endereço para o qual o ping deve ser enviado. Repeat count [5]: 10 !--- O número de pacotes de ping enviados para o endereço de destino. Datagram size [100]: !--- O tamanho do pacote de ping. O padrão é 100 bytes. Timeout in seconds [2]: !--- O intervalo de timeout. O ping será bem-sucedido somente se o !--- pacote ECHO REPLY for recebido antes desse intervalo. Extended commands [n]: y !--- Escolha yes se desejar opções de comandos estendidas !--- (Loose Source Routing, Strict Source Routing, Record route e Timestamp). Source address or interface: 172.16.23.2 !--- Os pacotes de ping são provenientes deste endereço e devem ser o endereço IP !--- ou o nome completo da interface (por exemplo, Serial0/1 ou 172.16.23.2). Type of service [0]: !--- Especifica o Tipo de Serviço (ToS). Set DF bit in IP header? [no]: !--- Especifica se o bit Don’t Fragment (DF) deve ser !--- definido no pacote de ping. Validate reply data? [no]: !--- Especifica se os dados da resposta devem ou não ser validados. Data pattern [0xABCD]: !--!--!--!--!--- Especifica o padrão de dados no payload do ping. Alguns links físicos podem exibir problemas dependentes de padrões de dados. Por exemplo, links seriais com código de linha configurado incorretamente. Alguns padrões de dados úteis a serem testados incluem somente 1s (0Xffff), somente 0s (0x0000) e alternância de 1s e 0s (0Xaaaa). Loose, Strict, Record, Timestamp, Verbose[none]: !--- Opções do cabeçalho de IP. Sweep range of sizes [n]: y !--- Selecione yes se desejar variar os tamanhos dos pacotes de eco que são enviados. 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: !--- A contagem 179890 depende dos valores de min sweep, !--- max sweep, sweep interval e repeat count. Os cálculos baseiam-se em: !--!--!--!--- 18024 17988 17988 17989 (limite superior do intervalo) - 36 (limite inferior do intervalo) = 17988 (bytes no intervalo) (bytes no intervalo) / 1(intervalo de sweep) = 17988 (passos no intervalo) (bytes no intervalo) + 1 (primeiro valor) = 17989 (valores a serem testados) (valores a serem testados) * 10 (contagem de repetições) = 179890 (pings a serem enviados) !--!--!--!--- Para diminuir o valor, aumente sweep interval ou diminua repeat count. Você pode ainda diminuir a diferença entre Sweep min size e Sweep max size. Com base no exemplo anterior, o número 17890 é um valor esperado e tenta enviar pings 17890 vezes. 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 bem-sucedido. Router A# O Comando traceroute Enquanto o comando ping pode ser utilizado para verificar a conectividade entre dispositivos, é possível utilizar o comando traceroute para descobrir os caminhos que os pacotes seguem até um destino remoto, bem como onde o roteamento é segmentado. A finalidade do comando traceroute é registrar a origem de cada mensagem ICMP "time exceeded" a fim de fornecer um rastreamento do caminho seguido pelo pacote para chegar ao destino. O dispositivo que executa o comando traceroute envia uma sequência de datagramas UDP (User Datagram Protocol), cada uma com valores de TTL (Time-To-Live) incrementais, para um endereço de porta inválido (Padrão 33434) no host remoto. Em primeiro lugar, três datagramas são enviados, cada um com o valor do campo TTL definido como 1. Esse valor fará com que ocorra o "timeout" do datagrama assim que ele alcançar o primeiro roteador no caminho. Em seguida, esse roteador responderá com a mensagem ICMP "time exceeded", a qual indica que o datagrama expirou. Depois, mais três mensagens UDP serão enviadas, cada uma com o valor de TTL definido como 2. Isso fará com que o segundo roteador no caminho para o destino retorne mensagens ICMP "time exceeded". Esse processo continuará até que os pacotes cheguem ao destino e até que o sistema que originou o comando traceroute receba mensagens ICMP "time exceeded" de todos os roteadores no caminho para o destino. Como esses datagramas tentam acessar uma porta inválida (Padrão 33434) no host de destino, o host responderá com mensagens ICMP "port unreachable" indicando que a porta não pode ser alcançada. Esse evento determina que o programa traceroute seja concluído. O Comando traceroute Estendido O comando traceroute estendido é uma variação do comando traceroute. O comando traceroute estendido pode ser utilizado para verificar o caminho seguido pelos pacotes para chegar a um destino, bem como para verificar o roteamento. Isso é útil para o troubleshooting de loops de roteamento ou para determinar onde os pacotes estão sendo perdidos (se falta uma rota ou se os pacotes estão sendo bloqueados por uma ACL [Lista de Controle de Acesso] ou um firewall). Você pode utilizar o comando ping estendido para determinar o tipo de problema de conectividade e, em seguida, o comando traceroute estendido para localizar o problema. A mensagem de erro "time exceeded" indica que um servidor de comunicação intermediário viu e descartou o pacote. A mensagem de erro "destination unreachable" indica que o nó de destino recebeu a sondagem e descartou-a porque não conseguiu entregar o pacote. Se o temporizador for desativado antes de uma resposta ser recebida, o comando trace imprimirá um asterisco (*). O comando é encerrado quando um dos seguintes eventos ocorre: o destino responde o TTL máximo é excedido o usuário interrompe o rastreamento com a sequência de escape Nota: Você pode chamar essa sequência de escape pressionando simultaneamente Ctrl, Shift e 6. Descrições dos Campos do Comando traceroute Esta tabela lista as descrições dos campos do comando traceroute: Campo Descrição Protocol [ip]: Solicita um protocolo com suporte. Digite appletalk, clns, ip, novell, apollo, vines, decnet ou xns. O padrão é ip. Target IP address Digite um nome de host ou um endereço IP. Não há padrão. Source address: A interface ou o endereço IP do roteador que será utilizado como o endereço de origem nas sondagens. O roteador normalmente captura o endereço IP da interface de saída a ser utilizada. Numeric display [n]: O padrão é ter uma exibição simbólica e numérica; entretanto, você poderá suprimir a exibição simbólica. Timeout in seconds [3]: O número de segundos durante o qual uma resposta de um pacote de sondagem deve ser esperada. O padrão é 3 segundos. Probe count [3]: O número de sondagens a serem enviadas em cada nível de TTL. A contagem padrão é 3. Minimum Time to Live [1]: O valor de TTL das primeiras sondagens. O padrão é 1, mas pode ser definido como um valor mais alto para suprimir a exibição de saltos conhecidos. Maximum Time to Live [30]: O valor máximo de TTL que pode ser utilizado. O padrão é 30. O comando traceroute é encerrado quando o destino é alcançado ou quando esse valor é atingido. Port Number [33434]: A porta de destino utilizada pelas mensagens de sondagem UDP. O padrão é 33434. Opções de cabeçalho IP. Você pode especificar qualquer combinação. O comando traceroute emite prompts para os Loose, Strict, campos necessários. Observe que o comando traceroute Record, Timestamp, colocará as opções solicitadas em cada sondagem; entretanto, Verbose[none]: não há garantia de que todos os roteadores (ou nós finais) as processarão. Exemplo Router A>enable Router A#traceroute Protocol [ip]: Target IP address: 192.168.40.2 !--- O endereço para o qual o caminho é traçado. 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 * !--- Traceroute bem-sucedido. Router A# Nota: O comando traceroute estendido pode ser executado apenas no modo EXEC privilegiado, enquanto o comando traceroute normal funciona nos modos de usuário e EXEC privilegiado. © 1992-2014 Cisco Systems Inc. Todos os direitos reservados. Data da Geração do PDF: 1 Julho 2009 http://www.cisco.com/cisco/web/support/BR/106/1067/1067622_ext_ping_trace.html