# **PARTIE 1 — Créer la topologie ddns.imn**

### **1\. Copier la topologie du TP22**

`cp ~/SCR.3.2/TP22/dns1.imn ~/SCR.3.2/TP04/ddns.imn`

### **2\. Ouvrir ddns.imn dans IMUNES**

Dans IMUNES :

`File → Open → ddns.imn`

### **3\. Rôles des machines :**

| Machine | Rôle |
| ----- | ----- |
| osiris | Serveur DNS (bind9) |
| isis | Serveur DHCP |
| eno, owt, host1, host2… | Clients DHCP |

---

# **PARTIE 2 — Préparation des fichiers DNS sur osiris**

### **1\. Copier les fichiers DNS du TP22 vers TP04**

`mkdir -p ~/SCR.3.2/TP04/DNS`  
`cp ~/SCR.3.2/TP22/*.zone ~/SCR.3.2/TP04/DNS/`  
`cp ~/SCR.3.2/TP22/named.conf.local ~/SCR.3.2/TP04/DNS/`

Et renomme-les :

`mv named.conf.local osiris.named.conf.local`

### **2\. Éditer les fichiers de zone**

Très important :  
Garder uniquement **osiris** et **isis** dans la zone.  
Supprimer **eno**, **owt**, etc. (ces machines seront ajoutées par DHCP).

Exemple :

`osiris.db.tp.scr`

`$TTL 86400`  
`@   IN SOA  osiris.tp.scr. admin.tp.scr. (`  
        `1   ; serial`  
        `3H  ; refresh`  
        `1H  ; retry`  
        `1W  ; expire`  
        `1D ); minimum`

`@       IN NS osiris.tp.scr.`  
`osiris  IN A 192.168.1.158`  
`isis    IN A 192.168.1.2`

### **Déplacer les fichiers dans /var/lib/bind (exigé par TP)**

`sudo cp osiris.db.tp.scr /var/lib/bind/db.tp.scr`  
`sudo cp osiris.db.rev /var/lib/bind/db.1.168.192`

Pourquoi pas /etc/bind ?  
Car `named` s’exécute en **user bind**, donc il n’a pas le droit d’écrire dans `/etc/bind`, mais **il a le droit** dans `/var/lib/bind`.

---

# **PARTIE 3 — Générer et installer la clé TSIG**

### **1\. Sur osiris, générer la clé :**

`tsig-keygen -a md5 tp.scr-key > ddns.key`

### **2\. Copier la clé dans les bons répertoires**

`sudo cp ddns.key /etc/bind/`  
`sudo cp ddns.key /etc/dhcp/`

### **3\. Protéger la clé (obligatoire)**

`sudo chown root:bind /etc/bind/ddns.key`  
`sudo chmod 640 /etc/bind/ddns.key`

`sudo chown root:bind /etc/dhcp/ddns.key`  
`sudo chmod 640 /etc/dhcp/ddns.key`

---

# **PARTIE 4 — Configurer BIND9 (osiris)**

Éditer `/etc/bind/named.conf.local` :

`sudo nano /etc/bind/named.conf.local`

Mettre :

`include "/etc/bind/ddns.key";`

`zone "tp.scr" {`  
    `type master;`  
    `file "/var/lib/bind/db.tp.scr";`  
    `allow-update { key tp.scr-key; };`  
`};`

`zone "1.168.192.in-addr.arpa" {`  
    `type master;`  
    `file "/var/lib/bind/db.1.168.192";`  
    `allow-update { key tp.scr-key; };`  
`};`

---

# **PARTIE 5 — Configurer DHCP (isis)**

### **Éditer `/etc/dhcp/dhcpd.conf`**

`sudo nano /etc/dhcp/dhcpd.conf`

Mettre :

`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;`  
`}`

---

# **PARTIE 6 — Lancer les services en mode debug**

### **1\. DNS (osiris)**

`sudo named -u bind -g`

Attendre les logs de démarrage…

---

### **2\. DHCP (isis)**

Créer d’abord le fichier de leases :

`sudo touch /var/lib/dhcp/dhcpd.leases`

Lancer DHCP :

`sudo dhcpd -d`

Tu dois voir :

* DHCPDISCOVER

* DHCPOFFER

* DHCPREQUEST

* DHCPACK

* puis : **Forward update → osiris**

---

# **PARTIE 7 — Tests sur un client**

### **1\. Vérifier avant DHCP**

`sudo himage eno ip a`  
`sudo himage eno cat /etc/resolv.conf`

### **2\. Demander une adresse**

`sudo himage eno dhclient -v eth0`

### **3\. Vérifier côté DNS**

Sur osiris (qui affiche en live) tu verras :

`approved update: add eno.tp.scr A 192.168.1.X`  
`approved update: add X.1.168.192.in-addr.arpa PTR eno.tp.scr`

### **4\. Tester DNS**

`sudo himage eno dig eno.tp.scr`  
`sudo himage eno dig -x 192.168.1.X`

---

# **PARTIE 8 — Tester une erreur de clé (obligatoire TP)**

### **Sur isis → Modifier volontairement la clé**

Dans `/etc/dhcp/ddns.key`, changer 1 caractère de la clé.

Relancer :

`sudo dhcpd -d`

### **Résultat attendu :**

* DHCP fonctionne toujours

DNS affiche :

 `tsig verify failure (BADSIG)`

### **Test DNS :**

`dig eno.tp.scr`

→ Résultat : **NXDOMAIN**

