diff --git a/README.md b/README.md
index 63b5f568decd86686c2c8f04b9f39c7406318985..242ac326d47b56d52d96683bc78815af246960c4 100644
--- a/README.md
+++ b/README.md
@@ -35,10 +35,357 @@ cette commande est correcte en l’exécutant sur la topologie.
 
 # **2 - Routage et adressage**
 
-Voici le résultat du playbook, la 77a0ae0163commande ping est effectivement exécuté et le paquet est bien envoyé sur le bon chemin (code sur le git) 
+pour lancer cette partie, il faut utiliser la commande `ansible-playbook playbook.yaml`
+
+On cherche à recréer une typologie comme celle décrite sur l’image
 
 ![Untitled](img/Untitled%204.png)
 
+Nous allons commencer par configurer nos hotes (H1 et H2) 
+
+Nos allons créer un template jinja2 pour ce faire (le même template sera utilisé pour les 4 devices)
+
+la première ligne de notre template sera
+
+```bash
+auto eth0
+```
+
+on indique ici que l’interface redémarre automatiquement au démarrage de l’appareil
+
+on va maintenant configurer cette même interface
+
+on commence par indiquer que l’adressage est statique
+
+```bash
+iface eth0 inet static
+```
+
+puis on lui indique son adresse et son masque de sous réseau (ici pour H1)
+
+```bash
+	address 1.0.0.3
+	netmask 255.255.255.0
+```
+
+on lui indique ensuite comment rejoindre l’autre sous réseau 
+
+```bash
+	post-up ip route add default via 1.0.0.1
+```
+
+on lui indique ici que tout ses paquets devront passer par 1.0.0.1 qui est l’adresse du routeur qui lui est directement lié
+
+Maintenant notre config au complet
+
+```bash
+auto eth0
+iface eth0 inet static
+	address 1.0.0.3
+	netmask 255.255.255.0
+	post-up ip route add default via 1.0.0.1
+```
+
+nous voulons pouvoir utiliser le même template pour nos différents appareils nous allons donc utiliser des variables
+
+```bash
+auto {{ifname}}
+iface {{ifname}} inet static
+	address {{ip}}
+	netmask {{netmask}}
+	post-up ip route add default via {{gateway}}
+```
+
+la config de H2 est identique mais avec 3.0.0.3 comme ip et 3.0.0.2 comme gateway
+
+Passons maintenant à la config de nos routeurs (ici R1)
+
+nos commençons avec une configuration similaire à celle de H1
+
+```bash
+auto eth0
+iface eth0 inet static
+	address 2.0.0.1
+	netmask 255.255.255.0
+	post-up ip route add 3.0.0.0/24 via 2.0.0.2
+```
+
+ici on indique que pour accéder au sous réseau 3.0.0.0 il faut passer par l’ip 2.0.0.2, le reste de la config n’est pas très différent
+
+il nous faut cependant configurer l’autre interface également
+
+```bash
+auto eth1
+iface eth1 inet static
+	address 1.0.0.1
+	netmask 255.255.255.0
+```
+
+configuration identique ici aussi mais nous n’avons pas besoin du post-up
+
+maintenant la configuration entière
+
+```bash
+auto eth1
+iface eth1 inet static
+	address 1.0.0.1
+	netmask 255.255.255.0
+
+auto eth0
+iface eth0 inet static
+	address 2.0.0.1
+	netmask 255.255.255.0
+	post-up ip route add 3.0.0.0/24 via 2.0.0.2
+
+```
+
+comme précédemment il nous faut des variables
+
+```bash
+auto {{ifname}}
+iface {{ifname}} inet static
+	address {{ip}}
+	netmask {{netmask}}
+
+auto {{ifname2}}
+iface {{ifname2}} inet static
+	address {{ip2}}
+	netmask {{netmask}}
+	post-up ip route add 3.0.0.0/24 via {{gateway}}
+```
+
+J’avais indiqué que notre config serait utilisée pour tout les appareils nous allons donc ajouter des conditions
+
+```bash
+auto {{ifname}}
+iface {{ifname}} inet static
+	address {{ip}}
+	netmask {{netmask}}
+
+{% if type == "host" %}
+	post-up ip route add default via {{gateway}}
+{% endif %}
+{% if type == "router" %}
+
+auto {{ifname2}}
+iface {{ifname2}} inet static
+    address {{ip2}}
+    netmask {{netmask}}
+    {% if inventory_hostname == "R1" %}
+    post-up ip route add 3.0.0.0/24 nexthop via {{gateway}}
+    {% else %}
+    post-up ip route add 1.0.0.0/24 nexthop via {{gateway}}
+    {% endif %}
+{% endif %}
+```
+
+Le premier post-up est nécessaire uniquement pour les hosts tandis que la 2eme partie de la config est destinée au routers uniquement
+
+la configuration est sauvegardée dans `/etc/network/interfaces.d/ansible.conf` pour être persistante (il serait mieux de la stocker dans deux fichiers différents nommés eth0 et eth1)
+
+Voici le résultat du playbook, la commande ping est effectivement exécutée
+
+![Untitled](img/Untitled%205.png)
+
 On peut voir grâce à la commande traceroute que le paquet utilise le bon chemin
 
