Pourquoi Dig signale le serveur DNS comme 127.0.0.1 lorsque j'utilise un DNS externe?

12

J'utilise non lié et utilise généralement openDNS comme serveur DNS.

Quand je cours, dig google.comdis que je reçois SERVER: 127.0.0.1#53(127.0.0.1). Qu'est-ce que cette chose écoute exactement sur le port # 53? est-ce non lié ou est-ce quelque chose à voir avec dnsmasq (ai-je même installé dnsmasq car dnsmasq.confil ne semble pas y être /etc?)

Dans resolv.conf, il y a nameserver 127.0.0.1mais dans le gestionnaire de réseau, j'ai les serveurs DNS pointés vers les deux adresses openDNS. Que se passe-t-il? le serveur de noms local pointe-t-il vers dnsmasq qui utilise ensuite les valeurs du gestionnaire de réseau? ou est-ce non lié qui écoute en fait?

fpghost
la source
Qu'est-ce que vous essayez d'accomplir ?
Rahul Patil
3
juste comprendre vraiment
fpghost
est cette édition du serveur Ubuntu ou quoi?
Rahul Patil,
pas seulement de bureau
fpghost

Réponses:

15

Par défaut, NetworkManager utilise Dnsmasq comme résolveur DNS, s'il est installé. C'est la valeur par défaut sur les systèmes basés sur Debian, donc Dnsmasq s'exécute dans une configuration par défaut où il résout uniquement les noms basés sur les serveurs en amont spécifiés par les options de ligne de commande (plus le contenu de /etc/hosts). Vous n'en avez pas /etc/dnsmasq.confcar ce fichier n'est présent que dans le paquet facultatif dnsmasq .

Pour voir si votre système utilise actuellement Dnsmasq ou Unbound pour les requêtes DNS, exécutez netstat -ulnp | grep ":53 ".

Dans Ubuntu 12.04, NetworkManager ne fonctionne pas bien avec les autres résolveurs DNS (voir le bug 959037 - le résumé de Thomas Hood couvre à peu près tout). Pour continuer à exécuter Unbound avec NetworkManager, votre meilleur pari est de dire à NetworkManager de ne pas exécuter Dnsmasq (vous n'en avez pas besoin en plus de Unbound, sauf si vous utilisez des fonctionnalités de Dnsmasq que NetworkManager n'utilise pas). Pour faire ça:

  1. Modifier /etc/NetworkManager/NetworkManager.confpour mettre en commentaire la ligne contenant dns=dnsmasq(ajoutez un #au début de cette ligne).
  2. Redémarrez NetworkManager avec service network-manager restart.
Gilles 'SO- arrête d'être méchant'
la source
comment Ubuntu sait-il actuellement utiliser Unbound? (il semble en effet l'utiliser); ce que je veux en venir est la raison pour laquelle je ne suis pas besoin de quelque chose comme dns=unbounddans /etc/NetworkManager/NetworkManager.conf? et étant donné que j'ai actuellement dns=dnsmasqdans ce fichier, pourquoi Ubuntu utilise-t-il réellement non lié?
fpghost
@fpghost Lequel vous obtenez dépend de celui qui a commencé en premier. Si vous démarrez sans réseau, vous obtiendrez Unbound car il démarrera en premier. Si vous démarrez avec une connexion réseau, je pense que c'est un problème.
Gilles 'SO- arrête d'être méchant'
OK, mais ce que je me demandais vraiment, c'est plutôt que de commenter complètement la dns=...ligne pour arrêter l'utilisation de dnsmasq, et si je remplace la ligne par dns=unbound? Sinon, comment NetworkManager sait-il que non lié sera le résolveur local?
fpghost
1

Dans Ubuntu 12.04, dnsmasq s'exécute désormais par défaut en raison de son codage en dur network-manager. Utiliser dnsmasq comme résolveur local par défaut sur les installations de bureau C'est le deuxième grand changement de cette version. Sur une installation de bureau, votre serveur DNS va être "127.0.0.1" qui pointe vers un serveur dnsmasq géré par NetworkManager.

SERVER: 127.0.0.1#53(127.0.0.1)

cela signifie que vous obtenez ans de votre requête à partir de DNS locaux, c'est-à-dire DNSMASQ.

Si vous ne voulez pas d'un résolveur local, vous pouvez le désactiver DNSMASQ en utilisant la procédure suivante.

Vous devez modifier le /etc/NetworkManager/NetworkManager.conffichier

gksudo gedit /etc/NetworkManager/NetworkManager.conf

et commentez la ligne suivante de

dns=dnsmasq

à

#dns=dnsmasq

Enregistrez le fichier et quittez.

Vous devez maintenant redémarrer network-managerà l'aide de la commande suivante

sudo systemctl restart network-manager

Lien de référence

Rahul Patil
la source
1
OK, mais si j'ai également installé Unbound, cela a-t-il priorité sur dnsmasq en tant que résolveur local? écoutez-vous sur # 53? comment s'entendent-ils?
fpghost
aussi pourquoi est /etc/dnsmasq.confabsent?
fpghost
@fpghost dnsmasq écoute sur 127.0.1.1 tandis que unbound écoute sur 127.0.0.1, les deux sur le port 53. Vous pouvez définir dns = unbound dans la configuration du gestionnaire de réseau pour utiliser unbound.
talonx
0

Pour voir quel serveur DNS réel a été utilisé pour résoudre votre adresse, lorsque vous utilisez DNSMasq, vous ne pouvez pas l'utiliser DIGcar il signale uniquement 127.0.0.1, à la place:

Activez la journalisation dans DNSMasq:

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

Connectez-vous DNSMasq et surveillez la sortie:

journalctl --unit dnsmasq.service -f

Ping un hôte:

ping google.ca

Vous pouvez alors voir, mon serveur DNS en amont (192.168.1.1) le résout:

: 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

Envoyez un ping à un hôte derrière le VPN de l'entreprise (pendant le tunnel partagé) pour * .company.com

ping box.company.com

résultats:

: 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
kevinf
la source