CyberSDF

Reprenez la main sur votre numérique

Résolution DNS échouée : temporary failure in name resolution

Temporary failure in name resolution signifie que le systeme n’a pas pu traduire un nom de domaine en adresse IP. Le programme demande a resolver (la couche qui interroge les serveurs DNS) de trouver l’adresse de example.com, et resolver renvoie une erreur au lieu d’une adresse. L’erreur est dite temporary parce que le systeme suppose que le serveur DNS est temporairement indisponible, pas que le nom est inexistant.

Sommaire
  1. Le processus de résolution en quatre étapes
  2. Cause 1 : le serveur DNS est indisponible
  3. Cause 2 : NetworkManager a ecrase resolv.conf
  4. Cause 3 : le pare-feu bloque le port 53
  5. Cause 4 : systemd-resolved n’est pas actif
  6. Cause 5 : le reseau n’est pas encore pret
  7. Diagnostic rapide en cinq commandes
  8. Repères pour aller plus loin

Le processus de résolution en quatre étapes

Quand vous tapez curl https://cybersdf.org, le systeme :

  1. Consulte /etc/hosts — correspondances statiques, pas de reseau
  2. Consulte /etc/nsswitch.conf — determine l’ordre des sources (files, dns, mDNS)
  3. Interroge les serveurs DNS listes dans /etc/resolv.conf
  4. Attend la reponse pendant un delai (generalement 5 secondes)

L’erreur temporary failure se produit a l’etape 3 ou 4 : les serveurs DNS ne repondent pas, ou le delai est depasse. L’erreur Name or service not known est differente : elle signifie que le serveur DNS a repondu que le nom n’existe pas (NXDOMAIN).

Cause 1 : le serveur DNS est indisponible

Verifiez les serveurs DNS configures :

cat /etc/resolv.conf
resolvectl status

Le fichier /etc/resolv.conf contient les adresses IP des serveurs DNS. Si le fichier est vide, mal forme ou contient des adresses inaccessibles, la resolution echoue. Verifiez que les serveurs sont joignables :

ping -c 2 8.8.8.8
dig +short cybersdf.org

Si ping 8.8.8.8 fonctionne mais dig echoue, le serveur DNS est le probleme. Passez aux serveurs Google (8.8.8.8) ou Cloudflare (1.1.1.1) temporairement en editant /etc/resolv.conf.

Cause 2 : NetworkManager a ecrase resolv.conf

Sur les postes de travail, NetworkManager genere automatiquement /etc/resolv.conf. Si la connexion reseau coupe l’acces au serveur DNS, NetworkManager peut ecraser le fichier avec des serveurs indisponibles. Verifiez :

ls -la /etc/resolv.conf
readlink -f /etc/resolv.conf

Si le fichier est un lien symbolique vers /run/systemd/resolve/stub-resolv.conf ou /run/NetworkManager/resolv.conf, c’est NetworkManager qui le gere. Dans ce cas, configurez les DNS via NetworkManager (nmcli) plutot qu’en editant le fichier directement.

Cause 3 : le pare-feu bloque le port 53

Le DNS utilise les ports 53 UDP et 53 TCP. Si le pare-feu local bloque ces ports, la resolution echoue meme si les serveurs DNS sont corrects :

sudo ufw status | grep 53
sudo iptables -L OUTPUT -n | grep 53

Ajoutez une regle pour autoriser le trafic DNS sortant : sudo ufw allow out 53. Cette regle est differente de ufw allow 53 qui autorise le trafic entrant.

Cause 4 : systemd-resolved n’est pas actif

Sur les distributions recentes (Ubuntu 22.04+, Debian 13), systemd-resolved gere la resolution DNS. Si le service n’est pas actif, la resolution echoue :

systemctl status systemd-resolved
resolvectl status

Si le service est inactif, demarrez-le : sudo systemctl start systemd-resolved. Le fichier /etc/resolv.conf doit pointer vers le resolver local : nameserver 127.0.0.53.

Cause 5 : le reseau n’est pas encore pret

Au demarrage, le service reseau peut ne pas etre pret quand un autre service tente de resoudre un nom. C’est frequent avec les conteneurs Docker et les services systemd qui dependent de la connectivite. Ajoutez une attente dans le fichier d’unite :

[Unit]
After=network-online.target
Wants=network-online.target

Pour un script shell, ajoutez une boucle d’attente avant la premiere resolution DNS :

for i in 1 2 3 4 5; do
  dig +short cybersdf.org && break
  echo "Attente reseau... ($i)"
  sleep 2
done

Diagnostic rapide en cinq commandes

cat /etc/resolv.conf                    # serveurs DNS configures ?
ping -c 2 8.8.8.8                       # reseau fonctionne ?
dig +short cybersdf.org                 # resolution reussit ?
sudo ufw status | grep 53               # pare-feu bloque le port 53 ?
systemctl status systemd-resolved       # resolver actif ?

Ces cinq verifications couvrent les causes les plus courantes. Si toutes sont normales, le probleme est probablement un serveur DNS distant temporairement indisponible — d’ou le mot temporary dans le message d’erreur. Reessayez apres quelques secondes, ou passez a un autre serveur DNS.

Repères pour aller plus loin