Pourquoi le résultat nslookup provient toujours du serveur 127.0.0.1

11

Je trouve assez confus que nslookup obtienne toujours le résultat du serveur 127.0.0.1

Est-ce parce que Ubuntu utilise un cache DNS local par dnsmasq ? Mais je l'ai fermé et vidé mon cache DNS, puis nslookup un hôte que je n'ai jamais visité, puis la sortie est toujours 127.0.0.1.

Cela me rend assez confus. Quelqu'un peut-il m'expliquer cela? Soit dit en passant, mon serveur DNS est défini sur 8.8.8.8.

47dev47null
la source

Réponses:

11

Par défaut, Ubuntu met en cache les entrées DNS avec Dnsmasq. Dnsmasq effectue une recherche lorsqu'une entrée DNS n'est pas dans son cache, c'est pourquoi vous verrez toujours l' adresse IP localhost( 127.0.0.1) lorsque vous effectuez une recherche DNS sans spécifier le serveur de noms.

Dans la page de manuel, il est expliqué comme suit:

Dnsmasq accepte les requêtes DNS et y répond à partir d'un petit cache local ou les transmet à un serveur DNS réel et récursif. Il charge le contenu de / etc / hosts afin que les noms d'hôtes locaux qui n'apparaissent pas dans le DNS global puissent être résolus et répond également aux requêtes DNS pour les hôtes configurés DHCP.

Ce comportement peut être remplacé en modifiant /etc/NetworkManager/NetworkManager.confet en changeant dns=dnsmasqen #dns=dnsmasq, après quoi vous devrez redémarrer le service de gestionnaire de réseau ( sudo service network-manager restart).

Vous trouverez plus d'informations dans la documentation de la communauté et dans la page de manuel .

Silke
la source
1
Merci pour la réponse. Je ne me suis pas rendu compte que Dnsmasq effectue une recherche lorsqu'une entrée DNS n'est pas dans le cache. Merci beaucoup!
47dev47null
que faire s'il n'y a déjà pas de dns=dnsmasqligne?
Douglas Gaskell
@DouglasGaskell: cette réponse est dépassée: je crois qu'Ubuntu est passé à la systemd-resolvedversion 17.04. Voir: askubuntu.com/questions/907246/…
Silke
2

vérifier si

cat /etc/NetworkManager/NetworkManager.conf

[principale]

plugins = ifupdown, fichier clé

dns = dnsmasq

[ifupdown]

géré = faux

hachage (#) sur dns = dnsmasq

enregistrez le fichier et redémarrez la mise en réseau.

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 fichier /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

et commentez la ligne suivante de

dns=dnsmasq

à

#dns=dnsmasq

Enregistrez et quittez le fichier

Maintenant, vous devez network-manager en utilisant la commande suivante

sudo restart network-manager

Ref: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Sourav Mishra
la source