VPN Site-to-Site com overlapping de endereços

Neste post vamos falar sobre algo que pode acontecer com qualquer consultor de redes e segurança desde o nível básico a nível de arquiteto, quando configuramos o endereçamento de uma rede interna escolhemos quais serão os ranges de escala aleatória da RFC1918 para endereçamento de nossos dispositivos no ambiente.
Mas podemos nos deparar com alguns cenários onde não temos o controle sobre qual range de endereço foi definido para endereçamento dos dispositivos, então logo que estamos falando sobre VPNs entre dois site, vem o risco de sobreposição de endereços, quando isso acontece, a seguinte pergunta ocorre, eae? ferrou, como vamos resolver este problema? podemos trocar o endereço da nossa LAN? sim podemos, porém é somente a rede onde se encontra todos os servidores do nosso ambiente como AD, Banco de Dados, DNS, etc, melhor não né? ou então pode pedir para o Sysadmin do site remoto trocar o endereço dele, vamos jogar a bomba para ele né, absurdamente insano pensarmos isto, correto? Claro Sim!

Então, como podemos corrigir a sobreposição? Aham! Com NAT, mas é claro! =D

Neste post vou mostrar como usar o conceito de “Twice NAT” ou traduzindo ao pé da letra “duas vezes NAT”, com esse tipo de NAT podemos trabalhar de boa quando ocorrer sobreposição de endereços entre duas redes. Isso aí, let’s go!

Considerações antes de começarmos:

  • Conforme outros posts, não vou abordar as configurações iniciais de Firewall, ACLs, etc, estou partindo do princípios que seu ambiente já esteja configurado.
  • Antes de prosseguir com esta configuração, certifique-se que os firewalls estejam com as configurações de endereços IPs e tenham conectividade básica com internet e rotas para a rede (192.168.1.0/24) caso não sejam diretamente conectadas.

Topologia VPN Site-to-Sitenat-twice

Observem que na topologia acima, as redes LAN1 e LAN2 está definida com os mesmos endereços, 192.168.1.0/24, então em situações como esta nada melhor que nosso bom e velho NAT entrar em ação.

Para que as duas redes que estão com sobreposição de endereços se comuniquem, temos que configurar o NAT em ASA1, será definido duas sub-redes que não estejam em utilização para ambos os lados do ambiente.

Rede LAN1 192.168.1.0/24 será visto como 192.168.101.0/24 do ponto de vista da rede LAN2.
Rede LAN2 192.168.1.0/24 será visto como 192.168.201.0/24 do ponto de vista da rede LAN1.

Muito legal né! =D

A função aqui é garantir que um host 192.168.1.1 na rede LAN1 seu endereço seja traduzido para 192.168.101.1 do ponto de vista da LAN2.

Configuração de VPN
Não vou entrar em detalhes durante esta etapa porque já existe um post pronto neste link.

Configuração Fase 1
ASA-1:
ASA-1(config)# crypto ikev1 policy 10
ASA-1(config-ikev1-policy)# authentication pre-share
ASA-1(config-ikev1-policy)# encryption aes
ASA-1(config-ikev1-policy)# hash sha
ASA-1(config-ikev1-policy)# group 2

ASA-1(config)# crypto ikev1 enable OUTSIDE

ASA-1(config)# tunnel-group 101.0.0.1 type ipsec-l2l
ASA-1(config)# tunnel-group 101.0.0.1 ipsec-attributes
ASA-1(config-tunnel-ipsec)# ikev1 pre-shared-key @Cisco@123

ASA 2:
ASA-2(config)# crypto ikev1 policy 10
ASA-2(config-ikev1-policy)# authentication pre-share
ASA-2(config-ikev1-policy)# encryption aes
ASA-2(config-ikev1-policy)# hash sha
ASA-2(config-ikev1-policy)# group 2

ASA-2(config)# crypto ikev1 enable OUTSIDE

ASA-2(config)# tunnel-group 201.0.0.1 type ipsec-l2l
ASA-2(config)# tunnel-group 201.0.0.1 ipsec-attributes
ASA-2(config-tunnel-ipsec)# ikev1 pre-shared-key @Cisco@123

Fase 2 do IPsec
ASA 1:
ASA-1(config)# access-list LAN1-to-LAN2 extended permit ip 192.168.101.0 255.255.255.0 192.168.1.0 255.255.255.0

