¿Cómo funciona el DNS con mi punto de conexión de AWS Client VPN?

9 minutos de lectura
0

Estoy creando un punto de conexión de AWS Client VPN. Necesito especificar los servidores DNS que mis usuarios finales deben consultar para la resolución de nombres de dominio.

Resolución

Nota: Si recibe errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Al crear un nuevo punto de conexión de Client VPN, especifique la dirección IP de un servidor DNS. Utilice la Consola de administración de AWS, el comando de la AWS CLI create-client-vpn-endpoint o la API CreateClientVpnEndpoint para especificar las direcciones IP en el parámetro «Dirección IP del servidor DNS». O modifique un punto de conexión de Client VPN existente. Utilice la Consola de administración de AWS, el comando de la AWS CLI modify-client-vpn-endpoint o la API ModifyClientVpnEndpoint para modificar la «dirección IP del servidor DNS».

Configurar el parámetro «Dirección IP del servidor DNS»

Para obtener una alta disponibilidad, se recomienda especificar dos servidores DNS. Si no se puede acceder al servidor DNS principal, el dispositivo del usuario final reenvía la consulta al servidor DNS secundario.

Nota: Si el servidor DNS principal responde con SERVFAIL, la solicitud de DNS no se vuelve a enviar al servidor DNS secundario.

Confirme que los usuarios finales puedan acceder a los dos servidores DNS especificados después de que los usuarios finales se conecten al punto de conexión de Client VPN. Si no se puede acceder a los servidores DNS, es posible que las solicitudes DNS fallen y se produzcan problemas de conectividad.

El parámetro «Dirección IP del servidor DNS» es opcional. Si no se ha especificado ningún servidor DNS, la dirección IP del DNS configurada en el dispositivo del usuario final se utiliza para resolver las consultas de DNS.

Si el servidor DNS de Client VPN es el punto de conexión entrante AmazonProvidedDNS o Amazon Route 53 Resolver, siga estas pautas:

  • Puede resolver los registros de recursos de la zona alojada privada de Route 53 que está asociada a la nube privada virtual (VPC).
  • Si el «DNS privado» está activado, los nombres de host públicos de Amazon RDS a los que se puede acceder desde la cita de la interfaz VPN se convierten en una dirección IP privada. Esto también se aplica a los nombres de puntos de conexión del servicio de AWS a los que se puede acceder desde el punto de conexión de la interfaz de la VPC.
    Nota: Asegúrese de que las opciones «Resolución de DNS» y «Nombres de host de DNS» estén habilitadas para la VPC asociada.

Recuerde que el punto de conexión de Client VPN utiliza la NAT de origen para conectarse a los recursos de las VPC asociadas.

Una vez que el dispositivo cliente establece el túnel de Client VPN, el parámetro «Dirección IP del servidor DNS» se aplica al túnel completo o al túnel dividido:

  • Túnel completo: Una vez que el dispositivo cliente establece el túnel, se agrega una ruta para todo el tráfico a través del túnel VPN a la tabla de enrutamiento del dispositivo del usuario final. A continuación, todo el tráfico, incluido el tráfico de DNS, se enruta a través del túnel de Client VPN. Si la VPC asociada no tiene una ruta para llegar a los servidores DNS, se produce un error en la búsqueda.
  • **Túnel dividido:**Cuando se crea el túnel de Client VPN, las rutas de la tabla de enrutamiento de Client VPN se agregan a la tabla de enrutamiento del dispositivo del usuario final. Si puede acceder al servidor DNS a través de la VPC asociada, añada la ruta de las direcciones IP del servidor DNS en la tabla de enrutamiento de Client VPN.

Los siguientes ejemplos muestran el DNS en situaciones comunes. Se aplican a los entornos Windows y Linux. En un entorno Linux, los ejemplos funcionan como se describe solo si la máquina host del usuario final usa la configuración de red genérica.

Escenario 1: Túnel completo con el parámetro «Dirección IP del servidor DNS» desactivado

Configuración del ejemplo 1:

  • CIDR IPv4 del cliente de usuario final: 192.168.0.0/16.
  • CIDR de la VPC del punto de conexión de Client VPN: 10.123.0.0/16.
  • Dirección IP del servidor DNS local: 192.168.1.1.
  • El parámetro «Dirección IP del servidor DNS» está desactivado. No se ha especificado ninguna dirección IP del servidor DNS.

