O blog da AWS
Como configurar e testar uma VPN Site-to-Site como backup do AWS Direct Connect
Por Silvio Nunes Junior, Arquiteto de Soluções em Enterprise AWS Brasil
1. Introdução
Numa estratégia de migração para nuvem, algumas organizações optam por migrar todos seus workloads existentes para AWS, enquanto outra parcela acaba mantendo parte do seu ambiente no datacenter local (on-premises) e outra parte na AWS. A coexistência de recursos on-premises e na AWS é o que chamamos de nuvem híbrida, e a conexão entre estes dois ambientes é o que nos referimos como redes híbridas. Mesmo quando a organização decide manter todos os recursos de TI na AWS, ainda pode ser necessário estabelecer conectividade com localidades remotas.
Existem vários requisitos que precisam ser levados em consideração para escolher o melhor tipo de conectividade, tais como: performance (taxa de transferência, latência e jitter), tempo de implementação, segurança, disponibilidade e custo.
Dependendo dos requisitos da sua aplicação, é possível escolher entre diferentes maneiras de usar os serviços na AWS, como estabelecer uma VPN site-to-site ou mesmo usar um link dedicado.
O serviço AWS Site-to-Site VPN (AWS S2S VPN) permite que você estabeleça um túnel seguro e privado entre sua rede e a rede global da AWS. Caso você precise de uma alternativa ao uso da internet para conectar sua rede corporativa à AWS, o AWS Direct Connect (DX) fornece uma conexão dedicada e privada, com bandas entre 50Mbps e 40Gbps (com suporte a LAG – agregação de links), permitindo melhor desempenho e consistência.
Importante O AWS Direct Connect agora oferece conexões dedicadas nativas de 100 Gbps para dar suporte às suas necessidades de conectividade privada com a nuvem. As conexões nativas de 100 Gbps fornecem maior largura de banda, sem a sobrecarga operacional de gerenciar várias conexões de 10 Gbps em um Grupo de agregação de links (LAG). As conexões dedicadas de 100 Gbps estão disponíveis nestes locais. Essa lista será atualizada à medida que as Conexões dedicadas de 100 Gbps forem disponibilizadas em locais adicionais. |
O DX estende o acesso do cliente aos recursos da AWS de maneira confiável, escalonável e econômica. O link abaixo descreve as melhores práticas para garantir alta resiliência com o DX:
https://thinkwithwp.com/directconnect/resiliency-recommendation/
Neste blogpost, falaremos sobre como configurar e testar uma AWS S2S VPN operando como conexão de backup do DX. Partiremos do pressuposto que você já possui um DX configurado, caso precise de mais detalhes sobre como provisioná-lo, consulte o link a abaixo:
Redes híbridas, como estabelecer uma conexão dedicada à AWS
Importante O AWS Direct Connect agora oferece conexões dedicadas nativas de 100 Gbps para dar suporte às suas necessidades de conectividade privada com a nuvem. As conexões nativas de 100 Gbps fornecem maior largura de banda, sem a sobrecarga operacional de gerenciar várias conexões de 10 Gbps em um Grupo de agregação de links (LAG). As conexões dedicadas de 100 Gbps estão disponíveis nestes locais. Essa lista será atualizada à medida que as Conexões dedicadas de 100 Gbps forem disponibilizadas em locais adicionais. |
2. Cenário inicial com AWS Direct Connect
Inicialmente vamos considerar o cenário abaixo, onde sua infraestrutura local já esta conectada a AWS primariamente através de um link de DX.
Nesta arquitetura, ao conectarmos uma interface virtual de trânsito (Transit VIF) ao Direct Connect Gateway (DXGW), é possível compartilhá-la com até 3 (três) TGWs em diferentes regiões.
Já o TGW é utilizado para prover conectividade e roteamento transitivo entre os diferentes VPCs e seu datacenter corporativo, além de permitir a terminação de VPNs com taxas de transferência de até 50Gbps através do uso de múltiplos túneis IPsec com ECMP (Equal-cost multi-path).
Na próxima sessão abordaremos a configuração de uma AWS S2S VPN, caso você já tenha uma VPN configurada ou já saiba como configurá-la, pode pegar um atalho e ir direto a sessão 5.
3. Configurando uma VPN Site-to-Site
O serviço AWS S2S VPN gerencia sua VPN de forma automática, com alta disponibilidade e segurança, permitindo que você crie conexões independentes, através de dois túneis IPSec com AES-256, SHA-2 e grupos DH mais recentes.
No lado da AWS, a VPN pode ser terminada no:
- Virtual Private Gateway (VGW) – permitindo conectividade privada entre sua infraestrutura local e um único VPC
- Transit Gateway (TGW) – permitindo conectividade privada entre sua infraestrutura local e vários VPCs conectados a ele, permitindo inclusive roteamento transitivo
Neste blogpost, conectaremos a AWS S2S VPN ao TGW para fornecer redundância ao Direct Connect já configurado e operacional.
Você pode consultar o seguinte blogpost caso precise de ajuda para configurar um novo DX: Redes híbridas, como estabelecer uma conexão dedicada à AWS
- 3.1. A VPN AWS S2S deve inicialmente ser associada ou anexada ao TGW, para isto, vá até o item VPC na console da AWS, e selecione a opção Create Transite Gateway Attachments:
- 3.2. Selecione seu TGW na lista disponível (você pode usar um TGW existente, ou então criar um novo anteriormente a este passo), escolha então a opção Attachment Type tipo VPN:
- 3.3. Escolha New para criar um novo Customer Gateway (CGW). O CGW representa o roteador do seu datacenter local.
- 3.4. Utilizaremos o endereçamento IP apresentado na arquitetura abaixo apenas para exemplificar o processo de privisionamento da VPN que será descrito em detalhes no ítem 3.4. Você deve alocá-los de acordo com seu plano de endereçamento na AWS e datacenter local:
- 3.4.1. Endereço IP: 216.229.137 (representa o endereço IP público configurado na interface externa do seu roteador/CGW)
- 3.4.2. BGP ASN: 65000 (representa o Autonomous System Number do seu roteador)
- 3.4.3. Para configuração dos túneis, embora a AWS possa alocar IPs de forma automática, iremos configurá-los manualmente para facilitar nosso exemplo:
- Inside IP CIDR para o tunel 1: 169.254.0.5/30
- Pre-Shared Key para o tune 1: key_tunel
- Inside IP CIDR para o tunel 2:254.10.5/30
- Pre-Shared Key para o tune 2: key_tunel
- 3.4.4. Clique em Create attachment
4. Configuração do Gateway do Cliente (CGW)
Um dispositivo de gateway do cliente (CGW) é o seu dispositivo físico ou virtualizado na sua rede local (no seu lado da AWS S2S VPN). Desta forma, será necessário configurá-lo para estabelecer a VPN com a AWS.
Para fornecer maior disponibilidade para acesso ao seu ambiente na nuvem, a AWS configura dois túneis IPSec por conexão de VPN, o que permite que sua conexão permaneça ativa mesmo em caso de falha de um dos túneis ou mesmo de algum dispositivo no lado da AWS.
Para configurar seu gateway, vá até o guia Site-to-Site VPN Connections e selecione a conexão VPN que você criou no passo anterior. Clique então em Download Configuration
Certifique-se de baixar a versão correspondente ao fabricante do seu gateway para então aplicar esta configuração no seu dispositivo.
5. Roteamento
Após configurar a VPN, teremos um cenário como a figura abaixo:
Para que o tráfego possa fazer uso deste novo caminho, devemos associar a VPN a tabela de roteamento do TGW. Para fazer isto:
- 5.1. Vá até Transit Gateway Route Tables;
- 5.2. Selecione a tabela de roteamento, no nosso caso, usaremos a tabela default do TGW que também está associado aos VPCs e ao Direct Connect Gateway;
- 5.3. Escolha associations e criar association;
- 5.4. Então selecione o attachment ID associado ao resource type VPN;
- 5.5. Neste momento você terá a tabela de roteamento com as seguintes associações:
- 5.6. Ainda na tabela de roteamento do TGW, selecione agora a opção Propagations e então criar propagation. Adicionar uma propagação permitirá que as rotas sejam propagadas do attachment (VPN no nosso caso) para a tabela de rotas do Transit Gateway. Desta forma, os prefixos do seu datacenter serão conhecidos pelo DXGW e AWS S2S VPN;
- 5.7. Selecione agora a tabela de roteamento associada ao seu VPC. No nosso exemplo usaremos o VPC_123 e VPC_234, pois queremos que ambos tenham conectividade com a rede on-premises através da VPN;
- 5.8. Clique em Routes, depois em Edit Routes e finalmente em Add route;
- 5.9. Em destination, adicione então o CIDR range da rede destino (subnet da sua rede on-premises) e selecione como Target o Transit Gateway criado anteriormente para terminação da VPN;
- 5.10. Clique em Save routes
6. Teste de Failover
Nesta seção, você simulará uma falha do DX e confirmará que ainda pode enviar tráfego pela conexão AWS S2S VPN de backup.
Antes de desligarmos a conexão DX, vamos inspecionar as tabelas de rotas e o caminho que o tráfego está tomando.
Vá para a seção VPC do console AWS e selecione a tabela de roteamento do TGW utilizada anteriormente. Note que mesmo havendo dois caminhos para o seu datacenter (DX e VPN), apenas o caminho preferido aparece na tabela.
Logo, se o mesmo prefixo for recebido sobre DX e VPN (exatamente como no nosso caso), o TGW sempre preferirá o caminho através do DX. É por isso que apenas o caminho via DX é instalado na tabela de rotas do TGW.
Na direção oposta, do seu datacenter para a AWS, você tem total controle sobre o caminho preferido, e pode usar os mecanismos do BGP para manipular o encaminhamento do tráfego.
Você pode consultar o link abaixo para maiores detalhes sobre as opções de roteamento da VPN S2S Site-to-Site:
https://docs.thinkwithwp.com/pt_br/vpn/latest/s2svpn/VPNRoutingTypes.html
7. Simulando indisponibilidade do Direct Connect
O serviço DX inclui uma funcionalidade que facilita muito a realização de testes de failover, o failover test. Esta opção permite que você desabilite a sessão BGP configurada em qualquer interface virtual do DX por um determinado período de tempo.
- 7.1. Para iniciar a simulação, vá até o serviço Direct Connect na Console da AWS e selecione a VIF de trânsito;
- 7.2. Em Actions, selecione Bring down BGP;
- 7.3. Habilite o teste de failover por um período entre 1 e 180 minutos e confirme;
- 7.4. A conexão entrará no estado testing e a sessão BGP acabará caindo. Você pode cancelar o teste a qualquer momento para retornar à conectividade.
- 7.5. Ainda com o DX indisponível durante o teste de failover, volte para a seção do VPC na Console e verifique novamente as rotas na tabela de roteamento TGW. A rota via DX deve ter desaparecido e você deve ver agora a rota através da VPN.
- 7.6. Como a conexão VPN consiste de 2 túneis IPSEC, você deve ver os anexos na tabela de rotas. Passe o mouse sobre o campo Attachment para ver como estão mapeados.
Considerando que ocorra uma falha no DX num ambiente produtivo, o tempo de convergência para uso da VPN dependerá principalmente dos temporizadores do BGP (timers). Por padrão, a sessão BGP estabelecida através do DX aguardará 3 vezes o valor do keepalive (3 x 30 segundos), para que então a sessão expire. Sendo assim, é esperado um tempo aproximado de 90 segundos, para que o tráfego comece a fluir pela conexão VPN. Este tempo pode ser maior dependendo da sua arquitetura e topologia de rede. Abordaremos formas de otimizá-lo num próximo blogpost. |
8. Conclusões
Uma boa estratégia de redes híbrida é importante para o sucesso da sua jornada para a AWS. Dependendo dos seus requisitos de conectividade para performance, segurança, resiliência, tempo de implementação e custo, o uso de uma conexão de VPN como backup do Direct Connect pode ser uma alternativa viável.
Através da manipulação da tabela de roteamento e o uso do BGP, você pode automatizar o processo de failover de tal forma que o uso do caminho backup via VPN ocorra de forma automática.
Para testar e validar o processo de failover, você pode usar a funcionalidade de teste do DX. Esta funcionalidade desabilita a sessão BGP estabelecida pelo link principal (DX) por um tempo determinado, permitindo que o tráfego então passe a fluir pelo caminho de backup (AWS S2S VPN).
Considerando que o volume e perfil de tráfego podem mudar em função de novas aplicações e requisitos, é recomendado que você faça testes regulares de failover para os caminhos de backup para garantir que a arquitetura continua atendendo os requisitos mapeados inicialmente.
Acrônimos.
- DX: AWS Direct Connect.
- VPN: Virtual Private Network.
- DXGW: AWS Direct Connect Gateway.
- VGW: Virtual Private Gateway.
- CGW: Customer Gateway.
- TGW: Transit Gateway.
- ASN: Autonomous System Number.
- VIF: Virtual Interface.
- BGP: Border Gateway Protocol.
- SLA: Service Level Agreement.
- ECMP: Equal-cost multi-path.
Sobre o autor
Revisores
Marcos Cotomacio é Arquiteto de Soluções em Enterprise na AWS Brasil.