Protocolo NAT
NAT (Network Address Translation)
Devido a popularização da internet na década de 90, tornou-se óbvio que os endereços ipv4 iriam rapidamente se esgotar. Alguns recursos foram criados para retardar essa escassez, e o NAT foi um deles.
O NAT se consiste basicamente em converter endereços ip privados (endereços ip inválidos, como 192.168.1.1, 10.0.0.1, 172.16.10.1…) em endereços ip públicos, roteáveis na internet.
Para o NAT funcionar a contento, todos os roteadores públicos descartam endereços ip privados, assim, em uma rede interna, com a ajuda do NAT, esses endereços podem ser traduzidos para endereços públicos, podendo se comunicar com a internet.
Os três principais tipos de NAT no IOS são: Estático, Dinâmico e PAT. A seguir a sintaxe de configuração de cada um deles.
NAT Estático
- Definir a interface na qual os pacotes serão traduzidos (inside local)
- Definir a interface na qual os pacotes serão enviado a rede pública (inside global)
- Definir o mapeamento estático endereço privado – endereço público
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip nat inside
Router(config)#interface serial 0/3/0
Router(config-if)#ip nat outside
Router(config)#ip nat inside source static 192.168.1.1 200.0.0.1
Router(config)#ip nat inside source static 192.168.1.2 200.0.0.2
Router(config)#ip nat inside source static 192.168.1.5 200.0.0.5
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
— 200.0.0.1 192.168.1.1 — —
— 200.0.0.2 192.168.1.2 — —
— 200.0.0.5 192.168.1.5 — —
NAT Dinâmico
- Definir a interface na qual os pacotes serão traduzidos (inside local)
- Definir a interface na qual os pacotes serão enviados a rede pública (inside global)
- Definir uma ACL com os endereços ips privados
- Definir um pool com o intervalo de endereços ips públicos
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat pool pool-public 200.0.0.1 200.0.0.200 netmask 255.255.255.0
Router(config)#ip nat inside source list 1 pool pool-public
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
— 200.0.0.1 192.168.1.1 — —
— 200.0.0.2 192.168.1.2 — —
— 200.0.0.5 192.168.1.5 — —
icmp 200.0.0.3:3 192.168.1.6:3 192.168.2.2:3 192.168.2.2:3
Obs.: Repare que o pool de endereços ips públicos pode ser menor que o intervalo de endereços privados.
PAT
- Definir a interface na qual os pacotes serão traduzidos (inside local)
- Definir a interface na qual os pacotes serão enviados a rede pública (inside global)
- Definir uma ACL com os endereços ips privados
- Configure comando ip nat inside source list [acl-number] [interface] [interface-name] [overload]
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat inside source 1 interface serial 0/3/0 overload
Router#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 200.0.0.251:1025 192.168.1.2:3 192.168.2.1:3 192.168.2.1:1025
icmp 200.0.0.251:1024 192.168.1.5:3 192.168.2.2:3 192.168.2.2:1024
icmp 200.0.0.251:3 192.168.1.6:3 192.168.2.100:3 192.168.2.100:3
icmp 200.0.0.251:4 192.168.1.6:4 192.168.2.100:4 192.168.2.100:4