ASA-1(config)# crypto ipsec ikev1 transform-set ESP-TS esp-aes-192 esp-sha-hmac
ASA-1(config)# crypto map ASA1 10 match address LAN1-to-LAN2
ASA-1(config)# crypto map ASA1 10 set peer 101.0.0.1
ASA-1(config)# crypto map ASA1 10 set ikev1 transform-set ESP-TS
ASA-1(config)# crypto map ASA1 interface OUTSIDE

ASA 2:
ASA-1(config)# access-list LAN2-to-LAN1 extended permit ip 192.168.1.0 255.255.255.0 192.168.101.0 255.255.255.0

ASA-2(config)# crypto ipsec ikev1 transform-set ESP-TS esp-aes-192 esp-sha-hmac
ASA-2(config)# crypto map ASA2 10 match address LAN2-to-LAN1
ASA-2(config)# crypto map ASA2 10 set peer 201.0.0.1
ASA-2(config)# crypto map ASA2 10 set ikev1 transform-set ESP-TS
ASA-2(config)# crypto map ASA2 interface OUTSIDE

ASA 2:
ASA-2(config)# access-list LAN2-to-LAN1 extended permit ip 192.168.1.0 255.255.255.0
192.168.101.0 255.255.255.0

Configuração de Objetos e NAT
Um ponto importante é que toda a mágica do Twice NAT acontece apenas no ASA1, durante a configuração pode parecer um pouco confuso, I know, mas vamos tentar entender a lógica do negocio.

No ASA1 os seguintes objetos serão configurados.

ASA 1:
ASA-1(config)# object network LOCAL-LAN1
ASA-1(config-network-object)# subnet 192.168.1.0 255.255.255.0

É como a rede local será vista a partir da rede remota:
ASA-1(config)# object network LOCAL-LAN1-NAT
ASA-1(config-network-object)# subnet 192.168.101.0 255.255.255.0

ASA-1(config)# object network REMOTE-LAN2
ASA-1(config-network-object)# subnet 192.168.1.0 255.255.255.0
ASA-1(config)# object network REMOTE-LAN2-NAT
ASA-1(config-network-object)# subnet 192.168.201.0 255.255.255.0

Talvez você tenha pensado ué, LOCAL-LAN1 e LOCAL-LAN2 aponta para a mesma rede? Sim, então poderíamos utilizar apenas o objeto LOCAL-LAN1? sim poderíamos, porém, para a logica da estrutura que será construída fica mais fácil utilizar este modelo de configuração.

No ASA2 os seguintes objetos serão configurados.
ASA 2:
ASA-2(config)# object network LOCAL-LAN1
ASA-2(config-network-object)# subnet 192.168.1.0 255.255.255.0

É como a rede local será vista a partir da rede remota:
ASA-2(config)# object network LOCAL-LAN1-NAT
ASA-2(config-network-object)# subnet 192.168.201.0 255.255.255.0

ASA-2(config)# object network REMOTE-LAN2
ASA-2(config-network-object)# subnet 192.168.1.0 255.255.255.0
ASA-2(config)# object network REMOTE-LAN2-NAT
ASA-2(config-network-object)# subnet 192.168.101.0 255.255.255.0

Configuração de NAT ASA-1 & ASA-2

ASA1:
nat (INSIDE,OUTSIDE) source static LOCAL-LAN1 LOCAL-LAN1-NAT destination static REMOTE-LAN2-NAT REMOTE-LAN2

Let’s go tentar entender toda essa bagaça.

A primeira parte do comando source traduz a rede local LOCAL-LAN1 (192.168.1.0/24) para LOCAL-LAN1-NAT (192.168.101.0/24) quando ela precisar falar com  a rede REMOTE-LAN2-NAT (192.168.201.0/24)

A segunda parte do comando destination traduz a rede remota REMOTE-LAN2-NAT (192.168.201.0/24) para REMOTE-LAN2 (192.168.1.0/24).

ASA2:
nat (INSIDE,OUTSIDE) source static LOCAL-LAN1 LOCAL-LAN1 destination static REMOTE-LAN2-NAT REMOTE-LAN2-NAT

Para a configuração de NAT em ASA2, não temos nenhuma novidade, precisamos em destination apenas apontar para o objeto REMOTE-LAN2-NAT (192.168.101.0/24).

 

Topologia Final VPN Site-to-Site com Twice NAT
fw-internet

 

That’s it for now.

 

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s