¿Cómo puedo solucionar problemas de resolución de DNS con mi zona alojada privada de Route 53?

10 minutos de lectura
0

Quiero solucionar problemas de resolución de DNS con mi zona alojada privada de Amazon Route 53.

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.

Confirmar que se ha activado la compatibilidad con DNS en la VPC

Para permitir la resolución de registros de zonas alojadas privadas, debe activar la compatibilidad con DNS en su nube virtual privada (VPC). Compruebe que DNSSupport y DNSHostnames estén establecidos como True en la VPC.

Confirmar que se ha asociado el ID de VPC correcto a la zona alojada privada

Al asociar una zona alojada privada a una VPC, Route 53 Resolver crea una regla autodefinida y la asocia a la VPC. Los recursos de esa VPC pueden consultar a Resolver para resolver los registros de DNS en la zona alojada privada.

Confirme que ha asociado el ID de VPC correcto a su zona alojada privada. Además, asegúrese de consultar los registros de recursos del dominio desde la misma VPC.

Para obtener una lista de las VPC asociadas a una zona alojada, ejecute el siguiente comando en AWS CLI:

aws route53  list-hosted-zones-by-vpc --vpc-id VPC_ID --vpc-region REGION_ID

Nota: Sustituya VPC_ID y REGION_ID por valores que sean pertinentes para usted.

Para obtener una lista de las zonas alojadas privadas que están asociadas a VPC específicas, ejecute el siguiente comando en AWS CLI:

aws route53 get-hosted-zone --id VPC_ID

Nota: Sustituya VPC_ID por un valor que sea pertinente para usted.

Confirme que ha configurado las reglas de reenvío para los dominios de zonas alojadas privadas en servidores de DNS personalizados hacia el servidor de DNS proporcionado por Amazon (CIDR+2).

Si configuró servidores de DNS personalizados o servidores de Active Directory en las opciones de DHCP para DNS en su VPC, compruebe las siguientes configuraciones:

  • En la regla de reenvío, confirme que sus servidores reenvíen las consultas de DNS de dominio privado a la dirección IP de los servidores de DNS de su VPC proporcionados por Amazon. Por ejemplo, si el rango de CIDR principal de la VPC es 172.31.0.0/16, la dirección IP del servidor de DNS de la VPC es 172.31.0.2. Es el rango de redes de VPC más dos.
  • Confirme que el dominio que ha configurado en los servidores personalizados es diferente de su zona alojada privada. Si el dominio es el mismo que su zona alojada privada, el servidor está autorizado para ese dominio. En este caso, el servidor no contacta con el servidor de DNS proporcionado por Amazon para los dominios de zonas alojadas privadas.

Revisar la configuración personalizada en resolv.conf

Si observa respuestas o resoluciones de DNS intermitentes, revise la configuración de su instancia de origen en resolv.conf.

Por ejemplo, configure la opción rotate en resolv.conf para equilibrar la carga de las consultas de DNS entre el servidor de DNS de Amazon y el servidor de resolución público de Google (8.8.8.8). En este caso, esta es la configuración de resolv.conf:

options rotate; generated by /usr/sbin/dhclient-script
nameserver 8.8.8.8
nameserver 172.31.0.2

En su primera consulta al solucionador público de Google (8.8.8.8), recibirá la respuesta esperada NXdomain. Recibe esta respuesta porque el solucionador está intentando encontrar la respuesta en la zona alojada pública en lugar de en la zona alojada privada:

Private hosted Zone Record - resolvconf.local\[ec2-user@ip-172-31-253-89 etc\]$ curl -vks http://resolvconf.local
\* Rebuilt URL to: http://resolvconf.local/
\* Could not resolve host: resolvconf.local

15:24:58.553320 IP ip-172-31-253-89.ap-southeast-2.compute.internal.40043 > dns.google.domain: 65053+ A? resolvconf.local. (34)
15:24:58.554814 IP dns.google.domain > ip-172-31-253-89.ap-southeast-2.compute.internal.40043: 65053 NXDomain 0/1/0 (109)

Sin embargo, la segunda consulta se resuelve correctamente. La segunda consulta se realiza correctamente porque llega al solucionador de DNS de VPC que está asociado a su zona alojada privada:

