Protocolo NAT

El protocolo NAT se implemento en su momento para evitar sufrir un agotamiento rápido del direccionamiento IPv4; 4300 millones de direcciones parecían suficientes, pero cuando todo hijo de vecino empezó a utilizar Internet, este numero de direcciones empezó a quedarse pequeño, gracias a NAT se consiguió reducir el numero de IPs a utilizar, ya que su funcionalidad ayudo a que se pudiesen tener varios dispositivos detrás de una IP, lo que después conoceríamos como IP pública.

El protocolo hace uso de las siguientes definiciones:

  • Local interna: dirección IP del equipo host en la red local
  • Global interna: dirección IP del router NAT de cara a Internet
  • Local externa: dirección IP del router NAT de cara a Internet
  • Global externa: dirección del equipo de destino, ejemplo la dirección IP de un servidor WEB

NAT (Network Address Translation) o traductor de direcciones de red, lo que realiza es básicamente una traducción de varias IPs locales internas a una o más globales internas. La traducción o asignación de direcciones IP, es decir de las Locales Internas a las Globales Internas, se puede realizar de distintas formas:

NAT estática

Asignación de las direcciones uno a uno, de una local a una global:

Dirección Local Interna

Dirección Global Interna

192.168.1.10

212.12.12.43

192.168.1.11

212.12.12.44

192.168.1.12

212.12.12.45

NAT dinámica

Asignación de varias direcciones a varias direcciones entre direcciones locales y globales, se asigna una disponible a cada dispositivo de la red.

Dirección Local Interna

Dirección Global Interna

192.168.1.10

212.12.12.43

Disponible

212.12.12.44

Disponible

212.12.12.45

NAT de la dirección de puerto o PAT

También conocido como NAT con sobrecarga, es el que a día de hoy utilizamos la mayoría en nuestras casas, la asignación se realiza de varias direcciones locales a una global. Consta básicamente en asociar el puerto origen de una comunicación con la dirección IP origen. Cuando un host de la red se comunica con un servidor remoto, por ejemplo, con un servidor web, se asocia la dirección origen y el puerto origen;  cuando el paquete vuelve del servidor web con puerto origen 80, el puerto origen con el que se comunico el cliente, se convierte en puerto de destino y de esta forma el router envía el paquete al equipo correcto.

Además el router también administra las conexiones establecidas consiguiendo así que no pase ningún paquete a través de una conexión que a priori no haya sido creada.

Dirección IP Local Interna

Dirección IP Global Interna

Dirección Global Externa

 192.168.1.10:51200 212.12.12.45:51200  212.66.66.66:80
 192.168.1.11:51201  212.12.12.45:51201  212.66.66.66:80

Cuando dos equipos de una red se comunican con un servidor remoto, estos podrían llegar a generar o a utilizar un puerto origen identico, en ese caso la dirección IP Global Interna sería la misma para ambos host, y esto podría ocasionar problemas, ya que al router llegarían varios paquetes con el mismo puerto origen. Para esto el protocolo PAT, detecta si el puerto esta siendo utilizado antes de enviar el paquete fuera y si es así le suma un numero al puerto duplicado:

Dirección IP Local Interna

Dirección IP Global Interna

Dirección Global Externa

192.168.1.10:1400 212.12.12.45:1400 212.66.66.66:80
192.168.1.11:1400 212.12.12.45:1401 212.66.66.66:80

Estaréis pensando: ¿Y cuando hacemos un ping (ICMPv4), no tocamos la capa de transporte, por lo cual no se generan números de puerto, ni origen ni destino? en este caso PAT, trata de manera distinta dichos paquetes y genera un número ID correspondiente a cada petición generada por el equipo local interno.

Uno de los problemas de PAT es que en cierta medida ralentiza mucho las comunicaciones ya que si detallamos un router debe:

  • Realizar switching de procesos, para decidir por que interfaz saldrá el paquete.
  • Modificar la cabecera de la capa 3
  • Recalcular el checksum de la cabecera de la capa 3
  • Modificar la cabecera de la capa 4
  • Recalcular el checksum de la cabecera de la capa 4

Todos estos procesos ralentizan las comunicaciones, algo que con IPv6 en gran parte podremos evitar. ¿Cuando llegará definitivamente IPv6?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s