Si vous êtes utilisateur d'Ubuntu, vous avez probablement déjà rencontré la situation où "le nom de domaine ne fonctionne pas, mais l'accès par IP est possible". Dans ce cas, la cause du problème réside principalement dans les paramètres DNS. En particulier, Ubuntu utilise maintenant par défaut le démon de résolveur DNS systemd-resolved
, ce qui rend la compréhension de sa structure essentielle.
1. Flux de requêtes DNS
Si vous lisez et comprenez attentivement le résumé ci-dessous, presque tous les problèmes seront résolus.
- L'utilisateur fait une demande de domaine via une application comme un navigateur.
- Linux lit par défaut
/etc/resolv.conf
pour résoudre le DNS (ce fichier est lié symboliquement à/run/systemd/resolve/stub-resolv.conf
). /run/systemd/resolve/stub-resolv.conf
est configuré sur127.0.0.53
, ce qui signifie que lesystemd-resolved
entre en jeu.- Le
systemd-resolved
du système est contrôlé par le fichier de configuration/etc/systemd/resolved.conf
. - Cela signifie que
systemd-resolved
interroge le serveur DNS configuré dans/etc/systemd/resolved.conf
, - reçoit la réponse et termine la conversion du domaine vers l'adresse IP.
2. Résumé des composants clés
Comme expliqué ci-dessus, systemd-resolved
a quatre fichiers de configuration clés. Comprendre le rôle de ces fichiers est essentiel.
2-1. /etc/resolv.conf
- Emplacement traditionnel pour lire la liste des serveurs DNS dans le système Linux
- Cependant, il doit exister en tant que lien symbolique pour des raisons de compatibilité avec systemd.
- Doit être configuré comme suit pour fonctionner correctement :
bash /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
- Ce fichier joue donc un rôle de médiateur entre les "applications traditionnelles et systemd-resolved" dans le système actuel.
2-2. /run/systemd/resolve/stub-resolv.conf
- Contient les informations du serveur DNS local (127.0.0.53) géré par
systemd-resolved
. - Lorsque
/etc/resolv.conf
pointe vers ce fichier, toutes les requêtes DNS passent parsystemd-resolved
.
2-3. /etc/systemd/resolved.conf
Fichier de configuration principal
desystemd-resolved
.- Il permet de définir des éléments tels que
DNS=
etFallbackDNS=
pour spécifier les priorités. - Un paramétrage permanent qui persiste après le redémarrage.
2-4. /run/systemd/resolve/resolv.conf
- Fichier contenant la liste réelle des serveurs DNS gérée par
systemd-resolved
. - Les utilisateurs avancés peuvent relier ce fichier à
/etc/resolv.conf
pour faire des demandes directement au serveur DNS (configuration de contournement).
3. Exemples de problèmes : lorsque le serveur DNS configuré sur le routeur fourni par l'ISP est instable
- Le serveur DNS de l'ISP principal de Corée, KT (par exemple :
168.126.63.1
) est configuré sur le routeur, mais si je n'ai pas le droit de contrôler ce routeur directement, des problèmes DNS peuvent survenir de manière sporadique. - Le DNS de KT a une vitesse de réponse instable ou échoue souvent lors de la poignée de main UDP/TCP.
- Si des messages comme ceux-ci apparaissent plusieurs fois dans les journaux de
systemd-resolved
, c'est un signe de problème :Using degraded feature set TCP instead of UDP for DNS server 168.126.63.1. Using degraded feature set UDP instead of TCP for DNS server 168.126.63.1.
- En conséquence, l'échec de la résolution de domaine se traduit par l'impossibilité d'accéder au site web.
4. Serveurs DNS recommandés
Nom | Adresse | Caractéristiques |
---|---|---|
Google DNS | 8.8.8.8 , 8.8.4.4 |
Rapide et stable |
Cloudflare DNS | 1.1.1.1 , 1.0.0.1 |
Rapidité et excellente protection de la vie privée |
Quad9 | 9.9.9.9 |
Fournit un filtrage des menaces de sécurité |
5. Comment configurer un DNS stable
- Ouvrir le fichier
/etc/systemd/resolved.conf
.
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9
- Appliquer les paramètres.
sudo systemctl restart systemd-resolved
- Vérifiez que
/etc/resolv.conf
est correctement lié.
ls -l /etc/resolv.conf
→ Cela doit être lié à /run/systemd/resolve/stub-resolv.conf
.
Si nécessaire, réinitialisez de force :
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
6. Faites attention à l'intervention de NetworkManager
Dans un environnement graphique, il peut arriver que NetworkManager
écrase les DNS sur Ubuntu.
- Si la configuration automatique du DNS est activée, il se peut que les paramètres de
systemd-resolved
soient ignorés. - Pour y remédier :
bash nm-connection-editor
→ Éditer la connexion → Onglet IPv4 → Désactiver le DNS automatique → Saisir le DNS manuellement.
7. Conclusion
- Comme des instabilités sont souvent signalées pour le DNS de KT, il vaut mieux éviter de l'utiliser.
- La configuration DNS via
systemd-resolved
est un moyen puissant d'améliorer la stabilité sur Ubuntu. - En comprenant et en appliquant correctement les paramètres, vous pouvez réduire le stress causé par les échecs de résolution de domaine.
8. Commentaire de Jesse
Une configuration basée sur la compréhension est la plus puissante pour la sécurité et la maintenance. J'espère que cet article sera d'une aide précieuse pour ceux qui sont confus au sujet de la configuration DNS sur Ubuntu.
Add a New Comment