[ec2-user@ip-172-31-253-89 etc]$ curl -vks http://resolvconf.local* Rebuilt URL to: http://resolvconf.local/
*   Trying 1.1.1.1...
* TCP_NODELAY set
* Connected to resolvconf.local (1.1.1.1) port 80 (#0)

15:25:00.224761 IP ip-172-31-253-89.ap-southeast-2.compute.internal.51578 > 172.31.0.2.domain: 7806+ A? resolvconf.local. (34)
15:25:00.226527 IP 172.31.0.2.domain > ip-172-31-253-89.ap-southeast-2.compute.internal.51578: 7806 1/0/0 A 1.1.1.1 (50)

Confirmar que las zonas alojadas privadas no tengan espacios de nombres superpuestos

Cuando varias zonas tienen espacios de nombres superpuestos (como example.com y test.example.com), Resolver enruta el tráfico hacia la zona alojada en función de la coincidencia más específica. Si hay una zona coincidente pero ningún registro que coincida con el nombre y tipo de dominio en la solicitud, Resolver no reenvía la solicitud. En cambio, Resolver devuelve al cliente NXDOMAIN (dominio inexistente).

Confirme que ha configurado el registro correcto en la zona alojada privada más específica para una resolución de DNS correcta.

Por ejemplo, supongamos que tiene dos zonas alojadas privadas con los siguientes registros:

Nombre de la zona alojada privadaNombre del registroValor
localoverlap.privatevpc.local60.1.1.1
privatevpc.localoverlap.privatevpc.local50.1.1.1

La solicitud obtiene la siguiente respuesta de la zona alojada privada coincidente más específica:

[ec2-user@IAD-BAS-INSTANCE ~]$ dig overlap.privatevpc.local +short50.1.1.1

Confirmar que no haya ninguna delegación de zona configurada en la zona alojada privada

Las zonas alojadas privadas no admiten la delegación de zonas. Si se configura la delegación, el cliente obtiene el código de respuesta «Servfail» desde el solucionador de VPC.

Utilice AWS CLI para confirmar que la delegación de zonas no esté configurada en la zona alojada privada, como en el siguiente ejemplo:

Zona alojada privada: abc.com Registro de NS de delegación para: kc.abc.com Registro de recursos: test.kc.abc.com

[ec2-user@ip-172-31-0-8 ~]$ dig test.kc.abc.com;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 63414
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test.kc.abc.com        IN      A
;; Query time: 15 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Fri Apr 16 15:57:37 2021
;; MSG SIZE  rcvd: 48

Confirme que la política de enrutamiento del registro de recursos sea compatible con las zonas alojadas privadas.

Confirme que ha configurado una política de enrutamiento en su registro de recursos compatible con una zona alojada privada:

  • Enrutamiento sencillo
  • Enrutamiento de conmutación por error
  • Enrutamiento de respuesta con varios valores
  • Enrutamiento ponderado
  • Enrutamiento basado en la latencia
  • Enrutamiento de geolocalización

Confirmar que la regla de Resolver y su punto de conexión de entrada se resuelvan en diferentes VPC

Cuando el punto de conexión de salida de una regla de Resolver apunta a un punto de conexión de entrada que comparte una VPC con la regla, el resultado es un bucle. En este bucle, la consulta pasa continuamente entre los puntos de conexión de entrada y de salida.

Como otra opción, puede asociar la regla de reenvío a otras VPC que se compartan con otras cuentas. Para ello, utilice AWS Resource Access Manager (AWS RAM). Las zonas alojadas privadas que están asociadas al hub o a una VPC central resuelven desde las consultas hasta los puntos de conexión de entrada. Una regla de Resolver de reenvío no cambia esta resolución, como en el siguiente ejemplo:

VPC central: VPC A - CIDR 172.31.0.0/16 VPC radial: VPC B - CIDR 172.32.0.0/16 Dirección IP de entrada: 172.31.253.100 y 172.31.2.100 Direcciones IP de destino en la regla de reenvío: 172.31.253.100 y 172.31.2.100 Regla asociada a las VPC: VPC A y VPC B Cliente: 172-32-254-37

ubuntu@ip-172-32-254-37:~$ dig overlap.privatevpc.local;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 9007
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;overlap.privatevpc.local. IN A
;; Query time: 2941 msec
;; SERVER: 172.32.0.2#53(172.32.0.2)

En esta salida, la solicitud de DNS salta continuamente entre los puntos de conexión de salida y de entrada. La solicitud comprueba la regla que está asociada a la VPC A y devuelve la consulta al punto de conexión de salida. Tras varios intentos, se agota el tiempo de espera de la consulta y responde con un código de respuesta Servfail.

Para solucionar este problema e interrumpir el bucle, elimine la asociación de la VPC central (VPC A) a la regla. A continuación, recibirá una respuesta correcta de la zona alojada privada:

ubuntu@ip-172-32-254-37:~$ dig overlap.privatevpc.local;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58606
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;overlap.privatevpc.local. IN A
;; ANSWER SECTION:
overlap.privatevpc.local. 0 IN A 50.1.1.1
;; Query time: 5 msec
;; SERVER: 172.32.0.2#53(172.32.0.2)

Confirmar que el solucionador local envía una solicitud recursiva

Si utiliza consultas locales para Route 53 Resolver, puede reenviar las consultas de DNS desde los solucionadores de su red a un solucionador de VPC. Para ello, utilice el punto de conexión de entrada de Resolver. Esta acción le permite resolver los nombres de dominio de los recursos de AWS, como los registros de una zona alojada privada.

En algunos casos, es posible que la zona alojada privada no se resuelva correctamente desde el solucionador local. Este comportamiento se produce porque el solucionador local envía una consulta iterativa en lugar de una solicitud recursiva. El punto de conexión de entrada admite consultas recursivas para obtener resoluciones de DNS correctas.

Para verificar el tipo de resolución, utilice una captura de paquetes en el solucionador de DNS (local). A continuación, revise las marcas de DNS (recursión deseada = 0). Para probar la resolución, envíe una solicitud iterativa con el comando dig +norecurse o configure norecurse con nslookup:

Dirección IP del punto de conexión de entrada: 172.31.253.150

Dirección IP del solucionador local: 10.0.4.210

Una consulta iterativa fallida a la dirección IP de entrada da como resultado la siguiente salida:

[ec2-user@IAD-BAS-INSTANCE ~]$ dig @172.31.253.150 overlap.privatevpc.local +norecurse; <<>> DiG 9.11.0rc1 <<>> @172.31.253.150 overlap.privatevpc.local +norecurse
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Una consulta recursiva correcta da como resultado la siguiente salida:

[ec2-user@IAD-BAS-INSTANCE ~]$ dig @172.31.253.150 overlap.privatevpc.local;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19051
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;overlap.privatevpc.local.      IN      A
;; ANSWER SECTION:
overlap.privatevpc.local. 0     IN      A       50.1.1.1
;; Query time: 200 msec
;; SERVER: 172.31.253.150#53(172.31.253.150)

Confirmar que se han configurado las prioridades de reglas correctas para el DNS proporcionado por Amazon

Cuando la instancia del cliente envía una consulta al solucionador (servidor de DNS proporcionado por AWS), este verifica las reglas de la instancia acerca de dónde enrutar la solicitud.

En general, la regla más específica tiene prioridad. Si hay una regla de Resolver para test.example.com y una zona alojada privada longest.test.example.com, busque el dominio longest.test.example.com que coincida con la zona alojada privada.

Si las reglas están en el mismo nivel de dominio, tienen la siguiente prioridad:

  1. Regla de Resolver
  2. Regla de zona alojada privada
  3. Regla interna

Por ejemplo, si hay una regla de Resolver para test.example.com y una zona alojada privada test.example.com, la regla de Resolver tiene prioridad. La consulta se reenvía a los servidores o direcciones IP de destino configurados en la regla.

Información relacionada

Trabajar con zonas alojadas privadas

¿Qué opciones de Amazon VPC debo activar para utilizar mi zona alojada privada?

Evitar configuraciones en bucle con los puntos de conexión de Resolver

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses