Posts com a tag: Traceroute

Identificando o caminho físico

O Traceroute é uma ferramenta que utiliza o ICMP para verificar o caminho layer 3 (lógico) até um determinado IP.  Além do caminho ele também permite diagnosticar possíveis problemas na rede, já que nos informação a latência até cada “salto” do caminho.

Muito útil, mas até aqui nenhuma novidade. Até o Windows possui essa ferramenta (Tracert).

Nos switches Cisco porém,  temos a opção de fazer um Traceroute Mac, e mapear o caminho físico (layer 2) entre dois hosts.

Por exemplo, se o Admin quiser saber o caminho físico entre o PC1 e PC2, basta saber o MAC ou IP dos dois PCs.

Traceroute Layer 2

Exemplo:

BrainGW01#traceroute mac 00c0.9f79.f41e  000d.9dd1.3918 detail
Source not directly connected, tracing source …..
Source 00c0.9f79.f41e found on BrainSW02[WS-C2950T-48-SI] (10.10.10.52)
1 BrainSW02 / WS-C2950T-48-SI / 10.10.10.52 :
Gi0/1 [full, 1000M] => Fa0/39 [full, 100M]
2 BrainSW06 / WS-C2950-24 / 10.10.10.56 :
Fa0/24 [full, 100M] => Fa0/2 [auto, auto]
Destination 000d.9dd1.3918 found on BrainSW06[WS-C2950-24] (10.10.10.56)
Layer 2 trace completed.
BrainGW01#

Como resultado temos a informação de que o MAC de origem (00c0.9f79.f41e) está no switch BrainSW02 porta G0/1 e o MAC de destino (000d.9dd1.3918) está na porta F0/2 do switch BrainSW06. Também podemos identificar as conexões entre os switches, neste exemplo a porta F0/39 do BrainSW02 está conectada a porta F0/24 do BrainSW06.

Outra opção é utilizar o comando traceroute mac ip 10.10.10.5 10.10.10.20 detail, e deixar que o switch encontre o MAC.

Restrições

