Après l'étape 2, il se peut que vous ne disposiez pas d'un résolveur de système fonctionnel jusqu'à ce que l'étape 3 soit terminée. Vous devrez peut-être redémarrer le sous-système de mise en réseau (ou simplement redémarrer) pour dnsmasqfonctionner avec les configurations par défaut. Lors de mes tests, l'ajout d'un serveur DNS connu /etc/dnsmasq.confet le redémarrage ont dnsmasqsuffi à le faire fonctionner dans un environnement liveCD.
Excellente réponse, et apparemment la seule solution lors de la désactivation de NetworkManager n'est pas acceptable!
bogl
3
Pour moi, c'était une excellente réponse, mais cela nécessitait également les étapes supplémentaires de la réponse de @ blabla, en ajoutant dns=dnsmasqconfig to/etc/NetworkManager/NetworkManager.conf
Roberto Tyley
Pareil ici. Après avoir lutté avec le passage à dnsmasq résolu par Systemd et non lié, il a fait l'affaire sur Ubuntu 17.10. J'ai quand même dû utiliser les ajouts de blabla.
Alberto L. Bonfiglio
17
En plus de la réponse de @quixotic:
Assurez-vous que vous avez dans /etc/NetworkManager/NetworkManager.conf:
[main]
dns=dnsmasq
si vous devez l'ajouter, redémarrez NetworkManager comme ceci:
sudo systemctl restart NetworkManager
et /etc/resolv.confdoit être un lien symbolique vers /var/run/NetworkManager/resolv.conf. pourrait être fait comme ça
En fait, je l'ai défini comme dns=defaultet cela fonctionne bien parce que j'ai les serveurs de noms définis ensuite par NetworkManager au lieu d'être définis dans dnsmasq; cela fonctionne pour moi - NM obtient les serveurs de noms à partir des paramètres définis dans la configuration NM de KDE via la barre d'état système. J'utilise l'IP fixe sur mon réseau domestique FWIW.
pbhj
1
Cette étape était un ajout nécessaire à la réponse de @ quixotic pour moi (Ubuntu 17.04, installation complète, pas LiveCD).
Roberto Tyley
0
Selon le manuel de systemd-resolu , systemd-resolu fournit des services de résolution de noms via trois interfaces différentes:
"API entièrement exposée et résolue par le système sur le bus"
"un écouteur de stub DNS local sur l'adresse IP 127.0.0.53 sur l'interface de bouclage locale"
API glibc getaddrinfo (3) telle que définie par RFC3493 et ses fonctions de résolveur associées, y compris gethostbyname (3). Cette API est largement prise en charge, y compris au-delà de la plate-forme Linux. Dans sa forme actuelle, il n'expose cependant pas les informations d'état de validation DNSSEC et est uniquement synchrone. Cette API est soutenue par le glibc Name Service Switch (nss (5)). L'utilisation du module glibc NSS nss-resolver (8) est requise afin de permettre aux fonctions de résolution NSS de glibc de résoudre les noms d'hôte via systemd-resolution.
Il semble que les deux premières interfaces n'interfèrent pas dans la résolution DNS normale et pour moi, le problème est susceptible de résider sur la troisième.
Pour activer le module NSS, ajoutez "résoudre" à la ligne commençant par "hôtes:" dans /etc/nsswitch.conf. Plus précisément, il est recommandé de placer "résoudre" au début de la ligne "hosts:" de /etc/nsswitch.conf (mais après les entrées "files" ou "mymachines"), juste avant l'entrée "dns" si elle existe, suivie de "[! UNAVAIL = return]", pour garantir que les requêtes DNS sont toujours acheminées via systemd-resolution (8) s'il est en cours d'exécution, mais sont acheminées vers nss-dns si ce service n'est pas disponible
Donc, ce qui est nécessaire est de faire "dns" précéder "résoudre" dans la ligne "host:" de /etc/nsswitch.conf . Et puis getaddrinfodevrait simplement adhérer à /etc/resolv.conf .
Cette solution empêche uniquement systemd-resolution de gérer toutes les demandes de résolution DNS et n'est pas limitée à un gestionnaire de réseau spécifique. Et il s'assure également que le service LLMNR et mDNS fonctionnent normalement.
(Je ne suis pas assez familier avec le fonctionnement de la résolution de noms sous Linux et je ne suis pas sûr de ce que j'ai compris de ces manuels. Les plaidoyers indiquent si je me suis trompé. Thx :))
Désactivez l'écouteur résolu par systemd sur le port 53 (ne touchez pas /etc/systemd/resolved.conf, car il peut être remplacé lors de la mise à niveau):
(sinon désactivez-le complètement par $ sudo systemctl disable systemd-resolved.service)
Supprimez /etc/resolv.conf et créez à nouveau. Ceci est important, car resolv.conf est un lien symbolique vers /run/systemd/resolve/stub-resolv.conf par défaut. Si vous ne supprimez pas le lien symbolique, le fichier sera écrasé par systemd au redémarrage (même si nous avons désactivé systemd-resolu!). NetworkManager (NM) vérifie également s'il s'agit d'un lien symbolique pour détecter la configuration résolue par le système.
Désactiver l'écrasement de /etc/resolv.conf par NM (il y a aussi une option rc-manager, mais cela ne fonctionne pas, bien qu'elle soit décrite dans un manuel):
Réponses:
dnsmasq
les packages sont toujours disponibles en 16.10 et 17.04.Installer
dnsmasq
et dépendances (ou au moins télécharger leurs packages) avant de désactiversystemd-resolved
:Désactivez
systemd-resolved
et vérifiez quednsmasq
s'exécute:Assaisonner
dnsmasq
au goût. Après avoir appliqué vos paramètres, redémarrezdnsmasq
:Après l'étape 2, il se peut que vous ne disposiez pas d'un résolveur de système fonctionnel jusqu'à ce que l'étape 3 soit terminée. Vous devrez peut-être redémarrer le sous-système de mise en réseau (ou simplement redémarrer) pour
dnsmasq
fonctionner avec les configurations par défaut. Lors de mes tests, l'ajout d'un serveur DNS connu/etc/dnsmasq.conf
et le redémarrage ontdnsmasq
suffi à le faire fonctionner dans un environnement liveCD.la source
dns=dnsmasq
config to/etc/NetworkManager/NetworkManager.conf
En plus de la réponse de @quixotic:
Assurez-vous que vous avez dans /etc/NetworkManager/NetworkManager.conf:
si vous devez l'ajouter, redémarrez NetworkManager comme ceci:
et
/etc/resolv.conf
doit être un lien symbolique vers/var/run/NetworkManager/resolv.conf
. pourrait être fait comme çala source
dns=default
et cela fonctionne bien parce que j'ai les serveurs de noms définis ensuite par NetworkManager au lieu d'être définis dans dnsmasq; cela fonctionne pour moi - NM obtient les serveurs de noms à partir des paramètres définis dans la configuration NM de KDE via la barre d'état système. J'utilise l'IP fixe sur mon réseau domestique FWIW.Selon le manuel de systemd-resolu , systemd-resolu fournit des services de résolution de noms via trois interfaces différentes:
Il semble que les deux premières interfaces n'interfèrent pas dans la résolution DNS normale et pour moi, le problème est susceptible de résider sur la troisième.
Dans le manuel de nss-resolver :
Donc, ce qui est nécessaire est de faire "dns" précéder "résoudre" dans la ligne "host:" de /etc/nsswitch.conf . Et puis
getaddrinfo
devrait simplement adhérer à /etc/resolv.conf .Cette solution empêche uniquement systemd-resolution de gérer toutes les demandes de résolution DNS et n'est pas limitée à un gestionnaire de réseau spécifique. Et il s'assure également que le service LLMNR et mDNS fonctionnent normalement.
(Je ne suis pas assez familier avec le fonctionnement de la résolution de noms sous Linux et je ne suis pas sûr de ce que j'ai compris de ces manuels. Les plaidoyers indiquent si je me suis trompé. Thx :))
la source
Pour (X) Ubuntu 18.04 (voir ma réponse sur stackexchange ).
En voici une copie (dois-je en faire une copie?)
Voici la solution pour (X) Ubuntu 18.04 Bionic.
Installer dnsmasq
sudo apt install dnsmasq
Désactivez l'écouteur résolu par systemd sur le port 53 (ne touchez pas /etc/systemd/resolved.conf, car il peut être remplacé lors de la mise à niveau):
et redémarrez-le
(sinon désactivez-le complètement par
$ sudo systemctl disable systemd-resolved.service
)Supprimez /etc/resolv.conf et créez à nouveau. Ceci est important, car resolv.conf est un lien symbolique vers /run/systemd/resolve/stub-resolv.conf par défaut. Si vous ne supprimez pas le lien symbolique, le fichier sera écrasé par systemd au redémarrage (même si nous avons désactivé systemd-resolu!). NetworkManager (NM) vérifie également s'il s'agit d'un lien symbolique pour détecter la configuration résolue par le système.
Désactiver l'écrasement de /etc/resolv.conf par NM (il y a aussi une option rc-manager, mais cela ne fonctionne pas, bien qu'elle soit décrite dans un manuel):
et redémarrez-le:
Dites à dnsmasq d'utiliser resolv.conf depuis NM:
et redémarrez-le:
Utilisez dnsmasq pour résoudre:
la source