Como el parámetro «Dirección IP del servidor DNS» está desactivado, la máquina host del usuario final utiliza el servidor DNS local para resolver las consultas de DNS.

Este Client VPN está configurado en modo de túnel completo. Se agrega una ruta que apunta al adaptador virtual para enviar todo el tráfico a través de la VPN (destino 0/1 a través de utun1). Sin embargo, el tráfico DNS sigue sin viajar a través de la VPN porque el parámetro «Dirección IP del servidor DNS» no está configurado. El tráfico DNS entre el cliente y el servidor DNS sigue siendo local. La máquina cliente ya tiene una ruta estática preferida a la dirección del servidor DNS local (dest. 192.168.1.1/32 sobre en0) para llegar al solucionador de DNS. Una vez que el nombre de dominio se haya resuelto en la dirección IP correspondiente, el tráfico de la aplicación a la dirección IP resuelta viaja a través del túnel VPN.

Fragmento de ejemplo:

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

Configuración del ejemplo 2:

  • CIDR IPv4 del cliente de usuario final: 192.168.0.0/16.
  • CIDR de la VPC del punto de conexión de Client VPN: 10.123.0.0/16.
  • Dirección IP del servidor DNS local configurada como IP pública: 8.8.8.8.
  • El parámetro «Dirección IP del servidor DNS» está desactivado. No se ha especificado ninguna dirección IP del servidor DNS.

En este ejemplo, en lugar de usar el servidor DNS local en 198.168.1.1, el cliente usa la dirección DNS pública en 8.8.8.8. Como no hay una ruta estática para 8.8.8.8 a través de en0, este tráfico viaja por el túnel VPN del cliente. Si el punto de conexión de Client VPN no está configurado para acceder a Internet, no se puede acceder al DNS público en 8.8.8.8. A continuación, se agota el tiempo de espera de las consultas de solicitud.

$ 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

Escenario 2: Túnel dividido con el parámetro «Dirección IP del servidor DNS» activado

Configuración del ejemplo:

  • CIDR IPv4 del cliente de usuario final: 192.168.0.0/16.
  • CIDR de VPC del punto de conexión de Client VPN: 10.123.0.0/16.
  • El parámetro «Dirección IP del servidor DNS» está activado y configurado en 10.10.1.228 y 10.10.0.43. Estas direcciones IP representan las direcciones IP de los puntos de conexión entrantes de Route 53 Resolver que se encuentran en otra VPC (10.10.0.0/16). Las direcciones IP se conectan a los puntos de conexión de Client VPN que están asociados a la VPC con una puerta de enlace de tránsito.
  • La VPC asociada tiene activadas las opciones «Nombres de host DNS» y «Compatibilidad con DNS», y tiene una zona alojada privada de Route 53 asociada (example.local).

Este Client VPN está configurado en modo de túnel dividido. Las rutas de la tabla de enrutamiento de Client VPN se añaden a la tabla de enrutamiento de la máquina host del usuario 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
(...)

En este ejemplo, se activa el parámetro «Dirección IP del servidor DNS». 10.10.1.228 y 10.10.0.43 están configurados como servidores DNS. Cuando el cliente establece el túnel VPN, los parámetros del servidor DNS se envían a la máquina host del usuario final.

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

Una consulta de DNS emitida por la máquina cliente viaja a través del túnel VPN hasta la VPC de Client VPN. A continuación, la solicitud de DNS se reenvía al punto de conexión de Route 53 Resolver a través de una puerta de enlace de tránsito. Una vez que el dominio se resuelve en una dirección IP, el tráfico de la aplicación también viaja por el túnel VPN establecido. Esto ocurre siempre que la dirección IP de destino resuelta coincida con una ruta de la tabla de enrutamiento del punto de conexión de Client VPN.

Con esta configuración, los usuarios finales pueden resolver nombres de dominio externos que utilizan una resolución de DNS estándar. Esta configuración también resuelve los registros de las zonas alojadas privadas que están asociadas a la VPC de Route 53 Resolver. También resuelve nombres DNS de puntos de conexión de interfaz y nombres de host DNS públicos de 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)
(...)
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses