Como o DNS funciona com um endpoint do AWS Client VPN?

8 minuto de leitura
0

Estou criando um endpoint do AWS Client VPN. Preciso especificar os servidores DNS que meus usuários finais devem consultar para resolução de nomes de domínio.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.

Ao criar um novo endpoint do Client VPN, especifique um endereço IP do servidor DNS. Use o Console de Gerenciamento da AWS e o comando create-client-vpn-endpoint da AWS CLI ou a API CreateClientVpnEndpoint para especificar os endereços IP no parâmetro "Endereço IP do servidor DNS". Ou modifique um endpoint do Client VPN existente. Use o Console de Gerenciamento da AWS e o comando modify-client-vpn-endpoint da AWS CLI ou a API ModifyClientVpnEndpoint para modificar o "Endereço IP do servidor DNS".

Configurar o parâmetro "Endereço IP do servidor DNS"

Para obter alta disponibilidade, é uma prática recomendada especificar dois servidores DNS. Se o servidor DNS primário ficar inacessível, o dispositivo do usuário final reenviará a consulta para o servidor DNS secundário.

Observação: se o servidor DNS primário responder com SERVFAIL, a solicitação de DNS não será enviada novamente ao servidor DNS secundário.

Confirme se os usuários finais podem acessar os dois servidores DNS especificados depois que eles se conectarem ao endpoint do Client VPN. Se os servidores DNS estiverem inacessíveis, as solicitações de DNS poderão falhar e causar problemas de conectividade.

O parâmetro "Endereço IP do servidor DNS" é opcional. Se nenhum servidor DNS for especificado, o endereço IP do DNS configurado no dispositivo do usuário final será usado para resolver consultas de DNS.

Se o seu servidor DNS Client VPN for AmazonProvidedDNS ou endpoint de entrada do Amazon Route 53 Resolver, siga estas diretrizes:

  • Você pode resolver os registros de recursos da zona hospedada privada do Route 53 associada à nuvem privada virtual (VPC).
  • Se "DNS privado"for ativado, os nomes de host públicos do Amazon RDS que podem ser acessados a partir do compromisso da interface VPN serão resolvidos para um endereço IP privado. Isso também vale para nomes de endpoints de serviço da AWS que podem ser acessados a partir do endpoint da interface VPC.
    Observação: certifique-se de que "Resolução de DNS" e "Nomes de host DNS" estejam habilitados para a VPC associada.

O endpoint do Client VPN usa o NAT de origem para se conectar aos recursos nas VPCs associadas.

Depois que o dispositivo cliente estabelece o túnel VPN do cliente, o parâmetro "Endereço IP do servidor DNS" é aplicado ao túnel completo ou ao túnel dividido:

  • Túnel completo: depois que o dispositivo cliente estabelece o túnel, uma rota para todo o tráfego através do túnel VPN é adicionada à tabela de rotas do dispositivo do usuário final. Em seguida, todo o tráfego, incluindo o tráfego DNS, é roteado pelo túnel Client VPN. Se a VPC associada não tiver uma rota para alcançar os servidores DNS, a pesquisa falhará.
  • Túnel dividido: quando o túnel Client VPN é criado, as rotas da tabela de rotas do Client VPN são adicionadas à tabela de rotas do dispositivo do usuário final. Se você conseguir acessar o servidor DNS por meio da VPC associada, adicione a rota dos endereços IP do servidor DNS à tabela de rotas do Client VPN.

Os exemplos a seguir demonstram o DNS em cenários comuns. Eles se aplicam aos ambientes Windows e Linux. No ambiente Linux, os exemplos funcionam conforme descrito apenas quando a máquina host do usuário final usar a configuração de rede genérica.

Cenário 1: túnel completo com o parâmetro "Endereço IP do servidor DNS" desativado

Exemplo de configuração 1:

  • CIDR IPv4 do cliente usuário final = 192.168.0.0/16.
  • CIDR da VPC do endpoint do Client VPN = 10.123.0.0/16.
  • Endereço IP do servidor DNS local = 192.168.1.1.
  • O parâmetro "Endereço IP do servidor DNS" está desativado. Nenhum endereço IP do servidor DNS foi especificado.

Como o parâmetro "Endereço IP do servidor DNS" está desativado, a máquina host do usuário final usa o servidor DNS local para resolver consultas de DNS.

Esse Client VPN está configurado no modo de túnel completo. Para enviar todo o tráfego pela VPN (destination 0/1 over utun1), é adicionada uma rota apontando para o adaptador virtual. No entanto, o tráfego DNS ainda não trafega pela VPN, porque o parâmetro "Endereço IP do servidor DNS" não está configurado. O tráfego DNS entre o cliente e o servidor DNS permanece local. A máquina cliente já tem uma rota estática preferencial para o endereço do servidor DNS local (dest. 192.168.1.1/32 sobre en0) para acessar o resolvedor de DNS. Depois que o nome de domínio é resolvido para o respectivo endereço IP, o tráfego do aplicativo para o endereço IP resolvido viaja pelo túnel VPN.

Exemplo de trecho:

$ cat /etc/resolv.conf | grep nameservernameserver 192.168.1.1

$ netstat -nr -f inet | grep -E 'utun1|192.168.1.1'0/1                192.168.0.1        UGSc           16        0   utun1
192.168.1.1/32     link#4             UCS             1        0     en0
(...)

$ dig amazon.com;; ANSWER SECTION:
amazon.com.        32    IN    A    176.32.98.166
;; SERVER: 192.168.1.1#53(192.168.1.1)
(...)

Exemplo de configuração 2:

  • CIDR IPv4 do cliente usuário final = 192.168.0.0/16.
  • CIDR da VPC do endpoint do Client VPN = 10.123.0.0/16.
  • O endereço IP do servidor DNS local está definido como IP público = 8.8.8.8.
  • O parâmetro "Endereço IP do servidor DNS" está desativado. Nenhum endereço IP do servidor DNS foi especificado.

Neste exemplo, em vez de usar o servidor DNS local em 198.168.1.1., o cliente usa o endereço DNS público em 8.8.8.8. Como não há uma rota estática para 8.8.8.8 sobre en0, esse tráfego viaja pelo túnel Client VPN. Se o endpoint do Client VPN não estiver configurado para acessar a Internet, o DNS público em 8.8.8.8 estará inacessível. Em seguida, as consultas da solicitação expiram.

$ cat /etc/resolv.conf | grep nameservernameserver 8.8.8.8

$ netstat -nr -f inet | grep -E 'utun1|8.8.8.8'0/1                192.168.0.1      UGSc            5        0   utun1

$ dig amazon.com(...)
;; connection timed out; no servers could be reached

Cenário 2: túnel dividido com o parâmetro "Endereço IP do servidor DNS" ativado

Exemplo de configuração:

  • CIDR IPv4 do cliente usuário final = 192.168.0.0/16.
  • CIDR da VPC do endpoint do Client VPN = 10.123.0.0/16.
  • O parâmetro "Endereço IP do servidor DNS" está ativado e definido como 10.10.1.228 e 10.10.0.43. Esses endereços IP representam os endereços IP dos endpoints de entrada do Resolvedor do Route 53 que estão em outra VPC (10.10.0.0/16). Os endereços IP se conectam aos endpoints do Client VPN que estão associados à VPC com um gateway de trânsito.
  • A VPC associada tem "Nomes de host DNS" e "Suporte a DNS" ativados e tem uma zona hospedada privada do Route 53 associada (example.local).

Esse Client VPN está configurado no modo de túnel dividido. As rotas na tabela de rotas do Client VPN são adicionadas à tabela de rotas da máquina host do usuário final:

$ netstat -nr -f inet | grep utun1(...)
10.10/16           192.168.0.1        UGSc            2        0   utun1 # Route 53 Resolver inbound endpoints VPC CIDR
10.123/16          192.168.0.1        UGSc            0        0   utun1 # Client VPN VPC CIDR
(...)

Neste exemplo, o parâmetro "Endereço IP do servidor DNS" está ativado. 10.10.1.228 e 10.10.0.43 estão configurados como servidores DNS. Quando o cliente estabelece o túnel VPN, os parâmetros do servidor DNS são enviados para a máquina host do usuário final.

$ cat /etc/resolv.conf | grep nameservernameserver 10.10.1.228 # Primary DNS server
nameserver 10.10.0.43 # Secondary DNS server

A máquina do cliente emite uma consulta ao DNS que viaja pelo túnel VPN até a VPC do Client VPN. Em seguida, a solicitação de DNS é encaminhada para o endpoint do Resolvedor do Route 53 por meio de um gateway de trânsito. Depois que o domínio é resolvido para um endereço IP, o tráfego do aplicativo também viaja pelo túnel VPN estabelecido. Isso ocorre desde que o endereço IP de destino resolvido corresponda a uma rota da tabela de rotas do endpoint do Client VPN.

Com essa configuração, os usuários finais podem resolver nomes de domínio externos que usam a resolução DNS padrão. Essa configuração também resolve registros de zonas hospedadas privadas associadas ao Route 53 Resolver VPC. Também resolve nomes DNS de endpoint de interface e nomes de host DNS públicos do EC2.

$ dig amazon.com;; ANSWER SECTION:
amazon.com.        8    IN    A    176.32.103.205
;; SERVER: 10.10.1.228#53(10.10.1.228)
(...)

$ dig test.example.local # Route 53 private hosted zone record ;; ANSWER SECTION:
test.example.local. 10 IN A 10.123.2.1
;; SERVER: 10.10.1.228#53(10.10.1.228)
(...)

$ dig ec2.ap-southeast-2.amazonaws.com # VPC interface endpoint to EC2 service in Route 53 Resolver VPC;; ANSWER SECTION:
ec2.ap-southeast-2.amazonaws.com. 60 IN    A    10.10.0.33
;; SERVER: 10.10.1.228#53(10.10.1.228)
(...)

$ dig ec2-13-211-254-134.ap-southeast-2.compute.amazonaws.com # EC2 instance public DNS hostname running in Route 53 Resolver VPC;; ANSWER SECTION:
ec2-13-211-254-134.ap-southeast-2.compute.amazonaws.com. 20 IN A 10.10.1.11
;; SERVER: 10.10.1.228#53(10.10.1.228)
(...)
AWS OFICIAL
AWS OFICIALAtualizada há 8 meses