4 votes

NetworkManager & dnsmasq - ignorer les paramètres DNS automatiques

Je fonctionne sous Arch Linux avec NetworkManager et dnsmasq. Tout semble bien fonctionner, sauf que j'essaie d'utiliser le nouveau CloudFlare 1.1.1.1 DNS, mais le résolveur continue d'utiliser le DNS annoncé par mon routeur. Les serveurs de noms semblent être ajoutés, y compris l'IP de mon routeur, voir ci-dessous :

Apr 04 20:02:56 tdewolff dnsmasq[22337]: setting upstream servers from DBus
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 2606:4700:4700::1001#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 2606:4700:4700::1111#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 1.0.0.1#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 1.1.1.1#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver 192.168.1.254#53(via wlp4s0)
Apr 04 20:02:56 tdewolff dnsmasq[22337]: using nameserver fe80::1%wlp4s0#53
Apr 04 20:02:56 tdewolff dnsmasq[22337]: cleared cache

Utilisation nmcli dev show montre de façon constante :

IP4.DNS[1]:                             192.168.1.254
IP6.DNS[1]:                             fe80::1

mais je veux utiliser les DNS de CloudFlare quel que soit le réseau local (et ne pas avoir à modifier les paramètres de connexion pour chaque réseau). Comment puis-je modifier l'ordre de recherche des DNS ou désactiver le résolveur du routeur ? J'ai essayé d'ajouter strict-order a /etc/NetworkManager/dnsmasq.d/local mais en vain.

1voto

Eric Mendes Points 66

Une méthode légèrement meilleure, qui simplifie la gestion de NetworkManager, consiste à utiliser un lien symbolique pour les éléments suivants /etc/resolv.conf . C'est la valeur par défaut dans ma distro (Fedora), que vous pouvez vérifier dans votre distro en regardant le fichier dns dans l'option man 5 NetworkManager.conf .

Définir cloudflare comme DNS faisant autorité en créant d'abord un fichier (j'ai utilisé /usr/local/etc/resolv.cloudflare.conf ) contenant les DNS de cloudflare :

# IPv4 nameservers: 
nameserver 1.1.1.1
nameserver 1.0.0.1
# IPv6 nameservers:
nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001

Créez ensuite un lien symbolique vers ce fichier, en supprimant le fichier existant.

sudo rm /etc/resolv.conf sudo ln -s /usr/local/etc/resolv.cloudflare.conf /etc/resolv.conf

À ce stade, vous pouvez vérifier que le serveur de noms fait ce qu'il faut en procédant comme suit

$ dig google.com

; <<>> DiG 9.11.2-P1-RedHat-9.11.2-1.P1.fc26 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41906
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1536
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     185 IN  A   172.217.9.238

;; Query time: 10 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Thu Apr 12 18:00:37 EDT 2018
;; MSG SIZE  rcvd: 55

Nota : Si le NetworkManager de votre distro a une valeur par défaut différente pour le paramètre dns= puis la mettre à jour pour y inclure ce qui suit.

[main]
dns=symlink

Ainsi, NetworkManager ne mettra pas à jour resolve.conf si vous faites de /etc/resolve.conf un lien symbolique,

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X