-![Untitled](img/Untitled%205.png)
\ No newline at end of file
+![Untitled](img/Untitled%206.png)
+
+# 3 - **Tunnel wireguard et serveur web**
+
+On commence par installer wireguard sur nos 2 hosts et nginx sur H2
+
+j’ai choisi de faire cette action à la main
+
+on utilise l’interface de management pour accéder à internet (ce qui n’est généralement pas re commandé mais c’était la solution la plus simple)
+
+```bash
+dhclient -v mgmt0
+apt instal wiregurad-tools
+apt install nginx
+delete default route
+```
+
+Ici l’installation sur H2, sur H1 on supprime seulement la 3eme ligne
+
+la dernière ligne nous sert à supprimer cet accès après son utilisation
+
+il faudra ensuite à nouveau exécuter la commande 
+
+```bash
+	post-up ip route add default via {{gateway}}
+```
+
+pour revenir dans notre état précédent
+
+passons maintenant à la configuration de notre serveur nginx
+
+nous allons conserver la configuration par défaut
+
+```bash
+server{
+    listen 80 default_server;
+    listen [::]:80 default_server;
+
+    root /var/www/html;
+
+    index index.html index.htm index.nginx-debian.html;
+
+    server_name _;
+
+    location / {
+        try_files $uri $uri/ =404;
+    }
+}
+```
+
+Nous allons simplement ajouter deux lignes pour empêcher toutes les connexions sauf depuis 10.0.0.0/24
+
+```bash
+allow {{allowed_ips}};
+deny all;
+```
+
+notre configuration finale sera donc
+
+```bash
+server{
+    listen 80 default_server;
+    listen [::]:80 default_server;
+    
+    allow {{allowed_ips}};
+    deny all;
+
+    root /var/www/html;
+
+    index index.html index.htm index.nginx-debian.html;
+
+    server_name _;
+
+    location / {
+        try_files $uri $uri/ =404;
+    }
+}
+```
+
+elle est aussi stockée dans un fichier template jinja2
+
+on se contente ensuite de la copier dans le bon dossier `/etc/nginx/sites-available/default`
+
+on vient ensuite créer un page web simple  grâce à un template jinja2
+
+```html
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>{{title}}</title>
+    </head>
+    <body>
+        <h1>{{content}}</h1>
+    </body>
+</html>
+```
+
+on peut changer la valeur de title et content depuis le playbook
+
+maintenant passons à la configuration de wireguard
+
+le plus simple est de le configurer en ligne de commande puis d’utiliser la commande `wg showconf wg0` pour récupérer une config prête à être utilisée 
+
+on commence par créer un interface pour wireguard 
+
+```bash
+ip link add wg0 type wireguard
+ip addr add 10.0.0.1/24 dev wg0
+ip link set up dev wg0
+```
+
+il nous faut ensuite une clef privée et un clef publique pour communiquer
+
+```bash
+wg genkey | tee private.key | wg pubkey > public.key
+```
+
+et on configure wireguard pour l’utiliser
+
+```bash
+wg seet private-key private.key
+```
+
+maintenant il faut ajouter notre client
+
+```bash
+wg set wg0 peer <client pub key> allowed-ips 10.0.0.2/32 endpoint 3.0.0.3:<port>
+```
+
+on récupère la config et on l’utilise dans un template jinja2
+
+```bash
+[Interface]
+{% if inventory_hostname == "H1" %}
+Address = {{h1_ip}}
+ListenPort = {{h1_port}}
+PrivateKey = {{all.h1_private_key}}
+{% else %}
+Address = {{h2_ip}}
+ListenPort = {{h2_port}}
+PrivateKey = {{all.h2_private_key}}
+{% endif %}
+
+[Peer]
+{% if inventory_hostname == "H1" %}
+PublicKey = {{h2_public_key}}
+AllowedIPs = {{h1_AllowedIPs}}
+Endpoint = {{h1_endpoint}}:{{h2_port}}
+{% else %}
+PublicKey = {{h1_public_key}}
+AllowedIPs = {{h2_AllowedIPs}}
+Endpoint = {{h2_endpoint}}:{{h1_port}}
+{% endif %}
+```
+
+ici aussi la config est la même pour H1 et H2
+
+pour ne pas stocker la clef privée dans la playbook mais la stocker en sécurité elle est dans un vault ansible crée à partir de la commande
+
+```bash
+ansible-vault create vault.yml
+```
+
+il faut entrer un mot de passe à la création
+
+que l’on peut ensuite modifier grâce à la commande 
+
+```bash
+ansible-vault edit vault.yml
+```
+
+pour le modifier ou l’afficher il est nécessaire d’indiquer le mot de passe 
+
+on ajoute donc nos 2 clef privé comme variable et on peut lancer notre playbook
+
+il faudra juste créer un autre fichier qui contient le mot de passe
+
+je l’ai appelé vaultpassword
+
+on le spécifie lorsque lance le playbook 
+
+```bash
+ansible-playbook --vault-password-file vaultpassword playbook_2.yaml
+```
+
+Résultat du playbook avec notre curl sur 10.0.0.2 pour vérifier que wireguard est bien configuré
+
+![Untitled](img/Untitled%207.png)
+
+preuve que l’on peut accéder au serveur uniquement depuis 10.0.0.0/24
+
+![Untitled](img/Untitled%208.png)
+
+le serveur nous indique bien que nous n’avons pas le droit d’y accéder avec une erreur 403
+
+tandis que sur 10.0.0.2 nous avons bien notre page
+
+![Untitled](img/Untitled%209.png)
+
+![Untitled](img/Untitled%2010.png)
\ No newline at end of file
diff --git a/img/Untitled 10.png b/img/Untitled 10.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4a8f9bab88bde4a2b0ef65bc7c734a36f1993a3
Binary files /dev/null and b/img/Untitled 10.png differ
diff --git a/img/Untitled 4.png b/img/Untitled 4.png
index 878a764ae4f9b694114cb4af214bedae587f5f31..d054531dacc0de103f2d31a03a176f9762e3acdf 100644
Binary files a/img/Untitled 4.png and b/img/Untitled 4.png differ
diff --git a/img/Untitled 5.png b/img/Untitled 5.png
index e41e3d1d4c8dd12f3af1e6a8f5f2ae687f32b468..878a764ae4f9b694114cb4af214bedae587f5f31 100644
Binary files a/img/Untitled 5.png and b/img/Untitled 5.png differ
diff --git a/img/Untitled 6.png b/img/Untitled 6.png
new file mode 100644
index 0000000000000000000000000000000000000000..e41e3d1d4c8dd12f3af1e6a8f5f2ae687f32b468
Binary files /dev/null and b/img/Untitled 6.png differ
diff --git a/img/Untitled 7.png b/img/Untitled 7.png
new file mode 100644
index 0000000000000000000000000000000000000000..402dc6725f3d3e0f56f004dbb951f08ca2c079be
Binary files /dev/null and b/img/Untitled 7.png differ
diff --git a/img/Untitled 8.png b/img/Untitled 8.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a40955e4b8f6d152e088a71e3e939eb71ebe2ce
Binary files /dev/null and b/img/Untitled 8.png differ
diff --git a/img/Untitled 9.png b/img/Untitled 9.png
new file mode 100644
index 0000000000000000000000000000000000000000..12b908f390d6c88203f752cc0bc123c455ba2837
Binary files /dev/null and b/img/Untitled 9.png differ