luiz@CyberInfra:~#

Sistemas Operacionais, Redes de Computadores, Cibersegurança...

NAT em roteadores CISCO

Basicamente, qualquer rede hoje em dia utiliza a técnica de NAT. O NAT é responsável por permitir que o IPv4 continue funcionando na Internet, pois permite que LANs contendo diversos hosts acessem a Internet utilizando apenas um endereço IP válido. Desta forma, o NAT ameniza o maior problema da Internet atual, que é a escassez de endereços IPv4 válidos na Internet.

Assim, é muito importante para administradores de rede saber como funciona e como configurar NAT em redes. Desta forma, vamos utilizar o exemplo da rede da Figura 1, para entender como configurar o mascaramento NAT, em um roteador CISCO.

dhcp1
Figura 1 - Rede com NAT

A seguir são apresentados os passos básicos para a configuração de SNAT (Source NAT) em um roteador CISCO (o do exempĺo foi um 7200).

Comummente, o processo de configuração de NAT em roteador CISCO, inicia com a atribuição normal de IP e máscara nas interfaces de rede do roteador. Todavia, acrecido do passo de identificar se a interface de rede é interna ou externa (inside ou outside), sendo que:

  • Uma interface interna/inside vai estar conectada a uma rede, que terá o seu IP de origem substituído, para dar lugar ao IP do roteador, do lado da interface externa/outside.

  • Já uma interface outside/inside vai estar conectada a uma rede, pelos quais os pacotes das redes internas serão normalmente destinadas, tal como a Internet. Assim, o IP da interface outside substituirá os IPs dos datagramas IPs que vêm dos hosts conectados nas interfaces inside.

Se você não conhece o processo de NAT, pesquise por materiais teóricos mais detalhados na Internet. É bem comum não entender como funciona o NAT de inicio, o que pode comprometer a implementação prática do NAT.

As duas subseções a seguir mostram como configurar as interfaces internas e externas.

Configurando interface externa

No exemplo da Figura 1, iniciou-se a configuração da interface externa f1/0, com o IP 192.168.122.254. Veja todos os comandos utilizados a seguir:

R1#enable
R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface f1/0
R1(config-if)#ip address 192.168.122.254 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no shutdown
R1(config-if)#

No contexto do NAT, foi adicionado o comando ip nat outside, que significa que esta interface será responsável por realizar NAT nos pacotes que forem roteados para f1/0. Assim, os IPs dos pacotes das outras redes que tiverem como caminho/rota a interface f1/0, vão ter o IP de origem substituído pelo IP 192.168.122.254, que é o IP desta interface.

Configurando interface interna

A interface de rede f0/0, foi configurada na rede 192.168.0.0/25, com o IP 192.168.0.254. No contexto do NAT em CISCO, essa interface foi configurada como interna, com o comando ip nat inside.

R1(config-if)#interface f0/0
R1(config-if)#ip address 192.168.0.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no shutdown
R1(config-if)#exit

Neste exemplo, os pacotes que vierem da rede 192.168.0.0/24 e tiverem como destino a Internet (ou a rede 192.168.122.0/24) vão ter o IP de origem substituído pelo IP da interface f1/0 do roteador (que é o IP 192.168.122.254 - interface outside).

Criando lista de acesso, NAT e roteamento

O próximo passo é determinar quem (rede/hosts) deve sofrer o processo de NAT e qual interface/IP vai ser utilizado como saída do NAT (ver comandos a seguir).

R1(config)#access-list 1 permit 192.168.0.0 0.0.0.255
R1(config)#ip nat inside source list 1 interface f1/0 overload
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.122.1
R1(config)#exit

Nos comandos apresentados, a lista de redes/hosts que vão sofrer NAT é feita pelo comando access-list.

Depois é realizado o comando que informa a quem será aplicado o NAT, e qual será a interface/IP de saída. Isso é feito pelo comando ip nat.

Por fim, neste exemplo, o roteador R1 também teve configurado um gateway padrão ip route. Essa passo pode ser feito de outras formas (ex. comandos ou roteamento dinâmico).

Com todos esses comandos realizados em R1, agora todos os pacotes que vierem da rede 192.168.0.0/24, com destino a rede 192.168.122.0/24 e principalmente para a Internet, vão ter o IP de origem substituídos pelo IP 192.168.122.254 (IP da interface externa).

Visualizando fluxos de redes que sofreram NAT

É possível verificar as máquinas que estão sofrendo o processo de NAT em roteadores CISCO, com o comando show ip nat translations, veja a saída de exemplo a seguir:

R1#show ip nat translations
 Pro Inside global      Inside local       Outside local      Outside global
 icmp 192.168.122.254:3 192.168.0.1:3      142.251.128.99:3   142.251.128.99:3
 icmp 192.168.122.254:4 192.168.0.1:4      142.250.218.67:4   142.250.218.67:4
 udp 192.168.122.254:34512 192.168.0.1:34512 8.8.8.8:53       8.8.8.8:53
 udp 192.168.122.254:36514 192.168.0.1:36514 8.8.8.8:53       8.8.8.8:53
 udp 192.168.122.254:48216 192.168.0.1:48216 8.8.8.8:53       8.8.8.8:53
 udp 192.168.122.254:59252 192.168.0.1:59252 8.8.8.8:53       8.8.8.8:53
R1#

Na saída anterior, é possível observar que o host 192.168.0.1 está realizando algum tipo de acesso na Internet, por exemplo, para o host 8.8.8.8 via DNS (UDP/53).

Lista completa de comandos utilizados:

Segue a lista completa e contiguá de comandos utilizados neste exemplo:

R1#enable
R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface f1/0
R1(config-if)#ip address 192.168.122.254 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no shutdown
R1(config-if)#interface f0/0
R1(config-if)#ip address 192.168.0.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#access-list 1 permit 192.168.0.0 0.0.0.255
R1(config)#ip nat inside source list 1 interface f1/0 overload
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.122.1
R1(config)#exit
R1#show ip nat translations

Conclusão

Neste documento foi apresentado os passos para se realizar SNAT (Source NAT) em pacotes que cruzam roteadores CISCO. Esse é um processo/tarefa bem comum em qualquer rede de computadores.