NAT Overloading o Port Address Translation (PAT) es una forma modificada de NAT dinámica donde el número de direcciones locales internas es mayor que el número de direcciones globales internas. En la mayoría de los casos, sólo hay una dirección IP global interna que proporciona acceso a Internet a todos los hosts internos. La sobrecarga de NAT es el único tipo de NAT que realmente conserva las direcciones IP y también es la forma más popular de NAT.
Figura 10-4 Traducción de direcciones de puerto (PAT)
PAT permite la sobrecarga o la asignación de más de una dirección local interna a la misma dirección global interna. Pero esto también significa que los paquetes de retorno tendrían todos la misma dirección de destino al llegar al router NAT. ¿Cómo sabría el router a qué dirección local interna pertenece cada paquete de retorno? Para hacer frente a este escenario, las entradas de NAT en la tabla de traducción son entradas extendidas; las entradas no sólo registran las direcciones IP relevantes, sino también los tipos de protocolo y los puertos. Traduciendo tanto la dirección IP como el número de puerto de un paquete, hasta 65535 direcciones locales internas podrían teóricamente ser mapeadas a una única dirección global inisde (basada en el número de puerto de 16 bits).
Pero hay que tener en cuenta que una sola entrada NAT utiliza aproximadamente 160 bytes de memoria del router, por lo que 65535 entradas ocuparían más de 10 MB de memoria y también grandes cantidades de potencia de CPU. En las configuraciones prácticas de PAT, no se mapea ni de lejos este número de direcciones, pero es definitivamente un límite teórico.
Aquí hay un ejemplo de configuración para la sobrecarga de NAT o PAT según la Figura 10-4.
R1>
R1>enable
R1#configure terminal
Ingrese los comandos de configuración, uno por línea. Terminar con CNTL/Z.
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1
netmask Especificar la máscara de red
prefix-length Especificar la longitud del prefijo
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 netmask 255.255.255.0
R1(config)#access-list 1 permit 192.168.1.0 0.0.255
R1(config)#ip nat inside source list 1 pool MyPool overload
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 192.168.1.1 255.255.0
R1(config-if)#ip nat inside
R1(config-if)#interface FastEthernet0/1
R1(config-if)#ip address 67.210.97.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#end
R1#
La configuración anterior puede parecer muy similar a la configuración para la NAT dinámica, sin embargo hay diferencias importantes. En primer lugar, el conjunto de direcciones IP se ha reducido a una única dirección IP asignada a la interfaz exterior del router R1.
En segundo lugar, la lista de acceso 1 coincide con toda la red de clase C 192.168.1.0/24, lo que significa que se traducirá cualquier dirección local interior de esta red. Si quieres que un host específico de esta red no sea traducido, tienes que especificarlo explícitamente añadiendo una sentencia deny a la lista de acceso. Supongamos que queremos denegar la traducción a un único host 192.168.1.2 y permitir el resto de hosts:
R1(config)#lista de acceso 1 permit 192.168.1.0 0.0.255
También hay una adición de la palabra clave overload con el comando ip nat inside source list 1 pool MyPool.
Comencemos nuestra verificación habitual emitiendo el comando show ip nat translations:
R1#show ip nat translations
R1#
No hay mapeos estáticos y de ahí la salida en blanco de arriba. Generemos algo de tráfico desde los hosts internos hacia el servidor y emitamos de nuevo el comando show ip nat translations:
Pro Inside global Inside local Outside local Outside global
icmp 67.210.91.1:18 192.168.1.2:18 173.194.67.102:18 173.194.67.102:18
icmp 67.210.91.1:19 192.168.1.3:19 173.194.67.102:19 173.194.67.102:19
icmp 67.210.91.1:20 192.168.1.4:20 173.194.67.102:20 173.194.67.102:20
Como puede ver en la salida anterior, todas las direcciones locales interiores se traducen a la misma dirección global interior, que es la esencia de la sobrecarga NAT o PAT. Puedes haber notado que el router ha preservado los números de puerto de origen mientras las direcciones locales internas eran traducidas a direcciones globales internas. Este es el comportamiento habitual, pero cuando el router crea una nueva entrada de traducción tal que el número de puerto de origen ya está en uso, el número de puerto también se traduce a un número diferente. La ocurrencia de dos hosts internos que eligen el mismo número de puerto de origen no es muy común, pero todavía puede ocurrir especialmente cuando el número de conexiones desde el interior al exterior es significativo.
También vamos a emitir el comando show ip nat statistics:
Total de traducciones activas: 3 (0 estáticas, 3 dinámicas; 3 extendidas)
Interfaces externas:
Serial1/0
Interfaces internas:
FastEthernet0/0
Hits: 135 Misses: 15
CEF Paquetes traducidos: 150, CEF Paquetes punteados: 0
Traducciones expiradas: 12
Mapas dinámicas:
– Inside Source
access-list 1 pool MyPool refcount 3
pool MyPool: netmask 255.255.255.0
start 67.210.91.1 end 67.210.91.1
type generic, total addresses 1, allocated 1 (100%), misses 0
Queued Packets: 0
Hay que tener en cuenta dos cosas. En primer lugar, la sobrecarga de NAT es útil en cualquier situación en la que el número de hosts internos es mayor que las direcciones públicas que tienes. En muchas situaciones sólo tienes una única dirección IP pública que está asignada a la interfaz exterior de tu router orientado a Internet. En este caso su pool consistiría en una única dirección IP como muestra la configuración anterior. Sin embargo, puede tener más de una dirección IP pública disponible, una de las cuales puede estar asignada a la interfaz de su router que da a Internet. En tal caso, su pool de NAT puede consistir en más de una dirección IP aún utilizando la sobrecarga de NAT para acomodar un mayor número de hosts internos que quieran conectarse a Internet. En resumen, usted puede tener una sola dirección pública sobrecargada o puede tener más de una dirección pública sobrecargada.
La sobrecarga NAT o PAT es la configuración NAT más prevalente por la razón obvia de que es el sabor de NAT que realmente preserva las direcciones IP globales, la razón principal para el uso de NAT.