Saltar al contenido

¿Cómo funciona la reflexión NAT (bucle invertido NAT)?

Luego de de nuestra larga búsqueda de datos hemos podido solucionar este atolladero que suelen tener muchos de nuestros lectores. Te dejamos la respuesta y deseamos servirte de mucha ayuda.

Solución:

Para que una NAT funcione correctamente, tanto los paquetes del cliente al servidor como los paquetes del servidor al cliente deben pasar por la NAT.

Tenga en cuenta que la tabla NAT en iptables solo se usa para el primer paquete de una conexión. Los paquetes posteriores relacionados con la conexión se procesan utilizando las tablas de asignación internas establecidas cuando se tradujo el primer paquete.

iptables -t nat -A PREROUTING -i br-lan -s 192.168.1.0/24 -d 82.120.11.22/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.200

Con solo esta regla en su lugar, sucede lo siguiente.

  • El cliente crea el paquete inicial (tcp syn) y lo dirige a la IP pública. El cliente espera obtener una respuesta a este paquete con la IP/puerto de origen y la IP/puerto de destino intercambiados.
  • Dado que el cliente no tiene entradas específicas en su tabla de enrutamiento, lo envía a su puerta de enlace predeterminada. La puerta de enlace predeterminada es el cuadro NAT.
  • La caja NAT recibe el paquete inicial, modifica la IP de destino, establece una entrada en la tabla de mapeo, busca el nuevo destino en su tabla de enrutamiento y envía los paquetes al servidor. La dirección de origen permanece sin cambios.
  • El servidor recibe el paquete inicial y elabora una respuesta (syn-ack). En la respuesta, la IP/puerto de origen se intercambia con la IP/puerto de destino. Dado que la IP de origen del paquete entrante no se modificó, la IP de destino de la respuesta es la IP del cliente.
  • El servidor busca la IP en su tabla de enrutamiento y envía el paquete al cliente.
  • El cliente rechaza el paquete porque la dirección de origen no coincide con lo que espera.
iptables -t nat -A POSTROUTING -o br-lan -s 192.168.1.0/24 -d 192.168.1.200/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.1

Una vez que agregamos esta regla, la secuencia de eventos cambia.

  • El cliente crea el paquete inicial (tcp syn) y lo dirige a la IP pública. El cliente espera obtener una respuesta a este paquete con la IP/puerto de origen y la IP/puerto de destino intercambiados.
  • Dado que el cliente no tiene entradas específicas en sus tablas de enrutamiento, lo envía a su puerta de enlace predeterminada. La puerta de enlace predeterminada es el cuadro NAT.
  • El cuadro NAT recibe el paquete inicial, siguiendo las entradas en la tabla NAT, modifica la IP de destino, la IP de origen y posiblemente Puerto de origen (el puerto de origen solo se modifica si es necesario eliminar la ambigüedad), establece una entrada en la tabla de mapeo, busca el nuevo destino en su tabla de enrutamiento y envía los paquetes al servidor.
  • El servidor recibe el paquete inicial y elabora una respuesta (syn-ack). En la respuesta, la IP/puerto de origen se intercambia con la IP/puerto de destino. Dado que la IP de origen del paquete entrante fue modificada por la caja NAT, la IP de destino del paquete es la IP de la caja NAT.
  • El servidor busca la IP en su tabla de enrutamiento y envía el paquete de regreso a la caja NAT.
  • El cuadro NAT busca los detalles del paquete (IP de origen, puerto de origen, IP de destino, puerto de destino) en sus tablas de asignación de NAT y realiza una traducción inversa. Esto cambia la IP de origen a la IP pública, el puerto de origen a 80, la IP de destino a la IP del cliente y el puerto de destino a cualquier puerto de origen que haya usado el cliente.
  • El cuadro NAT busca la nueva IP de destino en su tabla de enrutamiento y envía el paquete de vuelta al cliente.
  • El cliente acepta el paquete.
  • La comunicación continúa con el NAT traduciendo paquetes de un lado a otro.

Nos puedes corroborar nuestra investigación fijando un comentario y puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *