Ir para o conteúdo

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

7 minuto de leitura
0

Eu planejo configurar um endpoint do AWS Client VPN. Preciso especificar os servidores DNS que os usuários finais usam para resolver nomes de domínio.

Resolução

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você 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 operação de API CreateClientVpnEndpoint para especificar os endereços IP no parâmetro “Endereço IP do servidor DNS”. Use o console, o comando modify-client-vpn-endpoint ou a operação da API ModifyClientVpnEndpoint para alterar um endpoint atual.

Configurar o parâmetro “Endereço IP do servidor DNS”

Para alta disponibilidade, especifique dois endereços IP do servidor DNS. Se o servidor DNS primário estiver inacessível, o cliente tentará 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, considere o seguinte:

  • É possível resolver os registros de recursos da zona hospedada privada do Route 53 associada à Amazon Virtual Private Cloud (Amazon 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 da Amazon VPC.
  • Confirme se a Resolução de DNS e Nomes de host DNS estão habilitados para a Amazon VPC associada.

O endpoint do Client VPN usa o NAT de origem para se conectar aos recursos na Amazon VPC associada.

Comportamento do DNS por tipo de túnel

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: o cliente adiciona uma rota para todo o tráfego através do túnel VPN. Todo o tráfego, incluindo consultas de DNS, é roteado pelo túnel. Se a Amazon VPC não tiver uma rota para os servidores DNS, as pesquisas falharão.
  • Túnel dividido: o cliente adiciona somente rotas da tabela de rotas da Client VPN. Para rotear o tráfego DNS pela VPN, adicione uma rota para os endereços IP do servidor DNS à tabela de rotas da Client VPN.

Os seguintes exemplos se aplicam aos ambientes Windows e Linux. No Linux, os exemplos pressupõem que o cliente usa um gerenciador de rede genérico.

Cenário 1: túnel completo sem endereços IP de servidor DNS especificados

Exemplo 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 de endereço IP do servidor DNS está desativado e nenhum endereço IP do servidor DNS é especificado

Como o parâmetro de endereço IP do servidor DNS não está configurado, a máquina host do usuário final usa o servidor DNS local para resolver nomes de domínio.

Esse endpoint do Client VPN está configurado no modo de túnel completo. Para enviar todo o tráfego pela VPN (0/1 de utun1), o cliente adiciona uma rota que aponta para o adaptador virtual. No entanto, o tráfego DNS não é enviado pela VPN porque o endpoint não envia a configuração do servidor DNS. Em vez disso, o cliente usa a rota estática para o endereço do servidor DNS local (192.168.1.1/32 sobre en0). Depois que o nome de domínio é resolvido localmente, o tráfego da aplicação para o endereço IP resolvido passa pelo túnel VPN.

$ 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 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 servidor DNS local está configurado como um IP público (8.8.8.8)
  • O parâmetro de endereço IP do servidor DNS está desativado e nenhum endereço IP do servidor DNS é especificado

Neste exemplo, o cliente usa o servidor DNS público em 8.8.8.8. Como não há rota estática para 8.8.8.8 sobre en0, a solicitação de DNS passa pelo túnel VPN. Se o endpoint do Client VPN não tiver acesso à Internet, o servidor DNS ficará inacessível e a consulta expirará.

$ 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

  • CIDR IPv4 do cliente: 192.168.0.0/16
  • CIDR da Amazon VPC do endpoint do Client VPN: 10.123.0.0/16
  • O parâmetro de endereço IP do servidor DNS está ativado e definido como 10.10.1.228 e 10.10.0.43 (endpoints de entrada do Route 53 Resolver)
  • Os endpoints do Resolver estão em uma Amazon VPC (10.10.0.0/16) conectada a partir de um gateway de trânsito
  • O Amazon VPC tem uma zona hospedada privada do Route 53 (example.local)
  • A resolução de DNS e os nomes de host DNS estão ativos

Esse Client VPN está configurado no modo de túnel dividido. A tabela de rotas do Client VPN contém:

$ 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. A solicitação de DNS é encaminhada para o endpoint de entrada do Route 53 Resolver por meio de um gateway de trânsito. Depois que o nome de domínio é resolvido para um endereço IP, o tráfego da aplicação também passa pelo túnel VPN. Esse fluxo continua desde que o endereço IP de destino resolvido corresponda a uma rota na tabela de rotas do endpoint do Client VPN.

Com essa configuração, os usuários finais podem resolver nomes de domínio externos usando a resolução DNS padrão. Ela também permite a resolução de registros em zonas hospedadas privadas associadas à Amazon VPC contendo os endpoints de entrada do Route 53 Resolver.

$ 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)
(...)