# **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 **n’a 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 l’utilisateur **bind**,

* Il doit créer un fichier journal `.jnl` pour les mises à jour dynamiques,

* `/etc/bind` n’est 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 n’accepte des updates **que du DHCP**, pas d’un 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 l’IP 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 l’exé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 d’IPv4, pas de DNS.

---

### **2\. Demande d’adresse :**

`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 l’IP DHCP,

* l’IP résout vers le nom.

---

# **PARTIE 8 — Cas d’erreur : 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 d’enregistrement.

---

# **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 |

