Diagnostiquer les problèmes DNS sous Windows et Linux

Séparer les erreurs DNS, réseau et HTTPS avec nslookup, Resolve-DnsName, dig et resolvectl.

Diagnostiquer les problèmes DNS sous Windows et Linux

Séparer les erreurs DNS, réseau et HTTPS avec nslookup, Resolve-DnsName, dig et resolvectl.

Réseau avant noms

Vérifiez adresse IP, passerelle et route par défaut. Testez la vraie passerelle et une IP extérieure, sachant qu’ICMP peut être filtré. Une IP joignable avec un nom défaillant suggère DNS sans le prouver. Notez nom exact, type A/AAAA, heure, réseau et erreur. A désigne IPv4, AAAA IPv6, MX la messagerie, NS la délégation, CNAME un alias, TXT du texte et PTR le DNS inverse.

Résolveurs Windows

ipconfig /all montre carte active, serveurs et suffixes. VPN et Active Directory utilisent souvent DNS interne et vue scindée. nslookup interroge directement un serveur mais contourne cache local, hosts et certaines règles client : le résultat peut différer de l’application. Resolve-DnsName est plus ciblé ; -DnsOnly -NoHostsFile exclut volontairement hosts. Ne remplacez pas aveuglément les DNS d’entreprise.

ipconfig /all
nslookup www.example.com
nslookup -type=AAAA www.example.com
nslookup www.example.com 1.1.1.1
Resolve-DnsName www.example.com -Type A
Resolve-DnsName www.example.com -Server 1.1.1.1 -DnsOnly -NoHostsFile

Cache et hosts

Examinez ipconfig /displaydns ou Get-DnsClientCache. ipconfig /flushdns et Clear-DnsClientCache vident uniquement ce PC, pas les données autoritatives ou caches intermédiaires. Vérifiez C:\Windows\System32\drivers\etc\hosts et le VPN sans effacer les entrées voulues. Répétez la requête et notez serveur et résultat.

ipconfig /displaydns
ipconfig /flushdns
Get-DnsClientCache
Clear-DnsClientCache

Résolveur Linux

Avec systemd-resolved, resolvectl status affiche DNS par lien et domaines routés ; resolvectl query teste la résolution du client. /etc/resolv.conf peut dépendre de systemd-resolved, NetworkManager ou DHCP : corrigez la configuration source et non le fichier généré.

ip address
ip route
resolvectl status
resolvectl query www.example.com
ls -l /etc/resolv.conf

Comparer avec dig

dig montre statut, ANSWER, TTL et serveur. Comme nslookup, il ne suit pas nécessairement la résolution de l’application. Comparez résolveurs par défaut et explicites ; un DNS public ne connaît pas une zone privée. NOERROR sans réponse peut signifier que le type demandé manque. +trace suit la délégation mais échoue parfois si le réseau filtre les requêtes directes.

sudo apt update
sudo apt install dnsutils
dig www.example.com A
dig www.example.com AAAA
dig @1.1.1.1 www.example.com A
dig example.com NS
dig example.com SOA
dig +trace www.example.com

Erreurs et serveurs autoritatifs

NXDOMAIN signifie nom absent dans la vue interrogée, SERVFAIL une résolution échouée, parfois DNSSEC, REFUSED un refus et timeout aucune réponse à temps. Interrogez les véritables serveurs NS et comparez A/AAAA et numéro SOA. ns1.provider.example et ns2.provider.example ne sont que des exemples.

dig example.com NS
dig @ns1.provider.example example.com SOA
dig @ns1.provider.example www.example.com A
dig @ns2.provider.example www.example.com A

TTL et cache négatif

Après changement, un résolveur peut garder la valeur précédente jusqu’à expiration du TTL antérieur. NXDOMAIN peut aussi être mémorisé. Vérifiez les serveurs autoritatifs, comparez les résolveurs et notez TTL et heure. Vider le cache local ne vide pas les autres.

Port 53 et application

DNS utilise généralement UDP 53 et parfois TCP 53. Test-NetConnection -Port 53 vérifie TCP, pas UDP. Comparez dig normal et +tcp ; une connexion TCP réussie ne prouve pas la résolution de l’application. Si A/AAAA sont corrects, testez séparément port 443 et HTTPS pour routage, pare-feu, service et TLS.

# PowerShell: tests TCP, not UDP
Test-NetConnection 1.1.1.1 -Port 53
Test-NetConnection www.example.com -Port 443
# Linux: compare default DNS transport and TCP
dig @1.1.1.1 example.com A
dig +tcp @1.1.1.1 example.com A
curl -I https://www.example.com

DNSSEC et bilan

Si seuls les résolveurs validants donnent SERVFAIL, examinez la chaîne DNSSEC avec delv et l’horloge. Réunissez des résultats reproductibles avant de changer DNS ou vider le cache ; distinguez client, requête directe, serveurs autoritatifs et service.

delv example.com A
timedatectl status

Sources

Microsoft Resolve-DnsName: https://learn.microsoft.com/en-us/powershell/module/dnsclient/resolve-dnsname ; diagnostic DNS: https://learn.microsoft.com/en-us/troubleshoot/azure/dns/troubleshoot-dns ; BIND DNSSEC: https://bind9.readthedocs.io/en/stable/dnssec-guide.html .

Partager

Quelle est votre réaction ?

Aimer Aimer 0
Je n'aime pas Je n'aime pas 0
Amour Amour 0
Drôle Drôle 0
En colère En colère 0
Triste Triste 0
Waouh Waouh 0