¿Qué significan estas tres opciones en una configuración de Cisco Router NAT?

10

En una configuración estándar de PAT estática, donde una combinación de IP: puerto siempre se asigna a otra combinación de IP: puerto, hay tres posibles combinaciones de dentro / fuera / fuente / destino que se pueden configurar.

Por ejemplo, este es un ejemplo de configuración:

ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
       ^^^^^^^^^^^^^

En términos simples, esta configuración permite que cualquier host externo inicie una conexión TCP a la IP 2.2.2.33 a través del puerto 80. Cuando este paquete llega al enrutador, la dirección IP de destino y el puerto ( 2.2.2.33:80) se traducen 10.0.20.13:8080.

También ocurriría lo contrario, si el host interno 10.0.20.13 envía un paquete TCP con un puerto de origen de 8080, cuando este paquete cruza el enrutador, la IP de origen y el Puerto ( 10.0.20.13:8080) se traducen 2.2.2.33:80. (esto normalmente sería un paquete de respuesta , en lugar de uno iniciado desde el host interno)


Aquí están las tres opciones de configuración para la parte marcada arriba:

Router(config)#ip nat inside ?
  destination  Destination address translation
  source       Source address translation

Router(config)#ip nat outside ?
  source  Source address translation

En efecto, puede configurar:

  • ip nat dentro de la fuente tcp estática {IP} {Puerto} {IP} {Puerto}
  • ip nat dentro del destino tcp estático {IP} {Puerto} {IP} {Puerto}
  • ip nat fuera de la fuente tcp estática {IP} {Puerto} {IP} {Puerto}

¿Cómo son diferentes estas opciones y cuándo se usaría cada una de las tres opciones? Utilice los términos simples como lo hice anteriormente para describir cómo cada uno manipularía los paquetes que llegaban a través del dispositivo.

Además, ¿alguien puede decirme por qué no hay una opción de destino externo ?

Eddie
fuente
2
@Eddie, en lugar de que todos regurgitemos los manuales de usuario, eche un vistazo a este cisco.com/c/en/us/support/docs/ip/… o this groupstudy.com/archives/ccielab/200702/msg01284.html y mira si eso te ayuda. Después de eso, si aún tiene preguntas específicas, estaremos encantados de ayudarlo.
Ron Trunk
¿Alguna respuesta te ayudó? Si es así, debe aceptar la respuesta para que la pregunta no siga apareciendo para siempre, buscando una respuesta. Alternativamente, puede proporcionar y aceptar su propia respuesta.
Ron Maupin

Respuestas:

7

Piensa en esto con mucho cuidado.

Fuente interna significa que desea traducir la dirección de origen del tráfico que se origina dentro de su red. Este es el típico arreglo de "redes domésticas" que le permite usar direcciones privadas en Internet pública. Por supuesto, este no es el único uso para esta versión.

Destino interno significa que desea que el tráfico que se origina desde una dirección externa a un protocolo de transporte y puerto de destino particular vaya a una dirección interna particular. Esto es lo que hacen los usuarios domésticos para permitir que se acceda a un servidor web con una dirección privada desde Internet pública. Por supuesto, este no es el único uso para esta versión.

La fuente externa traduce el tráfico que se origina desde afuera para que parezca que se originó desde una dirección interna. Puede ser útil en los casos en que las empresas con rangos de direcciones IP superpuestas se fusionen y necesiten comenzar a conectar las redes. Puede traducir las direcciones de origen del tráfico que se origina desde el exterior, que normalmente tendría direcciones de origen externas que entran en conflicto con las direcciones internas, a direcciones de direcciones de origen en un rango de direcciones internas disponible.

El destino externo realmente no tiene mucho sentido ya que es lo contrario del reenvío de puertos. Esto limitaría cualquier tráfico que se origine desde el interior, destinado a un puerto y protocolo de transporte externo en particular, a una sola dirección externa.

Ron Maupin
fuente
Su descripción para inside destinationparece coincidir con mi "explicación de laico" para inside source. Excepto, mi ejemplo cambió el número de puerto de destino para el tráfico entrante de 80a 8080. ¿Su descripción parece implicar que el puerto # no cambia? De cualquier manera, esa no puede ser la única diferencia entre inside destinationy inside source, ¿o sí?
Eddie
La diferencia es la fuente del tráfico. El inside sourceflujo de tráfico se origina en el interior y el inside destinationflujo de tráfico se origina en el exterior. Si el tráfico procedente de inside sourcenecesita una respuesta, se inside destinationproduce un proceso de tipo temporal para la respuesta. El número de puerto se puede cambiar a medida que el tráfico viaja de un lado a otro, pero no todos los enrutadores (especialmente los enrutadores domésticos) lo admiten.
Ron Maupin
4

