¿Por qué dig informa que el servidor DNS es 127.0.0.1 cuando estoy usando un DNS externo?


12

Uso unbound y usualmente uso openDNS como mi servidor DNS.

Cuando corro, dig google.comdigo que entiendo SERVER: 127.0.0.1#53(127.0.0.1). ¿Qué está escuchando exactamente esta cosa en el puerto # 53? ¿Esto no está vinculado o tiene algo que ver con dnsmasq (¿tengo incluso instalado dnsmasq dnsmasq.confporque no parece estar en /etc?)

En resolv.conf hay nameserver 127.0.0.1pero luego en el administrador de red tengo los servidores DNS apuntando a las dos direcciones openDNS. Entonces, ¿qué está pasando aquí? ¿el servidor de nombres local apunta a dnsmasq que luego usa los valores del administrador de red? ¿o es sin consolidar lo que de hecho está escuchando?


Qué está tratando de lograr ?
Rahul Patil

3
solo entendiendo realmente
fpghost

¿Es esta edición del servidor de Ubuntu o qué?
Rahul Patil

no solo escritorio
fpghost

Respuestas:


15

De manera predeterminada, NetworkManager usa Dnsmasq como un solucionador DNS, si está instalado. Cuál es el valor predeterminado en los sistemas basados ​​en Debian, por lo que Dnsmasq se ejecuta en una configuración predeterminada donde solo resuelve los nombres basados ​​en los servidores ascendentes especificados por las opciones de línea de comandos (más el contenido de /etc/hosts). No tiene /etc/dnsmasq.confporque ese archivo solo está presente en el paquete opcional dnsmasq .

Para ver si su sistema está usando Dnsmasq o Unbound para consultas DNS, ejecute netstat -ulnp | grep ":53 ".

En Ubuntu 12.04, NetworkManager no funciona bien con otros solucionadores de DNS (vea el error 959037 : el resumen de Thomas Hood lo cubre todo). Para seguir ejecutando Unbound junto con NetworkManager, su mejor opción es decirle a NetworkManager que no ejecute Dnsmasq (no lo necesita además de Unbound, a menos que esté usando las funciones de Dnsmasq que NetworkManager no usa). Para hacer eso:

  1. Edite /etc/NetworkManager/NetworkManager.confpara comentar la línea que contiene dns=dnsmasq(agregue un #al principio de esa línea).
  2. Reinicie NetworkManager con service network-manager restart.

¿Cómo sabe Ubuntu actualmente usar Unbound? (de hecho, parece estar usándolo); lo que quiero llegar es por lo que no necesito algo así como dns=unbounden /etc/NetworkManager/NetworkManager.conf? y dado que actualmente tengo dns=dnsmasqen ese archivo, ¿por qué Ubuntu en realidad usa unbound?
fpghost

@fpghost Cuál obtienes depende de cuál comenzó primero. Si arranca sin red, obtendrá Unbound porque comenzará primero. Si arrancas con una conexión de red, creo que es una sacudida.
Gilles 'SO- deja de ser malvado'

Bien, pero lo que realmente me preguntaba es en lugar de comentar completamente la dns=...línea para detener el uso de dnsmasq, ¿qué sucede si reemplazo la línea dns=unbound? De lo contrario, ¿cómo sabe NetworkManager que unbound será el resolutor local?
fpghost

1

En ubuntu 12.04, dnsmasq ahora se ejecuta por defecto debido a que está codificado network-manager. Usar dnsmasq como solucionador local de forma predeterminada en las instalaciones de escritorio Ese es el segundo gran cambio de esta versión. En una instalación de escritorio, su servidor DNS será "127.0.0.1", que apunta a un servidor dnsmasq administrado por NetworkManager.

SERVER: 127.0.0.1#53(127.0.0.1)

esto significa que está obteniendo ans de su consulta desde dns locales, es decir, DNSMASQ.

Si no desea un solucionador local, puede desactivar DNSMASQ mediante el siguiente procedimiento.

Necesitas editar el /etc/NetworkManager/NetworkManager.confarchivo

gksudo gedit /etc/NetworkManager/NetworkManager.conf

y comentar la siguiente línea de

dns=dnsmasq

a

#dns=dnsmasq

Guarda el archivo y cierra.

Ahora necesita reiniciar network-managerusando el siguiente comando

sudo systemctl restart network-manager

Enlace de referencia


1
Bien, pero ¿qué pasa si también tengo Unbound instalado? ¿Tiene esto prioridad sobre dnsmasq como el solucionador local? ¿Ambos están escuchando en el # 53? ¿Cómo se llevan juntos?
fpghost

¿También por qué está /etc/dnsmasq.confausente?
fpghost

@fpghost dnsmasq escucha en 127.0.1.1 mientras que unbound escucha en 127.0.0.1, ambos en el puerto 53. Puede configurar dns = unbound en la configuración del administrador de red para usar unbound.
talonx

0

Para ver qué servidor DNS real se usó para resolver su dirección, cuando se usa DNSMasq, no se puede usar DIGporque solo informa 127.0.0.1, en su lugar:

Habilite el inicio de sesión en DNSMasq:

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

Registre DNSMasq y monitoree la salida:

journalctl --unit dnsmasq.service -f

Hacer ping a un host:

ping google.ca

Luego puede ver que mi servidor DNS ascendente (192.168.1.1) lo resuelve:

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

Haga ping a un host detrás de la VPN de la empresa (durante el túnel dividido) para * .company.com

ping box.company.com

resultados:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.