¿Cómo configuro instancias AWS EC2 para omitir selectivamente el solucionador de DNS predeterminado en todas las regiones?

¿Cómo configuro instancias AWS EC2 para omitir selectivamente el solucionador de DNS predeterminado en todas las regiones?

Tengo una red de instancias AWS EC2. La mayoría de ellos utilizan el solucionador de DNS de la VPC predeterminado para evitar la filtración y resolver dominios internos (utilizando un TLD personalizado). Todo eso funciona bien.

Sin embargo, hay una instancia (Ubuntu) que necesita utilizar un solucionador público general para llegar a Internet en general (por ejemplo, 8.8.8.8).

Logré que esto funcionara en us-east-1 reemplazando /etc/systemd/resolved.conf con

[Resolve]
DNS=8.8.8.8 208.67.222

y agregando un /etc/systemd/resolved.conf.d/MYTLD.conf

[Resolve]
Domains=MYTLD
DNS=10.6.0.2

Después de reiniciar systemd-resolved, la instancia resuelve bien todos los dominios. Pero cuando aplico exactamente esta misma configuración a una red casi idéntica en us-east-2, el DNS público no funciona.

Una sugerencia que encontré en StackExchange fue vincular simbólicamente /etc/resolv.conf a /run/systemd/resolve/resolv.conf. Eso hizo que el DNS público comenzara a resolverse, pero el TLD interno se detuvo.

¿Cómo consigo que DNS se resuelva consistentemente en cualquier región?

Respuesta1

He encontrado mi solución.

El solucionador de DNS se configuró en el bloqueo predeterminado (obviamente, ese era el objetivo de este ejercicio). Pero la respuesta se configuró en NODATA. Esto creó una condición de carrera: usos systemd-resolveResolución de nombre de multidifusión local de enlacepara obtener resultados de DNS. Esto significa que consultó simultáneamente el servidor interno de AWS y uno de los servidores públicos. LLMNR devuelve el primer resultado exitoso que obtiene o el último fracaso (si todos los resultados son fracasos)

Un resultado NODATA del DNS Resolver es técnicamente un éxito, por lo que se devolvió ese resultado si llegó primero. Cambiar la acción a NXDOMAIN, que es un resultado de falla desde la perspectiva de systemd-resolve, solucionó el problema.

información relacionada