Para o trace layer 2 funcionar é necessário atender algumas especificações:

  • O CDP deve estar habilitado em todos os switches;
  • Todos os switches devem estar alcançáveis a partir de onde a consulta esta sendo realizada (se der um ping todos os equipamentos devem responder;
  • O máximo de saltos no caminho deve ser 10;
  • Origem e destino devem pertencer a mesma VLAN;
  • Não é possível rastrear um endereço de multicast;
  • Se o MAC pertence a múltiplas VLANs, a VLAN deve ser especificada;
  • O traceroute layer 2 não consegue rastrear MACs através de hubs;
  • Esta funcionalidade não é suportada em redes Token Ring;

Até a próxima.

Ping em equipamentos Cisco

O Ping é normalmente o primeiro mecanismo de teste quando temos um problema na rede. Com um simples ping (que usa o ICMP) podemos identificar se um host está ativo, se existe uma rota até ele e se não temos nenhum tipo de bloqueio no caminho.

O ICMP – Internet Control Message Protocol, é integrante do protocolo IP.

Quando usamos o comando ping é gerado um echo request para o destino desejado. Esta requisição deve chegar ao destino, ai o host destino enviará a resposta (echo reply). Se isso acontecer em dois segundo (tempo padrão nos roteadores) o ping terá sucesso.

Exemplo: BrainRT01 enviou 5 echo requests para 200.221.11.100 e recebeu respostas (echo reply) para todas as requisições

BrainRT01#ping 200.221.11.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.221.11.100, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/39/40 ms
BrainRT01#

O sucesso na operação é indicado pela sinal ! (exclamação), mas além deste outros códigos são utilizados.

Código      Descrição

!                Echo reply recebido (ping Ok)
.                Echo reply não chegou no tempo limite (2” nos equipamentos Cisco)
?               Tipo de pacote desconhecido
|                Interrompido, cancelado
&               Tempo de vida do pacote excedido
!H              Negado administrativamente (access-list)
C               Rede congestionada
M               Problema na fragmentação
N               Rede inalcançável
P               Protocolo inalcançável (problema no protocolo)
Q               Destino ocupado
U               Destino inalcançável (falta de rota, access-list…)

Quando o ping não dá certo, podemos utilizar o comando debug ip icmp para analisar o problema.

Abaixo o Ping não chegou ao destino (U.U.U), e a causa é uma access-list no caminho

BrainRT01# debug ip icmp
BrainRT01#ping 200.221.11.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.221.11.100, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

Set 21 20:14:25.207: IP: s=200.10.10.2 (local), d=200.221.11.100 (Serial0), len 100, sending
Set 21 20:14:25.287: IP: s=200.221.11.100 (Serial0), d=200.10.10.2 (Serial0), len 56, rcvd 3
Set 21 20:14:25.291: ICMP: dst (200.10.10.2) administratively prohibited unreachable rcv from 200.221.11.100
Set 21 20:14:25.295: IP: s=200.10.10.2 (local), d=200.221.11.100 (Serial0), len 100,sending
Set 21 20:14:26.295: IP: s=200.10.10.2 (local), d=200.221.11.100 (Serial0), len 100,sending
Set 21 20:14:26.367: IP: s=200.221.11.100 (Serial0), d=200.10.10.2 (Serial0), len 56, rcvd 3
Set 21 20:14:26.371: ICMP: dst (200.10.10.2) administratively prohibited unreachable rcv from 200.221.11.100
Set 21 20:14:26.379: IP: s=200.10.10.2 (local), d=200.221.11.100 (Serial0), len 100,sending
BrainRT01#

Agora, o problema está no roteamento. O roteador de origem não possui uma rota para chegar ao destino

BrainRT01# debug ip icmp
BrainRT01#ping 200.221.11.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.221.11.100, timeout is 2 seconds:

Set 21 20:05:21.603: IP: s=200.10.10.2 (local), d=200.221.11.100, len 100, unroutable.
Set 21 20:05:23.599: IP: s=200.10.10.2 (local), d=200.221.11.100, len 100, unroutable.
Set 21 20:05:25.599: IP: s=200.10.10.2 (local), d=200.221.11.100, len 100, unroutable.
Set 21 20:05:37.599: IP: s=200.10.10.2 (local), d=200.221.11.100, len 100, unroutable.
Set 21 20:05:39.599: IP: s=200.10.10.2 (local), d=200.221.11.100, len 100, unroutable.
Success rate is 0 percent (0/5)
BrainRT01#

Mais informações sobre o comando Ping e também Traceroute aqui.

Até a próxima.

Fazendo o ASA aparecer em um tracert/traceroute

Por razões de segurança, o ASA/PIX não aparece quando fazemos um tracert (ou traceroute). Ele fica “invisível” para este tipo de tráfego deixando o pacote passar sem decrementar o TTL.

Exemplo: Com a configuração padrão o usuário não consegue ver o ASA como um dos “hops”.

image

C:\>tracert 200.221.11.100

Rastreando a rota para brahms.uol.com.br [200.221.11.100]
com no máximo 30 saltos:

1     1 ms    <1 ms    <1 ms  200.1.1.1  <—- O roteador é o primeiro “hop”
2     *        *        *     Esgotado o tempo limite do pedido.
3     *        *        *     Esgotado o tempo limite do pedido.
4     *          27 ms    28 ms  201.0.5.121
5    60 ms    57 ms    59 ms  201.63.253.154
6    84 ms   121 ms   152 ms  201.63.253.182
7    27 ms   47 ms    60 ms  189.109.69.74]
8    28 ms    26 ms    28 ms  200.221.136.102
9    26 ms    25 ms    26 ms  brahms.uol.com.br [200.221.11.100]

Rastreamento concluído.

C:\>

Apesar deste ser o comportamento padrão do firewall, muitas vezes precisamos que todos os “hops” do caminho sejam identificados. Para isso é necessário configurar o ASA/PIX para que ele passe a decrementar o TTL, e assim ser identificado no tracert.

Nas versões mais recentes (a partir da versão 8.0 (3)) basta entrar no policy-map padrão, depois na class-default e colocar o comando set connection decrement-ttl.

Configuração: Decrementando TTL no tráfego layer 3 que passa pelo ASA/PIX.

BrainFW01# conf t
BrainFW01(config)# policy-map global_policy
BrainFW01(config-pmap)# class class-default
BrainFW01(config-pmap-c)# set connection decrement-ttl
BrainFW01(config-pmap-c)# end
BrainFW01#

Com a configuração acima o ASA/PIX começará a “aparecer” no tracert.

C:\>tracert 200.221.11.100

Rastreando a rota para brahms.uol.com.br [200.221.11.100]
com no máximo 30 saltos:

1     1 ms    <1 ms    <1 ms  200.1.1.2    <—- IP da outside do ASA
2    <1 ms     *       <1 ms  200.1.1.1
3     *        *        *     Esgotado o tempo limite do pedido.
4     *        *        *     Esgotado o tempo limite do pedido.
5     *           28 ms    28 ms  201.0.5.121
6    60 ms    57 ms    59 ms  201.63.253.154
7    84 ms   101 ms   152 ms  201.63.253.182
8    27 ms   101 ms    27 ms  189.109.69.74]
9    28 ms    26 ms    28 ms  200.221.136.102
10    26 ms    25 ms    26 ms  brahms.uol.com.br [200.221.11.100]

Rastreamento concluído.

C:\>

Além desta configuração, para que o ASA/PIX aceite o tracert, é preciso liberar o ICMP nas access-lists aplicadas nas interfaces outside e inside (caso exista uma).

Mais detalhes neste link, e até a próxima.

Tema Brainwork 0.2(beta)