Saltar al contenido

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

9 minutos de lectura
0

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

Descripción breve

Para solucionar problemas de DNS de zonas alojadas privadas, comprueba la configuración de Amazon Virtual Private Cloud (Amazon VPC), las asociaciones de zonas y la configuración del servidor DNS.

Resolució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.

Confirmación de la compatibilidad de DNS en la VPC

Para permitir la resolución de registros de zonas alojadas privadas, sigue estos pasos:

  1. Activa la compatibilidad con DNS en tu Amazon VPC.
  2. Comprueba que DNSSupport y DNSHostnames estén establecidos como True en la VPC. Para obtener más información, consulta Ver y actualizar los atributos de DNS de tu VPC.

Confirmación de la asociación correcta de ID de VPC

Confirma que has asociado el ID de VPC correcto a tu zona alojada privada. Además, asegúrate de consultar los registros de recursos del dominio desde la misma VPC.

Cuando asocias una zona alojada privada a tu VPC:

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

Para enumerar las VPC asociadas a una zona alojada, ejecuta el siguiente comando en AWS CLI:

aws route53 get-hosted-zone --id VPC_ID

Nota: Sustituye VPC_ID por los valores correspondientes.

Para enumerar las zonas alojadas privadas que están asociadas a VPC específicas, ejecuta el siguiente comando en AWS CLI:

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

Nota: Sustituye HOSTED_ZONE_ID, VPC_ID y REGION_ID por los valores correspondientes.

Comprobación de las configuraciones personalizadas del servidor DNS

Si configuraste servidores de DNS personalizados o servidores de Active Directory en las opciones de DHCP para DNS en tu VPC, comprueba las siguientes configuraciones:

  1. Regla de reenvío: Los servidores reenvían las consultas de DNS de dominio privado a la dirección IP del servidor DNS de la VPC.
  2. Configuración de dominio: El dominio de los servidores personalizados difiere del de tu zona alojada privada.

Por ejemplo, si el intervalo 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 intervalo de redes de Amazon VPC más dos.

Revisión de los ajustes de configuración del Resolver

Si observas respuestas o resoluciones de DNS intermitentes, revisa los ajustes de configuración de Resolver de tu instancia de origen:

  • Para instancias de Linux, utiliza los archivos cat/etc/resolv.conf y cat/etc/hosts.
  • Para macOS, consulta Cambiar la configuración de DNS en Mac en la guía del usuario de macOS.
  • Para Windows, sigue estos pasos:
    Selecciona Configuración y, a continuación, Red e Internet.
    En Configuración de red avanzada, selecciona Cambiar la configuración del adaptador.
    Haz clic con el botón derecho en la conexión de red y, a continuación, selecciona Propiedades.
    Elige Propiedades de IPv4 y, a continuación, introduce la dirección IP de DNS preferida en Direcciones del servidor de DNS.

Por ejemplo, si configuraste resolv.conf, puedes usar la opción de rotación para equilibrar la carga de las consultas entre el DNS de Amazon y el DNS de Google (8.8.8.8). El archivo resolv.conf tendría un aspecto similar al siguiente:

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

En tu primera consulta al DNS público de Google (8.8.8.8), recibirás la respuesta esperada NXdomain. Resolver está intentando encontrar la respuesta en la zona alojada pública en lugar de hacerlo 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 llega al solucionador de DNS de la VPC asociado a tu 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:

  • Resolver dirige el tráfico en función de la coincidencia más específica
  • Si existe una zona coincidente pero no hay ningún registro coincidente, Resolver devuelve NXDOMAIN

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

Por ejemplo, si tienes dos zonas alojadas privadas con los siguientes registros:

Zona alojada privadaNombre del registroValor
localoverlap.privatevpc.local60.1.1.1
privatevpc.localoverlap.privatevpc.local50.1.1.1

A continuación, recibirás el siguiente resultado de la consulta de la zona alojada privada coincidente más específica:

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

Comprobación de la delegación de zonas o subdominios en zonas alojadas privadas

Las zonas alojadas privadas no admiten la delegación de zonas o subdominios. Confirma que no tienes un registro de servidor de nombres (NS) configurado para el subdominio en la zona alojada privada del dominio principal. Si has configurado la delegación, el cliente obtiene el código de respuesta «SERVFAIL» desde el solucionador de VPC.

El siguiente es un ejemplo de configuración de delegación que provoca SERVFAIL:

  • Zona privada alojada: abc.com
  • Registro NS de delegación: 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

Confirmar la compatibilidad con políticas de enrutamiento

Confirma que has configurado una política de enrutamiento en tu registro de recursos compatible con una zona alojada privada. Para obtener más información, consulta Políticas de enrutamiento compatibles para los registros de una zona alojada privada.

Comprobación de la regla de Resolver y el uso del punto de enlace de salida de Resolver

Comprueba que estás utilizando Resolver con un punto de enlace de salida. La regla de Resolver tiene prioridad si:

  1. Tienes una regla de Resolver para enrutar el tráfico a tu red para el dominio de tu zona alojada privada.
  2. Tienes una regla de Resolver asociada a la misma VPC que también está asociada a la zona alojada privada.

Para obtener más información, consulta Resolución de consultas de DNS entre VPC y tu red.

Evitar bucles de consulta

Para evitar crear un bucle, sigue estos pasos:

  1. No crees direcciones IP de destino en una regla de reenvío de Resolver que apunte a los puntos de enlace entrantes de tu VPC.
  2. No asocies los puntos de enlace a la zona alojada privada.
  3. No asocies la misma regla de Resolver a tu VPC.

Ejemplo de un bucle de consulta:

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)

Para resolver este problema e interrumpir el bucle, elimina la asociación de la VPC central a la regla. Ejemplo de una respuesta correcta:

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 Resolver local envía solicitudes recursivas

Para consultas desde las instalaciones locales a Route 53 Resolver:

  • Utiliza el punto de enlace entrante de Resolver para reenviar las consultas de DNS.
  • Asegúrate de que el Resolver local envíe consultas recursivas (no iterativas).

Para verificar el tipo de resolución, sigue estos pasos:

  1. Utiliza la captura de paquetes en el Resolver de DNS local.
  2. Revisa las marcas de DNS (se desea recursividad = 0).
  3. Realice pruebas con el comando +norecurse dig o define norecurse con nslookup.

Ejemplo de una consulta iterativa fallida:

[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

Ejemplo de una consulta recursiva correcta:

[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)

Verificación de las prioridades de reglas correctas para el DNS proporcionado por Amazon

Cuando la instancia del cliente envía una consulta a Resolver, este verifica las reglas de la instancia acerca de dónde enrutar la solicitud.

La regla más específica tiene prioridad. 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.

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

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 enlace de Resolver