Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
tutoriel:internet:dnsmasq:systemd:start1 [2020/11/01 08:15] – [Comment éviter les conflits entre dnsmasq et systemd-resolved ?] admin | tutoriel:internet:dnsmasq:systemd:start1 [2022/08/13 22:15] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== Comment éviter les conflits entre dnsmasq et systemd-resolved ? ====== | ====== Comment éviter les conflits entre dnsmasq et systemd-resolved ? ====== |
| |
J'ai récemment installé dnsmasq pour agir en tant que serveur DNS pour mon réseau local. dnsmasq écoute sur le port 53 qui est déjà utilisé par l'écouteur de stub DNS local de systemd-résolu.I recently installed dnsmasq to act as DNS Server for my local network. dnsmasq listens on port 53 which is already in use by the local DNS stub listener from 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. |
====== Pré-requis ====== | |
| |
====== Première étape ====== | 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é. |
| |
====== Autres étapes ====== | 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 ? |
| |
====== Conclusion ====== | 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 ? |
| |
====== Problèmes connus ====== | Voici la solution pour (X)Ubuntu 18.04 Bionic. |
| |
====== Voir aussi ====== | ===== Pré-requis ===== |
| |
| ===== Première étape ===== |
| |
| * Installez le paquet **[[apt>dnsmasq]]** ou en ligne de commande :<cli prompt='$ '>...@...:~$ sudo apt install dnsmasq</cli> |
| |
| ===== 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 <cli prompt='$ '>...@...:~$ sudo mkdir /etc/systemd/resolved.conf.d</cli> |
| * créez avec les droits d'administration le fichier **/etc/systemd/resolved.conf.d/noresolved.conf** :<code txt /etc/systemd/resolved.conf.d/noresolved.conf> |
| [Resolve] |
| DNSStubListener=no</code> |
| - **Redémarrez systemd-resolved** :<cli prompt='$ '>...@...:~$ sudo systemctl restart systemd-resolved.service</cli> |
| - **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.)) :<cli prompt='$ '>...@...:~$ sudo rm /etc/resolv.conf |
| ...@...:~$ sudo touch /etc/resolv.conf</cli> |
| - 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** :<code txt /etc/NetworkManager/conf.d/disableresolv.conf> |
| [main] |
| dns=none</code> |
| - **Redémarrez NetworkManager** :<cli prompt='$ '>...@...:~$ sudo systemctl restart NetworkManager.service</cli> |
| - **Pour que dnsmasq utilise resolv.conf de NM**, éditez avec les droits d'administration le fichier **/etc/dnsmasq.d/nmresolv.conf** :<code txt /etc/dnsmasq.d/nmresolv.conf> |
| resolv-file=/var/run/NetworkManager/resolv.conf</code> |
| - Créez avec les droits d'administration le fichier **/etc/dnsmasq.d/mondns.conf** pour y écrire vos réglages dnsmasq, par exemple :<code txt /etc/dnsmasq.d/mondomaine.conf> |
| address=/pc1.mondomaine/192.168.0.1 |
| address=/framboise.mondomaine/192.168.0.31 |
| address=/framboise4.mondomaine/192.168.0.32</code> |
| - **redémarrez dnsmasq** :<cli prompt='$ '>...@...:~$ sudo systemctl restart dnsmasq</cli> |
| - Pour **utiliser dnsmasq pour la résolution**, éditez avec les droits d'administration le fichier **/etc/resolv.conf** :<code txt /etc/resolv.conf> |
| # Use local dnsmasq for resolving |
| nameserver 127.0.0.1</code> |
| |
| ===== Conclusion ===== |
| |
| ===== Problèmes connus ===== |
| |
| ===== Voir aussi ===== |
| |
* **(en)** [[https://unix.stackexchange.com/questions/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved]] | * **(en)** [[https://unix.stackexchange.com/questions/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved]] |