Network Address Translation (NAT)
Álvaro González Sotillo
Created: 2024-09-08 dom 17:53
1. Introducción
- En un enrutamiento normal IP los paquetes siempre conservan su IP origen y destino, aunque pasen por diferentes routers
- ¿Qué pasaría si un router cambiase la dirección IP de origen por la suya propia?
- El destino de la comunicación pensaría que el origen de la misma es ese router
- La información de vuelta se enviaría al router, no al origen real
- ¿Esto es deseable? ¿Esto es útil?
2. Enrutamiento
En un enrutamiento normal IP los paquetes siempre conservan su IP origen y destino, aunque pasen por diferentes routers
3. NAT
- NATP cambia la dirección IP de origen
- El origen está en una red privada interna
- La reemplaza por la IP externa del router
- También puede cambiar el puerto de origen
- Deja anotados estos cambios en una tabla de correspondencias
- Al recibir un paquete de respuesta, deshace el cambio antes de enrutar
- ¿Podría
8.8.8.8
comenzar una comunicación con 192.168.1.1
?
- el router no tendría en su tabla NAT una correspondencia para hacer la traducción
- Solo las comunicaciones internas añaden entradas a la tabla NAT de correspondencias
8.8.8.8
ni siquiera sabe que 192.168.1.1
existe
- ¿Cuantas direcciones IP públicas (de pago) necesito utilizar?
- Solo una, la del router, ya que el resto de ordenadores tendrán una IP privada que será traducida por la tabla NAT
4. Ventajas de NAT
- El NAT crea un firewall automático y casi imposible de saltar
- Los equipos externos no pueden iniciar comunicaciones, sólo los internos
- Los equipos internos ni siquiera existen en Internet
- El NAT permite compartir una sola IP pública entre muchos ordenadores
- Ahorro en direcciones IP públicas
5. Redirección permanente de puertos
- Puede ser interesante que haya entradas NAT permanentes en la tabla de correspondencias
- Un servidor web en nuestra red local debería recibir todo el tráfico que tenga como destino la IP del router y el puerto 80
- Programas P2P pueden funcionar mejor redireccionando directamente el tráfico al programa, para que otros peers puedan encontrarnos
- El puerto internto expuesto no tiene por qué coincidir con el externo
5.1. ¿Qué puertos exponer?
- Cada protocolo tiene un puerto asignado (aunque algunos pueden cambiarse)
- Hay que referirse a la documentación de cada servicio (o a
/etc/services
)
Protocolo |
Puerto(s) |
SSH |
22 |
HTTP |
80 |
HTTPS |
443 |
SMTP |
25 |
POP3 |
110 |
IMAP |
143 |
FTP |
20, 21 |
VNC |
5900 |
RDP |
3389 |
DNS |
53 |
6. Ejemplo NAT: ICS de Windows
- Internet Connection Sharing permite compartir una conexión Internet entre muchos ordenadores
- Un equipo tiene una conexión a Internet (por ejemplo, LAN), y la comparte mediante una conexión (por ejemplo, Wifi)
- Habilita el enrutamiento, y en la conexión Wifi instala
- Un servidor DHCP
- Un servidor NAT
- Un servidor DNS
8. DMZ
- La zona desmilitarizada la componen los hosts que una empresa expone a Internet
- Puede configurarse de varias maneras
10. Referencias
- Formatos:
- Creado con:
- Alojado en Github