Debemos comenzar desde lo básico, así que revisemos la terminología NAT. NAT traduce las direcciones IP en paquetes IP, ¿verdad? Qué significa eso? Que, básicamente, crea espejismos, sí, ilusiones ópticas, ya sabes. Por ejemplo, en una configuración NAT típica cuando los hosts de LAN con acceso privado acceden a Internet mediante el uso de la dirección IP pública de la interfaz del enrutador externo, esos hosts aparecen para los servidores de Internet que tienen esta IP pública (o IP de un grupo de IP públicas). NAT no crea nuevos hosts físicos, por supuesto, pero crea una especie de nuevas entidades virtuales. En este ejemplo, los hosts LAN se ven a sí mismos como, digamos 192.168.1.x, pero los servidores de Internet los ven como 203.0.113.x - un conjunto de hosts físicos pero dos conjuntos de direcciones IP. Dos conjuntos distintos de hosts (lógicos). Ilusión óptica. Y la terminología es esta:

  • dentro de local : direcciones IP "reales" de los hosts internos asignados a sus interfaces y como se ven
  • inside global - direcciones IP de "espejismo" tal como las ve el mundo exterior
  • fuera de global : direcciones IP "reales" de los hosts externos tal como los ven ellos mismos y (casi) todo Internet
  • fuera de las direcciones IP locales - "espejismo" cuando vemos hosts externos (si le pedimos a NAT que traduzca de manera correspondiente)

Y como puede ver, estamos obligados a hacer una distinción entre nuestra red e Internet u otra red externa. Hacemos esto marcando las interfaces IP de nuestro enrutador como ip nat inside o ip nat outside , ¿está de acuerdo?

Ahora recordemos cómo se implementa normalmente NAT: mantiene tablas especiales que contienen entradas sobre las traducciones. Y lo importante es que estas entradas se pueden crear de forma estática o dinámica . Para las entradas creadas dinámicamente, la dirección del tráfico es importante: ¿se inicia el tráfico desde adentro hacia afuera o viceversa? Para las entradas estáticas, esto no es así, son simétricas . Las instrucciones de configuración de NAT que contienen la palabra clave estática crean entradas estáticas inmediatamente después de colocarlas en la configuración en ejecución; aquellos con la palabra clave dinámica observan el tráfico interesante y crean dinámicamente entradas de traducción, que finalmente se agotarán.

Ya podemos especular sobre su última pregunta: ¿por qué no hay una opción de destino externo ? ip nat inside source static crea una entrada NAT estática que se traduce exactamente como usted describió, pero esto incluye no solo el tráfico iniciado desde un lado en particular: las entradas NAT estáticas son simétricas. Por lo tanto, ip nat fuera del destino estático crearía una entrada estática para traducir las direcciones IP de destino del tráfico que ingresa a su red desde el exterior Y las direcciones IP de origen para el tráfico que va desde adentro , pero esto es exactamente lo que ip nat dentro de la fuente estáticacomando hace! Entonces, es simplemente redundante tener este comando. La única diferencia es que intercambiaría la fuente con la ip de destino al usar una u otra forma básicamente del mismo comando.

Con respecto a su primera declaración, "hay tres combinaciones posibles de adentro / afuera / fuente / destino que se pueden configurar", esto no es así. El punto es que, en términos generales, las declaraciones de configuración NAT no son "fórmulas matemáticas" y deben considerarse en su totalidad, y no como lógicamente construidas a partir de palabras clave independientes. Por lo tanto, cada "combinación" presenta una solución para una tarea particular, por ejemplo, ip nat dentro de la lista de destinos se utiliza para configurar el equilibrio de carga TCP del servidor que utiliza un algoritmo específico y no funciona con UDP. Además, (en IOS modernos) no hay ip nat dentro del comando estático de destino : ¿realmente lo ha intentado con la opción estática ?

Puede ver algunos escenarios particulares de uso de NAT, incluidos ejemplos de configuración en este documento de Cisco: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html

Finalmente, me gustaría mencionar que a veces NAT no es lo que quieres, por ejemplo, mira mi respuesta para esta "pregunta canónica": /server/55611/loopback-to-forwards-public- ip-address-from-local-network-hairpin-nat / 733532 # 733532

PD ¿Debo entrar en más detalles?

Sergio
fuente