Aller au contenu principal

Chapitre 7.3 - DNS et Résolution de Noms

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Comprendre le système DNS
  • Configurer les serveurs DNS
  • Utiliser /etc/hosts
  • Configurer /etc/resolv.conf
  • Tester la résolution DNS
  • Utiliser les outils DNS (dig, nslookup, host)

Qu'est-ce que DNS?​

DNS (Domain Name System) traduit les noms de domaines en adresses IP.

Fonction:

  • Résoudre noms → IPs
  • Résoudre IPs → noms (reverse DNS)
  • Cache pour performance

/etc/hosts​

Format​

# /etc/hosts
127.0.0.1 localhost
127.0.1.1 hostname.localdomain hostname
192.168.1.100 server.local
10.0.0.50 database.internal

Format:

IP_ADDRESS    HOSTNAME [ALIASES...]

Utilisation​

# Ajouter entrée
echo "192.168.1.100 mon-serveur.local" | sudo tee -a /etc/hosts

# Vérifier
cat /etc/hosts

Priorité:

  • /etc/hosts est vérifié avant DNS
  • Utile pour override local
  • Tests et développement

/etc/resolv.conf​

Configuration​

# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 1.1.1.1
search example.com localdomain
options timeout:2 attempts:3

Directives:

  • nameserver: Serveurs DNS (jusqu'à 3)
  • search: Domaines de recherche
  • options: Timeout, tentatives, etc.

Serveurs DNS Populaires​

# Google DNS
nameserver 8.8.8.8
nameserver 8.8.4.4

# Cloudflare DNS
nameserver 1.1.1.1
nameserver 1.0.0.1

# OpenDNS
nameserver 208.67.222.222
nameserver 208.67.220.220

Note: Sur systèmes modernes, /etc/resolv.conf peut être géré par NetworkManager ou systemd-resolved.


systemd-resolved​

Configuration​

# /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 1.1.1.1
FallbackDNS=8.8.4.4 1.0.0.1
Domains=example.com

Redémarrer:

sudo systemctl restart systemd-resolved

Vérifier​

# Statut
systemd-resolve --status

# Résoudre
systemd-resolve google.com

Outils DNS​

dig - DNS Lookup​

# Résolution simple
dig google.com

# Serveur DNS spécifique
dig @8.8.8.8 google.com

# Type d'enregistrement
dig google.com A # A record
dig google.com MX # MX record
dig google.com NS # NS record
dig google.com TXT # TXT record

# Reverse DNS
dig -x 8.8.8.8

# Format court
dig +short google.com

nslookup​

# Résolution
nslookup google.com

# Serveur spécifique
nslookup google.com 8.8.8.8

# Mode interactif
nslookup
> google.com
> server 8.8.8.8
> exit

host​

# Résolution simple
host google.com

# IP seulement
host -t A google.com

# Reverse DNS
host 8.8.8.8

# Serveur spécifique
host google.com 8.8.8.8

getent​

# Résolution via système
getent hosts google.com

# Utilise /etc/hosts et DNS

Test de Résolution​

Vérifier Configuration​

# Voir serveurs DNS configurés
cat /etc/resolv.conf
systemd-resolve --status

# Tester résolution
ping -c 2 google.com
host google.com
dig google.com

Vérifier Cache​

# Vider cache systemd-resolved
sudo systemd-resolve --flush-caches

# Vérifier cache
systemd-resolve --statistics

Configuration Permanente​

Ubuntu/Debian (Netplan)​

# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search:
- example.com

Red Hat/CentOS​

# /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=8.8.8.8
DNS2=8.8.4.4
DOMAIN=example.com

Troubleshooting DNS​

Problèmes Courants​

# 1. Vérifier résolution
host google.com
dig google.com

# 2. Vérifier serveurs DNS
cat /etc/resolv.conf

# 3. Tester serveur DNS directement
dig @8.8.8.8 google.com

# 4. Vérifier connectivité
ping -c 2 8.8.8.8

# 5. Vérifier /etc/hosts
cat /etc/hosts

# 6. Vider cache
sudo systemd-resolve --flush-caches

Script de Diagnostic​

#!/bin/bash
# Diagnostic DNS

echo "=== Configuration DNS ==="
cat /etc/resolv.conf

echo "=== Test résolution ==="
host google.com
dig +short google.com

echo "=== Test serveur DNS ==="
dig @8.8.8.8 google.com +short

echo "=== Cache ==="
systemd-resolve --statistics 2>/dev/null || echo "systemd-resolved non actif"

Exemples Pratiques​

Configuration DNS Personnalisée​

#!/bin/bash
# Configurer DNS

# Backup
sudo cp /etc/resolv.conf /etc/resolv.conf.bak

# Nouvelle configuration
cat <<EOF | sudo tee /etc/resolv.conf
nameserver 8.8.8.8
nameserver 1.1.1.1
search localdomain
EOF

# Vérifier
cat /etc/resolv.conf

Override Local​

#!/bin/bash
# Ajouter entrée /etc/hosts

HOST="dev-server.local"
IP="192.168.1.50"

# Vérifier si existe
if ! grep -q "$HOST" /etc/hosts; then
echo "$IP $HOST" | sudo tee -a /etc/hosts
echo "Ajouté: $HOST -> $IP"
else
echo "$HOST existe déjà"
fi

Résumé​

Dans ce chapitre, vous avez appris:

DNS: Résolution noms → IPs
/etc/hosts: Résolution locale, priorité sur DNS
/etc/resolv.conf: Configuration serveurs DNS
systemd-resolved: Service DNS moderne
Outils: dig, nslookup, host pour tests
Configuration: Netplan, fichiers ifcfg-*
Troubleshooting: Tests de résolution, cache


Prochaines Étapes​

Chapitre 7.4: Outils Réseau
Module 8: Services et Démon


Chapitre créé le: Décembre 2024