
Acabamos de migrar a un nuevo solucionador de DNS interno y descubrimos una limitación que afecta nuestra capacidad para buscar registros específicos.
Nuestro dominio autorizado interno (privado) es example.net.
. Tenemos un registro CNAME que service.example.net.
se resuelve comoname-1234567890.region.elb.amazonaws.com.
name-1234567890.region.elb.amazonaws.com.
se resuelve en varios registros A, cuyos valores son administrados por AWS. No gestionamos la zona pública amazonaws.com, ni los registros dentro de esta zona.
Nuestro solucionador de DNS anterior "perseguía" registros CNAME, por lo que una búsqueda de service.example.net.
podría devolver esto:
$ dig service.example.net
...
;; ANSWER SECTION:
service.example.net. 300 IN CNAME name-1234567890.region.elb.amazonaws.com.
name-1234567890.region.elb.amazonaws.com. 26 IN A 10.1.2.3
name-1234567890.region.elb.amazonaws.com. 26 IN A 10.1.2.4
La respuesta incluye las IP de los registros A a los que apunta el CNAME. Todo está bien.
Nuestro nuevo solucionador de DNS no "persigue" registros CNAME. La misma búsqueda con el nuevo solucionador se ve así:
$ dig service.example.net
...
;; ANSWER SECTION:
service.example.net. 300 IN CNAME name-1234567890.region.elb.amazonaws.com.
... tenga en cuenta los registros A que faltan. Los intentos de contacto service.example.net
mediante ping, curl, solicitudes de Python, etc. resultan en fallas de "Host desconocido".
No podemos cambiar el comportamiento de nuestro nuevo solucionador de DNS. ¿Existe alguna opción en el kernel de Linux o algún solucionador de DNS local para "perseguir" registros CNAME del cliente, de la misma manera que lo hacía nuestro antiguo solucionador de DNS en el lado del servidor?
Para contextualizar, nuestro nuevo solucionador de DNS es el cloud-dns de GCP, quedocumentoseste comportamiento.
Algunas respuestas adicionales de contexto/comentario:
- ejemplo.net. es una zona privada administrada internamente en cloud-dns de nuestra propiedad.
- amazonaws.com. Es una zona pública, administrada por AWS.
- iirc, se enviará una política de servidor saliente con servidores de nombres adicionalestodoconsultas a esos servidores de nombres, anulando cloud-dns
- iirc, los registros ALIAS solo están disponibles en zonas públicas, no en zonas privadas.
- servicio.ejemplo.net. es un registro CNAME en la zona privada y administrada de nube-dns example.net.
- No tenemos presencia en AWS, por lo que no podemos usar Route53.
Respuesta1
En lugar de apuntar directamente a las IP internas del balanceador de carga, debe apuntar al nombre DNS público del balanceador de carga.
name-1234567890.region.elb.amazonaws.com
Entonces elimine los registros a y cambie el valor de cname al nombre dns público del balanceador de carga.
Respuesta2
Quería proporcionar una actualización sobre esta pregunta. Desde que descubrió este problema, GCP comenzó a implementar una función experimental para cloud-dns que busca registros CNAME públicos. En el momento de escribir este artículo (abril de 2024), esta función debe solicitarse explícitamente al soporte de GCP. No estoy seguro de cuándo pasará a GA.
Antes de que esa característica estuviera disponible para nosotros, solucionamos el problema creando una zona de reenvío privada, por ejemplo: amazonaws.com
en nuestro DNS en la nube, que reenvía a solucionadores de DNS públicos (usamos 8.8.8.8, 1.1.1.1, etc.). Esto funciona, ya que la búsqueda de CNAME está habilitada en cloud-dns entre zonas privadas. Como amazonaws.com
Cloud-dns ahora la considera una zona privada, las solicitudes de seguimiento CNAME ahora se resuelven normalmente.
Respuesta3
Para resolver registros de AWS, recomendaría buscar en Route53 desde AWS. Puede dejar que su servidor DNS interno reenvíe a Route53, por ejemplo, Unbound es un revólver DNS que puede hacer eso.
Amazon Route 53 es un servicio web de sistema de nombres de dominio (DNS) escalable y de alta disponibilidad proporcionado por Amazon Web Services (AWS). Traduce de manera efectiva nombres de dominio fáciles de usar como example.com en direcciones IP que las computadoras usan para identificarse entre sí en Internet. A continuación se ofrece una descripción general de algunas características y conceptos clave de Route 53:
- Registro de dominio: Route 53 le permite registrar y administrar nombres de dominio. Puede comprar nuevos dominios o transferir los existentes a Route 53.
- Servicio DNS: Route 53 actúa como proveedor de servicios DNS, lo que le permite administrar los registros DNS de su dominio. Los registros DNS incluyen elementos como registros A (que asignan nombres de dominio a direcciones IP), registros CNAME (que asignan nombres de dominio a otros nombres de dominio), registros MX (que especifican servidores de correo) y más. Comprobaciones de estado y conmutación por error: Route 53 puede realice comprobaciones de estado en sus puntos finales, como servidores web, y dirija automáticamente el tráfico desde los puntos finales en mal estado hacia los sanos. Esta característica se utiliza a menudo para implementar soluciones de recuperación ante desastres y conmutación por error.
- Gestión del tráfico: Route 53 ofrece capacidades de gestión del tráfico, lo que le permite controlar cómo se enrutan las consultas DNS en función de diversos factores, como latencia, geolocalización, enrutamiento ponderado y más. Esto le permite optimizar el rendimiento y la disponibilidad de sus aplicaciones. Integración con servicios de AWS: Route 53 se integra perfectamente con otros servicios de AWS, como Amazon S3, Elastic Load Balancing (ELB) y Amazon CloudFront. Por ejemplo, puede utilizar Route 53 para enrutar el tráfico a sus balanceadores de carga ELB o distribuciones de CloudFront.
- DNSSEC: Route 53 admite Extensiones de seguridad DNS (DNSSEC), que agrega una capa adicional de seguridad a su infraestructura DNS mediante la firma digital de registros DNS. En general, Route 53 es un servicio DNS versátil y confiable que proporciona la base para enrutar el tráfico a sus aplicaciones. y servicios en internet. Ofrece funciones avanzadas para administrar DNS, mejorar el rendimiento y garantizar una alta disponibilidad.