Perché dig riporta il server DNS come 127.0.0.1 quando sto usando un DNS esterno?


12

Uso unbound e di solito utilizzo openDNS come mio server DNS.

Quando corro dig google.comdico che lo capisco SERVER: 127.0.0.1#53(127.0.0.1). Che cosa sta esattamente ascoltando sulla porta # 53? è illimitato o ha a che fare con dnsmasq (ho anche installato dnsmasq perché dnsmasq.confnon sembra esserci /etc?)

In resolv.conf c'è nameserver 127.0.0.1ma poi nel gestore di rete ho i server DNS puntati ai due indirizzi openDNS. Quindi cosa sta succedendo qui? il nameserver locale punta a dnsmasq che quindi utilizza i valori del gestore di rete? o è senza limiti che sta effettivamente ascoltando?


cosa stai cercando di realizzare?
Rahul Patil,

3
capisco davvero
fpghost

è questa edizione di Ubuntu Server o cosa?
Rahul Patil,

non solo desktop
fpghost il

Risposte:


15

Per impostazione predefinita, NetworkManager utilizza Dnsmasq come resolver DNS, se installato. Qual è l'impostazione predefinita sui sistemi basati su Debian, quindi Dnsmasq viene eseguito in una configurazione predefinita in cui risolve solo i nomi basati sui server upstream specificati dalle opzioni della riga di comando (oltre al contenuto di /etc/hosts). Non hai /etc/dnsmasq.confperché quel file è presente solo nel pacchetto opzionale dnsmasq .

Per vedere se il tuo sistema sta attualmente utilizzando Dnsmasq o Unbound per le query DNS, esegui netstat -ulnp | grep ":53 ".

In Ubuntu 12.04, NetworkManager non funziona bene con altri resolver DNS (vedi bug 959037 - Il sommario di Thomas Hood copre praticamente tutto). Per continuare a correre Unbound insieme a NetworkManager, la soluzione migliore è dire a NetworkManager di non eseguire Dnsmasq (non è necessario oltre a Unbound, a meno che non si utilizzino funzionalità di Dnsmasq che NetworkManager non utilizza). Fare quello:

  1. Modifica /etc/NetworkManager/NetworkManager.confper commentare la riga contenente dns=dnsmasq(aggiungi #a all'inizio di quella riga).
  2. Riavviare NetworkManager con service network-manager restart.

come fa Ubuntu a sapere attualmente di usare Unbound? (sembra proprio che lo stia usando); quello che sto ottenendo è perché non ho bisogno di qualcosa di simile dns=unboundin /etc/NetworkManager/NetworkManager.conf? e dato che attualmente ho dns=dnsmasqin quel file, perché Ubuntu sta attualmente usando unbound?
fpghost,

@fpghost Quale ottieni dipende da quale è iniziato per primo. Se fai il boot senza rete, otterrai Unbound perché inizierà prima. Se si avvia con una connessione di rete, penso che sia un problema.
Gilles 'SO- smetti di essere malvagio' il

OK, ma quello che mi chiedevo davvero è piuttosto che commentare completamente la dns=...riga per interrompere l'utilizzo di dnsmasq, e se sostituissi la riga con dns=unbound? In caso contrario, come fa NetworkManager a sapere che non verrà associato il resolver locale?
fpghost,

1

In Ubuntu 12.04 dnsmasq è ora in esecuzione per impostazione predefinita a causa della sua codifica network-manager. Usare dnsmasq come resolver locale per impostazione predefinita su installazioni desktop Questo è il secondo grande cambiamento di questa versione. Su un'installazione desktop, il tuo server DNS sarà "127.0.0.1" che punta a un server dnsmasq gestito da NetworkManager.

SERVER: 127.0.0.1#53(127.0.0.1)

questo significa che stai ricevendo risposta alla tua richiesta da DNS locali, ad esempio DNSMASQ.

Se non si desidera un resolver locale, è possibile disattivarlo DNSMASQ utilizzando la seguente procedura.

Devi modificare il /etc/NetworkManager/NetworkManager.conffile

gksudo gedit /etc/NetworkManager/NetworkManager.conf

e commentare la seguente riga da

dns=dnsmasq

per

#dns=dnsmasq

Salva il file ed esci.

Ora è necessario riavviare network-managerutilizzando il seguente comando

sudo systemctl restart network-manager

Link di riferimento


1
OK, ma se avessi installato anche Unbound ha la precedenza su dnsmasq come resolver locale? state entrambi ascoltando il numero 53? come vanno d'accordo?
fpghost,

anche perché è /etc/dnsmasq.confassente?
fpghost,

@fpghost dnsmasq è in ascolto su 127.0.1.1 mentre non associato è in ascolto su 127.0.0.1, entrambi sulla porta 53. È possibile impostare dns = unbound nella configurazione del gestore di rete per utilizzare non associato.
Talonx,

0

Per vedere quale server DNS reale è stato utilizzato per risolvere il tuo indirizzo, quando si utilizza DNSMasq, non è possibile utilizzare DIGperché riporta solo 127.0.0.1:

Abilita registrazione in DNSMasq:

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

Accedi a DNSMasq e monitora l'output:

journalctl --unit dnsmasq.service -f

Effettua il ping di un host:

ping google.ca

Puoi quindi vedere, il mio server DNS upstream (192.168.1.1) lo risolve:

: 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

Effettua il ping di un host dietro la VPN aziendale (durante split tunnel) per * .company.com

ping box.company.com

i risultati:

: 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.