Saltar al contenido

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

8 minutos de lectura
0

Tengo la intención de configurar un punto de enlace de AWS Client VPN. Necesito especificar los servidores DNS que utilizan los usuarios finales para resolver los nombres de dominio.

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Al crear un nuevo punto de enlace de Client VPN, especifica la dirección IP de un servidor DNS. Utiliza la Consola de administración de AWS, el comando de la AWS CLI create-client-vpn-endpoint o la operación de la API CreateClientVpnEndpoint para especificar las direcciones IP en el parámetro «Dirección IP del servidor DNS». Utiliza la consola, el comando modify-client-vpn-endpoint o la operación de la API ModifyClientVpnEndpoint para cambiar un punto de enlace existente.

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

Para obtener una alta disponibilidad, especifica dos direcciones IP de servidor DNS. Si no se puede acceder al servidor DNS principal, el cliente intenta reenviar 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.

Confirma que los usuarios finales puedan acceder a los dos servidores DNS especificados después de que los usuarios finales se conecten al punto de enlace 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 enlace entrante AmazonProvidedDNS o Amazon Route 53 Resolver, sigue estas pautas:

  • Puedes resolver los registros de recursos de la zona alojada privada de Route 53 que está asociada a Amazon Virtual Private Cloud (Amazon 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 enlace del servicio de AWS a los que se puede acceder desde el punto de enlace de la interfaz de Amazon VPC.
  • Confirma que las opciones Resolución de DNS y Nombres de host de DNS estén activadas para la Amazon VPC asociada.

Recuerda que el punto de enlace de Client VPN utiliza la NAT de origen para conectarse a los recursos de la Amazon VPC asociada.

Comportamiento de DNS por tipo de túnel

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: El cliente agrega una ruta para todo el tráfico a través del túnel VPN. Todo el tráfico, incluidas las consultas de DNS, se dirige a través del túnel. Si la Amazon VPC no tiene una ruta a los servidores DNS, las búsquedas fallan.
  • Túnel dividido: El cliente solo agrega rutas de la tabla de enrutamiento de Client VPN. Para enrutar el tráfico de DNS a través de la VPN, agrega una ruta para las direcciones IP del servidor DNS a la tabla de enrutamiento de Client VPN.

Los siguientes ejemplos se aplican a los entornos Windows y Linux. En Linux, los ejemplos asumen que el cliente usa un administrador de red genérico.

Escenario 1: Túnel completo sin direcciones IP de servidor DNS especificadas

Ejemplo 1:

  • CIDR IPv4 del cliente de usuario final: 192.168.0.0/16
  • CIDR de la VPC del punto de enlace 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 y no se especifica ninguna dirección IP del servidor DNS

Como el parámetro Dirección IP del servidor DNS no se ha configurado, la máquina host del usuario final utiliza el servidor DNS local para resolver los nombres de dominio.

Este punto de enlace de Client VPN está configurado en modo de túnel completo. Para enviar todo el tráfico a través de la VPN (0/1 desde utun1), el cliente agrega una ruta que apunta al adaptador virtual. Sin embargo, el tráfico DNS no se envía a través de la VPN porque el punto de enlace no envía la configuración del servidor DNS. En su lugar, el cliente usa la ruta estática para la dirección del servidor DNS local (192.168.1.1/32 sobre en0). Una vez que el nombre de dominio se resuelve localmente, el tráfico de la aplicación a la dirección IP resuelta viaja a través del 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)
(...)

Ejemplo 2:

  • CIDR IPv4 del cliente de usuario final: 192.168.0.0/16
  • CIDR de la VPC del punto de enlace de Client VPN: 10.123.0.0/16
  • El servidor DNS local está configurado como una IP pública (8.8.8.8)
  • El parámetro Dirección IP del servidor DNS está desactivado y no se especifica ninguna dirección IP del servidor DNS

En este ejemplo, el cliente usa el servidor DNS público en 8.8.8.8. Como no hay una ruta estática para 8.8.8.8 sobre en0, la solicitud de DNS viaja a través del túnel VPN. Si el punto de enlace de Client VPN no tiene acceso a Internet, no se puede acceder al servidor DNS y se agota el tiempo de espera de la consulta.

$ 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

Ejemplo

  • CIDR IPv4 del cliente: 192.168.0.0/16
  • CIDR de Amazon VPC del punto de enlace de Client VPN: 10.123.0.0/16
  • El parámetro Dirección IP del servidor DNS está activado y establecido en 10.10.1.228 y 10.10.0.43 (puntos de enlace entrantes de Route 53 Resolver)
  • Los puntos de enlace de Resolver se encuentran en una Amazon VPC (10.10.0.0/16) que está conectada desde una puerta de enlace de tránsito
  • La Amazon VPC tiene una zona alojada privada de Route 53 (ejemplo.local)
  • La resolución de DNS y los nombres de host de DNS están activos

Este Client VPN está configurado en modo de túnel dividido. La tabla de enrutamiento de Client VPN contiene:

$ 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 enlace entrante de Route 53 Resolver a través de una puerta de enlace de tránsito. Una vez que el nombre de dominio se resuelve en una dirección IP, el tráfico de la aplicación también viaja a través del túnel VPN. Este flujo continúa siempre que la dirección IP de destino resuelta coincida con una ruta de la tabla de enrutamiento del punto de enlace 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. También permite la resolución de registros en zonas alojadas privadas que están asociadas a la Amazon VPC que contiene los puntos de enlace entrantes de 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)
(...)