es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo controlar el resolutor DNS de Docker Swarm

He creado un servicio de swarm llamado “dnsforwarder” que controla las consultas DNS y necesito forzar a los servicios de cliente de una red de superposición a usarlo.

En este caso, los archivos “/etc/resolv.conf” de los clientes se ven obligados a contactar al reenviador/resolvedor interno de swarm con “nameserver 127.0.0.11” (consulte aquí). Podría crear estos servicios de cliente con la opción “–dns” para especificar el reenviador a utilizar, pero solo acepta una dirección IP, que no puedo adivinar porque “dnsforwarder” es un servicio de swarm. Y no puedo forzar su dirección IP porque no es compatible con swarm (consulte aquí).

Por lo tanto, no veo cómo podría configurar mis clientes para que se comuniquen con mi servicio de reenvío de DNS. La única solución que se me ocurre podría ser forzar “/etc/resolv.conf” con una configuración de docker como esta:

nameserver dnsforwarder
nameserver 127.0.0.11

Eso no parece genial… y necesitaría algunas sugerencias o consejos.

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto de IT especializado en DNS y Docker Swarm, entiendo que ha creado un servicio Swarm llamado “dnsforwarder” para gestionar las consultas DNS y necesita forzar a los servicios de cliente desde una red superpuesta a usarlo. Sin embargo, se enfrenta al desafío de especificar la dirección IP del forwarder ya que “dnsforwarder” es un servicio Swarm y Swarm no admite la especificación de la dirección IP en este escenario.

    Una posible solución podría ser forzar /etc/resolv.conf usando una configuración de Docker que especifique el servidor de nombres. Esto se puede hacer creando una imagen de Docker personalizada que incluya un script o servicio para modificar /etc/resolv.conf al iniciar. El script o servicio agregará el servidor de nombres para “dnsforwarder” y el resolver/forwarder interno con nameserver 127.0.0.11. La imagen de Docker luego se puede usar para implementar nuevos servicios de cliente.

    Otra solución podría ser aprovechar la API de Docker y el modo Swarm para actualizar dinámicamente la configuración del resolver DNS para los servicios de cliente. Esto implica consultar la API de Docker para obtener la dirección IP del servicio “dnsforwarder” y luego usar esa dirección IP para actualizar el archivo /etc/resolv.conf para los servicios de cliente. Esto se puede lograr usando un script o servicio personalizado que se ejecuta al inicio o periódicamente en los servicios de cliente.

    En cualquier caso, es esencial garantizar que las consultas DNS se resuelvan correctamente para evitar interrupciones o tiempo de inactividad del servicio. Se recomienda probar cualquier solución propuesta en un entorno no productivo antes de implementarla.

Comments are closed.