Respostas de ICMP - interface de entrada ou saída (por exemplo, de um traceroute)

1

Quando um traceroute é iniciado e recebe uma resposta ICMP dos nós, qual interface

  1. a resposta deve ser de acordo com RFC 1812 .
  2. eles estão respondendo de ingress (onde eles recebem o pacote) ou egress (onde o pacote teria sido enviado) para - ou seja, para o próximo nó, se ttl foi maior)

Comentários pessoais e pesquisa:

  1. De acordo com os slides publicados pela NANOG , a RFC 1812 afirma que deve ser a interface de saída. Eu li a seção ICMP da RFC 1812 e não consegui encontrar onde ela afirma (suspeito que minha compreensão da terminologia esteja desativada).
  2. Eu já li vários roteadores (Junos, Cisco) respondendo de diferentes interfaces, ainda que a maioria das respostas tenha entrado (conforme indicado no slide 10 do NANOG).

Eu não tenho um laboratório virtual da Cisco nem acho que tenho RAM suficiente para configurar vários roteadores de VM no VirtualBox.

    
por leviu 12.07.2015 / 04:51

1 resposta

1

Oi estou atrasado, mas no caso você ainda está curioso ...

A citação do slide NANOG de R Steenbergen está correta. O comportamento é definido na Seção 4.3.2.4 da RFC1812, que declara:

the IP source address in an ICMP message originated by the router MUST be one of the IP addresses associated with the physical interface over which the ICMP message is transmitted

Dependendo da implementação do Traceroute, a resposta a um rastreamento pode ser um Destino ICMP Inacessível (ou seja, traceroute implementado pelo Unix) ou um Tempo ICMP Excedido (traceroute iniciado pelo Windows). Eu acredito que isso é coberto na apresentação de Steenbergen. Como nenhuma dessas seções faz qualquer provisão para especificar o endereço de origem da resposta do ICMP, assumimos que a Seção 4.3.2.4 é válida para esses tipos de resposta específicos.

Imagine este cenário e assuma o seguinte:

  1. Suponha que todos os links entre círculos (roteadores) sejam links de camada 3 de igual custo (em em particular, que o link entre R1 e R2 não é um LAG / EtherChannel / etc)
  2. O roteamento dentro da rede de exemplo é tal que os pacotes vão do Remetente S para o Receptor R no caminho inferior e retornar pelo caminho mais alto, nas direções indicadas

O traceroute em implementações modernas seria assim:

traceroute to R 
 1  A 0.329 ms  A 0.425 ms A 0.471 ms
 2  C 0.349 ms  C 0.435 ms C 0.473 ms
 3  F 0.359 ms  G 0.445 ms F 0.481 ms
 4  R 0.369 ms  R 0.455 ms R 0.491 ms

E o rastreio, se os roteadores foram codificados para a especificação, ficaria assim:

traceroute to R 
 1  B 0.329 ms  B 0.425 ms B 0.471 ms
 2  D 0.349 ms  E 0.435 ms D 0.481 ms
 3  H 0.369 ms  H 0.445 ms H 0.491 ms
 4  R 0.389 ms  R 0.455 ms R 0.496 ms

Então, em um sentido mais coloquial, as implementações modernas nos dizem como chegamos a um determinado host. A especificação original nos diria como deixamos um roteador, mas não nos diria como chegamos lá.

Note que poderíamos pensar que isso causaria a quebra do Ping, mas a especificação cobre esse caso explicitamente:

The IP source address in an ICMP Echo Reply MUST be the same as the
specific-destination address of the corresponding ICMP Echo Request
message.

Em outras palavras, para Ping, o endereço de origem ICMP Echo Reply não deve ser um endereço associado à interface de saída conforme especificado na Seção 4.3.2.4, mas deve usar um endereço de origem derivado do endereço de destino do original Pedido de eco do ICMP.

    
por 22.05.2016 / 21:51