IP : Conversão de endereços de rede (NAT)

Como o NAT trata dos fragmentos de ICMP

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

Este documento explica como a Tradução de Endereço de Rede (NAT) gerencia fragmentos do Internet Control Message Protocol (ICMP) quando você configura a sobrecarga da NAT. Para obter informações sobre sobrecarga da NAT, consulte NAT FAQ.

A manipulação de fragmentos ICMP depende do estado da tabela de tradução NAT, e a ordem em que o roteador NAT recebe o ICMP fragmenta. Observe os três casos diferentes nos quais enviados dois pings de 172.16.0.1 até 172.17.1.2 com comprimento de 3600 bytes cada (três fragmentos IP).

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

Convenções

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Caso 1

Nesse cenário, observamos o NAT criar uma entrada de tradução totalmente estendida na tabela de tradução. Feito isso, e se não houver mais nenhum outro endereço utilizável no conjunto de NAT, este descartará qualquer fragmento recebido antes do primeiro fragmento 9fragmento 0) de um pacote.

Enquanto nós começamos, simplesmente um endereço no pool executa a sobrecarga; a tabela de tradução NAT está vazia; e a configuração de NAT aparece como:

ip nat pool POOL1 10.10.10.3 10.10.10.3 prefix-length 24
ip nat inside source list 5 pool POOL1 overload
access-list 5 permit 172.16.0.0 0.0.0.31

Deixe-nos olhar o que acontece enquanto os pacotes começam chegar no roteador NAT.

  1. O fragmento 0 do pacote 1 chega e o NAT cria uma entrada de conversão totalmente estendida. O NAT traduzem então e para a frente o fragmento 0 do pacote 1. A tabela de tradução aparece agora como:

    Pro   Inside global         Inside local        Outside local       Outside global
    icmp  10.10.10.3:24320      172.16.0.1:24320    172.17.1.2:24320    172.17.1.2:24320

    Observe o número 24320 na tabela de conversão acima. É o valor ident ICMP incluído no cabeçalho ICMP do IP datagram. Somente o fragmento 0 do datagrama de IP contém esse cabeçalho ICMP. Para determinar se vários fragmentos são parte do mesmo pacote, o NAT precisa rastrear o valor de identificação do IP, localizado no cabeçalho de IP de todos os fragmentos do datagrama de IP original. Se diversos fragmentos têm o mesmo valor ident IP como o fragmento 0, que criou a tradução extendida, o NAT traduz estes fragmentos usando a mesma entrada de tradução extendida. Refira o RFC 791leavingcisco.com para obter mais informações sobre do campo de identificação IP. Refira o RFC 792leavingcisco.com para obter mais informações sobre do campo de identificação ICMP.

  2. Pacote 1 fragmento 2 e pacote 1 fragmento 1 chegam. Como esses fragmentos fazem parte do mesmo pacote que contém o fragmento 0 (que criou a tradução), o NAT usa a entrada de tradução acima para traduzir e encaminhar esses fragmentos. O dispositivo de destino recebe todos os fragmentos para o pacote 1 e envia uma resposta.

  3. Chega o fragmento 1 do pacote 2. Desde que este é um pacote novo, seu valor ident IP não combina qualquer coisa que foi gravado pelo NAT. Consequentemente o NAT não pode usar a tradução existente. Também não pode criar uma nova tradução, pois já possui uma entrada de tradução totalmente estendida e não tem a identidade ICMP para criar uma outra. O NAT descarta o fragmento 1 do pacote 2.

  4. Chega o fragmento 0 do pacote 2. O NAT pode usar a tradução acima, desde que o identificador ICMP coincida. (Todos os sibilos dentro de um único conjunto de ping usam o mesmo número identificação ICMP.) Neste momento, o NAT grava a identificação IP deste pacote. NAT converte e encaminha o pacote 2 de fragmento 0.

  5. O pacote 2 fragmento 2 chega. A NAT pode usar a conversão descrita acima, uma vez que seu valor de identificação do IP corresponde à NAT registrada no passo anterior. O NAT traduzem e para a frente o fragmento 2. do pacote 2. O dispositivo de destino recebe apenas o fragmento 0 e 2 (o fragmento 1 está ausente) e, portanto, não envia resposta.

Caso 2

Nesta encenação, nós vemos que se os fragmentos diferentes do primeiro fragmento (fragmento 0) chegam primeiramente, o NAT cria uma tradução simples enquanto há um endereço no conjunto NAT que não tem sido usado já em uma tradução totalmente estendida.

Porque nós começamos, há somente um endereço no conjunto NAT, a tabela de tradução NAT está vazia, e a configuração aparece como:

ip nat pool POOL1 10.10.10.3 10.10.10.3 prefix-length 24
ip nat inside source list 5 pool POOL1 overload
access-list 5 permit 172.16.0.0 0.0.0.31
  1. Chega o fragmento 1 do pacote 1. O NAT não pode criar uma conversão totalmente estendida na tabela de conversão porque ele não tem as informações de identificação do ICMP neste fragmento. No entanto, como não há traduções totalmente estendidas em vigor, o NAT insere uma tradução simples. O NAT traduzem então e para a frente o fragmento 1. do pacote 1. A entrada de tradução aparece como:

    Pro   Inside global     Inside local          Outside local       Outside global
    ---   10.10.10.3        172.16.0.1            ---                 ---
  2. Chega o fragmento 0 do pacote 1. Como a informação de identificação de ICMP está inclusa nesse fragmento, o NAT insere uma entrada de conversão totalmente estendida:

    Pro     Inside global         Inside local        Outside local       Outside global
    ---     10.10.10.3            172.16.0.1          ---                 ---
    icmp    10.10.10.3:24321      172.16.0.1:24321    172.17.1.2:24321    172.17.1.2:24321

    O NAT grava então a informação identificação IP, e tradu-los e para a frente o fragmento 0 do pacote 1.

  3. Chega o fragmento 1 do pacote 2. Porque este fragmento tem a mesma informação identificação IP que o NAT gravado em etapa 2, NAT usa a tradução totalmente estendida para traduzir e enviar pacote a 1 fragmento 2.

    O dispositivo de destino recebe todos os fragmentos e responde. Neste ponto, todos os pings ocorreram até a tabela de conversão NAT ser limpa ou o tempo for esgotado.

Caso 3

Nesta encenação, nós vemos que se os fragmentos diferentes do primeiro fragmento (fragmento 0) chegam primeiramente, o NAT cria uma tradução simples enquanto há um endereço no conjunto NAT que não tem sido usado já em uma tradução totalmente estendida. Se uma tradução extendida na tabela NAT já usa o endereço, você corre o risco de NAT que traduz cada um dos endereços de origem do fragmento a um endereço diferente.

Enquanto nós começamos, mais de um endereço no conjunto NAT executa a sobrecarga, a tabela de tradução já tem uma tradução extendida no lugar, e a configuração é:

ip nat pool POOL1 10.10.10.3 10.10.10.5 prefix-length 24
ip nat inside source list 5 pool POOL1 overload
access-list 5 permit 172.16.0.0 0.0.0.31

A tabela de tradução aparece como:

Pro     Inside global         Inside local        Outside local       Outside global
icmp    10.10.10.3:24322      172.16.0.1:24322    172.17.1.2:24322    172.17.1.2:24322
  1. Chega o fragmento 1 do pacote 1. O NAT não pode criar uma entrada de tabela da tradução totalmente estendida desde que não tem a informação de identificação ICMP neste fragmento, e não pode criar uma entrada de tradução simples para o endereço 10.10.10.3, desde que há uma entrada prolongada existente para este endereço IP de Um ou Mais Servidores Cisco ICM NT. O NAT seleciona o próximo endereço IP livre (10.10.10.4) e cria uma conversão simples. O NAT traduzem então e para a frente o fragmento 1. do pacote 1. A tabela de tradução aparece agora como:

    Pro     Inside global         Inside local        Outside local       Outside global
    ---     10.10.10.4            172.16.0.1          ---                 ---
    icmp    10.10.10.3:24322      172.16.0.1:24322    172.17.1.2:24322    172.17.1.2:24322
    
    
  2. Chega o fragmento 0 do pacote 1. Como as informações de identificação do ICMP estão incluídas nesse fragmento, a NAT insere uma entrada de conversão totalmente estendida para o endereço 10.10.10.3 e registra as informações de identificação do IP para esse pacote. O NAT traduzem então e para a frente o fragmento 0 do pacote 1. A tabela de tradução aparece agora como:

    Pro     Inside global         Inside local        Outside local       Outside global
    ---     10.10.10.4            172.16.0.1          ---                 ---
    icmp    10.10.10.3:24322      172.16.0.1:24322    172.17.1.2:24322    172.17.1.2:24322
    icmp    10.10.10.3:24323      172.16.0.1:24323    172.17.1.2:24323    172.17.1.2:24323
  3. Chega o fragmento 1 do pacote 2. Como suas informações de identificação de IP coincidem com as informações registradas pela NAT no passo 2, a NAT usa a conversão completamente estendida criada no passo 2 para converter e encaminhar o fragmento 2 do pacote 2.

    Nesse ponto, o dispositivo de destino recebe todos os fragmentos do pacote, mas o fragmento 0 e 2 tiveram seu endereço de origem convertido em 10.10.10.3 e o fragmento 1 foi convertido em 10.10.10.4. Consequentemente, o dispositivo de destino não pode remontar o pacote e não envia nenhuma resposta.

  4. Chega o fragmento 0 do pacote 2. O NAT usa a tradução totalmente estendida acima ou cria uma tradução totalmente estendida nova segundo o valor do campo identificação do fragmento ICMP. Em qualquer dos casos, o NAT grava a informação identificação IP. O NAT traduzem então e para a frente o fragmento 0 do pacote 2.

  5. O pacote 2 fragmento 2 chega. Sua informação de identificação de IP é compatível com o que o NAT registrou no passo 4, então o NAT utiliza a segunda tradução completamente estendida criada no passo 4. O NAT converte e encaminha o fragmento 2 do pacote 2.

  6. Chega o fragmento 1 do pacote 2. Sua informação identificação IP combina o que o NAT gravado em etapa 4, assim que o NAT usa a segunda tradução totalmente estendida criada na etapa 4. NAT traduz e para a frente fragmento 1. do pacote 2.

    O dispositivo de destino recebe, da mesma origem (10.10.10.3), todos os três fragmentos do pacote, então o remonta e responde.

Resumo

O fato de uma NAT descartar ou encaminhar um fragmento de ICMP depende de inúmeras coisas, tal como a ordem em que o roteador da NAT recebe os fragmentos e o estado da tabela de conversão naquele momento. Sob certas condições, o NAT traduz os fragmentos diferentemente, que faz impossível para que o dispositivo de destino remonte o pacote.

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 13771