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 ?
Respuestas:
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.
fuente
inside destination
parece coincidir con mi "explicación de laico" parainside source
. Excepto, mi ejemplo cambió el número de puerto de destino para el tráfico entrante de80
a8080
. ¿Su descripción parece implicar que el puerto # no cambia? De cualquier manera, esa no puede ser la única diferencia entreinside destination
yinside source
, ¿o sí?inside source
flujo de tráfico se origina en el interior y elinside destination
flujo de tráfico se origina en el exterior. Si el tráfico procedente deinside source
necesita una respuesta, seinside destination
produce 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.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:
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?
fuente