IP : Traducción de direcciones de red (NAT)

Cómo maneja NAT los fragmentos de ICMP

17 Octubre 2016 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (22 Agosto 2015) | Comentarios


Contenido


Introducción

Este documento explica cómo Network Address Translation (NAT) maneja los fragmentos del Internet Control Message Protocol (ICMP) cuando usted configura la sobrecarga de NAT. Para obtener información sobre la sobrecarga de NAT, vea las preguntas frecuentes sobre NAT.

La dirección de los fragmentos ICMP depende del estado de la tabla de traducción de NAT, y la orden en la cual el router NAT recibe el ICMP hace fragmentos. Observaremos tres casos diferentes en los que enviamos dos pings de 172.16.0.1 a 172.17.1.2, cada uno con una longitud de 3600 bytes (tres fragmentos IP).

prerrequisitos

Requisitos

No hay requisitos específicos para este documento.

Componentes Utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.

Convenciones

Para obtener más información sobre las convenciones del documento, consulte las Convenciones de Consejos Técnicos de Cisco.

Caso 1

En este escenario, observamos que NAT crea una entrada de traducción completamente ampliada en la tabla de traducciones. Una vez que se haya hecho, y que no queden otras direcciones utilizables en el agrupamiento de NAT, la NAT libera los fragmentos recibidos antes del primer fragmento (fragmento 0) de un paquete.

Mientras que comenzamos, sólo un direccionamiento en el pool realiza la sobrecarga; la tabla de traducción de NAT está vacía; y la configuración del 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

Miremos qué sucede mientras que los paquetes comienzan a llegar el router NAT.

  1. Llega el fragmento 0 del paquete 1 y NAT crea una entrada de traducción totalmente ampliada. El NAT entonces traduce y adelante el fragmento 0 del paquete 1. La tabla de traducción ahora aparece 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 el número 24320 en la tabla de traducciones anterior. Es el valor de identificación ICMP incluido en el encabezado ICMP del IP datagram. Sólo el fragmento 0 del datagrama IP contiene este encabezado ICMP. Para determinar si los segmentos múltiples son parte del mismo paquete, NAT necesita seguir el valor ident de IP, que se encuentra en el encabezado IP de todos los fragmentos desde el datagrama IP original. Si varios fragmentos tienen el mismo valor de identificación IP como fragmento 0, que creó la traducción ampliada, el NAT traduce estos fragmentos usando la misma entrada de traducción ampliada. Refiera al RFC 791leavingcisco.com para más información sobre el campo de identificación IP. Refiera al RFC 792leavingcisco.com para más información sobre el campo de identificación ICMP.

  2. Llegan el paquete 1 fragmento 2 y el paquete 1 fragmento 1. Dado que estos fragmentos son parte del mismo paquete que contiene el fragmento 0 (el cual creó la conversión), NAT usa la entrada de traducción indicada anteriormente para traducir y enviar estos fragmentos. El dispositivo de destino recibe todos los fragmentos para el paquete 1 y envía una contestación.

  3. Llega el paquete 2 fragmento 1. Puesto que esto es un nuevo paquete, su valor de identificación IP no hace juego cualquier cosa que ha sido registrada por el NAT. Por lo tanto el NAT no puede utilizar la traducción existente. Además, no puede crear una traducción dado que ya cuenta con una entrada de traducción completamente ampliada y no tiene la identificación del ICMP para crear otra. NAT pierde el fragmento 1 del paquete 2.

  4. Llega el Paquete 2 fragmento 0. NAT puede utilizar la traducción anterior dado que la identificación ICMP coincide. (Todos los ping dentro de un único conjunto de ping utilizan el mismo número de la identificación ICMP.) En este momento, el NAT registra la identificación IP de este paquete. NAT traduce y reenvía el fragmento 0 del paquete 2.

  5. Llega el paquete 2 fragmento 2. La NAT puede ahora utilizar la traducción dado que el valor de identificación IP coincide con la NAT registrada en el paso anterior. El NAT traduce y adelante el fragmento 2. del paquete 2. El dispositivo de destino recibe sólo el fragmento 0 y 2 (falta el fragmento 1), por lo que no envía respuesta.

Caso 2

En este escenario, vemos que si llegan los fragmentos con excepción del primer fragmento (fragmento 0) primero, el NAT crea una traducción simple mientras haya un direccionamiento en el agrupamiento NAT que no se ha utilizado ya en una traducción totalmente ampliada.

Pues comenzamos, hay solamente un direccionamiento en el agrupamiento NAT, la tabla de traducción de NAT está vacía, y la configuración 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. Llega el paquete 1 fragmento 1. NAT no puede crear una traducción completamente ampliada en la tabla de traducción porque no tiene la información de identificación de ICMP en este fragmento. Sin embargo, puesto que no hay traducciones completamente extendidas en el lugar, el NAT ingresa una traducción simple. El NAT entonces traduce y adelante el fragmento 1. del paquete 1. La entrada de traducción aparece como:

    Pro   Inside global     Inside local          Outside local       Outside global
    ---   10.10.10.3        172.16.0.1            ---                 ---
  2. Se recibe paquete 1 fragmento 0. Dado que la información de identificación de ICMP está incluida en este fragmento, NAT ingresa una entrada de traducción completamente ampliada:

    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

    El NAT entonces registra la información de identificación IP, y los traduce y adelante el fragmento 0 del paquete 1.

  3. Llega el paquete 1 fragmento 2. Porque este fragmento tiene la misma información de identificación IP que el NAT registrado en el paso 2, NAT utiliza la traducción totalmente ampliada para traducir y para remitir paquete a 1 fragmento 2.

    El dispositivo de destino recibe todos los fragmentos y responde. En este momento, todos los pings prosperan hasta que la tabla de traducción de NAT se borra o se desconecta.

Caso 3

En este escenario, vemos que si llegan los fragmentos con excepción del primer fragmento (fragmento 0) primero, el NAT crea una traducción simple mientras haya un direccionamiento en el agrupamiento NAT que no se ha utilizado ya en una traducción totalmente ampliada. Si una traducción ampliada en la tabla NAT utiliza ya el direccionamiento, usted corre el riesgo de NAT que traduce a cada uno de las direcciones de origen del fragmento a un diverso direccionamiento.

Mientras que comenzamos, más de un direccionamiento en el agrupamiento NAT realiza la sobrecarga, la tabla de traducción tiene ya una traducción ampliada, y la configuración es:

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

La tabla de traducción 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. Llega el paquete 1 fragmento 1. El NAT no puede crear una entrada de tabla de la traducción totalmente ampliada puesto que no tiene la información de identificación ICMP en este fragmento, y no puede crear una entrada de traducción simple para el direccionamiento 10.10.10.3, puesto que hay una entrada extendida existente para esta dirección IP. La NAT selecciona la siguiente dirección IP libre (10.10.10.4) y crea una traducción simple. El NAT entonces traduce y adelante el fragmento 1. del paquete 1. La tabla de traducción ahora aparece 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. Se recibe paquete 1 fragmento 0. Dado que la información de identificación de ICMP está incluida en este fragmento, NAT ingresa una entrada de traducción totalmente ampliada para la dirección 10.10.10.3, y registra la información de identificación de IP para este paquete. El NAT entonces traduce y adelante el fragmento 0 del paquete 1. La tabla de traducción ahora aparece 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. Llega el paquete 1 fragmento 2. Debido a que su información de identificación de IP coincide con la que NAT registró en el paso 2, NAT utiliza la traducción totalmente extendida que se creó en el paso 2 para traducir y reenviar el fragmento 2 del paquete 1.

    En este punto, el dispositivo de destino recibe todos los fragmentos del paquete 1, pero la dirección de origen del fragmento 0 y 2 se ha traducido a 10.10.10.3 y el fragmento 1 se ha traducido a 10.10.10.4. Por lo tanto, el dispositivo de destino no puede volver a montar el paquete y no envía ninguna contestación.

  4. Llega el Paquete 2 fragmento 0. El NAT utiliza la traducción totalmente ampliada antedicha o crea una nueva traducción totalmente ampliada dependiendo del valor del campo de la identificación ICMP del fragmento. En ambos casos, el NAT registra la información de identificación IP. El NAT entonces traduce y adelante el fragmento 0 del paquete 2.

  5. Llega el paquete 2 fragmento 2. Su información de identificación de IP coincide con lo que NAT registró en el paso 4, por eso, NAT utiliza la segunda traducción totalmente extendida creada en el paso 4. NAT traduce y reenvía el fragmento 2 del paquete 2.

  6. Llega el paquete 2 fragmento 1. Su información de identificación IP hace juego lo que utiliza el NAT registrado en el paso 4, así que el NAT la segunda traducción totalmente ampliada creada en el paso 4. NAT traduce y adelante el fragmento 1. del paquete 2.

    El dispositivo de destino recibe los tres fragmentos del paquete 2 de la misma fuente (10.10.10.3), de manera que vuelve a ensamblar el paquete y responde.

Resumen

El hecho de que NAT elimine o reenvíe fragmentos ICMP depende de diversas razones tales como el orden en el que el router NAT recibe los fragmentos y el estado de la tabla de traducción en ese momento. Bajo ciertas condiciones, el NAT traduce los fragmentos diferentemente, que hace imposible para que el dispositivo de destino vuelva a montar el paquete.


Información Relacionada


Document ID: 13771