{{tag>tutoriel}}
====== Comment éviter les conflits entre dnsmasq et systemd-resolved ? ======
**Le problème** : si on installe dnsmasq comme serveur DNS pour un réseau local, dnsmasq écoute sur le port 53 qui est déjà utilisé par systemd-resolved.
Arrêter simplement systemd-resolved puis le redémarrer après l'exécution de dnsmasq, résout ce problème mais il revient après un redémarrage : systemd-resolved est démarré d'abord et dnsmasq ne démarre pas car le port 53 est déjà utilisé.
Comment faire comprendre à systemd-resolved qu'il ne doit pas démarrer l'écoute et donc conserver le port 53 pour une utilisation par dnsmasq ?
Il est plus intéressant de savoir comment les deux services peuvent fonctionner ensemble. Peuvent-ils travailler côte à côte ou ne sont-ils résolus que par systemd si l'on utilise dnsmasq ?
Voici la solution pour (X)Ubuntu 18.04 Bionic.
===== Pré-requis =====
===== Première étape =====
* Installez le paquet **[[apt>dnsmasq]]** ou en ligne de commande :...@...:~$ sudo apt install dnsmasq
===== Autres étapes =====
- **Désactivez l'écoute sur le port 53** pour systemd-resolved (ne touchez pas à /etc/systemd/resolved.conf, car il peut être écrasé lors de la mise à niveau). Pour cela,
* créez le répertoire ...@...:~$ sudo mkdir /etc/systemd/resolved.conf.d
* créez avec les droits d'administration le fichier **/etc/systemd/resolved.conf.d/noresolved.conf** :
[Resolve]
DNSStubListener=no
- **Redémarrez systemd-resolved** :...@...:~$ sudo systemctl restart systemd-resolved.service
- **Supprimez et recréez /etc/resolv.conf** ((C'est important, car resolv.conf est par défaut un lien symbolique vers /run/systemd/resolve/stub-resolv.conf. Si vous ne supprimez pas le lien symbolique, le fichier sera écrasé par systemd au redémarrage. NetworkManager (NM) vérifie également s'il s'agit d'un lien symbolique pour détecter la configuration de systemd-resolved.)) :...@...:~$ sudo rm /etc/resolv.conf
...@...:~$ sudo touch /etc/resolv.conf
- Pour **désactiver l'écrasement de /etc/resolv.conf par NM**, éditez avec les droits d'administration le fichier **/etc/NetworkManager/conf.d/disableresolv.conf** :
[main]
dns=none
- **Redémarrez NetworkManager** :...@...:~$ sudo systemctl restart NetworkManager.service
- **Pour que dnsmasq utilise resolv.conf de NM**, éditez avec les droits d'administration le fichier **/etc/dnsmasq.d/nmresolv.conf** :
resolv-file=/var/run/NetworkManager/resolv.conf
- Créez avec les droits d'administration le fichier **/etc/dnsmasq.d/mondns.conf** pour y écrire vos réglages dnsmasq, par exemple :
address=/pc1.mondomaine/192.168.0.1
address=/framboise.mondomaine/192.168.0.31
address=/framboise4.mondomaine/192.168.0.32
- **redémarrez dnsmasq** :...@...:~$ sudo systemctl restart dnsmasq
- Pour **utiliser dnsmasq pour la résolution**, éditez avec les droits d'administration le fichier **/etc/resolv.conf** :
# Use local dnsmasq for resolving
nameserver 127.0.0.1
===== Conclusion =====
===== Problèmes connus =====
===== Voir aussi =====
* **(en)** [[https://unix.stackexchange.com/questions/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved]]
----
//Basé sur << [[https://unix.stackexchange.com/questions/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved|How to avoid conflicts between dnsmasq and systemd-resolved?]] >> par stackexchange.com.//