Files
BUT2/TP_SCR3.2/revision_scr3.2/TP4/TP04 – Dynamic DNS — Organisation par GRANDES PARTIES.md
2025-12-10 01:26:13 +01:00

365 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **TP04 Dynamic DNS — Organisation par GRANDES PARTIES**
---
# **PARTIE 1 — Préparation de la topologie (ddns.imn)**
### **Objectif :**
Créer une topologie avec :
* un **serveur DNS** : *osiris*
* un **serveur DHCP** : *isis*
* des clients (eno, owt, pc1, pc2…)
### **Ce que tu dois faire :**
1. Copier la topologie du TP22 (`dns1.imn`)
2. Enregistrer sous `ddns.imn` dans :
`~/SCR.3.2/TP04/`
3. Assigner :
* **osiris** : serveur DNS
* **isis** : serveur DHCP
* Les autres machines : sans IP statique (elles utiliseront DHCP)
### **Pourquoi ?**
Parce que :
* DHCP doit distribuer IP \+ DNS \+ nom de domaine,
* DHCP doit envoyer des mises à jour dynamiques au DNS.
---
# **PARTIE 2 — Préparation des fichiers DNS (osiris)**
### **Objectif :**
Créer les fichiers de zone que BIND pourra *modifier dynamiquement*.
### **Étapes :**
### **(1) Copier les fichiers du TP22 dans TP04**
Tu copies depuis ton dossier TP22 tout ce qui concerne DNS :
`named.conf.local`
`db.tp.scr`
`db.1.168.192`
Tu renommes :
`osiris.named.conf.local`
`osiris.db.tp.scr`
`osiris.db.1.168.192`
### **(2) Éditer les fichiers de zone**
Le TP dit : garder seulement :
* les enregistrements pour **osiris**,
* ajouter ceux pour **isis**,
* supprimer toutes les autres machines (eno, owt, pc1, pc2…).
tp04.SCR.3.2
Parce que ces autres machines recevront leurs enregistrements **dynamiquement via DHCP**, donc pas dans les fichiers statiques.
### **(3) Déplacer les fichiers dans `/var/lib/bind/`**
Très important : BIND **na pas le droit décrire** dans `/etc/bind/`.
Les fichiers de zones finalisés doivent être placés dans :
`/var/lib/bind/db.tp.scr`
`/var/lib/bind/db.1.168.192`
Pourquoi ?
* Parce que `named` tourne sous lutilisateur **bind**,
* Il doit créer un fichier journal `.jnl` pour les mises à jour dynamiques,
* `/etc/bind` nest pas modifiable par bind.
tp04.SCR.3.2
---
# **PARTIE 3 — Génération et configuration de la clé TSIG (sécurité)**
### **Objectif :**
Permettre à DHCP (isis) de mettre à jour DNS (osiris) en toute sécurité.
### **Générer la clé sur *osiris* :**
`tsig-keygen -a md5 tp.scr-key > ddns.key`
### **Installer la clé :**
#### **Sur osiris :**
`/etc/bind/ddns.key`
`chmod 640 ddns.key`
`chown root:bind ddns.key`
#### **Sur isis :**
`/etc/dhcp/ddns.key`
`chmod 640 ddns.key`
`chown root:bind ddns.key`
### **Pourquoi ?**
TSIG \= Transaction Signature
→ sécurité \= le DNS naccepte des updates **que du DHCP**, pas dun intrus.
---
# **PARTIE 4 — Configuration DNS dynamique (osiris)**
### **Objectif :**
Dire au serveur DNS de permettre les mises à jour dynamiques venant de isis.
### **Modifier `/etc/bind/named.conf.local` (renommé ici en osiris.named.conf.local)**
Exemple :
`include "/etc/bind/ddns.key";`
`zone "tp.scr" IN {`
`type master;`
`file "/var/lib/bind/db.tp.scr";`
`allow-update { key tp.scr-key; };`
`};`
`zone "1.168.192.in-addr.arpa" IN {`
`type master;`
`file "/var/lib/bind/db.1.168.192";`
`allow-update { key tp.scr-key; };`
`};`
### **Pourquoi ?**
* `allow-update { key ... }` \= autoriser DHCP uniquement.
* Le fichier de zone est dans `/var/lib/bind/` pour que BIND puisse écrire le `.jnl`.
---
# **PARTIE 5 — Configuration DHCP avec DDNS (isis)**
### **Objectif :**
Faire en sorte que DHCP :
* attribue des IP aux clients,
* génère automatiquement :
* un enregistrement A (nom → IP)
* un enregistrement PTR (IP → nom)
* envoie les mises à jour signées au DNS.
---
### **Modifier `/etc/dhcp/dhcpd.conf` (fichier isis.dhcpd.conf)**
Exemple minimal :
`include "/etc/dhcp/ddns.key";`
`ddns-update-style standard;`
`update-static-leases on;`
`option domain-name "tp.scr";`
`option domain-name-servers 192.168.1.158; # osiris`
`zone tp.scr. {`
`primary 192.168.1.158;`
`key tp.scr-key;`
`}`
`zone 1.168.192.in-addr.arpa. {`
`primary 192.168.1.158;`
`key tp.scr-key;`
`}`
`subnet 192.168.1.0 netmask 255.255.255.0 {`
`range 192.168.1.11 192.168.1.200;`
`option routers 192.168.1.254;`
`}`
---
### **Pourquoi ?**
Parce que DHCP doit :
* **savoir où envoyer** les mises à jour DNS → directives `zone {...}`;
* **les signer** → directive `key`;
* fournir lIP du DNS aux clients → option `domain-name-servers`.
---
# **PARTIE 6 — Lancement manuel des services en mode debug**
### **Objectif :**
Observer les transactions DDNS en temps réel.
---
### **Sur osiris (DNS) :**
`named -u bind -g`
Cela garde `named` en avant-plan et affiche les mises à jour.
---
### **Sur isis (DHCP) :**
`dhcpd -d`
Cela permet de voir :
* DHCPDISCOVER
* DHCPOFFER
* DHCPREQUEST
* DHCPACK
* et surtout → la génération des messages DDNS
---
### **Pourquoi ne pas lancer via `service bind9 start` ?**
Parce que tu ne verrais **aucun log**, et tu ne pourrais pas analyser les mises à jour dynamiques.
Le TP impose explicitement lexécution en mode debug.
tp04.SCR.3.2
---
# **PARTIE 7 — Tests fonctionnels**
### **1\. Avant la requête DHCP**
Sur un client (eno par exemple) :
`ip a`
`cat /etc/resolv.conf`
→ pas dIPv4, pas de DNS.
---
### **2\. Demande dadresse :**
`dhclient -v eth0`
### **Observations :**
#### **Côté DHCP (isis) :**
* DHCPACK
* "Added new forward map ..."
* "Added reverse map ..."
#### **Côté DNS (osiris) :**
* Validation TSIG
* Écriture dans `.jnl`
* Mise à jour A \+ PTR
---
### **3\. Test DNS :**
`dig eno.tp.scr`
`dig -x 192.168.1.X`
Résultat attendu :
* le nom résout vers lIP DHCP,
* lIP résout vers le nom.
---
# **PARTIE 8 — Cas derreur : mauvaise clé TSIG**
Le TP demande de modifier légèrement la clé du DHCP pour provoquer une erreur.
tp04.SCR.3.2
### **Symptômes :**
#### **DHCP (isis) :**
*Continue à fonctionner normalement*.
#### **DNS (osiris) :**
→ Rejette les mises à jour :
`tsig verify failure (BADSIG)`
### **Test DNS :**
`dig eno.tp.scr`
→ Réponse : **NXDOMAIN**
---
### **Pourquoi ?**
Parce que la requête DDNS est :
* signée par DHCP,
* vérifiée par DNS.
Si la signature ne correspond pas, DNS rejette la mise à jour → donc pas denregistrement.
---
# **RÉSUMÉ PARFAIT DU TP04**
| Partie | Ce que tu fais | Pourquoi |
| ----- | ----- | ----- |
| 1 | Créer ddns.imn | Topo du TP |
| 2 | Préparer les zones | Utilisation dynamique |
| 3 | Créer clé TSIG | Sécurisation |
| 4 | Configurer DNS | Autoriser mises à jour |
| 5 | Configurer DHCP | Envoyer mises à jour |
| 6 | Lancer named & dhcpd en debug | Voir les transactions |
| 7 | Tester DHCP \+ DNS | Vérification du DDNS |
| 8 | Tester erreur de clé | Comprendre TSIG |