No terceiro post sobre NAT, será mostrado um exemplo de configuração de NAT Dinâmico.
O ISP cederá à organização um pool com 6 endereços válidos: 200.30.30.1 a 200.30.30.6; e uma ACL padrão identificará o range em que se encontram os endereços locais que serão traduzidos: 10.10.10.0/24. Esta configuração será feita no roteador BrainRT.
Observação: a LAN da organização contém um range de 254 endereços locais, mas há somente 6 endereços válidos. Portanto somente os 6 primeiros a tentarem acessar a internet conseguirão, pois o roteador faz uma associação destes IP’s com os IP’s globais do pool, até que este se esgotem; daí em diante, nenhum outro host terá acesso, a menos que se use o parâmetro ‘overload’, que será explicado no próximo post.
Configuração de BrainRT:
!– Configurando a interface inside, onde se encontram
!– os endereços locais a serem traduzidos
interface FastEthernet0/0
ip address 10.10.10.254 255.255.255.0
ip nat inside
!– Configurando da interface outside, para onde serão enviados os
!– pacotes traduzidos
interface FastEthernet0/1
ip address 200.20.20.1 255.255.255.248
ip nat outside
!– Configurando o pool de endereços globais, cedidos pelo ISP,
!– que darão acesso para os hosts interno à internet
ip nat pool GLOBAL_POOL 200.30.30.1 200.30.30.6 netmask 255.255.255.248
!– Configurando a ACL que dirá ao router quais serão os IP’s locais
!– a passarem pelo processo de NAT
access-list 1 permit 10.10.10.0 0.0.0.255
!– E, por final, associando os endereços locais, identificados na ACL 1,
!– ao pool ‘GLOBAL_POOL’ criado anteriormente
ip nat inside source list 1 pool GLOBAL_POOL
Observe que, após aplicada a configuração, a tabela NAT de BrainRT ainda não contém nenhuma entrada, pois ainda não houve nenhuma tentativa de acesso:
BrainRT#show ip nat translations
BrainRT#
Agora, veja como estão as entradas da tabela NAT após acesso web do host 10.10.10.1, ao servidor remoto:
BrainRT#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 200.30.30.1:2277 10.10.10.1:2277 199.19.9.1:80 199.19.9.1:80
tcp 200.30.30.1:2278 10.10.10.1:2278 199.19.9.1:80 199.19.9.1:80
tcp 200.30.30.1:2279 10.10.10.1:2279 199.19.9.1:80 199.19.9.1:80
tcp 200.30.30.1:2280 10.10.10.1:2280 199.19.9.1:80 199.19.9.1:80
tcp 200.30.30.1:2281 10.10.10.1:2281 199.19.9.1:80 199.19.9.1:80
— 200.30.30.1 10.10.10.1 — —
BrainRT#
E após um ping do host 10.10.10.80:
BrainRT#show ip nat translations
Pro Inside global Inside local Outside local Outside global
— 200.30.30.1 10.10.10.1 — —
icmp 200.30.30.2:512 10.10.10.80:512 199.19.9.1:512 199.19.9.1:512
— 200.30.30.2 10.10.10.80 — —
BrainRT#
Em negrito, estão as entradas estáticas geradas, assim que o host interno acessa pela primeira vez um endereço da internet. Ela vai sendo preenchida até que se esgotem os endereços do pool, e neste ponto, como dito anteriormente, nenhum outro host interno poderá acessar a internet.
Um ponto interessante, é que o pool de endereços globais, não precisam estar na mesma subrede da interface pública (neste caso, 200.20.20.1); a responsabilidade de roteamento para alcançar estes endereços é feita pelo ISP.
Dica: com o comando ‘clear ip nat translations *’, em modo EXEC, todas as entradas na tabela de NAT são zeradas.
Qualquer dúvida, estamos à disposição. No próximo post, será explicado o PAT. Fique atento!
Espero que tenha ajudado. Até breve!
Cara muito bom… ansioso pelo post de PAT.
É isso ai… é só ficar atento que logo logo estaremos postando sobre o PAT. =D
Muito bacana!
Espero mais post’s como esse, que inclusive está me ajudando muito nos meus estudos para o CCNA!
Abraços
Olá Rafael, precisei nesta semana configurar nat dinâmico num router cisco 3845. Gostaria de fazer algumas perguntas.
Como falei, nesta semana tive a necessidade de configurar um NAT dinâmico num cisco 3845, com o IOS c3845-ipbasek9-mz.124-11.XW6.bin, com poucas diferenças do seu exemplo com relação a layout da rede e sintaxe, e infelizmente não tive sucesso.
A mudança na sintaxe consiste em usar prefix-length ao invés de netmask, como segue:
ip nat pool GLOBAL_POOL 200.30.30.1 200.30.30.254 prefix-length 24
Já a mudança no layout, é que a rede de IP privado não está diretamente conectada ao router em questão, e sim atrás de outro router. Para alcançá-las uso rota estática ou OSPF.
Então pergunto:
1 – preciso fazer algum tipo de atualização no IOS?? (tenho passado por situações onde o IOS um pouco antigo eh o problema)
2 – A configuração que você mostrou se aplica ao meu layout também?
3 – A mudança na sintaxe que efetuei é destinada à outras configurações?
Ps.: no meu router, quando tento “sh ip nat trans” não há indícios de tradução.
Muito obrigado.
E ai Marcello, tudo bem?
Primeiro, você não precisa trocar o IOS.
Segundo, antes de continuar, o tráfego está chegando ao roteador onde o nat deve ser realizado?
Olá André,
realmente esqueci de comentar isso .. O tráfego chega sim .. o roteamento interno não é problema, ida e volta do pacote.
Olá Marcello.
Os comandos “prefix-lenght” e “netmask”, AMBOS indicam a qual subrede pertencem os endereços que serão traduzidos – ou seja, não há diferença.
Dá uma olhada neste link:
http://www.cisco.com/en/US/docs/ios/ipaddr/command/reference/iad_nat.html#wp1026252
Agora me confirme o seguinte:
– Vc apontou a ACL para o NAT e a configurou corretamente?
– Vc colocou os parâmetros “ip nat inside” e “ip nat outside”, em suas respectivas interfaces interna e externa?
– Verifique se os IPs que vc quer que sejam traduzidos, chegam realmente com o que bate na ACL (se houver, talvez, outro NAT antes do 3845).
Não se esqueça de debugar. Se possível, cole as configurações de NAT, ACL e Interfaces (obviamente omitindo informações confidenciais)
Valeu Marcello. Aguardo respostas.