# Cours IT

# Hardware

Notions théoriques liées au hardware.

# Hardware - Le binaire

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/H62debutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/H62debutant-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Binaire, base 2

</td></tr></tbody></table>

---

### <span style="color: rgb(35,111,161);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

> **Il y a 10 types de personnes dans le monde : celles qui savent compter en binaire et les autres.**
> 
>   *- Blague de geek*

Le langage binaire est le langage informatique le plus <span style="color: rgb(132,63,161);">***bas niveau***</span>.

En effet un ordinateur fonctionnant avec du courant électrique, il n'y a que deux états possible pour un bit à l'instant T.

Circuit fermé, présence de courant : <span style="color: rgb(132,63,161);">***1***</span>

Circuit ouvert, absence de courant : <span style="color: rgb(132,63,161);">0</span>

De par ses deux valeurs possible, le binaire est donc un système de calcul en <span style="color: rgb(132,63,161);">***base 2***</span>.

---

### **<span style="text-decoration: underline;"><span style="color: rgb(35,111,161); text-decoration: underline;">II. Les bases de calcul</span>  
</span>**

<p class="callout info">**Information** : Quel que soit le calcul, il est à noter que la première valeur possible est toujours 0 (Zero).  
</p>

#### **<span style="color: rgb(53,152,219);">2.1 Base 10</span>** 

La base 10 est la base naturelle pour l'humain et celle courrament utilisée dans le monde.

De par le fait que les mains humaines disposent de 10 doigts, c'est en effet plus pratique et instinctif pour compter.

on a donc les valeur suivantes possibles :

<details id="bkmrk-valeurs-base-10-0-%3D0"><summary>Valeurs base 10</summary>

0 =00

1 = 01

2 = 02

3 = 03

4 = 04

5 = 05

6 = 06

7 = 07

8 = 08

9 = 09

</details>Une fois la valeur maximum atteinte (09) pour incrémenter au delà, on ajoute une dizaine devant l'unité et on continue ainsi à incrémenter.

10, 20, 30 etc... etc...

#### **<span style="color: rgb(53,152,219);">2.1 Base 2</span>** 

En binaire le principe reste le même qu'en base 10 , on à donc 0, 1 et quand la valeur maximum est atteinte, on incrémente.

<details id="bkmrk-valeurs-base-2-0-%3D0-"><summary>Valeurs base 2</summary>

0 =0

1 = 1

2 = 10

3 = 11

4 = 100

5 = 101

6 = 110

7 = 111

8 = 1000

9 = 1001

etc...

</details>Si de prime abord, cela peut ne pas sembler naturel, il s'agit juste de reproduire la même logique de comptage que la base 10, mais avec seulement 2 valeurs disponible.

---

### **<span style="text-decoration: underline;"><span style="color: rgb(35,111,161); text-decoration: underline;">III. l'Octet</span>  
</span>**

#### <span style="color: rgb(53,152,219);">**3.1 Construction**</span>

Heureusement, pour rendre tout cela plus lisible et car un bit seul ne fait pas sens dès lors qu'il s'agit de compter au delà de 1, on va regrouper ces bits par paquets. Ces packets sont appelés des <span style="color: rgb(132,63,161);">***registres***</span>.

Le registre le plus connu et celui qui sera courrament utilisé est l'<span style="color: rgb(132,63,161);">***octet***</span> (un paquet de 8 bits).

Basé sur ce principe on aura donc la représentation suivante : <span style="color: rgb(132,63,161);">***00000000***</span>

Et là encore, si cela paraît compliqué, il existe un moyen simple et mnémotechnique de se représenter facilement les valeurs en binaire.

En effet, le binaire à une particularité, pour chaque bit que l'on rajoute devant, on double les possibilité, ce qui fait que chaque bit a une valeur différente. Cela s’appelle un <span style="color: rgb(132,63,161);">***Poid***</span> de bit.

Pour se donner une bonne idée, voici la valeur de chaque bit dans un octet :

<table id="bkmrk-128-64-32-16-8-4-2-1" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

#### **<span style="color: rgb(53,152,219);">3.2 Conversion base 10 / Base 2</span>** 

Dès lors, pour convertir des nombres binaires en base 10 et de base 10 en binaire, cela deviens facile.

Il suffit d'additionner les valeurs de tous les bits égaux à 1. Ainsi,

<span style="color: rgb(132,63,161);">***01101011***</span> par exemple se note :

<table id="bkmrk-128-64-32-16-8-4-2-1-1" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">**1**  
</td><td style="height: 29.8px;">**1**  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">**1**  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">**1**  
</td><td style="height: 29.8px;">**1**  
</td></tr></tbody></table>

soit : 64 + 32 + 8 + 2 + 1 = <span style="color: rgb(132,63,161);">***107***</span>.

De la même manière, pour convertir un nombre en base 10 en binaire, il faudra additionner en partant de la droite les valeurs pour arriver à la somme du nombre que l'on veut et passer leurs valeurs à 1.

<span style="color: rgb(132,63,161);">***218***</span> par exemple se note :

<details id="bkmrk-d%C3%A9tail-de-l%27op%C3%A9ratio"><summary>Détail de l'opération</summary>

128 &lt; 218, donc on part avec 128 = 1.

<table id="bkmrk-128-64-32-16-8-4-2-1-2" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

128 + 64 = 192.

192 &lt; 218, le bit avec une valeur de 64 est donc à 1.

<table id="bkmrk-128-64-32-16-8-4-2-1-3" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

192+32 = 224.

224 &gt; 218 donc le bit avec une valeur de 32 est à 0. On passe à la valeur suivante.

<table id="bkmrk-128-64-32-16-8-4-2-1-4" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

192+16 = 208.

208 &lt; 218, donc le bit avec une valeur de 16 est à 1.

<table id="bkmrk-128-64-32-16-8-4-2-1-5" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

208+8 = 216.

216 &lt; 218, donc le bit avec une valeur de 8 est à 1.

<table id="bkmrk-128-64-32-16-8-4-2-1-6" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

216+4 = 220.

220 &gt; 218, donc le bit avec une valeur de 4 est à 0.

<table id="bkmrk-128-64-32-16-8-4-2-1-7" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

216+2 = 218.

218 = 218. On passe donc notre dernier bit (celui dont la valeur est 2) à 1. La valeur des bits restant à droite sera donc 0.

<table id="bkmrk-128-64-32-16-8-4-2-1-8" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td><td style="height: 29.8px; background-color: rgb(191,237,210);">**1**  
</td><td style="height: 29.8px; background-color: rgb(248,202,198);">0  
</td></tr></tbody></table>

</details><table id="bkmrk-128-64-32-16-8-4-2-1-9" style="border-collapse: collapse; width: 100%; height: 59.6px;"><colgroup><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col><col style="width: 12.5%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">**128**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**64**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**32**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**16**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**8**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**4**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**2**  
</td><td style="background-color: rgb(194,224,244); height: 29.8px;">**1**  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1  
</td><td style="height: 29.8px;">1  
</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">1  
</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0  
</td><td style="height: 29.8px;">1  
</td><td style="height: 29.8px;">0  
</td></tr></tbody></table>

<p class="callout info">**Note** : Si l'on additionne toutes les valeurs, le résultat est de 255. Par conséquent, si l'on doit traiter des nombres supérieurs à 255, on ajoutera simplement un octet devant, et l'on poursuivra le tableau de la manière suivante.</p>

<table id="bkmrk-32768-16384-8192-409" style="border-collapse: collapse; width: 100%; height: 95.05px;"><colgroup><col style="width: 51.3095%;"></col><col style="width: 48.6905%;"></col></colgroup><tbody><tr style="height: 66.25px;"><td style="border-style: hidden; height: 66.25px;"><table style="border-collapse: collapse; width: 102.228%;"><colgroup><col style="width: 14.6402%;"></col><col style="width: 14.1439%;"></col><col style="width: 13.1514%;"></col><col style="width: 12.6551%;"></col><col style="width: 12.4069%;"></col><col style="width: 12.1588%;"></col><col style="width: 10.4218%;"></col><col style="width: 9.92556%;"></col></colgroup><tbody><tr><td style="background-color: rgb(236,202,250);">32768  
</td><td style="background-color: rgb(236,202,250);">16384  
</td><td style="background-color: rgb(236,202,250);">8192  
</td><td style="background-color: rgb(236,202,250);">4096  
</td><td style="background-color: rgb(236,202,250);">2048  
</td><td style="background-color: rgb(236,202,250);">1024  
</td><td style="background-color: rgb(236,202,250);">512  
</td><td style="background-color: rgb(236,202,250);">256  
</td></tr></tbody></table>

</td><td style="border-style: hidden; height: 66.25px;"><table style="border-collapse: collapse; width: 100.374%;"><colgroup><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col><col style="width: 12.4533%;"></col></colgroup><tbody><tr><td style="background-color: rgb(194,224,244);">128  
</td><td style="background-color: rgb(194,224,244);">64  
</td><td style="background-color: rgb(194,224,244);">32  
</td><td style="background-color: rgb(194,224,244);">16  
</td><td style="background-color: rgb(194,224,244);">8  
</td><td style="background-color: rgb(194,224,244);">4  
</td><td style="background-color: rgb(194,224,244);">2  
</td><td style="background-color: rgb(194,224,244);">1  
</td></tr></tbody></table>

</td></tr><tr style="height: 28.8px;"><td class="align-center" style="border-style: hidden; height: 28.8px; vertical-align: top;">*octet 2*  
</td><td class="align-center" style="border-style: hidden; height: 28.8px; vertical-align: top;">*octet 1*  
</td></tr></tbody></table>

#### **<span style="color: rgb(53,152,219);">3.3 Les Échelles de tailles</span>** 

Partant du principe qu'un octet peut stocker toutes sortes de données et que les bits sont donc l'unité de mesure la plus petite, si l'on veut stocker plus de données, on sera donc obligé d'accoler des octets, ou utiliser des registres plus grands.

Au bout d'un moment, il faudra que nos échelles de mesures continuent d'avoir un sens.

Si on empile beaucoup d'octets, on ne va pas continuer à dire, la taille de ce bloc est de 1 228 283 219 233 274 272 octets.

Pour cela, sur le même principe que les tableau de conversion, on va utiliser d'autre échelles.

A l'instar des unités de mesures classiques (gramme, kilogramme) ( centimètre, mètre, kilomètre) il va falloir établir un tableau de conversion pour faire la mise à l'échelle.

Les unités sont donc les suivante :

- **bit** (unité)
- **octet** (8 bits)
- **KiloOctet** ou **Ko** (1024 octets)
- **MegaOctet** ou **Mo** (1024 Ko)
- **GigaOctet** ou **Go** (1024 Mo)
- **TéraOctet** ou **To** (1024 Go)
- **PétaOctet** ou **Po** (1024 To)

<p class="callout info">**Note** : A l'américaine, l'octet se dit <span style="color: rgb(132,63,161);">***Byte***</span>. Un equivalent est donc, le GigaByte ou Mega byte, etc... Notés : Kb, Mb, Gb, etc...</p>

<p class="callout success">**Trivia** : au dessus du péta, il y a l'Exa, le Zeta, le Yotta, Ronna, Quetta, ...</p>

---

### **<span style="text-decoration: underline;"><span style="color: rgb(35,111,161); text-decoration: underline;">IV. Les opérations en binaire</span>  
</span>**

#### <span style="color: rgb(53,152,219);">**4.1 Addition**</span>

Cela fonctionne plus ou moins comme une addition standard, avec les retenues.

Selon les principes suivants :

0 + 0 = 0

(0 + 1 ou 1+0) = 1

1+1 = 10 (équivalent de 2) Donc dans ce cas, l'on pose 0 et on retient 1.

Par exemple : <span style="color: rgb(132,63,161);">***00100101 + 10110010***</span> ( soit 37 + 178 )

<details id="bkmrk-d%C3%A9tail-de-l%27op%C3%A9ratio-1"><summary>Détail de l'opération</summary>

<table style="border-collapse: collapse; width: 100%; height: 795.05px;"><colgroup><col style="width: 47.2426%;"></col><col style="width: 52.7574%;"></col></colgroup><tbody><tr style="height: 172.45px;"><td style="height: 172.45px; border-style: hidden;"><table style="border-collapse: collapse; width: 95.2817%; height: 97px;"><tbody><tr><td style="width: 26.805%;">retenue</td><td style="width: 8.64678%;">  
</td><td style="width: 9.22323%;">  
</td><td style="width: 9.22323%;">  
</td><td style="width: 9.51146%;">  
</td><td style="width: 9.51146%;">  
</td><td style="width: 9.22323%;">  
</td><td style="width: 8.64678%;">  
</td><td style="width: 9.51146%; background-color: rgb(191,237,210);">  
</td></tr><tr><td style="width: 26.805%;">Nombre 1</td><td style="width: 8.64678%;">0</td><td style="width: 9.22323%;">0</td><td style="width: 9.22323%;">1</td><td style="width: 9.51146%;">0</td><td style="width: 9.51146%;">0</td><td style="width: 9.22323%;">1</td><td style="width: 8.64678%;">0</td><td style="width: 9.51146%; background-color: rgb(191,237,210);">1</td></tr><tr><td style="width: 26.805%;">Nombre 2</td><td style="width: 8.64678%;">1</td><td style="width: 9.22323%;">0</td><td style="width: 9.22323%;">1</td><td style="width: 9.51146%;">1</td><td style="width: 9.51146%;">0</td><td style="width: 9.22323%;">0</td><td style="width: 8.64678%;">1</td><td style="width: 9.51146%; background-color: rgb(191,237,210);">0</td></tr><tr><td style="width: 26.805%;">**Total**</td><td style="width: 8.64678%;">  
</td><td style="width: 9.22323%;">  
</td><td style="width: 9.22323%;">  
</td><td style="width: 9.51146%;">  
</td><td style="width: 9.51146%;">  
</td><td style="width: 9.22323%;">  
</td><td style="width: 8.64678%;">  
</td><td style="width: 9.51146%; background-color: rgb(191,237,210);">**1**</td></tr></tbody></table>

</td><td class="align-left" style="vertical-align: middle; height: 172.45px; border-style: hidden;">*On commence par la droite. 1+0 = 1, pas de retenue.*</td></tr><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 95.5563%;"><colgroup><col style="width: 26.4406%;"></col><col style="width: 8.62193%;"></col><col style="width: 8.91019%;"></col><col style="width: 8.62106%;"></col><col style="width: 8.90933%;"></col><col style="width: 8.90933%;"></col><col style="width: 8.90933%;"></col><col style="width: 11.2085%;"></col><col style="width: 9.19672%;"></col></colgroup><tbody><tr><td style="width: 26.8503%;">retenue</td><td style="width: 8.55668%;">  
</td><td style="width: 9.14679%;">  
</td><td style="width: 9.14679%;">  
</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">  
</td><td style="width: 7.96656%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">  
</td></tr><tr><td style="width: 26.8503%;">Nombre 1</td><td style="width: 8.55668%;">0</td><td style="width: 9.14679%;">0</td><td style="width: 9.14679%;">1</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">0</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">0</td><td style="width: 7.96656%; background-color: rgb(191,237,210);">1</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">0</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr><tr><td style="width: 26.8503%;">Nombre 2</td><td style="width: 8.55668%;">1</td><td style="width: 9.14679%;">0</td><td style="width: 9.14679%;">1</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">1</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">0</td><td style="width: 7.96656%; background-color: rgb(191,237,210);">0</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">0</td></tr><tr><td style="width: 26.8503%;">**Total**</td><td style="width: 8.55668%;">  
</td><td style="width: 9.14679%;">  
</td><td style="width: 9.14679%;">  
</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">0</td><td style="width: 7.96656%; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.44185%; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 155.65px;">*0 + 1 = 1, pas de retenue,*

*1 + 0 = 1, pas de retenue,*

*0 + 0 = 0, pas de retenue,*

*0 + 1 = 1, pas de retenue.*

</td></tr><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 96.1054%;"><colgroup><col style="width: 25.1417%;"></col><col style="width: 8.55981%;"></col><col style="width: 10.5821%;"></col><col style="width: 8.57102%;"></col><col style="width: 10.2852%;"></col><col style="width: 9.42812%;"></col><col style="width: 10.2852%;"></col><col style="width: 9.14242%;"></col><col style="width: 8.57102%;"></col></colgroup><tbody><tr><td style="width: 26.8503%;">retenue</td><td style="width: 8.55668%;">  
</td><td style="width: 9.14679%; background-color: rgb(194,224,244);">**<span style="color: rgb(53,152,219);">1</span>**</td><td style="width: 9.14679%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">  
</td></tr><tr><td style="width: 26.8503%;">Nombre 1</td><td style="width: 8.55668%;">0</td><td style="width: 9.14679%;">0</td><td style="width: 9.14679%; background-color: rgb(191,237,210);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr><tr><td style="width: 26.8503%;">Nombre 2</td><td style="width: 8.55668%;">1</td><td style="width: 9.14679%;">0</td><td style="width: 9.14679%; background-color: rgb(191,237,210);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">0</td></tr><tr><td style="width: 26.8503%;">**Total**</td><td style="width: 8.55668%;">  
</td><td style="width: 9.14679%;">  
</td><td style="width: 9.14679%; background-color: rgb(191,237,210);">**<span style="color: rgb(132,63,161);">0</span>**</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 155.65px;">*1 + 1 = 10. je pose **<span style="color: rgb(132,63,161);">0</span>** et je retiens **<span style="color: rgb(53,152,219);">1</span>**.*</td></tr><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 96.6546%;"><colgroup><col style="width: 24.4353%;"></col><col style="width: 8.80807%;"></col><col style="width: 10.2296%;"></col><col style="width: 8.23896%;"></col><col style="width: 9.94459%;"></col><col style="width: 10.2287%;"></col><col style="width: 9.66046%;"></col><col style="width: 8.80807%;"></col><col style="width: 9.37633%;"></col></colgroup><tbody><tr><td style="width: 26.8503%;">retenue</td><td style="width: 8.55668%;">  
</td><td style="width: 9.14679%; background-color: rgb(194,224,244);"><span style="color: rgb(35,111,161);">**1**</span></td><td style="width: 9.14679%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">  
</td></tr><tr><td style="width: 26.8503%;">Nombre 1</td><td style="width: 8.55668%;">0</td><td style="width: 9.14679%; background-color: rgb(236,202,250);"><span style="color: rgb(132,63,161);">0</span></td><td style="width: 9.14679%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr><tr><td style="width: 26.8503%;">Nombre 2</td><td style="width: 8.55668%;">1</td><td style="width: 9.14679%; background-color: rgb(251,238,184);">**<span style="color: rgb(230,126,35);">0</span>**</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">0</td></tr><tr><td style="width: 26.8503%;">**Total**</td><td style="width: 8.55668%;">  
</td><td style="width: 9.14679%; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 155.65px;">***<span style="color: rgb(35,111,161);">1 </span>**+ <span style="color: rgb(132,63,161);">0 </span>= <span style="color: rgb(22,145,121);">**1** </span>puis <span style="color: rgb(22,145,121);">**1** </span>+ **<span style="color: rgb(230,126,35);">0</span>** = **1**. Pas de retenue*

</td></tr><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 96.38%;"><colgroup><col style="width: 24.2142%;"></col><col style="width: 9.68413%;"></col><col style="width: 10.257%;"></col><col style="width: 9.40082%;"></col><col style="width: 9.97056%;"></col><col style="width: 9.68569%;"></col><col style="width: 9.11594%;"></col><col style="width: 8.83107%;"></col><col style="width: 9.11594%;"></col></colgroup><tbody><tr><td style="width: 26.8503%;">retenue</td><td style="width: 8.55668%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">1</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">  
</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">  
</td></tr><tr><td style="width: 26.8503%;">Nombre 1</td><td style="width: 8.55668%; background-color: rgb(191,237,210);">0</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">0</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr><tr><td style="width: 26.8503%;">Nombre 2</td><td style="width: 8.55668%; background-color: rgb(191,237,210);">1</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">0</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">0</td></tr><tr><td style="width: 26.8503%;">**Total**</td><td style="width: 8.55668%; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">1</td><td style="width: 9.14679%; background-color: rgb(45,194,107);">0</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">0</td><td style="width: 7.96656%; background-color: rgb(45,194,107);">1</td><td style="width: 9.44185%; background-color: rgb(45,194,107);">1</td><td style="width: 9.73691%; background-color: rgb(45,194,107);">1</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 155.65px;">*enfin, 0 + 1 = 1, pas de retenue.*

</td></tr></tbody></table>

</details><table id="bkmrk-1-nombre-1-0-0-1-0-0" style="border-collapse: collapse; width: 100%; height: 118.7px;"><colgroup><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col></colgroup><tbody><tr style="height: 29.3px;"><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">*1*</td><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">  
</td><td style="border-style: none; height: 29.3px;">  
</td></tr><tr style="height: 29.8px;"><td style="border-style: solid; height: 29.8px;">Nombre 1</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">1</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">1</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">1</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Nombre 2</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td></tr><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">TOTAL</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">0</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">0</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td></tr></tbody></table>

on a donc <span style="color: rgb(132,63,161);">***00100101 + 10110010***</span> = <span style="color: rgb(132,63,161);">***11010111***</span> ( soit 37 + 178 = 215 )

#### <span style="color: rgb(53,152,219);">**4.2 Soustraction**</span>

La soustraction est un peu plus complexe que l'addition, en effet il va faloir jongler sur les chiffres.

Selon les principes suivants :

0 - 0 = 0

1 - 1 = 0

1 - 0 = 1

0 - 1 = Ne peux pas directement être résolu, nécessite un emprunt.

Par exemple : <span style="color: rgb(132,63,161);">***10110010 -*** </span><span style="color: rgb(132,63,161);">***00100101***</span> ( soit 178 - 37 )

<details id="bkmrk-d%C3%A9tail-de-l%27op%C3%A9ratio-2"><summary>Détail de l'opération</summary>

<table style="border-collapse: collapse; width: 100%; height: 843.575px;"><colgroup><col style="width: 47.2961%;"></col><col style="width: 52.7296%;"></col></colgroup><tbody><tr style="height: 172.812px;"><td style="height: 172.812px; border-style: hidden;"><table style="border-collapse: collapse; width: 95.2116%; height: 97px;"><tbody><tr><td style="width: 26.7119%;">retenue</td><td style="width: 8.61673%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 8.61673%; background-color: rgb(191,237,210);"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; background-color: rgb(191,237,210);"><span style="color: rgb(186,55,42);">*10*</span></td></tr><tr><td style="width: 26.7119%;">Nombre 1</td><td style="width: 8.61673%;">1</td><td style="width: 9.19118%;">0</td><td style="width: 9.19118%;">1</td><td style="width: 9.47841%;">1</td><td style="width: 9.47841%;">0</td><td style="width: 9.19118%;">0</td><td style="width: 8.61673%; background-color: rgb(191,237,210);"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(191,237,210);"><s>0</s></td></tr><tr><td style="width: 26.7119%;">Nombre 2</td><td style="width: 8.61673%;">0</td><td style="width: 9.19118%;">0</td><td style="width: 9.19118%;">1</td><td style="width: 9.47841%;">0</td><td style="width: 9.47841%;">0</td><td style="width: 9.19118%;">1</td><td style="width: 8.61673%;">0</td><td style="width: 9.47841%; background-color: rgb(191,237,210);">1</td></tr><tr><td style="width: 26.7119%;">**Total**</td><td style="width: 8.61673%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 8.61673%;">  
</td><td style="width: 9.47841%; background-color: rgb(191,237,210);">**1**</td></tr></tbody></table>

</td><td class="align-left" style="vertical-align: middle; height: 172.812px; border-style: hidden;">*On commence par la droite. 0-1, emprunt à gauche.*

*On barre le 1 à gauche on le remplace par un <span style="color: rgb(186,55,42);">0</span>. (car 1-1=0)*

*On ajoute 2 soit <span style="color: rgb(186,55,42);">**10**</span><sub>2 </sub>en remplacement du 0 ce qui donne le calcul 2-1 = 1.*

</td></tr><tr style="height: 156.024px;"><td style="border-style: hidden; height: 156.024px;"><table style="border-collapse: collapse; width: 95.5563%;"><colgroup><col style="width: 26.3484%;"></col><col style="width: 8.30549%;"></col><col style="width: 8.87828%;"></col><col style="width: 8.87828%;"></col><col style="width: 9.16468%;"></col><col style="width: 9.16468%;"></col><col style="width: 8.87828%;"></col><col style="width: 11.4538%;"></col><col style="width: 8.30753%;"></col></colgroup><tbody><tr><td style="width: 26.8503%;">retenue</td><td style="width: 8.61673%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 8.61673%; background-color: rgb(191,237,210);"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">*10*</span></td></tr><tr><td style="width: 26.8503%;">Nombre 1</td><td style="width: 8.61673%;">1</td><td style="width: 9.19118%;">0</td><td style="width: 9.19118%;">1</td><td style="width: 9.47841%;">1</td><td style="width: 9.47841%;">0</td><td style="width: 9.19118%;">0</td><td style="width: 8.61673%; background-color: rgb(191,237,210);"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(45,194,107);"><s>0</s></td></tr><tr><td style="width: 26.8503%;">Nombre 2</td><td style="width: 8.61673%;">0</td><td style="width: 9.19118%;">0</td><td style="width: 9.19118%;">1</td><td style="width: 9.47841%;">0</td><td style="width: 9.47841%;">0</td><td style="width: 9.19118%;">1</td><td style="width: 8.61673%; background-color: rgb(191,237,210);">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107);">1</td></tr><tr><td style="width: 26.8503%;">**Total**</td><td style="width: 8.61673%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.47841%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 8.61673%; background-color: rgb(191,237,210);">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107);">**1**</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 156.024px;">*0 - 0 = 0 pas d'emprunt.*

</td></tr><tr style="height: 202.691px;"><td style="border-style: hidden; height: 202.691px;"><table style="border-collapse: collapse; width: 96.1054%; height: 119.514px;"><colgroup><col style="width: 25.8883%;"></col><col style="width: 8.5346%;"></col><col style="width: 9.95703%;"></col><col style="width: 9.10357%;"></col><col style="width: 9.67254%;"></col><col style="width: 9.38806%;"></col><col style="width: 9.67254%;"></col><col style="width: 8.5346%;"></col><col style="width: 9.38806%;"></col></colgroup><tbody><tr><td rowspan="2">retenues  
</td><td style="width: 8.61673%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.47841%;"><span style="color: rgb(186,55,42);">  
</span></td><td style="width: 9.47841%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 8.61673%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">  
</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">  
</span></td></tr><tr style="height: 29.8785px;"><td style="width: 8.61673%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.47841%; height: 29.8785px;"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; height: 29.8785px;"><s><span style="color: rgb(186,55,42);">*10*</span></s></td><td style="width: 9.19118%; height: 29.8785px;"> </td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;"><span style="color: rgb(186,55,42);">*10*</span></td></tr><tr style="height: 29.8785px;"><td style="width: 26.8503%; height: 29.8785px;">Nombre 1</td><td style="width: 8.61673%; height: 29.8785px;">1</td><td style="width: 9.19118%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">1</td><td style="background-color: rgb(236,202,250); height: 29.8785px;"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(251,238,184); height: 29.8785px;"><s>0</s></td><td style="background-color: rgb(251,238,184); height: 29.8785px;">0</td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;"><s>0</s></td></tr><tr style="height: 29.8785px;"><td style="width: 26.8503%; height: 29.8785px;">Nombre 2</td><td style="width: 8.61673%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">1</td><td style="width: 9.47841%; height: 29.8785px;">0</td><td style="width: 9.47841%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">1</td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;">1</td></tr><tr style="height: 29.8785px;"><td style="width: 26.8503%; height: 29.8785px;">**Total**</td><td style="width: 8.61673%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.47841%; height: 29.8785px;">  
</td><td style="width: 9.47841%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;"> </td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;">**1**</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 202.691px;">*0 - 1 non solvable sans emprunts.*

*Pas de 1 adjacent à gauche, on va donc devoir aller chercher le premier disponible pour l'emprunter.*

*on barre le 1 que l'on remplace par* <span style="color: rgb(224,62,45);">0</span> *(1-1=0). Puis on barre le 0 à sa droite pour remplacer par 2 soit <span style="color: rgb(224,62,45);">**10**</span><sub>2</sub>**.***

</td></tr><tr style="height: 156.024px;"><td style="border-style: hidden; height: 156.024px;"><table style="border-collapse: collapse; width: 96.6546%;"><colgroup><col style="width: 25.7599%;"></col><col style="width: 8.49229%;"></col><col style="width: 9.90767%;"></col><col style="width: 9.05844%;"></col><col style="width: 9.62459%;"></col><col style="width: 9.90767%;"></col><col style="width: 9.34152%;"></col><col style="width: 8.49229%;"></col><col style="width: 9.34152%;"></col></colgroup><tbody><tr><td rowspan="2">retenues  
</td><td style="width: 8.61673%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.19118%;">  
</td><td style="width: 9.47841%;"><span style="color: rgb(186,55,42);">  
</span></td><td style="width: 9.47841%;"><span style="color: rgb(224,62,45);">**1**</span></td><td style="width: 9.19118%; background-color: rgb(191,237,210);"><span style="color: rgb(224,62,45);">*10*</span></td><td style="width: 8.61673%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">  
</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">  
</span></td></tr><tr><td style="width: 8.61673%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.47841%; height: 29.8785px;"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; height: 29.8785px;"><s><span style="color: rgb(186,55,42);">*10*</span></s></td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);"> </td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;"><span style="color: rgb(186,55,42);">*10*</span></td></tr><tr><td style="width: 26.8503%; height: 29.8785px;">Nombre 1</td><td style="width: 8.61673%; height: 29.8785px;">1</td><td style="width: 9.19118%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">1</td><td style="background-color: rgb(236,202,250); height: 29.8785px;"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(251,238,184); height: 29.8785px;"><s>0</s></td><td style="background-color: rgb(191,237,210); height: 29.8785px;"><s>0</s></td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;"><s>0</s></td></tr><tr><td style="width: 26.8503%; height: 29.8785px;">Nombre 2</td><td style="width: 8.61673%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px;">1</td><td style="width: 9.47841%; height: 29.8785px;">0</td><td style="width: 9.47841%; height: 29.8785px;">0</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">1</td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;">1</td></tr><tr><td style="width: 26.8503%; height: 29.8785px;">**Total**</td><td style="width: 8.61673%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px;">  
</td><td style="width: 9.47841%; height: 29.8785px;">  
</td><td style="width: 9.47841%; height: 29.8785px;">  
</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">**1**  
</td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;">**1**</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 156.024px;">On continue à décaler. On soustrait 1 de 2 (<span style="color: rgb(224,62,45);">**10**</span><sub>2</sub>), il reste <span style="color: rgb(224,62,45);">**1**</span>.

Enfin, on reporte le 1 à droite et on exécute le calcul.

2 - 1 = 1.

</td></tr><tr style="height: 156.024px;"><td style="border-style: hidden; height: 156.024px;"><table style="border-collapse: collapse; width: 96.38%;"><colgroup><col style="width: 24.1007%;"></col><col style="width: 9.64026%;"></col><col style="width: 10.2073%;"></col><col style="width: 9.35673%;"></col><col style="width: 9.9238%;"></col><col style="width: 9.64026%;"></col><col style="width: 9.07319%;"></col><col style="width: 8.78965%;"></col><col style="width: 9.35673%;"></col></colgroup><tbody><tr><td rowspan="2">retenues  
</td><td style="width: 8.61673%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.19118%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.19118%; background-color: rgb(191,237,210);">  
</td><td style="width: 9.47841%; background-color: rgb(191,237,210);"><span style="color: rgb(186,55,42);">  
</span></td><td style="width: 9.47841%; background-color: rgb(191,237,210);"><span style="color: rgb(224,62,45);">**1**</span></td><td style="width: 9.19118%; background-color: rgb(45,194,107);"><span style="color: rgb(224,62,45);">*10*</span></td><td style="width: 8.61673%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">  
</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107);"><span style="color: rgb(186,55,42);">  
</span></td></tr><tr><td style="width: 8.61673%; height: 29.8785px; background-color: rgb(191,237,210);">  
</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">  
</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">  
</td><td style="width: 9.47841%; height: 29.8785px; background-color: rgb(191,237,210);"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; height: 29.8785px; background-color: rgb(191,237,210);"><s><span style="color: rgb(186,55,42);">*10*</span></s></td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(45,194,107);"> </td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;"><span style="color: rgb(186,55,42);">0</span></td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;"><span style="color: rgb(186,55,42);">*10*</span></td></tr><tr><td style="width: 26.8503%; height: 29.8785px;">Nombre 1</td><td style="width: 8.61673%; height: 29.8785px; background-color: rgb(191,237,210);">1</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">1</td><td style="background-color: rgb(191,237,210); height: 29.8785px;"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(191,237,210); height: 29.8785px;"><s>0</s></td><td style="background-color: rgb(45,194,107); height: 29.8785px;"><s>0</s></td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;"><s>1</s></td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;"><s>0</s></td></tr><tr><td style="width: 26.8503%; height: 29.8785px;">Nombre 2</td><td style="width: 8.61673%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">1</td><td style="width: 9.47841%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.47841%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(45,194,107);">1</td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;">1</td></tr><tr><td style="width: 26.8503%; height: 29.8785px;">**Total**</td><td style="width: 8.61673%; height: 29.8785px; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.47841%; height: 29.8785px; background-color: rgb(191,237,210);">0</td><td style="width: 9.47841%; height: 29.8785px; background-color: rgb(191,237,210);">**1**</td><td style="width: 9.19118%; height: 29.8785px; background-color: rgb(45,194,107);">**1**  
</td><td style="width: 8.61673%; background-color: rgb(45,194,107); height: 29.8785px;">0</td><td style="width: 9.47841%; background-color: rgb(45,194,107); height: 29.8785px;">**1**</td></tr></tbody></table>

</td><td style="vertical-align: middle; border-style: hidden; height: 156.024px;">*On continue ainsi :*

*1 - 0 = 1*

*0 - 0 = 0*

*1 - 1 = 0*

*1 - 0 = 1*

</td></tr></tbody></table>

</details><table id="bkmrk-1-nombre-1-0-0-1-0-0-1" style="border-collapse: collapse; width: 100%; height: 118.7px;"><colgroup><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col><col style="width: 11.0714%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="border-style: solid; height: 29.8px;">Nombre 1</td><td style="border-style: solid; height: 29.8px;">1</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">1</td><td style="border-style: solid; height: 29.8px;">1</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">0</td><td style="border-style: solid; height: 29.8px;">1</td><td style="border-style: solid; height: 29.8px;">0</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Nombre 2</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td></tr><tr style="height: 29.8px;"><td style="background-color: rgb(194,224,244); height: 29.8px;">TOTAL</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">0</td><td style="background-color: rgb(194,224,244); height: 29.8px;">0</td><td style="background-color: rgb(194,224,244); height: 29.8px;">0</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td><td style="background-color: rgb(194,224,244); height: 29.8px;">0</td><td style="background-color: rgb(194,224,244); height: 29.8px;">1</td></tr></tbody></table>

on a donc <span style="color: rgb(132,63,161);">***10110010 -*** </span><span style="color: rgb(132,63,161);">***00100101*** </span>= <span style="color: rgb(132,63,161);">***10001101***</span> ( soit 178 - 37 = 141 )

---

### **<span style="text-decoration: underline;">V. Les fonctions binaires</span>**

Les fonctions en binaire ne sont pas des opérations à proprement parler mais le résultat d'un test livré par ce que l'on appelle en informatique et en électronique une porte logique.

#### **5.1 AND (et)**

<table id="bkmrk-0-0-0-0-1-0-1-0-0-1-" style="border-collapse: collapse; width: 100%; height: 155.65px;"><colgroup><col style="width: 16.9048%;"></col><col style="width: 83.0952%;"></col></colgroup><tbody><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 24.2574%; height: 119.2px;"><colgroup><col style="width: 30.2781%;"></col><col style="width: 35.3674%;"></col><col style="width: 35.3476%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">0</td><td style="height: 29.8px;">0</td><td style="height: 29.8px; background-color: rgb(194,224,244);">0</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px; background-color: rgb(194,224,244);">0</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px; background-color: rgb(194,224,244);">0</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1</td><td style="height: 29.8px;">1</td><td style="height: 29.8px; background-color: rgb(194,224,244);">1</td></tr></tbody></table>

</td><td class="align-left" style="border-style: hidden; height: 155.65px; vertical-align: middle;">*Le résultat de la condition est vrai uniquement si les deux termes sont vrais.*

</td></tr></tbody></table>

#### **5.2 OR (ou)**

<table id="bkmrk-0-0-0-0-1-1-1-0-1-1-" style="border-collapse: collapse; width: 100%; height: 155.65px;"><colgroup><col style="width: 16.9048%;"></col><col style="width: 83.0952%;"></col></colgroup><tbody><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 24.2574%; height: 119.2px;"><colgroup><col style="width: 30.2781%;"></col><col style="width: 35.3674%;"></col><col style="width: 35.3476%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">0</td><td style="height: 29.8px;">0</td><td style="height: 29.8px; background-color: rgb(194,224,244);">0</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px; background-color: rgb(194,224,244);">1</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px; background-color: rgb(194,224,244);">1</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1</td><td style="height: 29.8px;">1</td><td style="height: 29.8px; background-color: rgb(194,224,244);">1</td></tr></tbody></table>

</td><td class="align-left" style="border-style: hidden; height: 155.65px; vertical-align: middle;">*Le résultat de la condition est vrai si au moins l'un des deux termes est vrai.*

</td></tr></tbody></table>

#### **5.3 XOR (ou exclusif)**

<table id="bkmrk-0-0-0-0-1-1-1-0-1-1--1" style="border-collapse: collapse; width: 100%; height: 155.65px;"><colgroup><col style="width: 16.9048%;"></col><col style="width: 83.0952%;"></col></colgroup><tbody><tr style="height: 155.65px;"><td style="border-style: hidden; height: 155.65px;"><table style="border-collapse: collapse; width: 24.2574%; height: 119.2px;"><colgroup><col style="width: 30.2781%;"></col><col style="width: 35.3674%;"></col><col style="width: 35.3476%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">0</td><td style="height: 29.8px;">0</td><td style="height: 29.8px; background-color: rgb(194,224,244);">0</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">0</td><td style="height: 29.8px;">1</td><td style="height: 29.8px; background-color: rgb(194,224,244);">1</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1</td><td style="height: 29.8px;">0</td><td style="height: 29.8px; background-color: rgb(194,224,244);">1</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">1</td><td style="height: 29.8px;">1</td><td style="height: 29.8px; background-color: rgb(194,224,244);">0</td></tr></tbody></table>

</td><td class="align-left" style="border-style: hidden; height: 155.65px; vertical-align: middle;">*Le résultat de la condition est vrai seulement si l'un des deux terme est vrai.*

</td></tr></tbody></table>

<p class="callout success">**Trivia** : c'est ce système là qui va être utilisé pour calculé des bits de parité. Dans les matrices RAID par exemple.</p>

Pour aller plus loin : [Wikipedia | Tables de vérité](https://fr.wikipedia.org/wiki/Table_de_v%C3%A9rit%C3%A9)

---

### **<span style="text-decoration: underline;">VI. Conclusion</span>**

Au sein de l'ordinateur, tout est binaire. De la donnée écrite sur les supports de stockage, jusqu'à l'information transitant par le réseau, en passant par les opérations processeurs et le contenu de la mémoire.

Nous manipulons juste de moins en moins ce type de contenu au fil de l'évolution des langages informatiques et de programmation.

Mais il est cependant important de comprendre (au moins en théorie) comment fonctionne l'informatique sur sa couche la plus basique.

# Hardware - Le RAID

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![intermédiaire.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/mTHintermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/mTHintermediaire-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : RAID, Stockage, volumes, sécurité matérielle.

</td></tr></tbody></table>

---

### **<span style="text-decoration: underline;"><span style="color: rgb(52,73,94); text-decoration: underline;">I.Notions Importantes</span>  
</span>**

Le RAID ou ‘***<span style="color: rgb(132,63,161);">Redondant Array of Independant Disk</span>***’ consiste a prendre plusieurs supports de stockage indépendant (HDD, SSD,NVME) et les assembler en un volume virtuel dans le but d’améliorer la performance, la capacité et/ou la tolérance à la panne.

<p class="callout warning">Le RAID ne remplace pas la sauvegarde !!!</p>

- Le but du RAID est avant tout de fournir une extension de capacité de volume et/ou une redondance de disque. Ce qui rendra la machine tolérante à la panne d’un ou plusieurs disques. Mais il ne s’agit en aucun cas d’une sauvegarde et une donnée perdue au sein du volume l’est pour de bon.
- Sur les RAID apportant une tolérance à la panne, si un disque tombe en panne, celui-ci peut être remplacé. Le volume commencera alors automatiquement une reconstruction de volume.
- Durant une reconstruction, le système **<span style="color: rgb(132,63,161);">n’est plus</span> <span style="color: rgb(132,63,161);">tolérant à la panne</span>** jusqu’à la fin de la reconstruction. Toute nouvelle défaillance durant cette période entrainera la perte des données.

<p class="callout info">Il est fortement recommandé de prendre des disques de même performance et capacité.</p>

- En effet, lorsque les disques seront agrégés ensemble dans un volume, l’ensemble des disques ajusteront leurs performances sur celui qui a la plus basse disponible. Cela s’explique par la nécessité d’utiliser simultanément plusieurs disques, ce qui ne peut se faire que si tous les disques ont la même vitesse de lecture/écriture. Sinon il y aurait un risque de désynchronisation.
- Concernant la capacité, il s’agit a peu prés de la même raison. Si un disque est plein avant les autres, les données ne pourront théoriquement plus être écrites que sur les disques où il reste de l’espace libre. Or le but recherché ici est d’avoir une redondance des données ou d’agréger ensemble des volumes.

<div class="ak-editor-panel css-d4tzhg" id="bkmrk--0"></div><p class="callout success">Pour ajouter un niveau de sécurité en plus, il est conseillé de prendre des disques provenant de lots différents.</p>

- En effet, des disques provenant tous du même lot et du même constructeur auront statistiquement la même chance de tomber en panne. Or la plupart des types de RAID classiques ne tolèrent qu’une seule panne. Ainsi, choisir des disques provenant de lots différents et donc n’ayant pas été fabriqués au même moment réduira le risque d’avoir une panne simultanée de plusieurs disques, ce qui entrainerai la perte des données du volume.

---

### **<span style="text-decoration: underline;"><span style="color: rgb(52,73,94); text-decoration: underline;">II. Raid matériel vs raid logiciel</span>  
</span>**

#### **<span style="color: rgb(35,111,161);">2.1 Raid matériel</span>** 

Ce type de RAID fait appel a une carte contrôleur matérielle dédiée. La carte est ajoutée au serveur et les disques sont branchés dessus.

Le principal avantage de cette méthode est que la carte dédiée dispose de son propre processeur, mémoire et stockage pour faire la mise en cache des données et les calculs de lecture ou écriture. Le volume RAID est directement présenté au système.

Celui-ci n’a donc pas a gérer les calculs liés a la répartition des blocs et toute la puissance de calcul de la machine peut être exploitée par le système.

Convient à des environnements de production.

<table id="bkmrk-colonne-1-colonne-2-" style="border-collapse: collapse; width: 94.6914%; height: 59.6px;"><colgroup><col style="width: 37.9896%;"></col><col style="width: 18.4099%;"></col><col style="width: 43.6006%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(191,237,210); height: 29.8px; border-style: hidden;">**Pours :**</td><td style="border-style: hidden;">  
</td><td style="background-color: rgb(248,202,198); height: 29.8px; border-style: hidden;">**Contres :**</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px; background-color: rgb(191,237,210); border-style: hidden;">- Plus performant que le raid logiciel.
- Ne sollicite pas la puissance de calcul.
- Indépendant du système d’exploitation.

</td><td style="border-style: hidden;">  
</td><td style="height: 29.8px; background-color: rgb(248,202,198); border-style: hidden;">- Plus coûteux (achat d’une carte dédiée).

</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**2.2 Raid logiciel**</span>

Ce type de RAID est géré par le système. Cela le rend indépendant du Hardware mais l’absence de matériel dédié implique que les calculs doivent être gérés par le système. Utilisant donc le processeur, la mémoire et le cache des disques pour réaliser les calculs et impactant donc les performances systèmes.

Il faut donc prévoir plus de puissance que nécessaire pour compenser la baisse de performance.

Cependant, en cas de panne totale ou changement du matériel, l’ensemble du matériel peut être remplacé sans problème. Ce qui n’est pas forcément toujours le cas sur du RAID matériel (si la carte RAID lâche par exemple).

Plus adapté a un usage sur les postes de travail ou un usage domestique.

<table id="bkmrk-pours-%3A-contres-%3A-mo" style="border-collapse: collapse; width: 94.6914%; height: 99.85px;"><colgroup><col style="width: 37.9896%;"></col><col style="width: 18.4099%;"></col><col style="width: 43.6006%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(191,237,210); height: 29.8px; border-style: hidden;">**Pours :**</td><td style="border-style: hidden; height: 29.8px;">  
</td><td style="background-color: rgb(248,202,198); height: 29.8px; border-style: hidden;">**Contres :**</td></tr><tr style="height: 70.05px;"><td style="height: 70.05px; background-color: rgb(191,237,210); border-style: hidden;">- Moins coûteux.
- indépendant du matériel.

</td><td style="border-style: hidden; height: 70.05px;">  
</td><td style="height: 70.05px; background-color: rgb(248,202,198); border-style: hidden;">- impacte les performances.

</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**2.3 Raid Pseudo-matériel**</span>

C’est un hybride des deux modes ci-dessus. Un contrôleur RAID est intégré à la carte mère et le système pourra s’appuyer dessus pour contrôler le RAID. Cependant, celui-ci reste géré logiciellement .

L’avantage de ce mode est surtout pour les PC de bureau. Beaucoup de cartes mères haut de gamme disposent de cette option et cela permet de mettre en place un RAID a moindre coût.

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**III. Principaux types de raid**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Raid 0 - Striping**</span>

<p class="callout danger">Prérequis : 2 disques ou plus.</p>

Le RAID 0 ou ‘**<span style="color: rgb(132,63,161);"><span class="fabric-text-color-mark">striping</span></span>**' est le niveau le plus basique de RAID.

Il s’agit tout simplement de prendre tous des disques participant et de les mettre ensemble pour présenter un seul gros volume au système. Permettant ainsi de cumuler les capacité des disques et d’exploiter en parallèle leurs bandes passantes. Améliorant très significativement les performances lors de la la lecture ou écriture des données.

![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/5luimage-png.png)*Source : amenschool*

<p class="callout info">espace exploitable : Total des disques.</p>

Dans ce cas, deux disques de 500Go par exemples seront vu comme un volume logique de 1To (2\*500Go)

<table id="bkmrk-pours-%3A-contres-%3A-tr" style="border-collapse: collapse; width: 94.6914%; height: 99.85px;"><colgroup><col style="width: 40.5476%;"></col><col style="width: 15.7757%;"></col><col style="width: 43.5463%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(191,237,210); height: 29.8px; border-style: hidden;">**Pours :**</td><td style="border-style: hidden; height: 29.8px;">  
</td><td style="background-color: rgb(248,202,198); height: 29.8px; border-style: hidden;">**Contres :**</td></tr><tr style="height: 70.05px;"><td style="height: 70.05px; background-color: rgb(191,237,210); border-style: hidden;">- Très performant.
- Permet de disposer de gros volumes.
- Capacité maximale.

</td><td style="border-style: hidden; height: 70.05px;">  
</td><td style="height: 70.05px; background-color: rgb(248,202,198); border-style: hidden;">- N’offre aucune sécurité.

</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**3.2 Raid 1 - Mirroring**</span>

<p class="callout danger">Prérequis : 2 disques</p>

<p class="callout info">Maximum : 32 <span class="fabric-text-color-mark">\*</span>*<span class="fabric-text-color-mark">voir RAID Combiné 0+1</span>*</p>

Le Raid 1 ou ‘*<span style="color: rgb(132,63,161);">**<span class="fabric-text-color-mark">mirroring</span>**</span>*’ consiste a prendre un disque et en faire un ‘miroir’ sur un second disque.

Chaque donnée est ainsi écrite en double, une fois sur le disque 1 et une fois sur le disque 2.

Bien que cela soit une perte nette de capacité, le système devient ainsi redondant et donc tolérant a la panne d’un des deux disques.

En situation normale, les données seront lues à partir des deux disques, augmentant ainsi les performances en lecture.

L'écriture en double de toute données quand à elle, diminue légèrement les performances en écriture.

La tolérance a la panne est de 1 disque.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/0Jkimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/0Jkimage-png.png)*Source : amenschool*

<p class="callout info">espace exploitable : Total des disques / 2</p>

Dans ce cas, deux disques de 500Go par exemples seront vu comme un volume logique de 500Go

<table id="bkmrk-pours-%3A-contres-%3A-s%C3%A9" style="border-collapse: collapse; width: 94.6914%; height: 99.85px;"><colgroup><col style="width: 40.5476%;"></col><col style="width: 15.7757%;"></col><col style="width: 43.5463%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(191,237,210); height: 29.8px; border-style: hidden;">**Pours :**</td><td style="border-style: hidden; height: 29.8px;">  
</td><td style="background-color: rgb(248,202,198); height: 29.8px; border-style: hidden;">**Contres :**</td></tr><tr style="height: 70.05px;"><td style="height: 70.05px; background-color: rgb(191,237,210); border-style: hidden;">- Sécurisé (perte 1 disque).
- Idéal pour un disque système.

</td><td style="border-style: hidden; height: 70.05px;">  
</td><td style="height: 70.05px; background-color: rgb(248,202,198); border-style: hidden;">- Seule la moitié de la capacité est utilisable.

</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**3.3 Raid 5 - Striping with parity Across drives**</span>

<p class="callout danger">Prérequis : 3 disques minimum</p>

<p class="callout info">Maximum : 32 (dépendant du contrôleur utilisé)</p>

Le RAID 5 utilise un algorithme combinant les avantages des deux niveaux de RAID précédents, bien que fonctionnant de manière totalement différente.

En effet, dans ce mode de fonctionnement, les données seront constituées en blocs.

Chaque bloc sera coupé en deux et un bloc de parité sera créé et placé sur un autre disque que ceux contenant les demi blocs.

Sur le schéma suivant, le bloc A est coupé en deux blocs A1 et A2 placés chacun sur un disque puis un bloc de parité P est créé et placé sur le disque 3.

Le bit de parité est ensuite décalé et ainsi de suite de sorte a ce qu’un disque ne contienne pas uniquement les blocs de parités. Ce qui optimise l’espace utilisable.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/93gimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/93gimage-png.png)*Source : amenschool*

<details id="bkmrk-pour-aller-plus-loin"><summary>Pour aller plus loin</summary>

Pour aller plus loin, l’opération faite sur les blocs au niveau binaire est un XOR.

Table XOR :

<div class="ak-editor-panel__content"><div class="ak-editor-panel__content">- 0 xor 0 = 0
- 0 xor 1 = 1
- 1 xor 0 = 1
- 1 xor 1 = 1

</div></div>Ce qui donne par exemple : bloc initial 0110110111010100

Bloc1 (disque 1) = 01101101

Bloc 2 (disque 2) = 11010100

Bloc de parité (disque 3) = 10111001

</details><p class="callout info">espace exploitable : Capacité Totale des disques - Capacité de 1 disque</p>

Dans ce cas, trois disques de 500Go. la capacité utilisable est donc (500\*3)-500 = 1To

<table id="bkmrk-pours-%3A-contres-%3A-s%C3%A9-0" style="border-collapse: collapse; width: 94.6914%; height: 99.85px;"><colgroup><col style="width: 44.3286%;"></col><col style="width: 11.9948%;"></col><col style="width: 43.5463%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(191,237,210); height: 29.8px; border-style: hidden;">**Pours :**</td><td style="border-style: hidden; height: 29.8px;">  
</td><td style="background-color: rgb(248,202,198); height: 29.8px; border-style: hidden;">**Contres :**</td></tr><tr style="height: 70.05px;"><td style="height: 70.05px; background-color: rgb(191,237,210); border-style: hidden;">- Sécurisé (perte 1 disque).
- Idéal pour un disque de données.
- Bon compromis entre capacité et fiabilité.

</td><td style="border-style: hidden; height: 70.05px;">  
</td><td style="height: 70.05px; background-color: rgb(248,202,198); border-style: hidden;">- perte de capacité équivalente à 1 disque
- impact sur les performances

</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**3.4 Raid 6 - Striping with dual parity Across drives**</span>

<p class="callout danger">Prérequis : 4 disques minimum</p>

<p class="callout info">Maximum : 32 (dépendant du contrôleur utilisé)</p>

Le RAID 6 fonctionne sur le même principe que le RAID 5 mais améliore néanmoins celui-ci en redondant le bloc de parité, ce qui augmente la tolérance à la panne.

![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/1x9image-png.png)*Source : amenschool*

<p class="callout info">espace exploitable : Capacité Total des disques - Capacité de 2 disque</p>

Dans ce cas, quatre disques de 500Go. La capacité utilisable est (500\*4)-(2\*500)=1To

<table id="bkmrk-pours-%3A-contres-%3A-s%C3%A9-1" style="border-collapse: collapse; width: 94.6914%; height: 99.85px;"><colgroup><col style="width: 44.3286%;"></col><col style="width: 11.9948%;"></col><col style="width: 43.5463%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="background-color: rgb(191,237,210); height: 29.8px; border-style: hidden;">**Pours :**</td><td style="border-style: hidden; height: 29.8px;">  
</td><td style="background-color: rgb(248,202,198); height: 29.8px; border-style: hidden;">**Contres :**</td></tr><tr style="height: 70.05px;"><td style="height: 70.05px; background-color: rgb(191,237,210); border-style: hidden;">- Sécurité exceptionnelle (2 disques).
- Idéal pour volume de stockage infra.

</td><td style="border-style: hidden; height: 70.05px;">  
</td><td style="height: 70.05px; background-color: rgb(248,202,198); border-style: hidden;">- Seule la moitié de la capacité est utilisable.
- Coûteux

</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**3.5 Autres types de RAID**</span>

Il existe d’autres types de RAID assez exotiques, comme le RAID 3, 4, RAIDn ou RAIDdp

Pour des renseignement exhaustif sur le RAID : [https://fr.wikipedia.org/wiki/RAID\_(informatique)](https://fr.wikipedia.org/wiki/RAID_(informatique))

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**IV. Combiner les niveaux de RAID**</span>

Il est possible de combiner plusieurs Type de RAID entre eux pour tirer le maximum de performance ou de sécurité de ceux-ci. Cependant, ces solutions sont assez peu répandues à moins d’avoir un besoin spécifique car elles deviennent rapidement très coûteuses.

La notation se fera alors de la façon suivante :

01 ou 0+1 = un RAID 1 de volumes en RAID 0

10 ou 1+0 = un RAID 0 de volumes en RAID 1

#### <span style="color: rgb(35,111,161);">**4.1 Le RAID 0+1**</span>

<p class="callout danger">Prérequis : 4 disques minimum</p>

<p class="callout info">Maximum : 32 (dépendant du contrôleur utilisé)</p>

Il s’agit de prendre plusieurs volumes en ‘<span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">striping</span>***</span>’ et de les ‘<span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">mirorer</span>***</span>’ entre eux.

Ce qui permet d’agréger ensemble plusieurs volumes pour présenter un gros volume, qui sera ensuite lui-même mis en miroir sur un autre agrégat équivalent.

Dans ce niveaux, même sir une grappe RAID 0 peut être perdue, on vise avant tout les volumes de grosses capacité.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/xvOimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/xvOimage-png.png)*Source : amenschool*

<p class="callout info">espace exploitable : Capacité totale des disques / 2</p>

Dans ce cas, quatre disques de 500Go. La capacité utilisable est (500\*4)/2=1To

#### <span style="color: rgb(35,111,161);">**4.2 Le RAID 1+0**</span>

<p class="callout danger">Prérequis : 4 disques minimum</p>

<p class="callout info">Maximum : 32 (dépendant du contrôleur utilisé)</p>

Il s’agit de l’inverse du RAID 01. Au lieu d’agréger des disques et de les ‘<span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">mirorer</span>***</span>’ ensuite. On agrégera une série de disques en miroirs. Cela permet de répartir différemment les pertes de disques au sein des grappes.

Ce niveau de RAID est extrêmement fiable car il faut qu’une grappe entière soit défectueuse avant de perdre les données.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/bjAimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/bjAimage-png.png)*Source : amenschool*

<p class="callout info">espace exploitable : Capacité totale des disques / 2</p>

Dans ce cas, quatre disques de 500Go. La capacité utilisable est (500\*4)/2=1To

#### <span style="color: rgb(35,111,161);">**4.3 Autres exemples**</span>

<table border="1" id="bkmrk-source-%3A-storage-ins" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><tbody><tr><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/HdBimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/HdBimage-png.png)</td><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/89yimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/89yimage-png.png)</td></tr><tr><td class="align-center" colspan="2" style="border-style: none;">*source : Storage-insider*</td></tr><tr><td colspan="2" style="border-style: none;">  
</td></tr><tr><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/n59image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/n59image-png.png)</td><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/VBXimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/VBXimage-png.png)</td></tr><tr><td class="align-center" colspan="2" style="border-style: none;">*Source : recoverhdd.com*</td></tr></tbody></table>

# Hardware - Un ordinateur

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![Débutant.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Z1Vdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Z1Vdebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : ordinateur, composants.

</td></tr></tbody></table>

---

### <span style="color: rgb(35,111,161);">**<span style="text-decoration: underline;">I.Introduction</span>**</span>

Un ordinateur est défini comme étant une machine automatique de traitement de l'information, obéissant à des programmes formés par des suites d'opérations arithmétiques et logiques.

Est considéré comme ordinateur tout système possédant les caractéristiques suivantes :

- Effectuer des calculs et opérations préprogrammées.
- Stocker des informations.
- Avoir une capacité de mise en réseau.

<p class="callout info">lien utile : [https://fr.wikipedia.org/wiki/Ordinateur](https://fr.wikipedia.org/wiki/Ordinateur)  
</p>

---

### <span style="color: rgb(35,111,161);">**<span style="text-decoration: underline;">II. Différents Types d'ordinateurs</span>**</span>

<table id="bkmrk-fixe-%28desktop%29-porta" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nrIimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nrIimage-png.png)

</td><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/urfimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/urfimage-png.png)

</td><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TaWimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TaWimage-png.png)

</td></tr><tr><td class="align-center" style="border-style: hidden;">*Fixe (desktop)*  
</td><td class="align-center" style="border-style: hidden;">*Portable (laptop)*  
</td><td class="align-center" style="border-style: hidden;">*Tablette*  
</td></tr></tbody></table>

<table id="bkmrk-serveur-tour-serveur" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DMqimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DMqimage-png.png)

</td><td style="border-style: hidden; vertical-align: bottom;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jd9image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jd9image-png.png)

</td><td style="border-style: hidden; vertical-align: bottom;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/C1Simage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/C1Simage-png.png)

</td></tr><tr><td class="align-center" style="border-style: hidden;">*Serveur tour*  
</td><td class="align-center" style="border-style: hidden;">*Serveur rackable*  
</td><td class="align-center" style="border-style: hidden;">*Micro ordinateur*  
</td></tr></tbody></table>

Il existe également des “Barebones” qui sont des bases dites “nues” et sans OS pour créer un système personnalisé. Le coût de ceux-ci sont relativement bas, mais il faut prévoir d’ajouter un OS voire certaines pièces.

<table id="bkmrk-barebone-pc-barebone" style="border-collapse: collapse; width: 100%; height: 207.188px;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr style="height: 178.391px;"><td style="border-style: hidden; height: 178.391px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/oAGimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/oAGimage-png.png)

</td><td style="border-style: hidden; height: 178.391px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/cePimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/cePimage-png.png)

</td><td style="border-style: hidden; height: 178.391px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/CV4image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/CV4image-png.png)

</td></tr><tr style="height: 28.7969px;"><td class="align-center" style="border-style: hidden; height: 28.7969px;">*Barebone PC*  
</td><td class="align-center" style="border-style: hidden; height: 28.7969px;">*Barebone Stockage*  
</td><td class="align-center" style="border-style: hidden; height: 28.7969px;">*Barebone réseau*  
</td></tr></tbody></table>

---

### <span style="text-decoration: underline; color: rgb(35,111,161);">**III. Les composants**</span>

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/xTrimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/xTrimage-png.png)

# Infrastructure

Notions théorique liées à l'infrastructure.

# Infrastructure - La virtualisation

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/rAYintermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/rAYintermediaire-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : Hyperviseurs

</td></tr></tbody></table>

---


### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

La virtualisation est une technologie qui permet d'exécuter plusieurs systèmes d'exploitations et environnements isolés sur une même machine physique. Optimisant ainsi l'utilisation du matériel et améliorant la flexibilité et la 'scalabilité' des infrastructures informatiques.

Les hyperviseurs sont aujourd'hui devenu un élément essentiel des infrastructures informatiques.

En effet, traditionnellement dans l'informatique, un serveur est une machine physique où l'on va installer un système d'exploitation et des rôles ou des fonctionnalités pour fournir un service aux utilisateurs. Mais avec l'arrivée de la virtualisation, il est devenu possible de détacher les serveurs et services de l'aspect matériel.

Cela apporte certains avantages :

- Réduction des coûts 
    - Réduction des coûts liés au matériel.
    - Simplification de la maintenance et des déploiement.

- Flexibilité 
    - Les machines peuvent être rapidement déployées ou détruites pour suivre l'évolution du besoin.
    - Elles peuvent être clonées, déplacées sur d'autres matériels physiques ou sites distants.
    - On peut faire évoluer leur matériel afin d'ajuster leurs performances.
    - Création rapide d’environnements de tests ou de formation.

- Consolidation 
    - Les machines peuvent être regroupées sur un seul serveur.
    - Avec la haute disponibilité, amélioration de de la disponibilité des services.

<p class="callout info">**Info** : La virtualisation se démarque de l'émulation dans le fait qu'elle permet de faire fonctionner des machines complètes incluant l'OS et le matériel virtualisé associé, là où l'émulation reproduit logiciellement un matériel différent.</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Les types d'hyperviseur</span>**</span>


#### **<span style="color: rgb(35,111,161);">2.1 Hyperviseurs de type 1</span>**

Les hyperviseur de type 1, aussi appelé <span style="color: rgb(132,63,161);">***Bare-metal***</span>, sont des hyperviseurs installés directement sur le matériel.

<div drawio-diagram="112"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1770129804-png.png" alt="drawing-1-1770129804.png"/></div>

*Par exemple : VMware ESXi, Hyper-V, Proxmox VE, Xen...*

Cela convient particulièrement à des infrastructures de production.

<table id="bkmrk-colonne-1-colonne-2-" style="width: 100.714%; height: 153.016px;"><colgroup><col style="width: 34.3266%;"></col><col style="width: 30.2741%;"></col><col style="width: 35.3993%;"></col></colgroup><tbody><tr style="height: 76.5px;"><td rowspan="2" style="border-style: none; background-color: rgb(191,237,210); height: 153.016px;">**Pours :**  
- Performances élevées
- Meilleure isolation
- Fiabilité pour la production
- Possibilité de paramétrer de la haute disponibilité

</td><td style="border-style: none; height: 76.5px;">  
</td><td rowspan="2" style="border-style: none; height: 153.016px; background-color: rgb(248,202,198);">**Contres :**  
- Plus coûteux (achats de licences).
- Nécessite du matériel spécifique aux performances élevées.
- Nécessite de solides compétences pour une bonne mise en oeuvre.

</td></tr><tr style="height: 76.5156px;"><td style="border-style: none; height: 76.5156px;">  
</td></tr></tbody></table>

#### **<span style="color: rgb(35,111,161);">2.2 Hyperviseurs de type 2</span>**

Les hyperviseur de type 2, aussi appelé <span style="color: rgb(132,63,161);">***Hyperviseur hébergés***</span>, sont des hyperviseurs installés comme un logiciel ou un service par dessus un système hôte existant.

<div drawio-diagram="113"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1770202249-png.png" alt="drawing-1-1770202249.png"/></div>

*Par exemple : VMware workstation, VirtualBox, Parallels...*

Cela convient particulièrement à des environnements de développement, tests ou prototypage.

<table id="bkmrk-pours-%3A-simple-%C3%A0-ins" style="width: 100.714%; height: 154px;"><colgroup><col style="width: 34.3266%;"></col><col style="width: 30.2741%;"></col><col style="width: 35.3993%;"></col></colgroup><tbody><tr style="height: 77.5px;"><td rowspan="2" style="border-style: none; background-color: rgb(191,237,210); height: 154px;">**Pours :**  
- Simple à installer
- Simple à prendre en main
- Idéal sur poste de travail

</td><td style="border-style: none; height: 77.5px;">  
</td><td rowspan="2" style="border-style: none; height: 154px; background-color: rgb(248,202,198);">**Contres :**  
- Moins d'isolation par rapport au système hôte.
- Moins performant.
- Moins fiables.
- Fonctionnalités réduites.

</td></tr><tr style="height: 76.5px;"><td style="border-style: none; height: 76.5px;">  
</td></tr></tbody></table>

#### **<span style="color: rgb(35,111,161);">2.3 Choisir son hyperviseur</span>**

En définitive, le choix de l'hyperviseur dépend avant tout de son usage de destination.

Si l'objectif est de monter une infrastructure de production avec une bonne redondance, choisir le type 1.

Sinon, si l'objectif est de disposer d’environnements de tests à des fins de développement ou de prototypage de solutions, privilégier un type 2.

<div class="b_rd_tfil-ajaxCompleted" id="bkmrk-vmware-esxi%3A-industr"><div><div><div class="rd_tb_cnt_wp"><div class="rd_tb_cnt">Le choix de la solution dépendra ensuite du budget et des fonctionnalités recherchées.</div></div></div></div></div>---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Architecture de plateforme virtualisée</span>**</span>


Une architecture de plateforme virtualisée s'articule autour des composantes traitées ci-dessous. Chaque composante aura son rôle et son importance dans certains aspects de la performance ou compatibilité de l'infrastructure.


#### **<span style="color: rgb(35,111,161);">3.1 Matériel de l'hôte physique</span>**

Il s'agit de l'hôte en tant que machine physique sur lequel sera installé l'hyperviseur. Comme toute machine physique, il s'agit d'un serveur matériel avec son hardware.

Le matériel choisi pour le(s) hôte(s) physique(s) influera directement les performances et capacités de l'infrastructure.

Les points à prendre en comptes sont évidement :

- Le ou les CPU et leur nombre de cœurs
- la RAM
- Le type de stockage (HDD, SSD, hybride, tearing, ...)
- La bande passante des cartes réseaux.

<p class="callout info">**Info** : Il est également primordial que la machine choisie dispose des capacité de virtualisation (intel-VT ou AMD-VT).</p>

#### **<span style="color: rgb(35,111,161);">3.2 L'hyperviseur</span>**

L'hyperviseur est le gestionnaire des machines virtuelles. Il permet leur création, manipulation, paramétrage et est également en charge de l'allocation et le suivi des ressources pour les machines virtuelles.

Comme évoqué plus haut, le choix du type de celui-ci dépendra de l'usage.

Le choix du produit quand à lui devra être guidé par les contraintes budgétaires, de performances, mais également les éventuels aspects contractuels.

<details id="bkmrk-comparatif-hypervise"><summary>Comparatif hyperviseurs</summary>

<table><thead><tr><th>Hyperviseur</th><th>Type</th><th>Fonctionnalités clés</th><th>Fourchette budgétaire (indicative)</th><th>Mode de licensing</th></tr></thead><tbody><tr><td>**VMware ESXi / vSphere**</td><td>Type 1</td><td>Haute disponibilité (HA), vMotion, DRS, snapshots avancés, gestion centralisée via vCenter, très mature</td><td>**Moyen à très élevé** selon l’édition (Essentials → Enterprise Plus)</td><td>Licence par **CPU** + options (vCenter, fonctionnalités avancées)</td></tr><tr><td>**Microsoft Hyper‑V**</td><td>Type 1</td><td>Intégration Windows Server, Live Migration, Replica, clustering, snapshots, gestion via SCVMM</td><td>**Faible à moyen** (inclus dans Windows Server)</td><td>Licence **Windows Server** (Standard ou Datacenter), par **cœur CPU**</td></tr><tr><td>**Proxmox VE**</td><td>Type 1</td><td>KVM + LXC, clustering simple, snapshots, backup intégré, interface web complète, Ceph intégré</td><td>**Très faible** (open‑source, support payant optionnel)</td><td>Gratuit (AGPL) + **abonnement support** optionnel</td></tr><tr><td>**XCP‑ng**</td><td>Type 1</td><td>Basé sur Xen, live migration, snapshots, gestion via Xen Orchestra, cluster</td><td>**Très faible à faible**</td><td>Gratuit (open‑source) + **support commercial** via Vates</td></tr><tr><td>**Oracle VM VirtualBox**</td><td>Type 2</td><td>Multi‑OS, snapshots, portable, idéal labo/test, large compatibilité</td><td>**Gratuit**</td><td>Gratuit (GPL + extension pack sous licence Oracle)</td></tr><tr><td>**VMware Workstation / Fusion**</td><td>Type 2</td><td>Environnements de test, snapshots, clonage, réseau virtuel avancé</td><td>**Faible** (licence unique)</td><td>Licence **poste utilisateur**</td></tr><tr><td>**KVM (Linux)**</td><td>Type 1 (intégré OS)</td><td>Très performant, supporté par la plupart des distributions, snapshots, live migration via libvirt/virt‑manager</td><td>**Gratuit**</td><td>Inclus dans Linux (GPL), support via distributions</td></tr></tbody></table>

*source : copilot, basé sur une liste de sources et de critères définies dans le prompt.*

</details>#### **<span style="color: rgb(35,111,161);">3.3 Les machines virtuelles</span>**

Les machines virtuelles sont les machines hébergées sur l'hyperviseur. Comme toute machine, elles disposent d'un matériel avec ses caractéristiques, sauf que celui-ci n'est pas physique mais plutôt logiciel. Aussi, chaque machine se voit allouée des ressources définies comme suit :

- Vcpu et Vcore ( un nombre de socket et de cœurs de CPU que la machine pourra exploiter)
- Mémoire virtuelle (une quantité de RAM maximum allouée à la machine)
- Disques virtuels ( souvent sous la forme de fichiers .vmdk, .vhdx, etc.. ; C'est l'espace disque maximal qui sera alloué à la machine)
- Carte réseau virtuelle ( une interface réseau pour la connectivité, souvent la gestion des adresses MAC est gérée par l'hyperviseur)

#### **<span style="color: rgb(35,111,161);">3.4 Les outils de gestion</span>**

Afin de gérer le ou les hyperviseur(s) la plupart des solutions intègrent des outils de gestion. Souvent sous la forme d'appliances ou de machines dédiées, ils sont généralement accessibles via une interface web et permettent la configuration du cluster, des hôtes et la gestion des machines virtuelles.

On pourra citer par exemple VMware Vcenter, ProxmoxVE, Hyper-V manager, etc...

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Wv4image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Wv4image-png.png)

#### **<span style="color: rgb(35,111,161);">3.5 Notions de cluster</span>**

Par nature, les machines virtuelles sont donc dé-corrélées du matériel physiques sur lequel elles s'appuient et son donc 'portables'.

On peut ainsi les déplacer d'un hôte à un autre. Cela ouvre la voie à une notion de cluster.

Un cluster est un groupement d'hôtes gérés par un manager qui vont donc pouvoir travailler ensemble afin de se répartir les machines virtuelles. Ce qui permet ainsi :

- La haute disponibilité ( les machines peuvent être répliquées et disponibles sur plusieurs hôtes)
- La migration à chaud ( les machines peuvent être déplacées d'un hôte à un autre sans forcement les éteindre)
- La répartition de charge ( il est possible de répartir les VM afin d'optimiser la consommation de ressources )

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Allocation et gestion des ressources</span>**</span>

La gestion des ressources et l'un des aspects les plus importants de la virtualisation.

Une VM ne possède pas réellement ses propres composants matériels. Elle reçoit une portion des ressources de l'hôte physique et l'hyperviseur doit en permanence arbitrer entre les besoin de l'ensemble des VM.


Lors de l'allocation de ressources à une VM, il y a plusieurs facteurs à prendre en compte.

#### <span style="color: rgb(35,111,161);">**4.1 Le CPU**</span>

Sur une VM, il est possible d'allouer de la puissance de calcul en ajoutant des Vcpu et des Vcore.

 Un vCPU correspond à un thread logique que l’hyperviseur peut planifier. Un vCore est une manière de présenter ces vCPU à la VM.

En définitive, il est possible d'allouer plus de Vcpu ou Vcore au VM que ce qui est réellement présent sur la machine. Cela est possible car l'hyperviseur sais répartir la charge des instruction sur son matériel physique et que toutes les VM ne sont pas tout le temps à 100% de leur utilisation CPU. Cela s'appelle l'<span style="color: rgb(132,63,161);">***Overcommit CPU***</span>.

*Exemple : un hôte à 64Go de RAM / 16cores, on provisionne 8VM à 4 Vcpu. Il y a overcommit. Cela ne posera pas de problème à moins que la charge sur les machine soit à 100% sur chacune d'elles sur une longue période.*

<p class="callout warning">**Attention** : Contrairement à ce que l'on peut penser, il n'est pas forcement bon d'allouer plus de Vcpu que réellement nécessaire. En effet, cela peut mener à une situation ou une VM attends d'exécuter des instructions, mais l'hyperviseur n'a pas de CPU disponibles car déjà alloués aux autre machines. Cela créée donc des tentions sur le CPU et des contentions entre VM. Ce phénomène s'appelle le '<span style="color: rgb(132,63,161);">***CPU Ready***</span>'.</p>

<table id="bkmrk-un-cpu-ready-%C3%A9lev%C3%A9-i" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>Un CPU Ready élevé indique :

- surcharge CPU de l’hôte
- trop de vCPU attribués
- VM surdimensionnées
- contention entre VM

</td><td>Ordres de grandeur :

- &lt; 5 % : normal
- 5–10 % : surveiller
- 10 % : impact visible (latence, lenteur)
- 20 % : problème sérieux

</td></tr></tbody></table>

*Exemple : Une VM avec 8 cœurs sur un host 4 cœurs --&gt; CPU Ready élevé garanti !*

Il est donc important de bien dimensionner les VM pour n'attribuer que le nombre de Vcore nécessaire à son fonctionnement.

#### **<span style="color: rgb(35,111,161);">4.2 La mémoire</span>**

La Mémoire est **LA** ressource critique lorsque l'on parle de virtualisation. En effet, c'est le point sur lequel il est le moins possible de faire de compromis car les services qui sont lancés sur une VM vont consommer une certaine quantité de mémoire au minimum, puis des parts par utilisateurs utilisant le service.

Les hyperviseur vont ensuite utiliser plusieurs mécaniques pour en partager et en optimiser l'usage.

Comme pour le CPU, il est possible d'allouer plus de ressource mémoire que disponible sur l'hôte. Cela s'appelle l'<span style="color: rgb(132,63,161);">***Overcommit mémoire***</span>.

L'hyperviseur va ensuite se reposer sur plusieurs mécaniques. Dont :

- *<span style="text-decoration: underline;">**Le ballooning**</span>*

Lors de l'installation des pilotes de l'hyperviseur sur les systèmes invités, un driver appelé 'balloon' a été installé. Le 'ballon' dans les VM est une portion de la mémoire qui peut être récupérée par l'hyperviseur pour être affectée de manière 'scalable' à d'autres VM.

En cas de tension sur l'hyperviseur, celui-ci 'gonfle' le ballon qui prends la forme d'un processus réservant de la RAM sur la VM invitée. Cette RAM n'est alors plus utilisable par la VM car elle la juge déjà utilisée par ce processus. L'hyperviseur réaffecte donc cette plage de RAM réservée à une autre VM qui en a besoin.

Dès que la tension est libérée, le ballon est 'dégonflé' et la RAM réservée est rendue à la VM.

<p class="callout info">**Info** : Bien que le ballooning ne soit pas un problème en soi, il deviens problématique dès lors que les VM impactées n'ont plus assez de ressources mémoire pour fonctionner normalement. Cela cause du swapping et donc des lenteurs.</p>

- *<span style="text-decoration: underline;">**La compression**</span>*

L'hyperviseur est capable de compresser certaines pages mémoire peu utilisées pour économiser de la mémoire.

- *<span style="text-decoration: underline;">**Swapping hyperviseur**</span>*

Tout comme n'importe quelle machine, en cas de sur utilisation de la mémoire, l'hyperviseur est également capable de swap. C'est à dire qu'il va commencer à écrire des pages mémoires sur le disque. Au vu de la dégradation de performances que cela implique, c'est une situation à éviter.

#### **<span style="color: rgb(35,111,161);">4.3 Le stockage</span>**

Le choix du stockage est important et doit être déterminé par les fonctionnalités souhaitées.

Un stockage local en SSD est rapide et offre d’excellentes performances. La sécurité peut en être améliorée avec du RAID.

<p class="callout warning">**Attention** : Le RAID permet une sécurité locale mais ne permet pas de faire de la <span style="color: rgb(132,63,161);">***haute disponibilité***</span>.</p>

Pour cela, il faudra opter pour un stockage mutualisé de type NAS ou SAN, ce qui rendra les VM visibles depuis l'ensemble des nœuds du cluster et permettra une bascule rapide en cas de coupure ou maintenance d'un hôte.

Cela permettra aussi d'activer des fonctions d'optimisation de charge et de consommation électrique, ainsi que des règles de répartition des VM.

*Exemple : 2 actives directory redondants ne doivent pas se trouver en même temps sur un même nœud.*

Si la solution du stockage partagée est privilégiée, il faudra également prendre en compte la liaison réseau avec les hôtes. En effet la bande passante de celle-ci impactera grandement les performances en lecture/Ecriture sur les volumes.

Il est préférable également d'opter pour des cartes réseaux dédiées et optimisées pour cet usage comme les cartes Melanox

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ra2image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ra2image-png.png)

En effet, en plus de leur excellentes capacité réseaux, celles-ci intègrent un cache dédié pour le stockage et l'écriture de blocs.

Les transactions sur le stockage se mesure en IOpS (Input/Output per Second). C'est cet indicateur qu'il faut vérifier pour mesurer la performance du stockage.

---

## <span style="text-decoration: underline;"><span style="color: rgb(52,73,94); text-decoration: underline;">**V. Les fonctionnalités avancées**</span></span>

<span style="color: rgb(52,73,94);">Comme vu plus haut, dans la logique de la virtualisation, les VM ne sont plus directement corrélées au matériel. Cette couche d'abstraction implique que la VM soit vue par l'hyperviseur comme simplement un processus et un ensemble de fichiers.</span>

<span style="color: rgb(52,73,94);">Cela ouvre la porte a beaucoup de fonctionnalités intéressantes et qui sont devenue clés de la gestion des machines virtuelles au sein d'une architecture d'entreprise.</span>

#### **<span style="color: rgb(35,111,161);">5.1 Les snapshots</span>**

Un <span style="color: rgb(132,63,161);">***snapshot***</span> ou 'cliché instantané', est un point de restauration d'une machine à un instant T.

Lors d'une prise de snapshot, le fichier de disque actuel de la VM est figé, un nouveau fichier de disque est créé. Celui-ci contient le Delta depuis le dernier snapshot.

<div drawio-diagram="116"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1771933507-png.png" alt="drawing-1-1771933507.png"/></div>

Il sera ensuite possible de faire des modifications, puis de revenir en quelques minutes à cet état précédent. Annulant ainsi tout ce qui est survenu depuis.

<div drawio-diagram="117"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1771933872-png.png" alt="drawing-1-1771933872.png"/></div>

Ou de valider cet état comme définitif et de supprimer les snapshots. Auquel cas, les fichiers du snapshot sont supprimés et les fichiers de disques sont fusionnés.

<div drawio-diagram="118"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1771937738-png.png" alt="drawing-1-1771937738.png"/></div>

C'est particulièrement utile pour sécuriser ponctuellement une opération comme une mise à jour, un changement de version ou un test quelconque.

Il est également possible de faire un snapshot, tester un scénario, refaire un snapshot, revenir sur l'original, tester un autre scénario, refaire un snapshot, etc... les snapshots seront ainsi géré en arborescence.

<div drawio-diagram="119"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1771938081-png.png" alt="drawing-1-1771938081.png"/></div>

Lors de l'effacement des snapshots, ceux utilisés seront fusionnés, les autres seront détruits. Cette opération s'appelle la '<span style="color: rgb(132,63,161);">***consolidation***</span>'.

<p class="callout warning">**Attention** : Les snapshots ne sont pas des sauvegardes. Si cela est utile pour un usage ponctuel, il n'est pas recommandé de les empiler et encore moins de les conserver de façon durable.</p>

#### **<span style="color: rgb(35,111,161);">5.2 Live migration</span>**

Une '<span style="color: rgb(132,63,161);">***Live migration***</span>' ou migration à chaud est le fait de déplacer une VM d'un hyperviseur ou d'un nœud d'une ferme à un autre, sans forcément avoir besoin d'éteindre cette machine et donc sans interrompre le service.

<div drawio-diagram="120"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1771938531-png.png" alt="drawing-1-1771938531.png"/></div>

Selon le type de migration, l'hyperviseur fait tout d'abord une copie du fichier descriptif de la VM, puis copie les disques et enfin le fichier mémoire. Dès lors que l'état de la VM est synchronisée sur le nœud source et le nœud de destination, la VM source est coupée et ses fichiers sont détruits.

Dans le cadre de l'utilisation d'un stockage partagé, c'est plus simple dans la mesure ou il suffit juste de transférer les fichiers mémoires.

Le déplacement peut être un déplacement sur une autre puissance de calcul, sur un autre stockage voire les deux.

#### **<span style="color: rgb(35,111,161);">5.3 High availability &amp; Fault Tolerance</span>**

La <span style="color: rgb(132,63,161);">***haute disponibilité***</span> et la <span style="color: rgb(132,63,161);">***Tolérance à la panne***</span>, sont des mécanismes qui exploitent la capacité de transfert d'une machine d'un hôte à un autre pour permettre automatiquement, en cas de coupure d'un nœud ou d'une VM, d'en reprendre l'exécution depuis un autre nœud.

<div drawio-diagram="121"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1771938653-png.png" alt="drawing-1-1771938653.png"/></div>

#### **<span style="color: rgb(35,111,161);">5.4 Load balancing, fencing</span>**

Partant de ce même principe et afin de fiabiliser celui-ci, il est possible de définir des ensembles de règles afin d'éviter que deux machines portant le même rôle dans un but de haute disponibilité se retrouvent au même moment sur le même hôte physique.

Ou inversement, pour des raisons d'économie d'énergie, de regrouper les machines virtuelles sur un même hôte physique afin d'optimiser le rendement énergétique.

#### **<span style="color: rgb(35,111,161);">5.5 Templates et clônes</span>**

La dernière fonctionnalité intéressante est de pouvoir, grâce au snapshots et au fait que les machines soient des ensembles de fichiers, est de pouvoir installer une machine, la préparer et la transformer en '<span style="color: rgb(132,63,161);">***template***</span>' ou modèle.

Cela permet ensuite de repartir de ce modèle afin de faire des déploiement en masse et de standardiser la production. Ce qui représente également un gain de temps non négligeable, car ce qui a été fait une fois pour le template, n'a plus à être refait par la suite.

A partir de ce template, il sera possible de déployer des clones. Il y a deux façons de créer un <span style="color: rgb(132,63,161);">***clone***</span> :

- Clone lié (la nouvelle machine se base sur les fichiers de l'ancienne et seul le delta est créé)
- Clone intégral (la machine est entièrement recréée à partir du modèle)

La création d'un clone lié à l'avantage d'être immédiate mais l'inconvénient de dépendre des disques des templates pour fonctionner (un peu à la manière des snapshots). En cas de corruption de celui-ci, l'ensemble des clones liées seront rendus inopérants.

La création d'un clone intégral prends plus de temps et de place sur le disque. C'est en effet une nouvelle machine intégralement créée, mais totalement indépendante.

En résumé, les clones liés sont pratique pour faire des tests rapides, mais pour de la production, il faut privilégier les clones intégraux.

#### **<span style="color: rgb(35,111,161);">5.6 Thin provisioning</span>**

Le <span style="color: rgb(132,63,161);">***thin provisionning***</span>, ou provisionnement dynamique, permet de n'allouer à une machine virtuelle que l'espace disque qu'elle va occuper. La taille définie sur le disque agit ici plus comme une 'limite totale d'espace disponible' que comme une réservation stricte de l'espace disque.

Cette fonctionnalité est très pratique pour des tests et pour optimiser l'espace disque disponible. Mais cela est fortement déconseillé dans un environnement de production car elle entraîne un risque de sur-provisionnement.

En effet, l'espace disque côté hyperviseur est perçu comme libre. Mais si les machines consomment toutes la capacité de leur disque au maximum, la capacité maximale de l'espace de stockage peut être dépassée, ce qui conduit au remplissage à 100% de celui-ci et potentiellement à une corruption des données.

*Exemple : 10 VM de 100Go en thin provisioning sur un datastore de 500Go --&gt; Si les VM se mettent à utiliser tout le stockage, risque de corruption et de perte de données.*

---

## <span style="text-decoration: underline;"><span style="color: rgb(52,73,94); text-decoration: underline;">**VI. Virtualisation du stockage**</span></span>

- Datastores
- SAN / NAS / iSCSI / NFS
- vSAN / Ceph / stockage distribué
- Impact des performances disque sur les VM

<div id="bkmrk--50">  
</div>## **VII. Virtualisation réseau**

- vSwitch / vNIC
- VLAN, trunking, tagging
- Distributed Virtual Switch
- SDN (Software Defined Networking) : principes de base

<div id="bkmrk--51">  
</div>## **VIII. Sécurité dans un environnement virtualisé**

- Isolation des VM
- Risques spécifiques (VM escape, snapshots oubliés, sprawl)
- Sécurisation de l’hyperviseur
- Gestion des accès et rôles (RBAC)
- Chiffrement des VM / disques / migrations

<div id="bkmrk--52">  
</div>## **IX. Administration et bonnes pratiques**

- Planification des ressources
- Monitoring (CPU ready, IOPS, latence, mémoire)
- Sauvegarde des VM (image‑level, agent‑based)
- Gestion du cycle de vie des VM
- Documentation et gouvernance

<div id="bkmrk--53">  
</div>## **X. Virtualisation et Cloud**

- Virtualisation vs Cloud
- IaaS, PaaS, SaaS
- Conteneurs et orchestrateurs (Docker, Kubernetes)
- Notion de virtualisation “cloud-native”

# Infrastructure - Les Tiers de datacenter

## <span style="text-decoration: underline;">**<span style="color: rgb(52, 73, 94); text-decoration: underline;">Le classement des data centers</span>**</span>

L’organisme ayant pour dénomination Uptime Institute qui est un laboratoire d’idées ayant pour but de rechercher les solutions permettant aux data centers d’offrir des services performants a classé les niveaux de sécurité offerts par ces structures en quatre tiers différents.

![](https://ledabelle.com/wp-content/uploads/2018/09/technicien-server-195x170.jpg)

**En France, les certifications correspondant à ces niveaux de sécurité sont effectuées depuis le mois de janvier 2014.**

---

### <span style="text-decoration: underline; color: rgb(35, 111, 161);">**Le niveau Tier 1**</span>

Un data center ayant le niveau Tier 1 ne possède qu’un seul circuit électrique ainsi qu’un circuit de distribution de refroidissement et il n’a pas de composants redondants. Sa disponibilité est de 99,67 % et ses clients doivent prendre en compte une interruption annuelle de 28 heures et huit dixièmes.

### <span style="text-decoration: underline; color: rgb(35, 111, 161);">**Le niveau Tier 2**</span>

Ce niveau est attribué à un data center ayant un circuit électrique et un circuit de distribution de refroidissement , mais ayant des composants redondants. La disponibilité offerte est de 99,75 % et il faut prévoir 22 heures d’interruption chaque année.

### <span style="text-decoration: underline;">**<span style="color: rgb(35, 111, 161); text-decoration: underline;">Le niveau Tier 3</span>**</span>

La classification Tier 3 est accordée à un data center ayant plusieurs circuits d’alimentation en électricité et de distribution de refroidissement. La disponibilité offerte doit s’élever à 99,982% avec une interruption limitée à un peu plus d’une heure et demie chaque année.

**La redondance offerte s’élève à N+1. En conséquence, cette redondance n’est ni intégrale ni entièrement distincte. Il en résulte que l’absence totale d’incidents sérieux sur les éléments constituant l’infrastructure n’est pas totalement garantie.**

<div class="custom middle-cta" id="bkmrk--3"><div class="inner"><div class="row"><div class="col-md-3">  
</div><div class="col-md-5">  
</div></div></div></div>### <span style="text-decoration: underline; color: rgb(35, 111, 161);">**Le niveau Tier 4**</span>

Cette classifications qui correspond au meilleur niveau de garantie d’un data center n’est accordée que si le data center a plusieurs circuits assurant l’alimentation en électricité et la distribution du refroidissement.

**La redondance doit atteindre 2N+1 et l’interruption annuelle ne doit pas dépasser 48 minutes.**

Les clients qui choisissent un data center ayant ce niveau bénéficient donc d’une garantie totale pour la protection de leurs stocks de données informatisées.

De plus, les serveurs stockés dans un data center ayant le niveau Tier 4 bénéficient d’un bloc d’alimentation doublé, de la disponibilité de deux processeurs et de la possibilité d’un changement de disque en Hot Swap, ce qui permet aux collaborateurs de remplacer un composant défaillant sans qu’il soit nécessaire d’interrompre la disponibilité du serveur concerné.

---

## <span style="text-decoration: underline; color: rgb(52, 73, 94);">**L’importance du niveau de classification dans le choix du data center**</span>

Toute entreprise qui doit externaliser le stockage de ses serveurs informatiques doit choisir un prestataire ayant un niveau de qualification adapté aux conditions exigées par le contenu de ces données.

**Si les données stockées on une importance vitale, le choix d’un data center ayant le niveau Tier 4 est indispensable, car l’entreprise ne peut pas prendre le risque de voir ces données effacées à cause d’une panne d’électricité ou d’une défaillance du système de contrôle de la température du data center.**

Un data center ayant une classification inférieure ne peut être choisi que si l’entreprise peut supporter sans dommage la détérioration d’un stock de données.

# Licensing

Notions théoriques liées au licencing des différents produits.

# Licensing Microsoft - Modèle général

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![Débutant.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Daydebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Daydebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Licensing Microsoft, types de licences.

</td></tr></tbody></table>

<p class="callout info">Cette fiche est complémentaire avec : [Licensing Microsoft - Windows Server](https://docs.labs404.fr/books/cours-it/page/licensing-microsoft-windows-server "Licensing Microsoft - Windows Server")</p>

---

### **<span style="text-decoration: underline;">I. Les Licences OEM  
</span>**

Il s’agit de la licence la plus courante. Celle dont dispose l’ensemble des machines vendue dans le commerce. Dans ce modèle, la licence est attachée à la machine et à usage unique.

La machine est fournie à l’utilisateur activée.

La licence est indissociable du matériel. Si le Poste est remplacé où mis au rebut, la licence est perdue avec.

L’utilisateur peut ainsi, par exemple, restaurer ou formater sa machine et conserver sa licence. Mais si il souhaite changer de machine sa licence ne pourra pas être transférée.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PAvimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PAvimage-png.png)

---

### **<span style="text-decoration: underline;">II. Les licences Retail  
</span>**

Le second modèle dit des licence de revente présente un avantage certain pour les particuliers et entreprises soucieuse de gérer un parc de licences.

En effet, dans ce modèle la licence est acheté indépendamment du matériel.

Il y a deux types de licence dans cette catégorie :

- **la licence par poste** : une licence est liée à un poste et ce poste peut être utilisé indifféremment par un nombre illimité d’utilisateur. La licence retail est indépendante du matériel et ne doit être que sur une machine à la fois. Mais contrairement à la licence OEM, celle-ci peut être transféré d’une machine à une autre. Sous réserve de désactiver l’ancienne.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wMrimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wMrimage-png.png)

- **La licence par utilisateur** : la licence est liée à l’utilisateur et non plus à la machine. L’usage lui en est donc réservé, mais elle est valide peu importe le nombre de machine que l’utilisateur possède. Pour un particulier ou un utilisateur ayant plusieurs postes, c’est le modèle le plus avantageux. Depuis Windows 10, cette licence peut être associée à un compte Microsoft. Et le fait de s’authentifier avec son compte Microsoft sur n’importe quelle machine active de facto celle-ci.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/18Cimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/18Cimage-png.png)

---

### <span style="text-decoration: underline;">**III. Les licences en volume**</span>

Ce modèle s’adresse d’avantage aux entreprises. Il s’agit de prendre un nombre défini de licences qui pourront être ensuite utilisées au sein d’une entreprise de manière complétement indépendante de son parc ou des salariés.

Le principal avantage de ce type d’acquisition, c’est qu’il ouvre le droit à l’utilisation des systèmes d’activation automatisés et qu’une entreprise peut désormais raisonner en pool de licence et affectation de celles-ci.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/OLKimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/OLKimage-png.png)

<p class="callout info">Pour l’activation, les clients nécessitent des clés spéciales dites “KMS Client”. Elles sont disponibles ici : [Windows - Liste des clés KMS](https://docs.mfrstegreve.fr/books/foure-tout/page/windows-liste-des-cles-kms "Windows - Liste des clés KMS")</p>

Pour obtenir des licences en volume, il y a deux façon de procéder :

- **Achat d’un lot de licence** : il s’agit de prendre en lot un nombre défini de licence chez un revendeur qui fera ici office de “grossiste”. Par ce biais, il est possible de prendre par exemple un lot de 100 licences qui pourra ensuite être étendu par l’achat de lots supplémentaires. L’acquisition de ces licences se fait également par machine ou par utilisateur. Dans ce modèle les licences peuvent être transférées de façon illimitée d’un poste à l’autre ou d’un utilisateur à l’autre. La seule contrainte est de ne pas dépasser le nombre d’utilisation simultanées autorisée par le pool de licence.

- **Contrat OPEN** : Il s’agit d’un contrat ouvert chez Microsoft. Lorsqu’un contrat open est ouvert, Microsoft met a disposition un pool de licence à la demande du client. Le client pourra alors augmenter son pool de licence comme il le souhaite sans pour autant ré-ouvrir un nouveau contrat. En effet a l’inverse de l’achat en lot, ici le contrat couvre un pool et les extensions de pool seront rattachés au contrat existant.

---

### <span style="text-decoration: underline;">**IV. Licences additionnelles et CAL**</span>

Dans certains cas, en plus des licences de produits, son utilisation nécessitera des CAL ou “<span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">Client Access Licences</span>***</span>”. Ces licences sont à acquérir en plus des licences produits pour le serveur.

Ce qui donne donc une licence pour le serveur et une CAL par utilisateur ou machine selon le modèle choisi. Sachant qu’il est possible de mixer les deux formules.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/kLVimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/kLVimage-png.png)

#### **4.1 Active directory**

Pour active directory, la fonctionnalité est comprise dans Windows Server et ne nécessite pas de licence serveur.

Il faut cependant, des cals machines et/ou utilisateurs.

La manière la plus simple est de prendre une CAL pour chaque utilisateur de domaine.

#### **4.2 Exchange**

Pour Exchange, il faut une licence serveur pour chaque serveur ou le produit est installé.

Plus une CAL par boite aux lettre utilisateur.

Les alias, boites partagées et comptes de services ne comptent pas et n’ont pas besoin de licences.

#### **4.3 MS SQL Server**

Pour SQL Server, il faut une licence serveur pour chaque serveur ou le produit est installé.

Il faut ensuite une CAL par utilisateur qui accède directement OU indirectement aux bases de données.

Ce qui signifie qu’en théorie, pour une application métier comptant 5 utilisateurs qui stocke ses données dans la base et les utilisent a travers un compte de service unique, il faut quand même 5 CAL Utilisateur.

Passé un certain nombre d’utilisateurs, il peut être plus rentable de passer a une licence par coeur de processeur.

---

### <span style="text-decoration: underline;">**V. Office 365**</span>

Concernant les licences Office365, la logique change radicalement. Il ne s’agit plus en effet de devenir propriétaire des licences, mais de louer un service.

Le service comprends un certain nombre de fonctionnalité disponibles individuellement pour chaque utilisateur en fonction de sa formule.

[Acheter Microsoft 365 - Comparer les abonnements pour TPE/PME](https://www.microsoft.com/fr-fr/microsoft-365/business/compare-all-microsoft-365-business-products-b?&ef_id=Cj0KCQiAoY-PBhCNARIsABcz772-tVOLg9JWUG-R1QjMWHI_Kd2v5fu5EAQtIzZVdo_SyeNHxWfDK4saAkyUEALw_wcB:G:s&OCID=AID2200006_SEM_Cj0KCQiAoY-PBhCNARIsABcz772-tVOLg9JWUG-R1QjMWHI_Kd2v5fu5EAQtIzZVdo_SyeNHxWfDK4saAkyUEALw_wcB:G:s&lnkd=Google_O365SMB_Brand&gclid=Cj0KCQiAoY-PBhCNARIsABcz772-tVOLg9JWUG-R1QjMWHI_Kd2v5fu5EAQtIzZVdo_SyeNHxWfDK4saAkyUEALw_wcB)

# Licensing Microsoft - Windows Server

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![Débutant.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Daydebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Daydebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Licensing Microsoft, windows server.

</td></tr></tbody></table>

<p class="callout info">Complète la documentation suivante : [Licensing Microsoft - Modèle général](https://docs.labs404.fr/books/cours-it/page/licensing-microsoft-modele-general "Licensing Microsoft - Modèle général")  
</p>

---

### **<span style="text-decoration: underline;">I. Présentation</span>**

Depuis windows 2016, le modèle de licence a changé pour s’adapter aux évolutions du marché.

En effet, avec la démocratisation de la virtualisation et par conséquent l’arrivée de microsoft Hyper-V, la virtualisation est devenu un standard de l’IT.

Il faut donc maintenant suivre le modèle de licencing suivant :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wBPimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wBPimage-png.png)

---

### **<u>II. Explications  
</u>**

Les licences windows serveur sont des licences par coeur physique de processeur.

**Windows serveur se décline désormais en deux éditions :**

- Standard : une licence standard est liée à un hôte physique et donne le droit a deux machines virtuelles sur cet hôte.
- Datacenter : une licence datacenter est liée à un hôte physique et donne le droit à un nombre illimité de VM.

**Les contraintes sont les suivantes :**

Dans la mesure où le modèle de licence est prévu à la base pour Hyper-V. Une licence est installée sur l’hôte Hyper-V et sert a activer celui-ci, ainsi que 2 machines virtuelles sur cet hôte. Dans le cas de l’utilisation d’un autre hyperviseur (vmware, proxmox, etc…) la licence ne s’applique donc qu’au 2 machines virtuelles.

Il y a un seuil minimum de cœurs licenciés par hôte physique. Celui-ci est de 8 dans le cas d’une machine avec 1 ou 2 processeurs physiques et de 12 dans le cas d’une machine avec 3 processeurs physiques.

Les licences sont attachées à l’hôte physique. Aussi, il n’est pas possible d’avoir par exemple la même licence pour 2 VM qui fonctionneraient sur des hôtes physiques différents.

De la même manière, les coeurs couverts par les licences ne concernent que l’hôte physique qui les possède.

Si le nombre de cœurs physiques dépassent le seuil minimum, il faut acheter des packs d’extension de licence pour couvrir les cœurs supplémentaires. Ceux-ci sont sous la forme de packs de 2 cœurs.

Les cœurs virtuels (threads) ne comptent pas dans le calcul.

---

### **<u>III. Exemples  
</u>**

Le principe n’étant pas facilement compréhensible, voici quelques exemples pour mieux comprendre.

***Exemple 1 :***

1 serveur avec 2 processeurs Xeon de 4 cœurs qui hébergera 4 machines virtuelles.

Dans cette situation : 1 serveur X 2 processeurs X 4 cœurs donc un total de 8 cœurs.

Une licence couvre 2 machines virtuelles donc 4VM / 2 = 2 packs de 8 cœurs.

- Il me faut donc dans ce cas 2 packs de 8coeurs pour couvrir toutes mes machines.

***Exemple 2 :***

2 serveurs avec 2 processeurs Xeon de 6 cœurs qui hébergera 5 machines virtuelles.

Dans cette situation : il faut calculer par serveur. La distribution des machines se fera de la façon suivante :

- Le premier hôte hébergera 3 machines
- le second en hébergera deux.

Donc pour le premier hôte : 1 serveur X 2 processeurs X 6 cœurs donc un total de 12 coeurs. Il faut donc 1 “starter pack” de 8 cœurs + 2 extension pour 2 cœurs supplémentaires.

Il y a 3 machines. Une licence étant valable pour 2 machines, il faut donc multiplier les quantités par deux.

On a donc pour le serveur 1 : 2 pack de 8 + 4 pack de 2.

Pour le second hôte : 1 serveur X 2 processeurs X 6 cœurs donc un total de 12 cœurs. Il faut également un pack de 8 cœurs + deux extensions pour 2 cœurs supplémentaires. Il n’y a que 2 machines virtuelles sur ce serveur, donc : 1 pack de 8 + 2 pack de 2.

Au total, pour licencier tout le parc, il faut donc 3 packs de 8 et 6 packs de deux.

---

### **<u>IV. Licences Datacenter  
</u>**

Comme vu plus haut, les licences Datacenter sont liées a une machine physique et ouvrent le droit à un nombre illimité de machines virtuelles sur ce serveur. Si l’on sait donc a l’avance que le nombre de machine risque d'être important, ou de varier énormément au cours du temps, cette licence est à envisager.

Cependant, elle est bien plus coûteuse qu’une licence standard. Aussi il est important de calculer au préalable le seuil de rentabilité d’une telle licence.

A titre d’exemple, pour un hôte physique classique ( 2 processeurs 4 cœurs ), il faut 10 machines virtuelles pour que la licence Datacenter soit rentable.

---

### **<u>V. Conclusion  
</u>**

Ce modèle de licence est réellement compliqué à appréhender au premier abord. Mais cela viendra en pratiquant. Mais heureusement <span class="emoji-common-main-styles emoji-common-node emoji-common-emoji-image css-1np3glt" title=":grinning:">![:grinning:](https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/standard/caa27a19-fc09-4452-b2b4-a301552fd69c/32x32/1f600.png)</span> :

<p class="callout info">Un calculateur de licence est disponible : <span class="loader-wrapper">[<span class="css-1p7ax5 e158gagu2"><span class="smart-link-title-wrapper css-0 e158gagu8">Windows Server Licensing Calculator - WintelGuy.com</span></span>](https://wintelguy.com/windows2019-licensing-calc.pl)</span></p>

# Windows - Liste des clés KMS

<p class="callout warning">Ces clés KMS sont légales. Il s'agit de celles fournies par Microsoft pour l'activation des clients KMS en volume.</p>

<p class="callout warning">Ces clés seules ne suffisent pas à activer Windows. Elles indiquent au système qu'il sera un client activé par un serveur KMS.</p>

<p class="callout warning">Ces clés sont toutes utilisables dans le cadre d'un contrat de licence en volume.  
</p>

Pour l’activation en volume, il faut fournir une clé spécifique au client. Dite clé de client KMS.

Voici la liste des clés :

#### **Windows Server (LTSC versions)**

##### **Windows Server 2025**

<table id="bkmrk-windows-server-2022-"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2025

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td>Windows Server 2025 Standard</td><td>TVRH6-WHNXV-R9WG3-9XRFY-MY832</td></tr><tr><td>Windows Server 2025 Datacenter</td><td>D764K-2NDRG-47T6Q-P8T8W-YP6DF</td></tr><tr><td>Windows Server 2025 Datacenter : Azure Edition</td><td>XGN3F-F394H-FD2MY-PP6FD-8MCRC</td></tr></tbody></table>

##### **Windows Server 2022**

<table id="bkmrk-windows-server-2022--1"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2022

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2022 Datacenter

</td><td class="pm-table-cell-content-wrap">WX4NM-KYWYW-QJJR4-XV3QB-6VM33

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2022 Standard

</td><td class="pm-table-cell-content-wrap">VDYBN-27WPP-V4HQT-9VMD4-VMK7H

</td></tr></tbody></table>

##### **Windows Server 2019**

<table id="bkmrk-windows-server-2019-"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2019

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2019 Datacenter

</td><td class="pm-table-cell-content-wrap">WMDGN-G9PQG-XVVXX-R3X43-63DFG

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2019 Standard

</td><td class="pm-table-cell-content-wrap">N69G4-B89J2-4G8F4-WWYCC-J464C

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2019 Essentials

</td><td class="pm-table-cell-content-wrap">WVDHN-86M7X-466P6-VHXV7-YY726

</td></tr></tbody></table>

##### **Windows Server 2016**

<table id="bkmrk-windows-server-2016-"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2016

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2016 Datacenter

</td><td class="pm-table-cell-content-wrap">CB7KF-BWN84-R7R2Y-793K2-8XDDG

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2016 Standard

</td><td class="pm-table-cell-content-wrap">WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2016 Essentials

</td><td class="pm-table-cell-content-wrap">JCKRF-N37P4-C2D82-9YXRT-4M63B

</td></tr></tbody></table>

---

#### **Windows Server (Semi-Annual Channel versions)**

##### **Windows Server, versions 20H2, 2004, 1909, 1903, and 1809**

<table id="bkmrk-windows-server%2C-vers-0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server, versions 20H2, 2004, 1909, 1903, and 1809

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server Datacenter

</td><td class="pm-table-cell-content-wrap">6NMRW-2C8FM-D24W7-TQWMY-CWH2D

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server Standard

</td><td class="pm-table-cell-content-wrap">N2KJX-J94YW-TQVFB-DG9YT-724CC

</td></tr></tbody></table>

##### **Windows 11 and Windows 10 (Semi-Annual Channel versions)**

See the [Windows lifecycle fact sheet](https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet) for information about supported versions and end of service dates.

<table id="bkmrk-windows-11-and-windo-0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 11 and Windows 10 (Semi-Annual Channel versions)

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Pro  
Windows 10 Pro

</td><td class="pm-table-cell-content-wrap">W269N-WFGWX-YVC9B-4J6C9-T83GX

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Pro N  
Windows 10 Pro N

</td><td class="pm-table-cell-content-wrap">MH37W-N47XK-V7XM9-C7227-GCQG9

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Pro for Workstations  
Windows 10 Pro for Workstations

</td><td class="pm-table-cell-content-wrap">NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Pro for Workstations N  
Windows 10 Pro for Workstations N

</td><td class="pm-table-cell-content-wrap">9FNHH-K3HBT-3W4TD-6383H-6XYWF

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Pro Education  
Windows 10 Pro Education

</td><td class="pm-table-cell-content-wrap">6TP4R-GNPTD-KYYHQ-7B7DP-J447Y

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Pro Education N  
Windows 10 Pro Education N

</td><td class="pm-table-cell-content-wrap">YVWGF-BXNMC-HTQYQ-CPQ99-66QFC

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Education  
Windows 10 Education

</td><td class="pm-table-cell-content-wrap">NW6C2-QMPVW-D7KKK-3GKT6-VCFB2

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Education N  
Windows 10 Education N

</td><td class="pm-table-cell-content-wrap">2WH4N-8QGBV-H22JP-CT43Q-MDWWJ

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Enterprise  
Windows 10 Enterprise

</td><td class="pm-table-cell-content-wrap">NPPR9-FWDCX-D2C8J-H872K-2YT43

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Enterprise N  
Windows 10 Enterprise N

</td><td class="pm-table-cell-content-wrap">DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Enterprise G  
Windows 10 Enterprise G

</td><td class="pm-table-cell-content-wrap">YYVX9-NTFWV-6MDM3-9PT4T-4M68B

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 11 Enterprise G N  
Windows 10 Enterprise G N

</td><td class="pm-table-cell-content-wrap">44RPN-FTY23-9VTTB-MP9BX-T84FV

</td></tr></tbody></table>

---

#### **Windows 10 (LTSC/LTSB versions)**

##### **Windows 10 LTSC 2021 and 2019**

<table id="bkmrk-windows-10-ltsc-2021-0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 10 LTSC 2021 and 2019

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 10 Enterprise LTSC 2021  
Windows 10 Enterprise LTSC 2019

</td><td class="pm-table-cell-content-wrap">M7XTQ-FN8P6-TTKYV-9D4CC-J462D

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 10 Enterprise N LTSC 2021  
Windows 10 Enterprise N LTSC 2019

</td><td class="pm-table-cell-content-wrap">92NFX-8DJQP-P6BBQ-THF9C-7CG2H

</td></tr></tbody></table>

##### **Windows 10 LTSB 2016**

<table id="bkmrk-windows-10-ltsb-2016-0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 10 LTSB 2016

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 10 Enterprise LTSB 2016

</td><td class="pm-table-cell-content-wrap">DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 10 Enterprise N LTSB 2016

</td><td class="pm-table-cell-content-wrap">QFFDN-GRT3P-VKWWX-X7T3R-8B639

</td></tr></tbody></table>

##### **Windows 10 LTSB 2015**

<table id="bkmrk-windows-10-ltsb-2015-0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 10 LTSB 2015

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 10 Enterprise 2015 LTSB

</td><td class="pm-table-cell-content-wrap">WNMTR-4C88C-JK8YV-HQ7T2-76DF9

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 10 Enterprise 2015 LTSB N

</td><td class="pm-table-cell-content-wrap">2F77B-TNFGY-69QQF-B8YKP-D69TJ

</td></tr></tbody></table>

---

#### **Earlier versions of Windows Server**

##### **Windows Server, version 1803**

<table id="bkmrk-windows-server%2C-vers-2"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server, version 1803

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server Datacenter

</td><td class="pm-table-cell-content-wrap">2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server Standard

</td><td class="pm-table-cell-content-wrap">PTXN8-JFHJM-4WC78-MPCBR-9W4KR

</td></tr></tbody></table>

##### **Windows Server, version 1709**

<table id="bkmrk-windows-server%2C-vers-4"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server, version 1709

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server Datacenter

</td><td class="pm-table-cell-content-wrap">6Y6KB-N82V8-D8CQV-23MJW-BWTG6

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server Standard

</td><td class="pm-table-cell-content-wrap">DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4

</td></tr></tbody></table>

##### **Windows Server 2012 R2**

<table id="bkmrk-windows-server-2012--0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2012 R2

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 R2 Standard

</td><td class="pm-table-cell-content-wrap">D2N9P-3P6X9-2R39C-7RTCD-MDVJX

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 R2 Datacenter

</td><td class="pm-table-cell-content-wrap">W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 R2 Essentials

</td><td class="pm-table-cell-content-wrap">KNC87-3J2TX-XB4WP-VCPJV-M4FWM

</td></tr></tbody></table>

##### **Windows Server 2012**

<table id="bkmrk-windows-server-2012--1"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2012

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012

</td><td class="pm-table-cell-content-wrap">BN3D2-R7TKB-3YPBD-8DRP2-27GG4

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 N

</td><td class="pm-table-cell-content-wrap">8N2M2-HWPGY-7PGT9-HGDD8-GVGGY

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 Single Language

</td><td class="pm-table-cell-content-wrap">2WN2H-YGCQR-KFX6K-CD6TF-84YXQ

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 Country Specific

</td><td class="pm-table-cell-content-wrap">4K36P-JN4VD-GDC6V-KDT89-DYFKP

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 Standard

</td><td class="pm-table-cell-content-wrap">XC9B7-NBPP2-83J2H-RHMBY-92BT4

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 MultiPoint Standard

</td><td class="pm-table-cell-content-wrap">HM7DN-YVMH3-46JC3-XYTG7-CYQJJ

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 MultiPoint Premium

</td><td class="pm-table-cell-content-wrap">XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2012 Datacenter

</td><td class="pm-table-cell-content-wrap">48HP8-DN98B-MYWDG-T2DCC-8W83P

</td></tr></tbody></table>

##### **Windows Server 2008 R2**

<table id="bkmrk-windows-server-2008--0"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows Server 2008 R2

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2008 R2 Web

</td><td class="pm-table-cell-content-wrap">6TPJF-RBVHG-WBW2R-86QPH-6RTM4

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2008 R2 HPC edition

</td><td class="pm-table-cell-content-wrap">TT8MH-CG224-D3D7Q-498W2-9QCTX

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2008 R2 Standard

</td><td class="pm-table-cell-content-wrap">YC6KT-GKW9T-YTKYR-T4X34-R7VHC

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2008 R2 Enterprise

</td><td class="pm-table-cell-content-wrap">489J6-VHDMP-X63PK-3K798-CPX3Y

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2008 R2 Datacenter

</td><td class="pm-table-cell-content-wrap">74YFP-3QFB3-KQT8W-PMXWJ-7M648

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows Server 2008 R2 for Itanium-based Systems

</td><td class="pm-table-cell-content-wrap">GT63C-RJFQ3-4GMB6-BRFB9-CB83V

</td></tr></tbody></table>

##### **Windows Server 2008**

<table id="bkmrk-windows-server-2008--1" style="width: 74.9383%; height: 479px;"><tbody><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" colspan="2" style="width: 99.8353%; height: 35.4px;">Windows Server 2008

</td></tr><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 35.4px;">**Operating system edition**

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 35.4px;">**KMS Client Product Key**

</td></tr><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 35.4px;">Windows Web Server 2008

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 35.4px;">WYR28-R7TFJ-3X2YQ-YCY4H-M249D

</td></tr><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 35.4px;">Windows Server 2008 Standard

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 35.4px;">TM24T-X9RMF-VWXK6-X8JC9-BFGM2

</td></tr><tr style="height: 57.8px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 57.8px;">Windows Server 2008 Standard without Hyper-V

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 57.8px;">W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ

</td></tr><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 35.4px;">Windows Server 2008 Enterprise

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 35.4px;">YQGMW-MPWTJ-34KDK-48M3W-X4Q6V

</td></tr><tr style="height: 57.8px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 57.8px;">Windows Server 2008 Enterprise without Hyper-V

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 57.8px;">39BXF-X8Q23-P2WWT-38T2F-G3FPG

</td></tr><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 35.4px;">Windows Server 2008 HPC

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 35.4px;">RCTX3-KWVHP-BR6TB-RB6DM-6X7HP

</td></tr><tr style="height: 35.4px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 35.4px;">Windows Server 2008 Datacenter

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 35.4px;">7M67G-PC374-GR742-YH8V4-TCBY3

</td></tr><tr style="height: 57.8px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 57.8px;">Windows Server 2008 Datacenter without Hyper-V

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 57.8px;">22XQ2-VRXRG-P8D42-K34TD-G3QQC

</td></tr><tr style="height: 57.8px;"><td class="pm-table-cell-content-wrap" style="width: 54.201%; height: 57.8px;">Windows Server 2008 for Itanium-Based Systems

</td><td class="pm-table-cell-content-wrap" style="width: 45.6343%; height: 57.8px;">4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

</td></tr></tbody></table>

---

#### **Earlier versions of Windows**

##### **Windows 8.1**

<table id="bkmrk-windows-8.1-operatin"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 8.1

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8.1 Pro

</td><td class="pm-table-cell-content-wrap">GCRJD-8NW9H-F2CDX-CCM8D-9D6T9

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8.1 Pro N

</td><td class="pm-table-cell-content-wrap">HMCNV-VVBFX-7HMBH-CTY9B-B4FXY

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8.1 Enterprise

</td><td class="pm-table-cell-content-wrap">MHF9N-XY6XB-WVXMC-BTDCT-MKKG7

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8.1 Enterprise N

</td><td class="pm-table-cell-content-wrap">TT4HM-HN7YT-62K67-RGRQJ-JFFXW

</td></tr></tbody></table>

##### **Windows 8**

<table id="bkmrk-windows-8-operating-"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 8

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8 Pro

</td><td class="pm-table-cell-content-wrap">NG4HW-VH26C-733KW-K6F98-J8CK4

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8 Pro N

</td><td class="pm-table-cell-content-wrap">XCVCF-2NXM9-723PB-MHCB7-2RYQQ

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8 Enterprise

</td><td class="pm-table-cell-content-wrap">32JNW-9KQ84-P47T8-D8GGY-CWCK7

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 8 Enterprise N

</td><td class="pm-table-cell-content-wrap">JMNMF-RHW7P-DMY6X-RF3DR-X2BQT

</td></tr></tbody></table>

##### **Windows 7**

<table id="bkmrk-windows-7-operating-"><tbody><tr><td class="pm-table-cell-content-wrap" colspan="2">Windows 7

</td></tr><tr><td class="pm-table-cell-content-wrap">**Operating system edition**

</td><td class="pm-table-cell-content-wrap">**KMS Client Product Key**

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 7 Professional

</td><td class="pm-table-cell-content-wrap">FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 7 Professional N

</td><td class="pm-table-cell-content-wrap">MRPKT-YTG23-K7D7T-X2JMM-QY7MG

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 7 Professional E

</td><td class="pm-table-cell-content-wrap">W82YF-2Q76Y-63HXB-FGJG9-GF7QX

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 7 Enterprise

</td><td class="pm-table-cell-content-wrap">33PXH-7Y6KF-2VJC9-XBBR8-HVTHH

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 7 Enterprise N

</td><td class="pm-table-cell-content-wrap">YDRBP-3D83W-TY26F-D46B2-XCKRJ

</td></tr><tr><td class="pm-table-cell-content-wrap">Windows 7 Enterprise E

</td><td class="pm-table-cell-content-wrap">C29WB-22CC8-VJ326-GHFJW-H9DH4

</td></tr></tbody></table>

# Réseau

Notions Théoriques liées au réseau.

# Réseau - Adressage IPV4

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Réseau, adressage Modèle OSI Couche 3.

</td></tr></tbody></table>

<p class="callout info">Voir la ressource sur le modèle OSI : [Réseau - Modèle OSI](https://docs.labs404.fr/books/cours-it/page/reseau-modele-osi "Réseau - Modèle OSI")</p>

---

### **<span style="text-decoration: underline;">I.Introduction</span>**

Cette page a pour but d’introduire les notions d’adressage ip dans la norme IPV4.

#### 1.1 Un besoin, une solution

Avec l’arrivée des réseaux, les ordinateurs se sont vu offrir la capacité de communiquer entre eux pour échanger des informations.

Cela a ouvert la voie au modèle client/serveur, puis plus tard a internet qui est l’assemblage des mot inter(entre eux) network (réseau) soit, littéralement, un ensemble de réseaux interconnectés.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/JzTimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/JzTimage-png.png)

Mais pour que cela fonctionne, il faut déjà pouvoir savoir qui est qui. Pour ensuite savoir qui veut parler à qui.

Il faut donc un système permettant “d’adresser” la communication. C’est là qu’intervient le système d’adressage IP.

#### 1.2 Analogie avec le réel

Pour faire une analogie simple, il faut voir cela comme des villes. Avec leurs rues, immeubles et numéros.

Pour envoyer un colis (un paquet) à Mr Dupuis, il faut lui envoyer cela dans la ville de Lyon, Rue Descola au numéro 108.

Pour un ordinateur, c’est la même chose. Pour envoyer un paquet (réseau cette fois), il faut avoir soi-même une adresse et connaître celle de son interlocuteur.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/u6zimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/u6zimage-png.png)

En complément de cela, comme les ordinateurs sont dans des réseaux interconnectés, il faut savoir dans quel réseau son interlocuteur se trouve. Pour cela deux notions sont importantes :

- ***<span class="fabric-text-color-mark">L'adresse de réseau</span>***
- ***<span class="fabric-text-color-mark">L’adresse hôte</span>***

---

### **<span style="text-decoration: underline;">II. Fonctionnement</span>**

Défini dans la 4**<span style="text-decoration: underline;">  
</span>**

#### **2.1 Structure**

Les adresses <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">IPV4</span>***</span> sont construites en <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">4 blocs</span>***</span>. Chaque bloc étant ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">un octet</span> </span>***(8bits). Ce qui donne un total de <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">32 bits</span>***</span>.

Ces blocs sont <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">séparés par un point</span>***</span>. Cela donne quelque chose comme :

*192.168.1.27*

#### **2.2 Le binaire**

##### *Question 1 : d’où viennent ces chiffres ?* 

*c’est en réalité assez simple. Voici <span style="color: rgb(132,63,161);">**<span class="fabric-text-color-mark">un octet</span>** </span>:*

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/v2Yimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/v2Yimage-png.png)

Composé de <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">8 bits</span>***</span>, cet octet est vide. Sa valeur totale est donc 0.

Le binaire est un système de comptage en ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">base 2</span> </span>***(nous comptons en base 10).

Il n’y a donc pour chaque bit que deux états possibles : <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">0</span>***</span> ou <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">1</span>***</span>.

Pour l’ordinateur, un bloc d’adresse ressemble donc à ceci :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/P3simage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/P3simage-png.png)

##### *Question 2 : Comment convertir ce nombre binaire en nombre compréhensible par un humain ?*

Avec une table de conversion. <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">Chaque bit</span>***</span> d’un octet a une <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">valeur décimale</span>***</span>. Voici la table de conversion :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/QHWimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/QHWimage-png.png)

Pour calculer combien cela fait en décimal, il faut ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">ajouter</span> </span>***les chiffre correspondant à chaque 1.

Dans cet exemple : *128+64+8+2+1 = 203*.

Ainsi voici l’adresse complète ci-dessus :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wacimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wacimage-png.png)

Une adresse est donc ‘codée’ sur <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">32 bits</span>***</span>.

#### **2.3 Le masque de sous-réseau**

Il est maintenant possible de comprendre l’adresse d’un machine, mais il manque un point essentiel :

##### *Question 1 : Comment peut-on savoir à quel réseau appartient cette machine ?*

En effet, comme dit en introduction, pour pouvoir communiquer avec une autre machine, son adresse ne suffit pas. Il faut aussi savoir dans quel réseau elle se trouve.

Pour éviter de gérer trop de données et d’adresses différentes, faciliter les communications et permettre une découpage sur mesure des réseaux, une solution a été trouvée :

L’adresse IP contiendra<span style="color: rgb(132,63,161);"> </span>***<span class="fabric-text-color-mark" style="color: rgb(132,63,161);">à la fois</span>*** les informations du <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">réseau</span>*** </span>ET de la <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">machine</span>***</span>.

C’est là que rentre en jeu une seconde donnée importante : <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">le masque de sous-réseau</span>***</span>

##### *Question 2 : Comment tout cela fonctionne ?*

Les choses se corsent un peu, mais sans devenir réellement plus complexes.

Si l’on reprends l’exemple ci-dessus : 192.168.1.27

Cette adresse contient en réalité les deux informations. Mais comment les différencier ?

A l’aide du <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">masque de sous-réseau</span>***</span>.

Celui-ci est sous la forme *255.255.255.0*

Il est construit de la même manière que l’adresse. <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">4 blocs</span>***</span> de ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">8 bits</span> </span>***pour un total de <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">32 bits</span>***</span>.

Ce n’est pas une coïncidence si les deux données font 32 bits. En effet, si cela s’appelle un masque, c’est qu’il doit se superposer à l’adresse. Voici à quoi ressemble ce masque en binaire.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/zoPimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/zoPimage-png.png)

Normalement, quelque chose doit sauter aux yeux. Tous les 1 sont d’un côté et tous les 0 de l’autre.

Et voila comment la ‘magie’ opère. Pour savoir quelle partie est l’adresse réseau et quelle partie est l’adresse machine, il faut séparer les ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">1 (partie réseau)</span> </span>***et les <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">0 (partie machine)</span>***</span>.

<p class="callout info">Pour plus de clarté dans l’affichage, la table de conversion ne sera plus affichée.</p>

Reprenons les exemples ci-dessus et Appliquons le masque:

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ZUsimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ZUsimage-png.png)

Ici, l’on peut donc voir sur l’adresse que : <span style="color: rgb(224,62,45);">***<span class="fabric-text-color-mark">192.168.1</span>*** </span>est la partie <span style="color: rgb(224,62,45);">***<span class="fabric-text-color-mark">réseau</span>***</span> et <span style="color: rgb(45,194,107);">***<span class="fabric-text-color-mark">.27</span>***</span> la partie <span style="color: rgb(45,194,107);">***<span class="fabric-text-color-mark">machine</span>***</span>.

En déplaçant le curseur du masque (appelée "longueur de préfixe"), on peut ajuster la taille des réseaux et ainsi le nombre de machines qu’ils peuvent accueillir. Par exemple, si l’on reprends l’adresse 192.168.1.27 mais que l’on applique cette fois un masque en 255.255.0.0 , On obtient :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/flSimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/flSimage-png.png)

<p class="callout info">Le ‘curseur’ peut bien sûr être positionné au milieu d’un bloc pour ajuster le nombre de machine au plus près du besoin.</p>

####   


##### *Question 3 : A quoi ça sert d’avoir différente tailles de réseaux ?*

A avoir des réseaux plus ou moins grands.

La première limitation de ce système, c’est que le fait de déplacer ce curseur signifie que l’on va jouer sur les quantités de réseaux disponibles et de machines par réseaux. Les adresses sont constituées de 32 bits. Ni plus, ni moins.

Moins l’on alloue de bits à la partie réseau, plus on en alloue à la partie machine et vice versa.

En pratique, cela signifie que l’on a :

- Soit, peu de gros réseaux avec beaucoup de machines par réseau.
- Soit, beaucoup de petits réseaux, mais avec un nombre limité de machines par réseau.

##### *Question 4 : Et pourquoi avoir tous ces différents réseaux ?*

De base, les ordinateurs ne peuvent communiquer qu’entre membres d’un même réseau.

Donc il est important de pouvoir adapter la taille de celui-ci au nombre de machines que l’on veut mettre dedans.

Cela permet de segmenter les réseaux pour les spécialiser, mais aussi les sécuriser en séparant des réseaux plus ou moins exposés ou avec des usages différents.

Les réseaux pourront ensuite êtres interconnectés entre eux en utilisant des '<span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">passerelles</span>***</span>'.

---

### <span style="text-decoration: underline;">**III. Applications**</span>

#### **3.1 Les adresses réservées**

En se basant sur tout ce qui a été expliqué avant, l’on peut comprendre que pour un octet, la <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">valeur minimale</span>***</span> est donc <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">0</span>*** </span>et la <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">valeur maximale</span>***</span> est la somme des valeurs de tout ses bits, soit <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">255</span>***</span>.

Cependant, deux choses rentrent également en ligne de comptes :

- De la même façon qu’il faut pouvoir définir une ville par son nom, il faut pouvoir définir un réseau par une adresse, qui sera son identifiant (son code postal en quelque sorte).
    
    
    - Il a donc été défini que lorsque la ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">partie machine</span> </span>***de l’adresse est <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">égale à 0 </span>***</span>(c’est a dire que tous ces bits sont a Zéro), cette adresse est <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">réservée comme identifiant du réseau</span>***</span>

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/oh9image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/oh9image-png.png)

*\*ici, si l’on met tous les bits de la partie machine a 0, l’adresse du réseau est donc 192.168.1.0*

- En réseau, il est non seulement possible d’envoyer un paquet à une machine, mais également d’envoyer un paquet à toutes les machines d’un réseau en même temps. On appelle cela un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">Broadcast</span>***</span>.
    
    
    - Et pour cela, utiliser une adresse spéciale où <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">tous les bits de la partie machine</span>*** </span>sont <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">égaux à 1</span>***</span>.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/YQFimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/YQFimage-png.png)

*\*ici, si l’on met tous les bits de la partie machine a 1, l’adresse de broadcast est 192.168.1.255*

Lorsque l’on calcule donc la <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">capacité d’un réseau</span>***</span> en nombre d’adresses machine, il faut<span style="color: rgb(132,63,161);"> ***r<span class="fabric-text-color-mark">etirer ces deux adresses</span>***</span> du nombre d’adresses disponibles. Qui sont donc la première et la dernière adresse de la plage.

Dans l’exemple du réseau pris dans ce chapitre, voici donc ses données :

- Adresse réseau : 192.168.1.0
- Masque réseau : 255.255.255.0
- Adresse de broadcast : 192.168.1.255
- Nombre d’adresses machines disponibles : 254

Ainsi les machines pourront avoir les adresses suivantes :

- 192.168.1.1
- 192.168.1.2
- 192.168.1.3
- … … …
- 192.168.1.254

#### **3.2 Exemples courants**

Voici une table des tailles de masques avec pour chacune le nombre de réseaux et de machines disponible.

<div class="pm-table-container with-shadow-observer" id="bkmrk-nombre-de-bits-de-la" style="width: inherit;"><div class="pm-table-wrapper"><table><colgroup><col style="width: 305px;"></col><col style="width: 211px;"></col><col style="width: 241px;"></col></colgroup><tbody><tr><th class="ak-renderer-tableHeader-sortable-column" colspan="1" rowspan="1">**nombre de bits de la partie réseau**

</th><th class="ak-renderer-tableHeader-sortable-column" colspan="1" rowspan="1">**masque**

</th><th class="ak-renderer-tableHeader-sortable-column" colspan="1" rowspan="1">**nombre d’adresse disponible**

</th></tr><tr><td colspan="1" rowspan="1">24

</td><td colspan="1" rowspan="1">255.255.255.0

</td><td colspan="1" rowspan="1">254

</td></tr><tr><td colspan="1" rowspan="1">16

</td><td colspan="1" rowspan="1">255.255.0.0

</td><td colspan="1" rowspan="1">65 534

</td></tr><tr><td colspan="1" rowspan="1">27

</td><td colspan="1" rowspan="1">255.255.255.224

</td><td colspan="1" rowspan="1">30

</td></tr><tr><td colspan="1" rowspan="1">28

</td><td colspan="1" rowspan="1">255.255.255.240

</td><td colspan="1" rowspan="1">14

</td></tr></tbody></table>

<div class="sentinel-right">  
</div></div></div>#### **3.3 Les passerelles**

Étant donné que les machines ne peuvent communiquer qu’entre machines d’un même réseau, il faut utiliser des machines pour servir de passerelles entre les réseaux. Ces machines doivent évidement disposer d’une adresse dans chaque réseau auxquels elles seront connectées.

Il faut donc prévoir dans son calcul de réserver les adresses pour ces passerelles.

Ces machines seront appelées ‘<span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">routeurs</span>***</span>’.

<p class="callout info">Cours sur le routage : <span class="status-lozenge-span" style="color: rgb(186,55,42); background-color: rgb(248,202,198);"><span class="css-uqgrjn" style="vertical-align: baseline; max-width: 100%;"><span class="css-s091n4" style="width: 100%;"> todo   
</span></span></span></p>

---

### <span style="text-decoration: underline;">**IV. Conventions**</span>

#### **4.1 La notation CIDR**

Par facilité, une <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">notation alternative</span>***</span> à la notation adresse + masque a été mise au point.

Il s’agit ici de noter l’adresse et y accoler le nombre de bits de cette adresse constituant la partie réseau.

Ainsi *192.168.1.0* et *255.255.255.255* deviennent <span style="color: rgb(132,63,161);">**<span class="fabric-text-color-mark">192.168.1.0/24</span>**</span>

Et l’on peux aussi utiliser cette notation pour désigner une machine <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">192.168.1.27/24</span>***</span>

Ainsi, l’on a en une fois à la fois l’adresse d’une machine et les informations permettant de savoir à quel réseau elle appartient.

####   


#### **4.2 Les classes d’adresses**

Les adresses sont réparties en <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">4 classes définies par le nombre de bits alloués aux réseaux</span>***</span> afin de regrouper ensemble les réseaux de même capacité.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/I2rimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/I2rimage-png.png)

Ainsi, les réseaux de<span style="color: rgb(132,63,161);"> ***<span class="fabric-text-color-mark">classe A</span>*** </span>ont un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">premier octet compris entre 1 et 126\*</span>***</span>. soit un bit de poids fort égal à 0.

Les réseaux de <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">classe B</span>*** </span>ont un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">premier octet compris entre 128 et 191</span>***</span>. soit deux bits de poids fort égaux à 10.

Les réseaux de <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">classe C</span>***</span> ont un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">premier octet compris entre 192 et 223</span>***</span>. Soit 3 bits de poids fort égaux à 110.

Les réseaux de ***<span class="fabric-text-color-mark" style="color: rgb(132,63,161);">classe D</span>*** sont un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">cas particulier</span>***</span>. Ils ont un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">premier octet compris entre 224 et 239</span>***</span>. Soit 3 bits de poids fort égaux à 1. Il s’agit de réseaux et adresses <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">réservées pour le multicast</span>***</span>.

<p class="callout info">Cours sur le multicast : <span class="status-lozenge-span" style="color: rgb(186,55,42); background-color: rgb(248,202,198);"><span class="css-uqgrjn" style="vertical-align: baseline; max-width: 100%;"><span class="css-s091n4" style="width: 100%;"> todo </span></span></span></p>

Une dernière classe existe, avec un <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">premier octet compris entre 240 et 255</span>***</span>. Il s’agit de la <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">classe E</span>***</span>. Ces adresses sont ***<span class="fabric-text-color-mark"><span style="color: rgb(132,63,161);">réservées pour l’expérimentation</span> </span>***et <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">ne DOIVENT PAS être utilisées</span>***</span>.

*\*le réseau de classe A 127 est réservé.*

#### **4.3 Les IP privées et publiques**

Défini dans la [rfc1918](http://wapiti.enic.fr/commun/ens/peda/options/ST/RIO/pub/exposes/exposesrio2002/andre-pelloux/glossaire.htm#rfc1918)

En plus de ces classes, il faut différencier les <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">plages d’adresses réservées à un usage public</span>***</span>, par les opérateurs internets notamment et celles, <span style="color: rgb(132,63,161);">***<span class="fabric-text-color-mark">privées</span>***</span>, utilisable par les<span style="color: rgb(132,63,161);"> ***<span class="fabric-text-color-mark">particuliers et les entreprises</span>***</span>.

Actuellement les adresses privées utilisables sont les suivantes :

- classe A : 10.0.0.0 à 10.255.255.255
- classe B : 172.16.0.0 à 172.31.255.255
- classe C : 192.168.0.0 à 192.255.255.255

<p class="callout success">Sachant que la plupart des réseaux domestiques sont en 192.168.1.0/24 ou 192.168.1.0/24 il est recommandé d’utiliser d’autres plages pour des réseaux de LAB ou d’entreprise.</p>

<p class="callout success">Notamment ceux de classe B, qui ne sont pas utilisés en usage domestique ou en IoT.</p>

#### **4.4 Les ip particulières**

Dans les plages existantes il y a un certains nombres d’adresses ou de réseaux qui sont réservés à des usages particuliers et qui ne sont par conséquent pas utilisables :

- 127.0.0.1 : adresse générique utilisée pour désigner la boucle locale (localhost)
- 0.0.0.0 : adresse utilisée pour indiquer une route par défaut (tout le monde).
- 255.255.255.255 : broadcast général.

---

### <span style="text-decoration: underline;">**V. Conclusion**</span>

Pour résumer,

Au sein d’un LAB ou d’une entreprise. Il est possible de découper plusieurs sous-réseaux. Dans la limite des IP privées des classes A,B et C. Avec une préconisation pour l’usage d’adresses de classe B.

Aller plus loin :

<div class="ak-editor-panel__content" id="bkmrk-cours-sur-le-nat%2Fpat">- <p class="callout info">cours sur le NAT/PAT : [Réseau - Le NAT / PAT](https://docs.labs404.fr/books/brouillons-et-notes/page/reseau-le-nat-pat "Réseau - Le NAT / PAT")</p>
- <p class="callout info">cours sur les ports et les sockets : [Réseau - Définition du socket](https://docs.labs404.fr/books/cours-it/page/reseau-sockets "Réseau - Définition du socket")</p>
- <p class="callout info">Adressage IPV6 : [Réseau - Adressage IPv6](https://docs.labs404.fr/books/brouillons-et-notes/page/reseau-adressage-ipv6 "Réseau - Adressage IPv6")</p>

</div>

# Réseau - L'agrégation de liens (LAGG)

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![Débutant.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Réseau, interfaces, agrégation de liens.

</td></tr></tbody></table>

---

### **<span style="text-decoration: underline;">I.Différents scenarii  
</span>**

Cette fiche a pour but d’expliquer le fonctionnement des agrégations de liens (Link aggregation ou LAGG)

#### **2.1 Scenario 1 : Agrégation de lien (actif/actif)** 

Le but de ce scénario est d’agréger la bande passante afin de cumuler les bandes passantes de toutes les cartes.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Anrimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Anrimage-png.png)

Dans cette configuration, une interface virtuelle est créée.

Elle va utiliser les deux adaptateurs physique afin de cumuler leurs débit.

Les cartes fonctionnent ensemble et si l’une des deux est coupée. L’ensemble n’est plus actif et le lien ne fonctionne plus.

#### **2.2 Scenario 2 : Failover (actif/passif)** 

Le but de ce scénario est d’avoir un lien de secours pour anticiper une éventuelle panne de matériel.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/lOoimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/lOoimage-png.png)

Dans cette configuration, une interface virtuelle est créée.

Elle va utiliser le premier adaptateur en lien nominal et le second en lien de secours.

En cas de rupture du lien nominal, la carte de secours sera utilisée.

Cela apporte une sécurité mais n’augmente pas le débit.

#### **2.3 Scenario 3 : LACP (actif/actif + Redondance)** 

<p class="callout danger">Ce scénario nécessite un switch manageable prenant en charge le LACP.</p>

Le LACP est la fusion des deux scenarii ci-dessus.

<table id="bkmrk--3" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/sVaimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/sVaimage-png.png)

</td><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/li7image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/li7image-png.png)

</td></tr></tbody></table>

Dans cette configuration, une interface virtuelle est créée.

Les deux adaptateurs sont activement utilisés, en cas de coupure d’un lien, le système fonctionne en mode dégradé

# Réseau - Modèle OSI

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : réseau, modèle OSI

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Le modèle OSI (**O**pen **S**ystems **I**nterconnection) est un modèle conceptuel en couche développé par l'**I**nternational **S**tandardisation **O**rganisation (ISO).

Il permet de conceptualiser les communications réseaux entre les ordinateurs en divisant le processus de communication en **<span style="color: rgb(132,63,161);">7 couches distinctes</span>**.

Chaque couche à un rôle spécifique et interagis avec les couches directement situées en dessous et au dessus d'elle.

Cette approche, en plus de visualiser le fonctionnement des communication réseau en permet un diagnostic efficace.

Voici la représentation des différentes couches.

[![modeleosi.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/modeleosi-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/modeleosi-png.png)

Lors des communications entre machines, celles-ci seront <span style="color: rgb(132,63,161);">***encapsulées***</span> les unes dans les autres donnant alors ce que l'on appellera une '<span style="color: rgb(132,63,161);">***trame***</span>' réseau.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Les couches du modèle OSI</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Couche 1 : Physique**</span>

Il s'agit de la couche matérielle. Celle permettant de porter le signal réseau.

Elle est constituée des câbles réseaux, fibres optiques, ondes WIFI et des contacts électroniques des cartes réseaux.

Il s'agit de ce que l'on appelle le '<span style="color: rgb(132,63,161);">***medium de propagation du signal***</span>'

<table id="bkmrk-c%C3%A2ble-rj45-connecteu" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/NNoimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/NNoimage-png.png)

</td><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wBrimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wBrimage-png.png)

</td><td style="border-style: none;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/iwhimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/iwhimage-png.png)

</td></tr><tr><td class="align-center" style="border-style: none;">*câble RJ45*</td><td class="align-center" style="border-style: none;">*connecteurs fibre*  
</td><td class="align-center" style="border-style: none;">*antenne wifi*  
</td></tr></tbody></table>

<details id="bkmrk-outils-de-diagnostic"><summary>Outils de diagnostics</summary>

- vérification du câble ou fibre
- état des voyants sur l'interface
- état de la carte : 'link up / link down'

</details>#### <span style="color: rgb(35,111,161);">**2.2 Couche 2 : Liaison**</span>

Il s'agit de la couche permettant aux machines de communiquer entre elles au plus bas niveau et de se transmettre le signal d'un nœud à un autre. En d'autre terme, d'établir une '<span style="color: rgb(132,63,161);">***liaison***</span>' entre elles.

On y retrouve notamment les adresses MAC (**M**edia **A**ccess **C**ontrol).

Une adresse MAC est un identifiant physique unique permettant d'identifier l'interface réseau au plus bas niveau.

Les plages d'adresses MAC sont distribuées aux constructeurs de matériel réseau et chaque interface matérielle est dotée de sa propre adresse MAC unique au monde.

[![krqimage.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/krqimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/krqimage-png.png)

Les protocoles utilisés à ce niveau sont :

- Ethernet
- PPP
- ...

C'est à ce niveau que va s'opérer le contrôle d'erreur (CRC) et la commutation par les switches. La gestion des VLAN, etc...

<details id="bkmrk-outils-de-diagnostic-1"><summary>Outils de diagnostics</summary>

Vérification des tables ARP

par exemple :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/REbimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/REbimage-png.png)

</details>#### <span style="color: rgb(35,111,161);">**2.3 Couche 3 : Réseau**</span>

La couche réseau est la plus connue et manipulée directement par les administrateurs réseaux et systèmes.

Il s'agit de la couche qui permet de faire abstraction de la couche matérielle afin de construire des topologies réseau logiques.

Celles-ci pourront de ce fait être cartographiées et des '<span style="color: rgb(132,63,161);">***routes***</span>' permettrons d'interconnecter ces topologies entres elles.

C'est à ce niveau là qu'interviens le protocole <span style="color: rgb(132,63,161);">***IP*** </span>et que l'on retrouve nos adresses logiques uniques sur le réseau.

- [Réseau - Adressage IPV4](https://docs.labs404.fr/books/cours-it/page/reseau-adressage-ipv4 "Réseau - Adressage IPV4")
- [Réseau - Adressage IPv6](https://docs.labs404.fr/books/brouillons-et-notes/page/reseau-adressage-ipv6 "Réseau - Adressage IPv6")

A ce niveau, l'on parle de <span style="color: rgb(132,63,161);">***trames***</span> ip. Ces trames ont une taille limite de 65536 Octets. Mais celle-ci ne sera que rarement atteinte, car elle va être limitée par la taille maximale que les réseaux qui la portent peuvent supporter.

Cela se négocie grâce au <span style="color: rgb(132,63,161);">***MTU***</span> (**M**aximum **T**ransfer **U**nit). Passé cette taille, les trames seront fragmentées.

Cette fragmentation est gérée par le routeur.

<p class="callout warning">**Attention** : Rien ne garantis à ce stade que les paquets arriveront dans le bon ordre. Cela sera géré sur la couche suivante.</p>

Voici les en-têtes présents sur cette couche :

<table id="bkmrk-en-t%C3%AAte-description-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 24.9405%;"></col><col style="width: 75.1786%;"></col></colgroup><tbody><tr><td style="background-color: rgb(194,224,244);">**en-tête**</td><td style="background-color: rgb(194,224,244);">**Description**</td></tr><tr><td>**TTL** (**T**ime **T**o **L**ive)  
</td><td>ce champs permet de définir une expiration sur les paquets afin que ceux-ci puissent "s'autodétruire" si leur durée de vie est expirée. Empêchant ainsi une saturation du réseau.</td></tr><tr><td>**SRC** (Source address)  
</td><td>Adresse IP de la source de la transmission.</td></tr><tr><td>**DST** (Destination address)  
</td><td>Adresse IP de la destination de la transmission.</td></tr><tr><td>**Checksum**  
</td><td>Somme de contrôle IP.</td></tr></tbody></table>

C'est sur cette couche que sont géré entre autre le routage, le diagnostic et les tests de connectivité (avec ICMP).

<details id="bkmrk-outils-de-diagnostic-2"><summary>Outils de diagnostics</summary>

- ping 
    - **general failure** : problème sur la pile TCP ou pas de signal  
        
        - *vérifier câble et configuration IP*
    - **host** **unreachable** : le ping n'est pas parvenu à l'hôte de destination 
        - vérifier l'état de la passerelle, les configuration IP et le routage
    - **Request timed out** : l'hôte de destination a bien reçu la requête mais n'a pas renvoyé de réponse. 
        - pare-feu ? route retour ?
    - **TTL expired in transit** : le paquet a dépassé le nombre de saut maximum (sans doute une boucle de routage).
    - **Anwer from &lt;host&gt;** : OK

- tracert / traceroute : permet de voir les sauts pour vérifier la route empruntée

</details>#### <span style="color: rgb(35,111,161);">**2.4 Couche 4 : Transport**</span>

La couche 4 sert à faire passer des communication à travers le réseau IP.

On y retrouve principalement 2 protocoles de transfert :

- TCP (**T**ransmission **C**ontrol **P**rotocol) : un protocole permettant un transfert de donnée contrôlé avec une gestion des erreurs.
- UDP (**U**ser **D**atagram **P**rotocol) : un protocole sans contrôle d'erreur, mais permettant des interactions plus rapide.

La différence majeure entre les deux tient au fait que TCP gère la transmission, là ou UDP se contente d'envoyer des paquets sans aucun contrôle de la transmission.

##### <span style="color: rgb(53,152,219);">***2.4.1 TCP***</span>

Un paquet TCP est appelé un <span style="color: rgb(132,63,161);">***Segment***</span>.

TCP prends en charge la gestion des erreurs. A chaque trame transmise, des informations de contrôle y sont adjointes.

Ces informations permettent ainsi au récepteur de pouvoir s'assurer du numéro de paquet dans la transmission, du fait que le paquet soit complet et reçu sans erreur, de gérer les erreur éventuelles en demandant un nouvel envoi de paquet et enfin de savoir quand la transmission est complétée.

<p class="callout success">*Cela le rends donc idéal pour tous les protocoles nécessitant que la donnée soit reçue de façon certaine. Par exemple pour le FTP, SFTP, SMB, HTTP, etc...*</p>

Un échange TCP se déroule de la façon suivante :

<table id="bkmrk-etape-message-descri" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 6.7938%;"></col><col style="width: 11.3808%;"></col><col style="width: 81.8254%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">**Etape**</td><td style="background-color: rgb(194,224,244);">**Message**</td><td style="background-color: rgb(194,224,244);">**Description**</td></tr><tr><td class="align-center">**1**</td><td>SYN  
</td><td>Un message SYN est envoyé par la machine 1, dans le cadre d'un processus appelé '<span style="color: rgb(132,63,161);">***handshake***</span>'. Ce paquet est issu afin d'initier la connexion et synchroniser les deux machines.</td></tr><tr><td class="align-center">**2**</td><td>SYN / ACK</td><td>Ce paquet est envoyé par la machine 2 après réception du paquet de la machine 1 permettant de valider la réception de la demande d'échange.</td></tr><tr><td class="align-center">**3**</td><td>ACK</td><td>Ce message sera ensuite envoyé après chaque transmission, afin d'en valider la réception.</td></tr><tr><td class="align-center">**4**</td><td>DATA</td><td>Une fois la connexion établie, les données sont transmises à travers des messages data, qui seront 'acknowledged'.</td></tr><tr><td class="align-center">**5**</td><td>FIN</td><td>A la fin de la transmission, ce paquet est utilisé pour clôre proprement la session.</td></tr><tr><td class="align-center">**\#**</td><td>RST</td><td>Ce paquet est utilisé en lieu et place du paquet FIN si il y a eu un problème durant la transmission. Celui-ci terminera alors de façon abrupte la communication.</td></tr></tbody></table>

<div drawio-diagram="175"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782717563-png.png" alt="drawing-1-1782717563.png"/></div>

Ainsi, les données importantes présentes dans les trames TCP Sont :

<table id="bkmrk-en-t%C3%AAte-description--1" style="border-collapse: collapse; width: 100%; height: 346.344px;"><colgroup><col style="width: 24.9106%;"></col><col style="width: 75.0894%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="background-color: rgb(194,224,244); height: 29.7969px;">**en-tête**</td><td style="background-color: rgb(194,224,244); height: 29.7969px;">**Description**</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**SRC** (Source address)  
</td><td style="height: 29.7969px;">Adresse IP de la source de la transmission.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**DST** (Destination address)  
</td><td style="height: 29.7969px;">Adresse IP de la destination de la transmission.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**SRC port**</td><td style="height: 29.7969px;">Le port source de la transmission.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**DST port**  
</td><td style="height: 29.7969px;">Le port de destination de la transmission.</td></tr><tr style="height: 48.375px;"><td style="height: 48.375px;">**Sequence Number**</td><td style="height: 48.375px;">Lors de l'établissement de la connexion, le premier paquet reçois un numéro initial aléatoire. il constituera le premier numéro de la séquence à transmettre.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**ACK Number**</td><td style="height: 29.7969px;">Après l'envoi d'un bloc de donnée ayant reçu un Sequence Number, le nombre du prochain bloc reçois le nombre de séquence + 1 et ainsi de suite.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Checksum**  
</td><td style="height: 29.7969px;">Somme de contrôle, pour vérifier l'intégrité du paquet.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Data**</td><td style="height: 29.7969px;">Là où se situe la donnée envoyée dans la trame.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Flag**</td><td style="height: 29.7969px;">Ce champ détermine comment la trame doit être traitée par les deux machines durant le processus de Handshake. ( SYN / ACK / FIN / RST )</td></tr></tbody></table>

Cela permet de s'assurer que la transmission se déroule bien, de gérer les erreurs.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DzSimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DzSimage-png.png)

##### <span style="color: rgb(53,152,219);">***2.4.1 UDP***</span>

Un paquet UDP est appelé un <span style="color: rgb(132,63,161);">***Datagrame***</span>*.*

Contrairement à TCP, le protocole UDP ne prends pas en charge de contrôle de transmission ou d'erreur. Ce qui rends la perte de paquet irrémédiable.

Mais cette absence de contrôle en fait également son point fort. En effet, du fait de sa simplicité, il est très utile pour gérer des flux continus.

<div drawio-diagram="177"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782720795-png.png" alt="drawing-1-1782720795.png"/></div>

<p class="callout success">*Cela rends UDP parfait pour des transmissions continues et massive, comme par exemple des flux vidéos, VoIP ou autres...*  
</p>

<details id="bkmrk-outils-de-diagnostic-3"><summary>Outils de diagnostics</summary>

<table><thead><tr><td style="border-style: solid; background-color: rgb(194,224,244);">Outils</td><td style="border-style: solid; background-color: rgb(194,224,244);">DIgnostics</td></tr></thead><tbody><tr><td style="border-style: solid;">netstat</td><td style="border-style: solid;">Ports, sessions, TCP states</td></tr><tr><td style="border-style: solid;">ss</td><td style="border-style: solid;">Sockets, queues, states</td></tr><tr><td style="border-style: solid;">tcpdump</td><td style="border-style: solid;">Flags, handshake, resets</td></tr><tr><td style="border-style: solid;">Wireshark</td><td style="border-style: solid;">analyse complète</td></tr><tr><td style="border-style: solid;">lsof</td><td style="border-style: solid;">Process ↔ port mapping</td></tr><tr><td style="border-style: solid;">telnet / nc</td><td style="border-style: solid;">Disponibilité du port</td></tr><tr><td style="border-style: solid;">curl / wget</td><td style="border-style: solid;">TCP errors, resets</td></tr><tr><td style="border-style: solid;">(PowerShell) test-netconnection</td><td style="border-style: solid;">Windows TCP diagnostics</td></tr><tr><td style="border-style: solid;">iperf</td><td style="border-style: solid;">Throughput, retransmissions</td></tr><tr><td style="border-style: solid;">ssldump</td><td style="border-style: solid;">TLS handshake issues</td></tr></tbody></table>

</details>#### <span style="color: rgb(35,111,161);">**2.5 Couche 5 : Session**</span>

La couche 5 permet le contrôle des '<span style="color: rgb(132,63,161);">***sessions***</span>' de communications entre les applications.

C'est ici que les échanges vont être commencé, suivis, terminés entre les interlocuteurs.

C'est également ici que les erreurs de communications, les mises en attentes de paquets vont être gérées.

#### <span style="color: rgb(35,111,161);">**2.6 Couche 6 : Présentation**</span>

La couche 6 permet la mise en forme préalable des données de la couche suivante, soit sa '<span style="color: rgb(132,63,161);">***présentation***</span>'.

C'est sur cette couche que ce fait par exemple le chiffrement du flux de données avant l'envoi de la trame (SSL / TLS).

C'est donc aussi sur cette couche que s'opèrera le déchiffrement.

Si des algorithmes de compression de flux sont mis en œuvre, ils se reposeront aussi sur cette couche pour la compression et décompression des flux.

#### <span style="color: rgb(35,111,161);">**2.7 Couche 7 : Application**</span>

C'est enfin sur cette couche que passe la communication des différents services et application.

C'est là que se retrouvent l'ensemble des protocoles liés aux applications comme le DNS, DHCP, NTP, HTTP, etc...

<details id="bkmrk-outils-de-diagnostic-4"><summary>Outils de diagnostics</summary>

Côté client, tester la connexion TCP avec telnet, netcat ou autre.

```powershell
Telnet
```

</details>---

### <span style="text-decoration: underline;"><span style="color: rgb(52,73,94); text-decoration: underline;">III. Conclusion</span></span>

Lors d'un diagnostic sur un problème réseau, il est important d'avoir ce modèle en tête et de réfléchir au problème couche par couche en partant de la plus basse.

Cela permet de gagner du temps sur la résolution d'un problème.

A moins bien sûr que la couche qui pose problème soit clairement identifiée au départ par le retour obtenu ou le message d'erreur.

Basiquement, pour une résolution de problème sur la connectivité des VM, les questions à se poser sont :

1. La carte réseau existe et est connectée
2. Je suis situé sur le bon Vswitch (VMBR)
3. Je suis dans la bonne plage IP des deux côté
4. Les pare-feu / routeurs sont bien configurés

Si le signal est OK et que le ping passe,

1. Le service est démarré sur le serveur,
2. Le port est ouvert
3. la configuration de mon service est correcte
4. le contenu est accessible.

# Réseau - Protocole DHCP

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wYQnovice-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wYQnovice-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Novice

Résumé :

- **OSI** : couche 7 (Application) sur couche 4 (Transport)
- **Type** : UDP
- **Port** : 67, 68

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Le protocole DHCP (**D**ynamic **H**ost **C**onfiguration **P**rotocol) est un protocole permettant la configuration réseau automatique d'un ou plusieurs hôtes par un serveur.

Cela permet de gérer un grand nombre d'hôtes sans nécessiter une intervention des administrateurs.

Les échanges entre le client et le serveur se font entre la couche 5 et 7 du modèle OSI.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Diagramme </span>**</span>

<div drawio-diagram="160"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1768895411-png.png" alt="drawing-1-1768895411.png"/></div>

##### <span style="color: rgb(53,152,219);">*1 - DHCP Discover*</span>

L'hôte configuré en DHCP envoie un **broadcast** général. Il place son **adresse MAC** dans le paquet.

Il utilise l'ip **0.0.0.0** en source et envoie son broadcast à **255.255.255.255** en destination.

Cela lui permet d'adresser toutes les machines présentes sur le réseau.

Si un serveur DHCP se trouve à portée, il captera le broadcast et répondra alors.

##### <span style="color: rgb(53,152,219);">*2 - DHCP Offer*</span>

Le serveur DHCP reçoit la requête et, comme le PC de destination n'a pas d'adresse IP, il va alors répondre également en **broadcast.**

<p class="callout info">**Info** : Certains clients acceptent une réponse en unicast. Le DHCP pourra alors être configuré pour leur répondre en unicast.</p>

Il va envoyer dans le paquet la **configuration réseau** (ip, masque, passerelle, dns, etc...) ainsi qu'une **durée de bail** et l'**adresse MAC du pc demandeur**.

Si plusieurs serveurs DHCP sont présents, selon leurs configuration, l'un d'entre eux ou tous répondront à la requête et le client fera son choix (généralement basé sur la réponse la plus rapide).

##### <span style="color: rgb(53,152,219);">*3 - DHCP Request / DHCP Decline*</span>

L'ensemble des hôtes présents sur le réseau reçoivent la réponse.

Comme le demandeur avais placé son **adresse MAC** dans le paquet, il comprends que la réponse lui est adressée. Les autres hôtes lisent l'adresse MAC, et comme ce n'est pas la leur, ignorent le message.

Si plusieurs serveurs DHCP ont répondus, le client fera alors son choix (généralement basé sur la réponse la plus rapide).

Ensuite, deux scénarii :

- Le client vérifie sa configuration, voit que la configuration proposée correspond à son besoin et ne rentre pas en conflit avec l'une de ses configuration déjà existantes. Il demandera alors au serveur si il peut utiliser cette configuration avec un message **DHCP Request**.
- Le client vérifie sa configuration et voit que la configuration proposée rentre en conflit avec l'une de ses configuration. Il refuse donc l'offre et renvoie un message **DHCP Decline**. Puis l'échange s'arrête là.

##### <span style="color: rgb(53,152,219);">*4 - DHCP Ack*</span>

Le serveur qui a reçu le message de requête va alors la prendre en compte et renvoyer au client un message en lui indiquant qu'il a bien **Validé** cette demande.

##### <span style="color: rgb(53,152,219);">*Suite à cet échange*</span>

Une fois cet échange terminé le serveur va alors enregistrer dans sa base l'adresse MAC du PC ayant fait la demande ainsi que la configuration qui lui a été attribuée ainsi que la durée du bail.

Un compteur se met alors en route. A la fin de celui-ci, le **bail** étant terminé, le serveur va **libérer** cette configuration et la remettre dans son **pool** de disponibilité. Elle pourra donc ensuite être réattribuée à un autre hôte qui fera une demande.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Configuration</span>**</span>

Lors de la configuration d'un serveur DHCP, il va falloir un minimum d'informations :

- l'adresse IP de début de plage (la première qui sera proposée aux hôtes)
- l'adresse IP de fin de plage (la dernière qui sera proposée) 
    - toutes les adresses IP qui seront entre les deux constitueront la **Plage DHCP** ou le **Pool d'adresses**.
- le masque de sous-réseau
- l'adresse de la passerelle

Il est possible de fournir au client plus de configurations :

- Les serveurs de noms (**DNS**)
- Les serveurs de temps (**NTP**)
- Les serveurs **TFTP** (serveurs de démarrage réseau, pour faire booter un PC sur une image situé sur le réseau)
- etc...

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Autres principes</span>**</span>

**Réservation** : Il est possible de réserver une configuration. Lorsqu'un hôte obtient une configuration, on pourra demander au serveur de lui réattribuer systématiquement la même.

**Plage d'exclusion** : Il est également possible de définir à l'intérieur des plages d'adresses des exclusions, afin de préciser que certaines adresses ne doivent pas être distribuées.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Relais DHCP</span>**</span>

Comme vu plus haut, le DHCP s'appuie essentiellement sur des broadcasts. Hors, le problème est que les broadcast ne passent pas les routeurs.

Si l'on veut distribuer des adresses sur un ou plusieurs réseaux se situant derrière des routeurs, il faudra donc utiliser un **relai DHCP**.

Le rôle de celui-ci sera de prendre le **broadcast** envoyé par le client et de le renvoyer sous forme d'**unicast** au serveur DHCP. Puis de récupérer la réponse de celui-ci et de la retransmettre en **broadcast** dans le réseau d'origine.

Ainsi :

<div drawio-diagram="161"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1759516338-png.png" alt="drawing-1-1759516338.png"/></div>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Cas de plusieurs réseaux</span>**</span>

Dans le cas où un serveur devrait servir plusieurs étendues **réseaux,** lors du passage du relais, celui-ci glisse dans le paquet (champ giaddr) son adresse IP.

En se basant sur cette adresse, le serveur DHCP choisit alors l'étendue adaptée et fait une proposition dans ce sens.

C'est ainsi que le tri se fait entre les demandes.

<p class="callout info">**Info** : A noter que si le relai DHCP peut être une machine dans le réseau, certains routeurs proposent nativement cette fonctionnalité.</p>

# Réseau - Protocole DNS

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wYQnovice-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/wYQnovice-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Novice

Résumé :

- **OSI** : couche 4, 6 &amp; 7
- **Type** : UDP (parfois TCP)
- **Port** : 53 (853 DNSsec)

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Le protocole DNS (**D**omain **N**ame **S**ystem) permet de traduire les noms de domaine lisibles par l’homme (comme `www.example.com`) en adresses IP compréhensibles par les machines (`192.0.2.1`). Il joue un rôle fondamental dans la navigation sur Internet et dans la résolution de noms au sein des réseaux locaux.

Les échanges DNS se situent entre les couches 5 à 7 du modèle OSI, bien qu’ils reposent sur des mécanismes de transport en UDP ou TCP selon le contexte.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Diagramme</span>**</span>

<div drawio-diagram="162"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1760434403-png.png" alt="drawing-1-1760434403.png"/></div>

##### <span style="color: rgb(53,152,219);">*1 - Vérification locale (cache)*</span>

Lorsqu'une résolution est nécessaire ; effectuée par l'utilisateur ou le système ; la machine va dans un premier temps consulter son cache local.

- Si l'enregistrement s'y trouve, il va utiliser celui-ci.
- Si l'enregistrement ne s'y trouve pas :

##### <span style="color: rgb(53,152,219);">*2 - Vérification locale (fichier)*</span>

Le client va vérifier si ses fichiers 'Hosts' contiennent l'enregistrement.

- Si oui, il sera lu et mis en cache puis l'utiliser.
- Si non :

##### <span style="color: rgb(53,152,219);">*3 - DNS Query*</span>

Le client va interroger le(s) serveur(s) déclarés dans sa configuration réseau.

Il existe 3 types de requêtes :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/VR4image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/VR4image-png.png)

*Source : geeksforgeeks*

- **Requête récursive** : Si le resolver (client) ne trouve pas l'enregistrement il va interroger le(s) DNS paramétré(s) et attends une réponse complète. 
    - Le serveur va alors interroger ses forwarder et ainsi de suite jusqu'à ce qu'une réponse revienne au client.

- **Requête Itérative** : Si le resolver (client) ne trouve pas l'enregistrement, il va interroger le(s) DNS paramétré(s) et attend une réponse au moins partielle. 
    - Le serveur va alors chercher un autre serveur qui a une information plus complète et renvoyer son adresse au client, qui pourra alors lui adresser sa requête, ainsi de suite jusqu'à résolution complète.

- **Requête non récursive** : Si le resolver (client) ne trouve pas l'enregistrement il va interroger le(s) DNS paramétré(s) et demande de consulter le cache.  
    
    - Le serveur regarde dans son cache, soit il a l'information et la transmet au client, soit il n'a pas l'information et renvoie qu'il ne l'a pas. La recherche s'arrête là.

Dans tous les cas, si un serveur ne dispose pas de la réponse, il vérifiera si l'un de ses forwarder ou si les serveurs racine ont la réponse et soit fera la recherche pour le client (Récursive) soit lui donnera l'adresse d'un forwarder ou serveur racine (itérative).

##### <span style="color: rgb(53,152,219);">*4-5 - Vérification du cache*</span>

Tout comme le client effectue de son côté une vérification de son cache et de ses fichiers locaux aux étapes 1 et 2, les serveurs relais vont effectuer la même opération. Cela permettra une réponse plus rapide.

##### <span style="color: rgb(53,152,219);">*6 - Mise à jour du cache*</span>

Une fois la réponse obtenue, le cache local du resolver est mis à jour.

Ces enregistrements resterons mis en cache pour la durée du TTL.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Principes de bases</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Le cache DNS**</span>

Chaque enregistrement DNS dispose d'un TTL (Time To Live). Lorsqu'un enregistrement est mis en cache, il périmera à l'expiration du TTL. Celui-ci sera alors supprimé du cache et rajouté à nouveau lors d'une prochaine requête.

<p class="callout success">**Astuce** : Tous les systèmes disposent de commandes pour vider manuellement ce cache.</p>

<p class="callout info">**Info** : C'est cette mécanique qui est utilisée lors des attaques par empoisonnement de cache DNS (DNS poisoning).</p>

#### <span style="color: rgb(35,111,161);">**3.2 La hiérarchie des serveurs DNS**</span>

L’architecture DNS se compose d’un système de résolution de nom hiérarchique et décentralisé pour les ordinateurs, les services ou toute autre ressource connectée à Internet ou à un réseau privé. Il stocke les différentes informations associées des noms de domaine attribués à chacune des ressources.

La hiérarchie DNS repose sur plusieurs niveaux qui peuvent intervenir lors d’une résolution DNS :

- Tout en haut : **Les serveurs DNS racines**
    - Ceux qui gèrent les domaines de niveaux supérieurs.
- Puis en dessous **les serveurs de domaine de premier niveau**
    - Les domaines nationaux par exemple .fr, .eu, etc... (ou encore d'autres comme .com, .net, etc...).
- Au niveau intermédiaire **les serveurs DNS d'autorité**
    - Les serveurs faisant autorité pour les domaines complets comme mfrstegreve.fr ou labs404.com (souvent ceux du registar)
- Puis **les DNS récursifs et itératives**
    - Ce sont les serveurs enregistrés dans les paramètres de la connexion (souvent ceux du FAI ou les DNS locaux).

<details id="bkmrk-liste-des-serveurs-r"><summary>Liste des serveurs racines</summary>

Actuellement, il existe 13 serveurs DNS racines dont une grande majorité se trouvent aux USA.

<figure class="wp-block-table"><table><thead><tr><th style="background-color: rgb(194,224,244);">Serveurs DNS racines</th><th style="background-color: rgb(194,224,244);">Adresse IPv4</th><th style="background-color: rgb(194,224,244);">Adresse IPv6</th><th style="background-color: rgb(194,224,244);">Opérateur</th></tr></thead><tbody><tr><td>A</td><td>198.41.0.4</td><td>2001:503:ba3e::2:30</td><td>VeriSign</td></tr><tr><td>B</td><td>192.228.79.201</td><td>2001:478:65::53</td><td>USC-ISI</td></tr><tr><td>C</td><td>192.33.4.12</td><td>2001:500:2::c</td><td>Cogent Communications</td></tr><tr><td>D</td><td>199.7.91.13</td><td>2001:500:2d::d</td><td>University of Maryland</td></tr><tr><td>E</td><td>192.203.230.10</td><td> </td><td>NASA</td></tr><tr><td>F</td><td>192.5.5.241</td><td>2001:500:2f::f</td><td>ISC</td></tr><tr><td>G</td><td>192.112.36.4</td><td> </td><td>U.S. DoD NIC</td></tr><tr><td>H</td><td>128.63.2.53</td><td>2001:500:1::803f:235</td><td>US Army Research Lab</td></tr><tr><td>I</td><td>192.36.148.17</td><td>2001:7FE::53</td><td>Autonomica</td></tr><tr><td>J</td><td>192.58.128.30</td><td>2001:503:c27::2:30</td><td>VeriSign</td></tr><tr><td>K</td><td>193.0.14.129</td><td>2001:7fd::1</td><td>RIPE NCC</td></tr><tr><td>L</td><td>199.7.83.42</td><td>2001:500:3::42</td><td>ICANN</td></tr><tr><td>M</td><td>202.12.27.33</td><td>2001:dc3::35</td><td>WIDE Project</td></tr></tbody></table>

</figure></details>#### <span style="color: rgb(35,111,161);">**3.3 Les types de domaines**</span>

Il en existe 3 types :

- **Les domaines Génériques** : Des domaines sans rattachements géographiques mais mondialement reconnus et utilisés. 
    - .org, .com, .net, ...
- **Les domaines Nationaux ou Coutry Code Domain** : Domaines attachés à une origine géographique.  
    
    - .fr, .uk, .au, .ru, .us, ...
- **Les domaines inverses** : Utilisé pour les 'Reverse lookup'. Les recherches inversées. Notamment utilisés pour vérifier qu'une IP est bien dans le domaine recherché. 
    - .arpa

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Types d'enregistrements DNS</span>**</span>

Les enregistrements DNS sont des parties importantes de la Système de nom de domaine (DNS). Il existe plus de 30 types d'enregistrements, chacun servant de saisie de base de données qui fournit des informations spécifiques sur un domaine, y compris son adresse IP, ses serveurs de messagerie et sa sécurité. Ces enregistrements sont stockés dans des fichiers DNS Zone et gérés par les serveurs DNS.


#### **<span style="color: rgb(35,111,161);">4.1 Terminologie DNS</span>**

Avant de voir les types de dossiers DNS spécifiques, il est utile de comprendre une terminologie DNS de base.

Voici quelques termes clés utiles dans la compréhension de DNS Records.

<div class="amo aob aqq aqc qh" id="bkmrk-enregistrement-des-r"><div class="qk qm">- **Enregistrement des ressources:** L'élément de données de base dans le DNS. Chaque enregistrement spécifie des informations sur un domaine.
- **Nom:** Le nom de domaine auquel l'enregistrement s'applique.
- **TTL (temps de vie):** La durée pour laquelle le dossier est mis en cache par les DNS Resolvers.
- **Classe:** Spécifie la famille du protocole. Dans (Internet) est le plus courant.
- **Taper:** Le type d'enregistrement DNS (par exemple, a, aaaa, cname).
- **Donnés:** Les données spécifiques de l'enregistrement, telles qu'une adresse IP.
- **Fichiers de zone:** Fichiers contenant des mappages entre les noms de domaine et les adresses IP.
- **Nom du serveur:** Un serveur qui gère les enregistrements DNS pour un domaine.

</div></div>
#### **<span style="color: rgb(35,111,161);">4.2 Types d'enregistrements DNS les plus courants</span>**

Chaque type d'enregistrement DNS a une fonction spécifique, ce qui aide à gérer les noms de domaine et à garantir un approvisionnement approprié du trafic Internet.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ajnimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ajnimage-png.png)

*source : Wikipedia*

#### **<span style="color: rgb(35,111,161);">4.3 Champs spécifiques</span>**

Certains protocoles se basent sur l'utilisation de champs spécifiques. La plupart du temps, il s'agit de champs TXT devant être formatés de manière très précise.

C'est le cas par exemple pour la vérification des serveurs de messageries qui peuvent utiliser les champs **DMARK** et **SPF**.

Ou la VoIP.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Principes avancés</span>**</span>


#### **<span style="color: rgb(35,111,161);">5.1 Recherche inversée</span>**

Tout comme il est possible avec le DNS de savoir quelle adresse IP corresponds à quel nom d'hôte, il est également possible d'effectuer une recherche inversée pour avoir les noms attachés à une adresse IP.

Cela sert dans le cadre de vérification ou de diagnostic.

Cette recherche s'appuie sur une zone de recherche inversée contenant les champs en **.arpa**.

#### **<span style="color: rgb(35,111,161);">5.2 DNSsec</span>**

Le DNSSEC (**D**omain **N**ame **S**ystem **SEC**urity extensions) est une extension du protocole DNS qui ajoute une couche de sécurité en garantissant l'authenticité des réponses DNS.

Chaque zone DNS est signée avec une clé privée.

La clé publique est placée dans l'un des champs de la zone et permet à un client qui ferai une requête de vérifier l'authenticité de la réponse.

Cela permet de se prémunir des attaques de type "DNS spoofing" ou de "cache poisoning".

<p class="callout warning">**Attention** : Cela permet de garantir l'authenticité de la réponse mais ne chiffre pas les échanges. De plus tous les équipements ne seront pas forcement compatible avec ce protocole.</p>

Les enregistrements spécifiques utilisés sont :

- **RRSIG** : contiens la signature cryptographique d'un enregistrement DNS.
- **DNSKEY** : contient la clé publique utilisée pour vérifier les signatures.
- **DS** : sert à déléguer la vérification entre zones.

#### **<span style="color: rgb(35,111,161);">5.3 DoH / DoT</span>**

Le DoH (**D**ns **O**ver **H**ttps), vise à faire passer les requêtes DNS par le biais d'un canal chiffré par HTTPS. Rendant son interception et sa modification plus difficile.

Si aujourd'hui beaucoup de navigateurs l'intègre nativement, il est très peu présent sur les équipements réseaux.

Le DoT (**D**ns **O**ver **T**ls) vise à faire passer les requêtes DNS par le biais d'un canal chiffré par TLS. Les avantages sont les mêmes qu'avec le DoH. Mais il utilise un port à part (853), permettant de le différencier du trafic HTTPS, mais également de faire un filtrage plus fin sur les pare-feu.

# Réseau - Protocole RIP

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ayCconfirme-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ayCconfirme-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Confirmé

Notions : Protocoles réseaux, routage, routage dynamique.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Le protocole RIP pour **R**outing **I**nformation **P**rotocol est un protocole permettant aux routeurs d'échanger automatiquement leurs tables de routage. Il fait partie des protocoles IGP (**I**nterior **G**ateway **P**rotocol) qui sont utilisés à l'intérieur d'un même réseau ou organisation.

C'est un protocole de <span style="color: rgb(132,63,161);">***couche 3***</span>.

Cela facilite la gestion du parc, permettant notamment de mettre à jour automatiquement les tables de routages en cas d'ajout ou suppression d'un réseau, rendant celui-ci facilement scalable et simple à administrer.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Principes de base</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Fonctionnement**</span>

Le principe du RIP est asses simple :

Chaque routeur génère une table de routage composée de ses réseaux connus directement accessibles via ses interface. Il y ajoute les routes connues ainsi que leur distances en nombre de saut.

Puis, régulièrement (par défaut 30 secondes), il envoie cette table à ses partenaires de réplication. Dans la première version du protocole, cela se fait par broadcast. Puis cela a été changé pour du multicast dans les versions suivantes du protocole ( 224.0.0.9 pour RIPv2 en IPV4, puis dans le RIPng pour IPV6 : FF02::9)

Chaque routeur, met ainsi ses tables à jour et peut les propager aux autres. Les doublons sont éliminés et les routes avec un minimum de saut sont conservées afin d'optimiser la performance.

Si une route n'a pas eu d'update dans un délai de 180 secondes, elle est marquée comme invalide. Passé 240 secondes, elle est supprimée.

Ces délais permettent ainsi d'ajouter une purge des routes inutiles en plus des ajouts, permettant de conserver des tables de routages précises.

#### <span style="color: rgb(35,111,161);">**2.2 Mécanismes internes**</span>

Le RIP utilise plusieurs mécanismes en interne pour éviter des boucles dans la topologie.

- **Split Horizon** : un routeur n'anonce pas une route sur l'interface par laquelle il l'a apprise.
- **Route Poisoning** : Une route devenue invalide est supprimée.
- **Hold-down Timer** : Empêche une acceptation trop rapide d'une route potentiellement incorrecte

Voici une liste plus détaillées des timers clés :

<table id="bkmrk-timer-valeur-r%C3%B4le-up"><thead><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Timer</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Valeur</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Rôle</td></tr></thead><tbody><tr><td style="border-style: solid;">Update</td><td style="border-style: solid;">30 s</td><td style="border-style: solid;">Envoi périodique des tables</td></tr><tr><td style="border-style: solid;">Invalid</td><td style="border-style: solid;">180 s</td><td style="border-style: solid;">Route considérée invalide</td></tr><tr><td style="border-style: solid;">Hold-down</td><td style="border-style: solid;">180 s</td><td style="border-style: solid;">Stabilisation</td></tr><tr><td style="border-style: solid;">Flush</td><td style="border-style: solid;">240 s</td><td style="border-style: solid;">Suppression de la route</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**2.2 Limitations**</span>

Le RIP repose essentiellement sur le <span style="color: rgb(132,63,161);">***hop count***</span>. Ce compteur de saut est limité à 15 sauts.

Cela le rends inefficace pour de larges topologies et limite donc son usage à des réseaux de petite tailles ou de tailles moyennes.

De plus en terme de priorité de traitement, les requêtes RIP sont les moins prioritaires.

<table id="bkmrk-protocoler-distance-"><thead><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Protocoler</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Distance administrative</td></tr></thead><tbody><tr><td style="border-style: solid;">RIP</td><td style="border-style: solid;">120</td></tr><tr><td style="border-style: solid;">OSPF</td><td style="border-style: solid;">110</td></tr><tr><td style="border-style: solid;">EIGRP</td><td style="border-style: solid;">90</td></tr><tr><td style="border-style: solid;">statique</td><td style="border-style: solid;">1</td></tr><tr><td style="border-style: solid;">connectée</td><td style="border-style: solid;">0</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Versions de RIP</span>**</span>

Il existe 3 versions du protocole RIP :

<table id="bkmrk-feature-ripv1-%281988%29" style="width: 91.0714%;"><thead><tr><td class="align-center" style="border-style: solid; width: 24.4764%; background-color: rgb(194,224,244);">Feature</td><td class="align-center" style="border-style: solid; width: 30.6262%; background-color: rgb(194,224,244);">RIPv1 (1988)</td><td class="align-center" style="border-style: solid; width: 26.311%; background-color: rgb(194,224,244);">RIPv2 (1993)</td><td class="align-center" style="border-style: solid; width: 18.5864%; background-color: rgb(194,224,244);">RIPng (1997) for IPv6</td></tr></thead><tbody><tr><td style="border-style: solid; width: 24.4764%;">Méthode de mise à jour</td><td style="border-style: solid; width: 30.6262%;">Broadcast (255.255.255.255)</td><td style="border-style: solid; width: 26.311%;">Multicast (224.0.0.9)</td><td style="border-style: solid; width: 18.5864%;">Multicast (FF02::9)</td></tr><tr><td style="border-style: solid; width: 24.4764%;">Adressage</td><td style="border-style: solid; width: 30.6262%;">Classful (pas d'info de sous réseau)</td><td style="border-style: solid; width: 26.311%;">Classless (inclus le masque)</td><td style="border-style: solid; width: 18.5864%;">Classless (IPv6)</td></tr><tr><td style="border-style: solid; width: 24.4764%;">Authentification</td><td style="border-style: solid; width: 30.6262%;">Pas de support</td><td style="border-style: solid; width: 26.311%;">plain text, MD5</td><td style="border-style: solid; width: 18.5864%;">plain text, MD5</td></tr><tr><td style="border-style: solid; width: 24.4764%;">Version IP supportées</td><td style="border-style: solid; width: 30.6262%;">IPv4</td><td style="border-style: solid; width: 26.311%;">IPv4</td><td style="border-style: solid; width: 18.5864%;">IPv6</td></tr><tr><td style="border-style: solid; width: 24.4764%;">Protocole / port</td><td style="border-style: solid; width: 30.6262%;">UDP 520</td><td style="border-style: solid; width: 26.311%;">UDP 520</td><td style="border-style: solid; width: 18.5864%;">UDP 521</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Considérations de sécurité</span>**</span>

<p class="callout warning">**Attention** : Le protocole RIP est considéré aujourd'hui comme obsolète. Il est en effet remplacé par d'autres protocoles plus modernes et sécurisés.  
</p>

Le principal risque du protocole RIP reste l'empoisonnement des routes par un tiers ou un équipement malveillant.

Il est donc primordial de respecter à minima les deux conditions suivante lors de la mise en place :

- Utiliser à minima la version 2 du protocole qui permet une authentification
- Utiliser une authentification MD5 et pas une authentification plainText.

Il est à noter que le RIP n'utilise pas directement MD5 pour hasher un mot de passe, mais comme fonction de hashage dans un mécanisme d'authentification HMAC-Like.

Aussi, il ne s'agit pas de hasher un mot de passe, mais le paquet RIP complet. Lors de l'échange, les routeurs disposant tous de la même clé, ils vont recalculer localement le hash de la trame reçue afin de certifier qu'elle est bien originaire d'un routeur connu.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Conclusion</span>**</span>

Même si son usage est déprécié, Il reste intéressant à voir à des fins pédagogiques car il permet d'introduire les principes de routage dynamique avec un protocole simple dans son fonctionnement.

De plus, sur les équipements plus anciens, il s'agit souvent de la seule alternative disponible.

# Réseau - Protocole STP/RSTP

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ayCconfirme-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ayCconfirme-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Confirmé

Notions : Réseau, protocoles, résilience réseau.

</td></tr></tbody></table>

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**I. Introduction**</span>

Dans le cadre de la résilience d'une topologie réseau, il est essentiel de redonder des liens afin de palier à une rupture éventuelle.

Plusieurs topologies réseaux spécifiques existent. Dont les deux suivantes :

<table id="bkmrk-topologie-boucle-%28-r" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td style="border-style: hidden;"><div drawio-diagram="179"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1779183432-png.png" alt="drawing-1-1779183432.png"/></div>

</td><td style="border-style: hidden;"><div drawio-diagram="180"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1779183524-png.png" alt="drawing-1-1779183524.png"/></div>

</td></tr><tr><td class="align-left" style="border-style: hidden;">*Topologie Boucle ( ring )*</td><td class="align-left" style="border-style: hidden;">*Topologie meshée*</td></tr></tbody></table>

Cependant, ces boucles créent également deux problèmes majeurs :

- les tempêtes de broadcasts, dues au boucles réseaux présentes dans la topologie.
- Des instabilités dans les tables MAC.
- Des trames en doublons.

Ce qui peut mener à des dysfonctionnement applicatifs ( rupture de session ), des pertes de performances ( collision de paquets, réadressage MAC ) voire à un effondrement du réseau.

Pour éviter ces problèmes et rendre ce type de topologies possibles, le protocole <span style="color: rgb(132,63,161);">***STP***</span> ( **S**panning **T**ree **P**rotocol ) a été créé.

Cependant, dû à ses problèmes de lenteur de cicatrisation réseau ( 30-50 secondes de délai de convergence ), une version plus moderne en a été créée : le protocole <span style="color: rgb(132,63,161);">***RSTP***</span> ( **R**apid **S**panning **T**ree **P**rotocol ).

Celui-ci réduit les temps de cicatrisation entre 1 et 3 secondes et apporte quelques améliorations :

- Simplification des rôles des ports
- Meilleure stabilité
- rétrocompatible avec STP

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**II. Fonctionnement STP/RSTP**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Principe général**</span>

Le fonctionnement de base du STP / RSTP est le suivant :

##### **<span style="color: rgb(53,152,219);">*2.1.1 Election de la passerelle racine ( root bridge )*</span>**

Chaque switch envoie une trame d'un type spécifique appelée <span style="color: rgb(132,63,161);">***BPDU***</span> ( **B**ridge **P**rotocol **D**ata **U**nit ).

Cette trame contient les informations de priorité, d'adresse MAC et de coût du chemin racine.

Une fois ces trames reçues, le switch ayant la ***<span style="color: rgb(132,63,161);">priorité</span>*** ave la valeur la plus basse devient le switch racine.

<p class="callout info">**Info** : En l'absence de priorité définies sur les switch, c'est la valeur des adresses MAC qui est prise en compte et fait office de valeur de priorité.</p>

Une fois ce processus d'élection achevé, les trames continuent à être envoyées de manière continue. Si un switch apparaît avec une priorité plus élevée, ce rôle lui sera transféré.

<p class="callout success">**Conseil** : C'est ce qui rend la résilience possible et l'architecture scalable. Si le root bridge tombe, celui avec la meilleure priorité disponible est automatiquement élue. Si un switch avec une meilleure priorité est ajouté à la topologie, il est également automatiquement élu et récupère le rôle de root bridge.</p>

##### ***<span style="color: rgb(53,152,219);">2.2.2 Détermination des ports racine ( root ports )</span>***

<div id="bkmrk-chaque-switch-non-ra">Chaque <span style="color: rgb(132,63,161);">***switch non-racine***</span> détermine ensuite son <span style="color: rgb(132,63,161);">***root port***</span>. Il s'agit du port qui a le chemin le plus court pour accéder à la racine.</div><div id="bkmrk-ce-chemin-est-calcul">Ce chemin est calculé en faisant la somme des <span style="color: rgb(132,63,161);">***coûts***</span> pour chaque chemin.</div><div id="bkmrk--10"></div><div id="bkmrk-le-co%C3%BBt-est-calcul%C3%A9-">Le coût est calculé en fonction de la rapidité des liens. Voici un tableau avec les valeurs de références.</div><div id="bkmrk--11"></div><div id="bkmrk-d%C3%A9bit-du-lien-co%C3%BBt-s"><table><thead><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Débit du lien</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Coût STP (802.1t)</td></tr></thead><tbody><tr><td class="align-center" style="border-style: solid;">10 Mb/s</td><td class="align-center" style="border-style: solid;">2 000 000</td></tr><tr><td class="align-center" style="border-style: solid;">100 Mb/s</td><td class="align-center" style="border-style: solid;">200 000</td></tr><tr><td class="align-center" style="border-style: solid;">1 Gb/s</td><td class="align-center" style="border-style: solid;">20 000</td></tr><tr><td class="align-center" style="border-style: solid;">10 Gb/s</td><td class="align-center" style="border-style: solid;">2 000</td></tr><tr><td class="align-center" style="border-style: solid;">100 Gb/s</td><td class="align-center" style="border-style: solid;">200</td></tr><tr><td class="align-center" style="border-style: solid;">1 Tb/s</td><td class="align-center" style="border-style: solid;">20</td></tr></tbody></table>

</div><p class="callout info">**Info** : En cas d'égalité entre deux chemins, c'est le voisin avec le bridge ID le plus faible qui l'emporte. Si l'égalité persiste, c'est le Port ID le plus faible qui est choisi.</p>

<div id="bkmrk--12"></div><div id="bkmrk--13"></div><div id="bkmrk-ce-port-sera-donc-ta">Ce port sera donc tagué comme <span style="color: rgb(132,63,161);">***actif***</span>.</div><div id="bkmrk--14"></div><div id="bkmrk--15"></div><div id="bkmrk-exemple-%3A-switch-a-e">*Exemple :* Switch A est le Root Bridge. Switch B peut atteindre A via deux chemins :</div>- ***Chemin 1 : B → C → A***

<div id="bkmrk-b%E2%80%93c-%3A-1-gb%2Fs-%E2%86%92-co%C3%BBt-" style="padding-left: 40px;">- - *B–C : 1 Gb/s → coût 20 000*
    - *C–A : 1 Gb/s → coût 20 000*
    - ***Total = 40 000***

</div>- ***Chemin 2 : B → D → A***

<div id="bkmrk-b%E2%80%93d-%3A-10-gb%2Fs-%E2%86%92-co%C3%BBt" style="padding-left: 40px;">- - *B–D : 10 Gb/s → coût 2 000*
    - *D–A : 1 Gb/s → coût 20 000*
    - ***Total = 22 000***

</div>***Le Root Port de B sera le port vers D**, car 22 000 &lt; 40 000.*

<div id="bkmrk--16"></div>##### ***<span style="color: rgb(53,152,219);">2.2.3 Désignation des switches et ports désignés ( designated ports )</span>***

<div id="bkmrk--17"></div><div id="bkmrk--18"></div><div id="bkmrk--19"></div><div id="bkmrk--20"></div><div id="bkmrk--21"></div><div id="bkmrk-d%C3%A9signation-des-swit"></div><div id="bkmrk--22"></div><div id="bkmrk-sur-chaque-segment-d">Sur chaque segment de la topologie, un switch deviens <span style="color: rgb(132,63,161);">***Designated Bridge***</span> et ces ports non root participants à la topologie deviennent des <span style="color: rgb(132,63,161);">***designated ports***</span>. Ces switches et ces ports serviront de <span style="color: rgb(132,63,161);">***forwarders***</span> aux switches suivants sur la topologie, ceux qui sont plus loin que la racine.</div>##### <span style="color: rgb(53,152,219);">***2.2.4 Blocage des ports redondants ( Redundant ports )***</span>

Les ports participant à la topologie mais n'étant désignés ni comme <span style="color: rgb(132,63,161);">***root***</span>, ni comme<span style="color: rgb(132,63,161);"> ***designated***</span> seront alors bloqués et deviendrons des <span style="color: rgb(132,63,161);">***blocked ports***</span>. Ces ports pourront être activés en cas de dysfonctionnement de l'un des ports actif.

En attendant, ceux-ci :

- ne transfèrent plus le trafic,
- n'apprennent plus d'adresses MAC,
- n'écoutent plus de trafic, hormis les trames BPDU.

C'est comme cela que les switches de la topologie se prémunissent des boucles réseaux et c'est ce fonctionnement qui explique également les latences de cicatrisation.

On a donc 5 états possibles pour un port :

<div id="bkmrk-disabled-blocking-%282">1. **Disabled**
2. **Blocking** (20 seconds)
3. **Listening** (15 seconds)
4. **Learning** (15 seconds)
5. **Forwarding**

</div>#### <span style="color: rgb(35,111,161);">**2.2 Les améliorations de RSTP**</span>

Pour simplifier le fonctionnement du protocole et accélérer les temps de cicatrisation réseau, le RSTP va apporter quelques changements à ce fonctionnement.

- L'ajout d'un nouveau type de port dit <span style="color: rgb(132,63,161);">***edge port***</span> (PortFast), permettant de relier des équipements actifs ou des terminaux sans que cela ne déclenche un recalcul de topologie.

- Des négociations plus rapides lors des élections de switch et de détermination des status des ports basés sur un mécanisme de <span style="color: rgb(132,63,161);">***Proposal/Agreement :***</span>
    - Un switch propose un port comme Designated port.
    - Les voisins directs approuvent.
    - Les deux ports passent automatiquement en mode forward.

Pour vulgariser, lorsqu'un switch reçois un BPDU de son voisin, il peut décider :

- "Ce voisin a un meilleur chemin vers le root que moi" --&gt; Je deviens Root port
- "J'ai un meilleur chemin que lui" --&gt; Je deviens Designated Port

<details id="bkmrk-d%C3%A9tail-de-la-n%C3%A9gocia"><summary>Détail de la négociation</summary>

1. **Un switch reçois une BPDU "meilleure"** : Il comprend que son port doit devenir 'root port'.
2. **Il bloque temporairement tous ses 'designated ports'** : Ce qui évite les boucles.
3. **Il envoie un 'agreement' à son voisin** : Si il peut garantir que cela ne créée pas de boucle.
4. **Le voisin passe son port en forwarding** : Pas de délai d'attente comme en stp classique.
5. **Le switch débloque tous ses 'designated ports'** : La topologie converge ainsi en quelques milisecondes.

</details>Voici un comparatif des deux protocoles permettant de se faire un ordre d'idée

<div id="bkmrk-feature-stp-%28802.1d%29"><div tabindex="0"><table><thead><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">Fonctionnalité</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">STP (802.1D)</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">RSTP (802.1w)</td></tr></thead><tbody><tr><td class="align-center" style="border-style: solid;">Convergence</td><td class="align-center" style="border-style: solid;">30–50s</td><td class="align-center" style="border-style: solid;">1–3s</td></tr><tr><td class="align-center" style="border-style: solid;">Etat de ports</td><td class="align-center" style="border-style: solid;">5</td><td class="align-center" style="border-style: solid;">3</td></tr><tr><td class="align-center" style="border-style: solid;">Rôle de ports</td><td class="align-center" style="border-style: solid;">3</td><td class="align-center" style="border-style: solid;">4</td></tr><tr><td class="align-center" style="border-style: solid;">BPDU</td><td class="align-center" style="border-style: solid;">seul le root envoie</td><td class="align-center" style="border-style: solid;">tous les switchs envoient</td></tr><tr><td class="align-center" style="border-style: solid;">Détection de dysfonctionnement</td><td class="align-center" style="border-style: solid;">Lent</td><td class="align-center" style="border-style: solid;">Fast Handshake</td></tr><tr><td class="align-center" style="border-style: solid;">Edge ports</td><td class="align-center" style="border-style: solid;">Optionnel</td><td class="align-center" style="border-style: solid;">Concept Natif</td></tr></tbody></table>

</div></div>---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**III. Caractéristiques des ports**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Caractéristiques générales**</span>

Les ports peuvent être identifiés sur les switches de la façon suivante :

<table id="bkmrk-identification-sur-l" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">**Identification sur le switch**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Correspondance**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Caractéristiques**</td></tr><tr><td>**RP**  
</td><td>Root Port</td><td>- Un seul par switch.
- Non applicable au root bridge.
- Représente le chemin le plus court vers le root bridge.

</td></tr><tr><td>**DP**</td><td>Designated Port</td><td>- Un par segment.
- Transmettent le trafic vers l'aval depuis le root bridge.

</td></tr><tr><td>**AP**</td><td>Alternate Port</td><td>- port de backup pour le root port.
- Si le RP est coupé, il prends le relai.

</td></tr><tr><td>**BP**

</td><td>Backup Port</td><td>- port de backup pour un designated port (sur le même switch).
- Rare dans les topologies réseaux modernes.

</td></tr><tr><td>**EP**

</td><td>Edge Port (PortFast)</td><td>- Ne participe pas à la topologie.
- Relie un équipement actif.

</td></tr></tbody></table>

En RSTP, un port peut avoir trois états fonctionnels ( Au lieu de 5 en STP ) :

- **Discarding** : Ne forwarde pas le trafic, n'apprends pas les MAC.
- **Learning** : Apprends les MAC address.
- **Forwarding** : Forwarde le traffic, port actif.

Les ports ne participant pas à la topologie où les équipements actifs sont connectés sont les <span style="color: rgb(132,63,161);">***Edge Ports*** </span>(PortFast).

Pas de recalcul ou de changement d'état sur ces ports car ils ne participent pas à la topologie. Ils passent directement en mode <span style="color: rgb(132,63,161);">***forward***</span>. Cela permet d'annuler les délais pour les équipements actifs branchés dessus.

#### <span style="color: rgb(35,111,161);">**2.2 BPDU Guard &amp; Loop Guard**</span>

En plus de ce qui a été vu ci-dessus, il existe deux fonctionnalités supplémentaires applicables aux ports en STP/RSTP.

La première est le <span style="color: rgb(132,63,161);">***BPDU Guard***</span> : C'est une fonctionnalité qui sert à protéger les <span style="color: rgb(132,63,161);">***Edge Ports***</span> des trames BPDU non désirées.

Ces ports ne participant pas à la topologie, ils ne doivent pas traiter de trames BPDU.

Si toutefois, suite à une erreur de manipulation (mauvais branchement par exemple), ces ports reçoivent des trames BPDU, cela veut dire qu'un port RSTP a été branché sur un port ne participant pas à la topologie et donc naturellement non protégé contre les boucles réseaux.

Dans ce cas, le BPDU Guard va automatiquement couper le port pour prévenir la boucle. Le port passe alors en état <span style="color: rgb(132,63,161);">***Err-disable***</span>.

La seconde est <span style="color: rgb(132,63,161);">***Loop Guard***</span> : C'est une fonctionnalité qui sert à protéger les liens <span style="color: rgb(132,63,161);">***Trunk***</span> et les <span style="color: rgb(132,63,161);">***uplinks***</span> de boucles unidirectionnelles.

#### <span style="color: rgb(35,111,161);">**2.2 Rapid-PVST**</span>

Le rapid-PVST ou (**P**er **V**lan **S**panning **T**ree) est un RSTP appliqué par VLAN.

Ainsi si plusieurs VLAN co-existent au sein d'une même topologie physique, il est possible de définir une instance de RSTP par VLAN.

Chaque VLAN dispose ainsi de :

- Son Root Bridge,
- Ses chemins favoris,
- Ses propres root ports,
- Ses propres designated ports.

<p class="callout success">**Conseil** : Cela peut se révéler particulièrement intéressant dans de vastes structures dans lesquelles il est important voire crucial d'optimiser ses chemins réseaux et d'équilibrer la charges sur les différents liens. Ou dans le cas d'usages intensifs de bande passante sur des vlan concurrentiels ( voip / Vidéo )...   
</p>

Cependant pour des réseaux à très grande échelle, il sera préférable d'utiliser le protocole <span style="color: rgb(132,63,161);">***MSTP***</span>.

Il sera également bon de prendre en compte que vu que le Rapid-PVST est instancié par VLAN, il consomme également plus de CPU.

<div id="bkmrk--42">---

</div>### <span style="text-decoration: underline; color: rgb(52,73,94);">**IV. Les trames BPDU**</span>

Comme vu jusqu'ici, le RSTP repose sur l'utilisation de trames spéciales appelées BPDU.

Contrairement au STP classique où seul le root bridge envoie des trames, en RSTP, chaque switch envoie ces trames en plus de forwarder celles du root bridge. C'est cela qui permet des délais de cicatrisation si courts.

 Ces trames se déclinent en deux types.

#### <span style="color: rgb(35,111,161);">**4.1 Les Configuration BPDU**</span>

Il s'agit des paquest BPDU normaux, envoyés toutes les 2 secondes par le Root Bridge.

Celles-ci contiennent :

- l'ID du root Bridge
- Le coût du chemin vers le root
- l'ID du bridge émetteur
- l'ID du port émetteur
- les différents timers (Hello, Max Age, Forward Delay) si ceux-ci sont utilisés

Leur rôle est de maintenir la topologie. Elles servent également a élire ou ré-élire un root bridge et déterminer les root ports et designated ports.

#### <span style="color: rgb(35,111,161);">**4.2 Les TCN BPDU ( Topology Change Notification ) en STP**</span>

En STP classique, ce sont les trames spéciales envoyées par un switch qui détecte un changement dans la topologie.

( par exemple : Un port qui passe de forwarding à down ou inversement, un lien qui tombe, un switch ajouté ou retiré de la topologie, etc...)

Cela fonctionne de la façon suivante :

1. Un switch non-root détecte un changement de topologie.
2. Il envoie une TCN BPDU vers son root port.
3. Chaque switch intermédiaire accuse réception et relaie vers le root bridge.

Le root bridge active alors le <span style="color: rgb(132,63,161);">***Topology Change Flag***</span> dans ses configuration BPDU et diffuse cette information sur l'ensemble du réseau.

Chaque switch va alors réduire le temps le mise en cache des adresse MAC ( aging time) afin de les purger au plus vite.

<p class="callout info">**Info** : En RSTP, ces trames sont supprimées et leur mécaniques sont intégrées dans les BPDU normaux, ce qui est beaucoup plus rapide.</p>

#### <span style="color: rgb(35,111,161);">**4.3 Détection des changements en RSTP**</span>

En RSTP, plutôt que d'utiliser des trames dédiées sur un changement de topologie, le Change Flag est intégré dans les trames classiques. Et comme chaque switch émets ses propres trames en permanence en plus de forward celles du root bridge, l'information se diffuse donc bien plus rapidement.

Ainsi, lorsqu'un port change d'état ( Up / Down / Forwarding), le RSTP :

- Met immédiatement à jour son rôle (RP, DP, AP, ...)
- Envoie une BPDU avec le bit *<span style="color: rgb(132,63,161);">**Topology Change**</span>* activé
- Informe dirrectement ses voisins, et ce 
    - sans attendre le Max Age
    - sans envoyer de TCN BPDU à destination du root bridge
- Ses voisins mettent immédiatement à jour leurs tables MAC 
    - Rendant ainsi la propagation de l'information immédiate et bidirectionnelle.

La propagation devient ainsi locale plutôt que globale et les délais de cicatrisation sont ainsi réduits à leur minimum.

Un changement de topologie met désormais entre 1 et 3 secondes à être totalement oppérationnel.

<div id="bkmrk--39">---

</div>### <span style="text-decoration: underline; color: rgb(52,73,94);">**V. Bonnes pratiques**</span>

Il est important, compte tenu des mécanismes ci-dessus, de prendre en considération l'ensemble des fonctionnalités dans la construction d'une topologie à la fois résiliente et optimisée.

- Toujours définir un Root Bridge soi-même.
- Définir les priorité des switches manuellement pour définir des routes "préférées".
- Bien déclarer les ports ne participant pas à la topologie en Edge Ports.
- Sur ces ports, activer BPDU Guard pour éviter les erreurs de manipulation.
- Utiliser préférentiellement un mode 'Point-to-point' sur les trunk.
- Activer Loop Guard sur les trunks
- Eviter de mixer STP et RSTP.

<div id="bkmrk--49">---

</div>### <span style="text-decoration: underline; color: rgb(52,73,94);">**VI. Conclusion**</span>

Le protocole RSTP est primordial dans les architectures réseaux modernes critiques où le réseaux doit à tout prix être stable et fonctionnel. Rendant ainsi centraux les aspects de redondance et de convergence rapide.

Mais il fait entrer beaucoup de notions différentes complexes qu'il est essentiel de bien comprendre et maîtriser afin de rendre son infrastructure la plus optimisée possible.

<div id="bkmrk--54"></div><div id="bkmrk--55"></div>

# Réseau - sockets

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : adressage IP, port, modèle OSI, protocoles réseaux.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

<p class="callout danger">**Prérequis** : Connaître les notions de modèle OSI et l'adressage IP (à minima V4).</p>

Lorsqu'une machine veut utiliser un protocole pour envoyer ou recevoir des informations sur un réseau, elle va devoir ouvrir un canal de communication.

Comme la machine peut ouvrir plusieurs canaux de communication à la fois, elle va avoir besoin de pouvoir identifier quel canal est utilisé pour quelle communication.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Principes du socket</span>**</span>

#### **<span style="color: rgb(35,111,161);">2.1 Définition</span>**

En réseau, un socket est un couple d'adresse ip / port basés sur un protocole, permettant d'envoyer ou recevoir des données à travers un réseau informatique.

Il y a 3 choses qui identifient un socket sur le réseau :

- **Adresse IP** : l'adresse IP avec laquelle la machine initie la communication.
- **Port** **source** : le port source qu'elle va dédier à la communication (selon le protocole, celui-ci peut être fixe, compris dans une plage ou défini aléatoirement).
- **Protocole** : Le protocole utilisé dans la communication.

Pour la machine, un socket se présente comme suit : ***&lt;ip machine&gt;:&lt;port&gt;.***

*Par exemple : 192.168.1.10:250458 (TCP)*

Il existe trois types de socket, basé sur le protocole utilisé (TCP, UDP, Raw) :

<table id="bkmrk-type-description-uti" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">Type</td><td class="align-center" style="background-color: rgb(194,224,244);">Description</td><td class="align-center" style="background-color: rgb(194,224,244);">Utilisation type</td></tr><tr><td>**Stream Socket (TCP)**</td><td>Fiable et orienté connexion.</td><td>navigation web, messagerie, etc...</td></tr><tr><td>**Datagram Socket (UDP)**</td><td>Plus rapide mais pas de contrôle</td><td>streaming vidéo, VoIP, jeux en ligne, etc...</td></tr><tr><td>**RAW Socket**</td><td>Accès direct aux couches basses</td><td>Diagnostics réseaux, protocoles personnalisés, etc...</td></tr></tbody></table>

#### **<span style="color: rgb(35,111,161);">2.1 Limitations</span>**

Un socket ne peut être attribué qu'a un seul canal de communication à la fois, donc si la machine veut en ouvrir plusieurs, elle devra utiliser plusieurs sockets différents.

Selon les protocoles utilisés et leurs limitations ou paramétrage, elle ne pourra en ouvrir qu'un nombre simultané limité. Voire un seul.

#### **<span style="color: rgb(35,111,161);">2.3 Attribution des sockets</span>**

Un socket ne peut être attribué qu'a un seul canal de communication à la fois, donc si la machine veut en ouvrir plusieurs, elle devra utiliser plusieurs sockets différents.

Selon les protocoles utilisés et leurs limitations ou paramétrage, elle ne pourra en ouvrir qu'un nombre simultané limité. Voire un seul.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Socket client et socket serveur</span>**</span>

#### **<span style="color: rgb(35,111,161);">3.1 Côté serveur</span>**

Côté serveur, le socket d'écoute est fixé par le protocole.

Il peut s'agir d'un port fixe : par exemple le 53(UDP/TCP) pour le DNS ou le 123 (UDP) pour le NTP.

Une plage de port : 3478 - 3481 (Microsoft TEAMS)

*Souvent, un port unique fait office de point d'entrée et un répartiteur écoutant sur ce port, redirige le client sur un port destination spécifique de la plage.*

#### **<span style="color: rgb(35,111,161);">3.1 Côté client</span>**

Côté client, il s'agit le plus souvent d'un port source dynamique

Sauf fonctionnement spécifique, la plage de port pour un socket côté client s’étend de  **49152 - 65535** conformément à ce qui est prévus dans les catégories de ports.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Opérations de diagnostics</span>**</span>

#### **<span style="color: rgb(35,111,161);">4.1 Visualiser les sockets utilisés.</span>**

##### *<span style="color: rgb(35,111,161);">4.1.2 Sur windows</span>*

Utiliser les commandes suivantes :

```bash
netstat -an
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ljlimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ljlimage-png.png)

Pour plus de détails :

```bash
netstat -anob
```

Lister seulement les ports en écoutes :

```
netstat -anob | findstr LISTENING
```

##### *<span style="color: rgb(35,111,161);">4.1.2 Sur linux</span>*

Utiliser les commandes suivantes :

```
netstat
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/K4oimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/K4oimage-png.png)

Lister seulement les ports en écoutes :

```bash
netstat -tunlp
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DnEimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DnEimage-png.png)

Lister depuis les processus :

```
lsof -nP -iTCP -sTCP:LISTEN
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PX8image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PX8image-png.png)

# Réseau - Topologies

<p class="callout danger">***<span style="color: rgb(52,73,94);">DISCLAIMER : Cette page est actuellement en cours de rédaction et son contenu peut être incomplet ou inexact</span>***</p>

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Topologies réseaux, fondamentaux

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Un réseau est un ensemble de machines interconnectées. Il peut prendre plusieurs formes qui seront appelées '<span style="color: rgb(132,63,161);">***Topologies***</span>'.

Une topologie réseau est la couche structurelle sur laquelle les machines vont s'interconnecter pour former le réseau.

Cela conditionnera en partie les protocoles utilisés pour communiquer, mais aura aussi un impact sur des critères comme :

- La performance
- La résilience
- La scalabitilé

Habituellement la notion de topologie fait autant référence à la couche physique des interconnexions ( câbles, antennes, fibres, etc... )

qu'a la couche logique (comment les chemins réseaux sont organisés).

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Topologies classiques</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Topologie en étoile**</span>

C'est la topologie la plus courante. l'Ensemble des équipements sont reliés à un point central qui servira à distribuer le réseau.

Adapté au réseaux petits à moyens, elle peut rapidement être mise à l'échelle.

<div drawio-diagram="181"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782909637-png.png" alt="drawing-1-1782909637.png"/></div>


---

#### <span style="color: rgb(35,111,161);">**2.2 Topologie en étoile étendue ou hiérarchisée.**</span>

C'est la topologie la plus courante des que les réseaux grossissent un peu.

L'on part d'un cœur de réseau qui se situe au niveau le plus haut, puis on décentralise sur des équipements périphériques. En fonction de la charge et du nombre, il est possible d'ajouter également des switches sur les autres switches, etc...

<div drawio-diagram="182"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782910237-png.png" alt="drawing-1-1782910237.png"/></div>

<p class="callout info">**Info** : Cette topologie en arborescence comporte également une variant plus large pour les grosses structures ou les structures multi-sites. Avec des routeurs plus réguliers et différents niveaux de swiches.</p>

---

#### <span style="color: rgb(35,111,161);">**2.3 Topologie meshée**</span>

En français topologie '<span style="color: rgb(132,63,161);">***maillée***</span>'.

Certains liens sont redondés et les équipements sont interconnectés. Cette topologie est particulièrement appréciée sur des réseaux où la fiabilité l'optimisation prime sur la simplicité d'installation.

<div drawio-diagram="183"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782911071-png.png" alt="drawing-1-1782911071.png"/></div>

<p class="callout success">**Trivia** : Ce qui ressemble très vite à une toile d'araignée. D'où l'origine du '<span style="color: rgb(132,63,161);">***web***</span>';</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Topologies industrielles</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Topologie en bus**</span>

Autrefois utilisée pour les réseaux informatiques à leurs débuts, il s'agit d'une des forme de réseau les plus simples et prévisibles.

Chaque équipement est connecté à un bus et dispose d'un ordre de passage sur le réseau.

Le long du bus, une trame circule d'un bout à l'autre dans les deux sens et fait transiter la donnée.

<div drawio-diagram="184"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782911637-png.png" alt="drawing-1-1782911637.png"/></div>

<p class="callout success">**Trivia** : C'est cette notion de bus et de trame qui donneront ensuite les notions de trame réseau et de BUS au sens largeur de bande passante de la connectique.</p>

#### <span style="color: rgb(35,111,161);">**3.2 Topologie en anneau**</span>

Bien que se retrouvant essentiellement dans le milieu industriel, elle peut parfois faire sens dans des réseaux vidéos ou voix sur IP associée à une politique de QoS. Voire même informatique classique dans la mesure où elle permet une forme basique de redondance tout en coûtant sensiblement moins cher que le réseau mesh.

<div drawio-diagram="185"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1782914081-png.png" alt="drawing-1-1782914081.png"/></div>

#### <span style="color: rgb(35,111,161);">**3.1 Topologie en anneau**</span>

# Rôles / Services

Notions théoriques liées aux services et divers produits sur cette couche.

# Active Directory - Méthode AGDLP

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/K6cdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/K6cdebutant-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Active directory, Organisation, Bonne pratique, méthodologie AGDLP.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

La méthode AGDLP ( **A**ccount **G**lobal **D**omain **L**ocal **P**ermission ) est une méthode de gestion de droits et permissions à travers les groupes Active Directory et plus largement LDAP.

Cette méthode poursuit un objectif triple :

- **Management** : Cela facilite la délégation des accès et de la gestion de ceux-ci. Le fait de dé-corréler l'utilisateur de ses droits d'accès rends la solution scalable et facilement réversible.

- **Audit / Respect RGPD** : Elle aide également à la conformité RGPD car grâce à elle, il deviens facile et rapide de savoir avec précision qui a accès à quoi. Cela rends la traçabilité plus simple et précise.

- **Cyber sécurité / Moindre privilège** : Elle permet enfin de s'assurer une normalisation des droits d'accès en s'assurant que chaque utilisateur dispose uniquement des droits strictement nécessaires et que la portée de ces droits est correctement ajustée.

La combinaison de ces trois buts résulte en une gestion qui a priori peut sembler complexe à la mise en oeuvre, mais qui se révélera par la suite bien plus simple, transparente et efficiente dans son utilisation courante.

Dans un second temps, il deviendra aussi possible d'encadrer correctement la délégation de la gestion des accès et des privilèges.

Cette méthode peux s'appliquer indépendamment aux serveurs de fichiers, aux différents services et applications de l'entreprise, ainsi que (par le biais du SSO) aux rôles des application fédérées.

<p class="callout info">**Info** : Cette méthode prends tout son sens dans un environnement multi-domaines comme c'est de plus en plus fréquent d'en voir avec la logique de tiering.</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Rappel : Portée des groupes AD</span>**</span>

Avant de rentrer plus en détail sur l'application de cette méthode, il est nécessaire de rappeler certaines bases du fonctionnement des groupes Active Directory (ou LDAP) car c'est sur eux que va intégralement s'appuyer cette méthode.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jutimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jutimage-png.png)

Pour rappel, il exite deux types de groupes :

- **Security** (sécurité) : Ce type de groupe est celui qui va être utilisé dans ce contexte. C'est celui qui permet de gérer les permissions et les droits d'accès ainsi que l'application des GPO.
- **Distribution** : Ce type de groupe sert à gérer les listes de distribution pour les mails.

A cela s'ajoute la portée du groupe. c'est ce point qui va être central dans l'utilisation d'AGDLP. Il s'agit du niveau de visibilité du groupe.

Il y a 3 niveaux de portée :

- **Domain Local** : Le groupe existe dans le domaine local. Mais n'est pas visible depuis les autres domaines. 
    - Ils peuvent contenir : des utilisateurs du domaine, des groupes globaux d'autres domaines, des groupes universels.

- **Global** : Le groupe existe dans le domaine local et est visible depuis les autres domaines de la fôret. 
    - Ils peuvent contenir : des utilisateurs du même domaine, des groupes globaux du même domaine.
    - Ils peuvent être membre : de groupes locaux dans n'importe quel domaine, de groupes globaux du même domaine, de groupes universel.

- **Universel** : Le groupe existe au niveau de la forêt active directory est est visible partout. 
    - Ils peuvent contenir : utilisateurs de n'importe quel domaines, groupes globaux de n'importe quel domaine, autres groupes universels.
    - Ils peuvent être membre : de groupes locaux dans n'importe quels domaines, d'autres groupes universels.

<div drawio-diagram="215"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776670335-png.png" alt="drawing-1-1776670335.png"/></div>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Fonctionnement de la méthode</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Principe général**</span>

Comme vu ci-dessus, les groupes peuvent être imbriqués les uns dans les autres et c'est ce principe là qui va nous intéresser dans l'application de la méthode AGDLP.

L'idée de cette méthode est de dissocier les notions de **rôles** (droits effectifs attribué à un utilisateur) et de **groupes** d'appartenance.

Afin de limiter également la portée des droits, il faudra utiliser pour ces rôles des groupes avec une portée minimaliste.

Puis pour octroyer un rôle à un groupe d'utilisateur, il faudra ajouter le groupe des utilisateurs dans le groupe rôle.

Ainsi, si un utilisateur intègre un service dans l'entreprise, son rajout dans le groupe du service lui conférera automatiquement les accréditations (rôles) inhérents à ce service.

<div drawio-diagram="216"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776673492-png.png" alt="drawing-1-1776673492.png"/></div>

#### <span style="color: rgb(35,111,161);">**3.2 Normalisation**</span>

Afin de pouvoir se retrouver dans les noms et types de groupes, il va falloir adopter une normalisation stricte et une convention de nommage claire.

Les bonnes pratiques observées tendent vers la convention suivante :

- Le préfixe ***GRP*** suivi du séparateur **\_**
- Le type de groupe (sécurité, GMSA, liste, ...)
- Un caractère de séparation. Ici ***\_***
- La ***portée*** du groupe (local, global, universel).
- Un caractère de séparation. Ici ***\_***
- La finalité de l'***utilisation*** du groupe.
- Un séparateur différent. Ici ***-***
- Le ***nom*** du groupe (ou du dossier pour les groupes de sécurité).

<p class="callout info">**Info :** les ***groupes de sécurités*** pour l'accès aux dossiers seront suffixé par ***\_RO*** (read only), ***\_RW*** (read-write) ou ***\_FC*** (full control).</p>

<table id="bkmrk-prefixe-n%C2%B0-vlan-s%C3%A9pa"><colgroup><col></col><col></col><col></col><col></col><col></col><col></col><col></col><col></col></colgroup><tbody><tr><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Préfixe**  
</td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Type** </td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Séparateur** </td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Portée**  
</td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Séparateur** </td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Application** </td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Séparateur** </td><td class="align-left" style="border-style: solid; background-color: rgb(194,224,244);">**Usage**</td></tr><tr><td class="align-left" style="border-style: solid;">GRP\_  
</td><td class="align-left" style="border-style: solid;">SEC  
</td><td class="align-left" style="border-style: solid;">\_  
</td><td class="align-left" style="border-style: solid;">GL  
</td><td class="align-left" style="border-style: solid;">\_  
</td><td class="align-left" style="border-style: solid;">GPO\_EXL  
</td><td class="align-left" style="border-style: solid;">-  
</td><td class="align-left" style="border-style: solid;">PrintServers  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">GMSA  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">GG  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">GPO-INC  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">RDSSessionHosts  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">LST  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">UN  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">RDS  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">Farm1  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">APP  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">AppName  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">VPN  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">Admins, Users

</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">PROXY  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">RestrictedUsers, Noaccess, ExtendedAccess  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">VCSA  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">LAB1, LAB2  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">FIL</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">Comptabilité\_RO  
</td></tr><tr><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">...  
</td><td class="align-left" style="border-style: solid;">  
</td><td class="align-left" style="border-style: solid;">  
</td></tr></tbody></table>

<p class="callout success">**Conseil** : les ***listes de distributions*** seront simplement préfixées avec '***&amp;***' suivi du nom de la liste</p>

*GRP-GLO-RDS\_AllUsers*

*GRP-GLO-APP\_Sage*

*GRP-LOC-ROXY\_NoInternetAccess*

*&amp;ServiceComptabilité*

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Mise en application</span>**</span>

#### <span style="color: rgb(35,111,161);">**4.1 Appliqué au systèmes de fichiers**</span>

Exemple : Dans le cadre de son service comptabilité, l'entreprise dispose d'un partage ***//share/comptabilité***.

L'entreprise veux mettre en place 3 niveaux d’accréditation :

- Les comptables gèrent le service et doivent avoir accès en contrôle total au dossier partagé.
- Les assistants n'ont pas besoin de créer ou supprimer des choses, mais doivent pouvoir réaliser des modification dans les fichiers existants.
- Les auditeurs sont des personnes qui viennent auditer les comptes et doivent avoir un regard sur les pièces comptable, mais non pas besoin d'écrire.

Dans ce cas de figure, la première étape consiste à créer le répertoire et les groupes d'autorisations (rôles). En groupe local, car les droits ne s'appliquent que dans ce domaine.

GRP\_SEC\_GL\_FIL\_Compta\_FC

GRP\_SEC\_GL\_FIL\_Compta\_RW

GRP\_SEC\_GL\_FIL\_Compta\_RO

Puis créer les groupes globaux contenant les utilisateurs et les intégrer dans les groupes locaux.

GRP\_SEC\_GG\_Compta-Comptables

GRP\_SEC\_GG\_Compta-Assistants

GRP\_SEC\_GG\_Compta-Auditeurs

Enfin, il suffira d'ajouter / Retirer au besoin les utilisateurs dans les groupes :

<div drawio-diagram="217"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776687469-png.png" alt="drawing-1-1776687469.png"/></div>

Si l'on veut par exemple que le groupe Direction contenant le PDG et les membres du conseil ai également un droit de regard et de modification sur les fichiers de la comptabilité, il faudra ajouter cela de la façon suivante.

<div drawio-diagram="218"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776687475-png.png" alt="drawing-1-1776687475.png"/></div>

A l'inverse, si un même groupe, par exemple de comptables du siège social doit avoir accès aux dossiers comptabilité des autres domaines. Les groupes globaux étant visibles depuis les autres domaines, il faudra l'ajouter dans les groupes locaux sur les autres domaines.

<div drawio-diagram="219"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776693037-png.png" alt="drawing-1-1776693037.png"/></div>

#### <span style="color: rgb(35,111,161);">**4.2 Appliqué aux applicatifs &amp; services**</span>

Il est possible de poursuivre cette logique sur les applicatifs et services. Par exemple dans le cadre d'une ferme RDS, plusieurs applications sont partagées dans différentes collections.

Par exemple :

- le service R&amp;D utilise un groupe d'application de conception de produits électronique en RDP.
- Le service RH utilise des application pour la gestion des bages, etc...
- Les deux services accèdent également à un pool d'applications communes à tout le personnel.

La définition se fera comme suit :

<div drawio-diagram="220"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776693850-png.png" alt="drawing-1-1776693850.png"/></div>

<p class="callout info">**Info** : De même que précédemment, les groupes globaux pourront être ajouté dans des groupes locaux d'autres domaines si nécessaires. Cette méthode peut aussi s'appliquer par exemple pour des services comme le proxy, le VPN, etc...</p>

#### <span style="color: rgb(35,111,161);">**4.3 Appliqué au SSO et aux rôles**</span>

Dans la plupart des applications modernes, la notion de rôle est déjà intégrée au sein de l'application et ce rôle peut être appliquée directement à un groupe ou utilisateur.

Ainsi il pourra être mis en place le même principe. Pour attribuer ces rôles automatiquement, cela pourra se faire de deux manières :

- Soit à travers le SSO directement qui mappera l'appartenance au groupe au rôle correspondant.
- Soit directement dans l'application, auquel cas le système reste le même que précédemment.

Le système SSO intégrera alors dans le jeton d'authentification les appartenances au groupes, ce qui permettra d'effectuer les claims (demande de rôles).

---

<div id="bkmrk--25"></div><div class="relative pb-6 w-full after:border-b after:border-stroke-300 after:w-full after:absolute after:mt-3" id="bkmrk--26"></div>### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Variantes du modèle</span>**</span>

#### <span style="color: rgb(35,111,161);">**5.1 AGUDLP (grosses structures)**</span>

Il s'agit de la même méthode, mais incluant également les groupes universels pour gérer les approbation sur l'ensemble des domaines.

Adapté dans un environnement multi-domaine, ou de tiering au sein d'une forêt, elle permet d'avoir par exemple un domaine d'administration et plusieurs domaines clients.

Il faudra alors ajouter les administrateurs dans un groupe global du domaine d'admin, puis ces groupes d'administration seront intégrés dans un groupe universel afin d'en faciliter l'intégration au sein des différents domaines.

<div drawio-diagram="221"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1776697526-png.png" alt="drawing-1-1776697526.png"/></div>

#### <span style="color: rgb(35,111,161);">**5.2 AGLP**</span>

Cette variante consiste à utiliser des groupes locaux sur la machine directement au lieu d'un groupe active directory.

Cela peut être nécessaire sur des applications utilisant des groupes locaux des machines ou certains services créant eux-même des groupes locaux sur les machines afin de gérer l'accès aux ressources du services.

Ou encore certaines ressources et services sur linux.

<p class="callout info">**Info** : Il existe également d'autres vairantes comme AGUDL P, AGUGDLP, mais celles-ci sont rare et ne constituent pas la norme de l'utilisation.</p>

<div id="bkmrk--31"></div>---

<div id="bkmrk--33"></div>### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">VI. Bonnes pratiques</span>**</span>

Afin de garantir une efficacité optimale de cette méthode, il faut considérer un certain nombre de bonnes pratiques associées.

A commencer par le fait de l'intégrer dans un plan plus large. Cela va de pair avec :

- Une convention de nommage claire et explicite (comme vu ci-dessus).
- Une documentation des niveaux accréditations et une cartographie des accès.
- Une politique d'audits réguliers des groupes et permission afin de s'assurer de leur conformité.
- Mettre en place une politique de gestion du cycle de vie des groupes ( validation des ajouts / suppression des membres ).
- Eviter les imbrication inutiles et limiter au minimum celles-ci.
- Contrôler les délégations sur la gestion de ces groupes.

<div id="bkmrk--35"></div>---

<div id="bkmrk--37"></div>### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">VII. Erreurs à éviter</span>**</span>

De même que les bonnes pratiques garantissent un fonctionnement optimal, de mauvaises pratiques peuvent également venir saper l'efficacité de la méthode :

- Donner des permissions directement aux utilisateurs ( bypass de la chaîne d'autorisations).
- Utiliser des groupes globaux sur les ACL ( contraire au principe de moindre privilège).
- Mélanger rôles, permissions dans un même groupe.
- Ne pas nettoyer les groupes, utilisateurs, permissions obsolètes.
- Avoir une mauvaise gestion des comptes de services.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">VIII. Conclusion</span>**</span>

Si cette méthode peut ne pas être intuitive voire pénible à mettre en place, elle facilitera grandement la gestion courante des accès et des droits. Elle permettra également, sous réserve de respect des bonnes pratiques et d'éviter les erreurs, de permettre un audit rapide et efficace des accès effectifs pour un utilisateur ou un service de l'entreprise.

<p class="callout success">**Conseil** : De plus, sa mise en oeuvre et son maintient peuvent être grandement améliorées et facilitées par la mise en place de systèmes d'automatisation à travers des scripts ou des catalogues de services IaC. Réduisant ainsi considérablement la marge d'erreur humaine et garantissant la conformité.</p>

# Docker - Introduction à la "containerisation"

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/KuIintermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/KuIintermediaire-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : Containers, systèmes de containers, docker.

</td></tr></tbody></table>

---

### **<span style="text-decoration: underline;">I. Introduction</span>**

Tout comme la virtualisation avais permis un bond en avant en permettant de placer plusieurs machines virtuelles sur un hôte physique, la containérisation va plus loin en ne virtualisant plus un système entier mais en cloisonnant directement une couche applicative ou un service dans un container.

Basé sur un système d’image, celui-ci permet de virtualiser un morceau de système sur lequel viendront s’appuyer les containers contenant les ressources (binaires, configurations, librairies et dépendances) et auquel il sera possible de connecter des volumes persistant contenant les données.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/1vjimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/1vjimage-png.png)

Cela est une excellente alternative en terme de performance, la mutualisation des images permettant un gain significatif du fait de la non nécessité de virtualiser une couche hardware complète dans la plupart des cas.

Mais également en terme de gestion et de déploiement. Une fois les images créées, elle sont déployables en quelques minutes et utilisables immédiatement. De plus si plusieurs containers utilisent la même image et nécessitent un mise à jour, il sera simple de mettre à jour l’image et la pousser en production. les containers pourront ensuite être liés a cette nouvelle image, réduisant le temps de mise à jour et les indisponibilités.

Enfin en terme de sécurité. Chaque application utilisant son propre environnement cloisonné, il sera très difficile d’infecter les systèmes adjacents et la compromission d’un service aura des effets uniquement sur celui-ci.

De plus, les images étant non persistantes, un rechargement de celle-ci supprimera les éventuelles traces d’attaque et permettra de revenir rapidement à une configuration sûre.

Cela permet également de personnaliser grandement l’architecture des services. Par exemple voici un container web :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/S0Iimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/S0Iimage-png.png)

Enfin Le dernier avantage et non le moindre, est la grande capacité d’automatisation de l’outil.

Les images et containers, ainsi que des architectures complètes peuvent être créées a partir de fichiers d’instructions (la plupart en YAML) qui seront utilisés comme base à travers des API.

Ce qui permet de faire de “l’infrastructure as code” et de publier en quelques étapes des services voire des infrastructures complètes architecturées en amont.

---

###   


### **<span style="text-decoration: underline;">II. Principes de bases</span>**

**Les images :** Les images sont des versions packagées de services. Elles sont construite à l'aide de fichiers que l'on appelle 'dockerfiles'. Le plus souvent, elle partent d'une couche OS sur laquelle le(s) service(s) et le contenu seront préconfigurés et packagés puis fournis sous forme d'image pour un déploiement rapide et une grande souplesse dans la gestion des containers utilisant ces images. Lors de l'utilisation par un container, le contenu de l'image est dit 'non persistant'. En effet, si le container est arrété ou recontruit, l'image redémarre sur son état initial.

**Les volumes et points de montage :** Du fait de la non persistance des images, il n'est pas possible d'y stocker des données dites 'vivantes' dans le container. Pour cela, il faudra lui attacher des volumes ou des fichiers. Il s'agit des ressources qui seront partagées entre l'hôte et le container. Cela peut être des fichiers de configurations par exemple qui seront montés dans le container sur un chemin précis ou dans le cas des volumes. Lors de la création de ceux-ci, un espace dédié est créé sur l'hôte et sera utilisé ensuite dans le container sur un point de montage. L'on y placera toutes les données qui feront vivre le service (site web, base de donnée, fichiers du service, logs...)

**Les containers :** Le container est donc ce qui résulte de l'utilisation des éléments ci-dessus. Il va utiliser une image pour fournir un service et les volumes pour stocker la donnée.

**Les services :** Sur un cluster (swarm), les containeurs ne sont plus addressés directement en tant que tel mais font partie d'un service. Celui-ci permet de disposer de propriétés de déploiement comme de la haute dispo, des contraintes de placement sur des noeuds du cluster, le nombre de copies de containers, etc...

**Les stacks :** Une architecture rendant un service peut être constituées de plusieurs containers ou services. par exemple dans le cadre d'un hébergement web, il peut y avoir un container wordpress, puis un container DB et un container SSH, tous constitutifs du 'stack' hebergement.

**Les réseaux :** Les réseaux permettent à différents services de comuniquer entre eux. Par exemple permettre à un container web de se connecter à un container SQL, ou encore à un reverse proxy d'adresser un serveur web.

**L'exposition des ports :** Par défaut les containers sont dans des réseaux isolés ou bridgés non accessible de l'extérieur. Il faut pour cela natter des ports. Par exemple un port 8082 en TCP sur le port 80 d'un container. dans ce cas, c'est l'hôte qui devra être addressé avec le port natté (ici: 8082). On parkle alors d'une "exposition de port".

**Les secrets :** Certaines informations sont par nature sensibles. Les comptes ou mots de passes, des clés, des tokens, etc... Pour se passer ses informations entre les noeuds ou les monter dans un ou plusieurs container sans exposer ces informations il est possibles de créer des secrets. Ce sont des fichiers chiffrés qui sont directement généré à partir d'une saisie d'information protégées et ne seront ensuite utilisable qu'entre les membres du cluster et aux containers. Cela permet d'utiliser ces informations en toute sécurité.

**Les dockerfiles :** Ce sont des fichiers contenant une séquence d'instructions qui vont être utilisés pour générer une image. Cela sert dans le cadre de l'automatisation. Exemple :

```
FROM image_name #partir de l'image désignée (ou FROM scratch) pour recompiler une image en partant de zéro.

LABEL label1="valeur1" label2="valeur2" label3="valeur3" #définit les tags de l'image

VOLUME ['/chemin/vers/dossier'] # si pas de volume associé, par défaut monte un volume à cet endroit

ARG ARG1="value" #variable 1
ARG ARG2="value" #variable 2

WORKDIR /chemin/racine #chemin sur lequel on se place pour exécuter les commandes

COPY /chemin/vers/fichier /chemin/dans/container #copie un fichier présent sur la machine dans le container

RUN commande1 # lance une commande dans le container
RUN commande2
RUN commande3

EXPOSE 80/tcp #expose le port voulu dans le protocole voulu

ENTRYPOINT ["command", "arg1", "arg2"] #donne le processur ou service à observer pour le démarrage du container
```

<p class="callout info">Pour plus d'informations : [Dockerfile reference](https://docs.docker.com/engine/reference/builder/)</p>

**Les fichiers compose :** Les fichiers compose sont des fichier descriptif de l'architecture d'un service ou d'un stack. Ils permettent de générer les services/stacks à partir de ce fichier de manière automatisée. Cela rentre dans le cadre de "l'infrastructure as code".

Exemple de fichier compose pour un stack wordpress :

```yaml
services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    volumes:
      - wp_data:/var/www/html
    ports:
      - 80:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
volumes:
  db_data:
  wp_data:
```

**Le swarm :** le swarm est un cluster composant un ensemble de noeuds sous docker. Un swarm est initialisé par un noeud 'manager' et comportera ensuite un ensemble de 'worker'. Cela permettra de répartir des charges de travail et/ou de fiabiliser certains services en les répliquants sur plusieurs noeuds.

# Filer - DFS & DFSR

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/KuIintermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/KuIintermediaire-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : Serveurs de fichiers, partages, Réplication, cluster.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Le DFS ( **D**istributed **F**ile **S**ystem ), ou <span style="color: rgb(132,63,161);">***système de fichiers distribué***</span> en français, est un rôle serveur permettant de centraliser la gestion et la publication des partages sur différents serveurs de fichiers en s'appuyant sur les espaces de noms.

Le principe est d'avoir un ou plusieurs serveurs gestionnaires de ces espaces de noms qui vont créer une racine 'virtuelle' au sein du domaine depuis laquelle tous les partages seront accessibles. Au niveau de l'utilisateur, ce chemin se substitue au chemin réel vers le dossier partagé.

Cela permet de dé-corréler l'accès aux fichiers du point de vue utilisateur de l'emplacement réel des données.

Cette dé-corrélation entraîne ainsi plusieurs avantages :

- Possibilité d'ajouter de la redondance sur les sources de partages
- Possibilité de stocker différents partages sur différents serveurs, augmentant ainsi la segmentation et donc la résilience et la sécurité (pas les même machines en fonction du niveau de sensibilité de la donnée)
- Transparent pour les utilisateurs

Enfin, il est possible de coupler ce principe avec de la réplication synchrone ( DFSR ). Ainsi, l'utilisateur accède de façon transparente à un emplacement réseau permettant de faire de la haute disponibilité et de la répartition de charge.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Notions importantes</span>**</span>

Pour bien cerner les principes clés du DFS et de la réplication associée, il est essentiel de comprendre les trois notions sur lesquelles il va se reposer :

- **Racine DFS** : C'est le point d'entrée principal du système DFS. Cette racine est un emplacement réseau qui contiendra les 'raccourcis' vers les cibles DFS gérée par le serveur. Si le serveur est intégré dans un domaine, cela ressemblera à '***<span style="color: rgb(132,63,161);">\\\\domaine.ext\\racineDFS\\</span>***' et servira de point d'entrée sur les autres partages.

- **Dossier** : C'est le nom du partage affiché côté client et dans la configuration du serveur. Une liaison sera ensuite faite entre ce dossier et une cible afin de faire le lien entre ces deux éléments. Certains dossiers n'utilisent pas de cible mais sont uniquement présents pour structurer l'arborescence de la racine DFS. Ces dossiers sont également appelés <span style="color: rgb(132,63,161);">'***Liaisons DFS***</span>'.

- **Cible** : Le serveur et le chemin réseau réel pour accéder au dossier partagé. Ce qui permettra lors de l'accès au dossier, de renvoyer l'utilisateur au bon endroit.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Architecture</span>**</span>

Dans le domaine '<span style="color: rgb(132,63,161);">***domaine.local***</span>', il y a 3 partages qui doivent êtres accessibles aux utilisateurs.

- Comptabilité
- Informatique 
    - Data
    - Sources

Voici comment se présente cette architecture :

<div drawio-diagram="222"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1777017417-png.png" alt="drawing-1-1777017417.png"/></div>

Ainsi du point de vue utilisateur, pour accéder aux logiciels, le chemin sera : '<span style="color: rgb(132,63,161);">***\\\\domaine.local\\partages\\informatique\\logiciels***</span>'.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. DFSR</span>**</span>

La réplication DFS ou <span style="color: rgb(132,63,161);">***DFSR***</span> est un système de réplication des fichiers s'appuyant sur DFS et utilisé en complément de celui-ci pour mettre en place de la haute disponibilité sur les partages de manière transparente pour les utilisateurs.

Un groupe de réplication est créé. Celui-ci contient les membres qui sont les serveurs partenaires de réplication.

Dans ce groupe, les dossiers partagés sont publiés avec des sources et des destinations. La réplication pourra se faire alors au choix en sens unique ou de façon bilatérale.

<div drawio-diagram="223"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1777298411-png.png" alt="drawing-1-1777298411.png"/></div>

Il existe deux types de topologie de réplication :

<table id="bkmrk-hub-and-spoke-full-m" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 45.2381%;"></col><col style="width: 5.59524%;"></col><col style="width: 49.1667%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244); border-style: hidden;">***Hub and spoke***</td><td style="border-style: hidden;">  
</td><td class="align-center" style="background-color: rgb(194,224,244); border-style: hidden;">***Full Mesh***</td></tr><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/KoSimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/KoSimage-png.png)

</td><td style="border-style: hidden;"></td><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/t4mimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/t4mimage-png.png)

</td></tr><tr><td style="border-style: hidden;">*Dans ce mode, un serveur central réplique de manière unilatérale vers les autres membres. Cela permet essentiellement de garder des copies des fichiers.*

*(nécessite 3 nœuds minimum)*

</td><td style="border-style: hidden;">  
</td><td class="align-center" style="border-style: hidden;">*Dans ce mode, chaque serveur réplique de manière bilatérale avec ses autres partenaires. Cela permet d'assurer de la haute disponibilité.*  
</td></tr></tbody></table>

Il sera ensuite également possible de décider si les réplications doivent se faire de façon synchrone ou asynchrone (créneaux définis dans un planning).

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Conclusion</span>**</span>

En conclusion, de par son architecture même, le système de racine DFS permet une gestion simple et centralisée de l'accès aux données. Lorsqu'il est en plus couplé à la mise en cache et à la réplication, cela permet aussi :

- **Simplification de l'administration** : Lorsqu'une cible DFS est arrêtée (panne, maintenance, remplacement de serveur), elle peut être facilement déplacée sur un autre serveur sans que cela ne change quoi que ce soit d'un point de vue utilisateur.

- **Intégration client** : La partie client est intégrée à windows ( mise en cache, copie hors ligne ), ce qui évite des installations supplémentaires.

- **Confort utilisateur** : Les données sont facilement accessibles, toujours au même endroit, de façon transparente. La mise en cache et la gestion des fichiers hors ligne permet la mobilité des utilisateurs, couplé à la technique de redirection des profils utilisateurs, cela garantit également à l'utilisateur qu'il accédera toujours à ses données et son environnement de travail, peu importe le terminal sur lequel il se connecte.

- **Sécurité :** Les permissions ne sont plus gérées par les permissions de partage, mais ce sont directement les permissions sur les dossiers / fichiers (**ACL**) qui s'appliquent.

- **Performance / Haute disponibilité** : Couplé à DFSR et à la mise en cache, cela permet une amélioration des performances ainsi qu'une disponibilité accrue des données. En effet, les données étant présente et synchronisées sur plusieurs serveurs, il est possible de répartir la charge entre ceux-ci et de garantir une bonne tolérance à la panne.

# Sécurité

Chapitre regroupant les cours théoriques sur les éléments relatifs à la cybersécurité.

# Sécurité - Analyse de risque (méthode Ebios)

### <span style="text-decoration: underline;">**<span style="color: rgb(35,111,161); text-decoration: underline;">I. Introduction</span>**</span>

La méthode EBIOS Risk Manager (EBIOS RM) est la méthode d’appréciation et de traitement du risque numérique publiée par l’Agence nationale de la sécurité et des systèmes d’information (ANSSI) avec le soutien du Club EBIOS.

Elle propose une boite à outils adaptable, dont l’utilisation varie selon l’objectif du projet et est compatible avec les référentiels normatifs en vigueur, en matière de gestion des risques comme en matière de sécurité numérique4. EBIOS Risk Manager permet d’apprécier les risques numériques et d’identifier les mesures de sécurité à mettre en œuvre pour les maitriser.

Elle permet aussi de valider le niveau de risque acceptable et de s’inscrire à plus long terme dans une démarche d’amélioration continue.

Enfin, cette méthode permet de faire émerger les ressources et arguments utiles à la communication et à la prise de décision au sein de l’organisation et vis-à-vis de ses partenaires.

  
 La méthode EBIOS Risk Manager peut être utilisée à plusieurs fins :

- mettre en place ou renforcer un processus de management du risque numérique au sein d’une organisation ;
- apprécier et traiter les risques relatifs à un projet numérique, notamment dans l’objectif d’une homologation de sécurité ;
- définir le niveau de sécurité à atteindre pour un produit ou un service selon ses cas d’usage envisagés et les risques à contrer, dans la perspective d’une certification ou d’un agrément par exemple.

 Elle s’applique aussi bien aux organisations publiques ou privées, quels que soient leur taille, leur secteur d’activité et que leurs systèmes d’information soient en cours d’élaboration ou déjà existants.

### <span style="text-decoration: underline; color: rgb(35,111,161);">**II. Principes de la méthode Ebios**</span>

La méthode EBIOS Risk Manager adopte une approche de management du risque numérique partant du plus haut niveau (grandes   
missions de l’objet étudié) pour atteindre progressivement les fonctions métier et techniques, par l’étude des scénarios de risque   
possibles. Elle vise à obtenir une synthèse entre « conformité » et « scénarios », en positionnant ces deux approches complémentaires   
là où elles apportent la plus forte valeur ajoutée.

Cette démarche est symbolisée par la pyramide du management du risque numérique (cf. figure 1).  
 Avec EBIOS Risk Manager, l’ensemble des risques est appréhendé par la combinaison :

- d’une approche par conformité pour déterminer le socle de sécurité pour les risques les plus communs, y compris ceux liés à des événements accidentels et environnementaux ;
- et d’une approche par scénarios pour identifier les risques avancés, d’origine intentionnelle, et notamment les attaques   
    particulièrement ciblées ou sophistiquées.

 Ces deux approches permettent d’éclairer les décideurs dans leurs choix de traitement du risque.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/o48image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/o48image-png.png)

### <span style="text-decoration: underline; color: rgb(35,111,161);">**III. Fonctionnement de la méthode Ebios**</span>

La méthode Ebios s'articule autour de 5 ateliers de manière itérative (cf. figure 2).

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/50Iimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/50Iimage-png.png)

#### <span style="color: rgb(53,152,219);">**3.1 Atelier 1 - Cadrage et socle de sécurité**</span>

Le premier atelier vise à identifier l’objet de l’étude, les participants aux ateliers et le cadre temporel.

Au cours de cet atelier, vous recensez les missions, valeurs métier5 et biens supports relatifs à l’objet étudié.

Vous identifiez les événements redoutés associés aux valeurs métier et estimez la gravité de leurs impacts.

Vous évaluez également la conformité au socle de sécurité.

<p class="callout info">**NOTE** : l’atelier 1 permet de suivre une approche par « conformité », correspondant aux deux premiers étages de la pyramide   
du management du risque numérique et d’aborder l’étude du point de vue de la « défense ».</p>

#### <span style="color: rgb(53,152,219);">**3.2 Atelier 2 - Sources de risque**</span>

Dans le deuxième atelier, vous identifiez et caractérisez les sources de risque (SR) et leurs objectifs de haut niveau, appelés objectifs visés (OV).

Les couples SR/OV jugés les plus pertinents sont retenus au terme de cet atelier.

Les résultats sont formalisés dans une cartographie des sources de risque.

#### <span style="color: rgb(53,152,219);">**3.3 Atelier 3 - scénarios stratégiques**</span>

Dans l’atelier 3, vous allez acquérir une vision claire de l’écosystème et établir une cartographie du niveau de dangerosité induit par la relation avec les parties prenantes majeures de l’objet étudié.

Ceci va vous permettre de bâtir des scénarios de haut niveau, appelés scénarios stratégiques.

Ils représentent les chemins d’attaque qu’une source de risque est susceptible d’emprunter pour atteindre son objectif.

Ces scénarios se conçoivent à l’échelle de l’écosystème et des valeurs métier de l’objet étudié.

Leur gravité est ensuite estimée.

À l’issue de cet atelier, vous pouvez déjà définir des mesures de sécurité sur l’écosystème.

#### <span style="color: rgb(53,152,219);">**3.4 Atelier 4 - Scénarios Opérationnels**</span>

Le but de l’atelier 4 est de construire des scénarios techniques reprenant les modes opératoires susceptibles d’être utilisés par les sources de risque pour réaliser les scénarios stratégiques.

Cet atelier adopte une démarche similaire à celle de l’atelier précédent mais se concentre sur les biens supports critiques.

Vous estimez ensuite le niveau de vraisemblance des scénarios opérationnels obtenus.

<p class="callout info">**Info** : Les ateliers 3 et 4 s’alimentent naturellement au cours d’itérations successives.  
</p>

<p class="callout info">**Info** : Les ateliers 2, 3 et 4 permettent d’apprécier les risques, ce qui constitue le dernier étage de la pyramide du management   
du risque numérique. Ils sollicitent le socle de sécurité selon des axes d’attaque différents, pertinents au regard des menaces   
considérées et en nombre limité pour en faciliter l’analyse.  
</p>

#### <span style="color: rgb(53,152,219);">**3.5 Atelier 5 - Traitement du risque**</span>

Le dernier atelier consiste à synthétiser l’ensemble des risques étudiés et à définir une stratégie de traitement du risque. Cette dernière   
est ensuite déclinée en mesures de sécurité inscrites dans un plan de traitement du risque. Lors de cet atelier, vous établissez la synthèse des risques résiduels et définissez le cadre de suivi des risques.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/bOmimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/bOmimage-png.png)

<p class="callout info">**Note** : en général, chaque chemin d’attaque d’un scénario stratégique donne lieu à un scénario opérationnel. Un scénario de risque correspond à l’association d’un chemin d’attaque et de son scénario opérationnel.  
</p>

### <span style="text-decoration: underline; color: rgb(35,111,161);">**IV. Conclusion**</span>

EBIOS Risk Manager est une méthode adaptable. Elle constitue une véritable boîte à outils, dont le niveau de détail et le séquencement   
des activités à réaliser pour chaque atelier, seront adaptés en fonction des objectifs.

La manière dont s’applique la méthode diffère selon le sujet étudié, les livrables attendus, le degré de connaissance du périmètre de l’étude ou encore le secteur auquel on l’applique.

La grille ci-après propose des cas d’usage selon l’objectif visé.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/bE3image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/bE3image-png.png)

# Sécurité - CIA Triad

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/pnBdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/pnBdebutant-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : Principes fondamentaux en cybersécurité.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Lorsque l'on parle de cybersécurité, il est important d'en saisir les objectifs principaux.

Pour cela, il a été créé un acronyme mnémotechnique : la triade <span style="color: rgb(132,63,161);">***CIA***</span>.

Il s'agit d'un modèle conceptuel où chaque lettre représente l'un des trois grands piliers de la cybersécurité :

- Confidentiality
- Integrity
- Availability

Soit en français : Confidentialité, Intégrité, Disponibilité.

Ces piliers sont d'une importance équivalente.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/oJjimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/oJjimage-png.png)*Source : Try Hack Me*

Cela découle dune application des normes suivantes :

- ISO 27001
- NIST CSF
- ANSSI (PGSSI-S, RGS)

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Confidentialité</span>**</span>

<span style="color: rgb(52,73,94);">Le premier principe est d'assurer la confidentialité des données.</span>

<span style="color: rgb(52,73,94);">Cette confidentialité assure que des données sensibles ne sont accessibles qu'aux personnes explicitement autorisées.</span>

<span style="color: rgb(52,73,94);">Si jamais cette confidentialité n'était pas maintenue, des personnes non autorisées, voire mal intentionnées, pourraient accéder à ces données et les exploiter. Ce qui entraînerait à minima une perte de confiance, voire des conséquences plus graves :</span>

- <span style="color: rgb(52,73,94);">Pertes financières</span>
- <span style="color: rgb(52,73,94);">Fuites de données personnelles</span>
- <span style="color: rgb(52,73,94);">Fuites de secrets industriels</span>
- <span style="color: rgb(52,73,94);">Poursuites judiciaires</span>

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/6Glimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/6Glimage-png.png)

<span style="color: rgb(52,73,94);">Quelques exemples de perte de confidentialité de l'information :</span>

- *<span style="color: rgb(52,73,94);">Un employé partage son mot de passe à un collègue, celui-ci est entendu par une personne mal intentionnée qui accède ensuite au poste et vole des données confidentielles et personnelles. Elle pourra plus tard la faire chanter ou réutiliser contre elle ces informations.</span>*
- *<span style="color: rgb(52,73,94);">Des données sensibles concernant des secrets de fabrication pour un client ont fuité depuis une sauvegarde mal sécurisée. Cela entraîne des poursuites de la part du client mécontent que ses Propriété Intellectuelles aient été compromises.</span>*
- *<span style="color: rgb(52,73,94);">Les fiches de paye des salariés ont été rendues publiquement accessibles sur internet. Cela a entraîné des conflits internes et des mouvements de grèves qui ont déstabilisé le fonctionnement de l'entreprise. </span>*

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Intégrité</span>**</span>

Le second principe est d'assurer l'intégrité des données.

Cette intégrité assure que les données n'ont pas été altérées. Que la confiance que l'on peut leur accorer reste pleine et entière.

Mais également que celles-ci sont précises et fiables.

Si jamais cette intégrité n'était pas maintenue, altérée par des personnes malveillantes, les données ne pourraient plus être considérées comme fiables.

Dans le meilleur des cas, ces données pourraient être relevées et corrigées, n'entraînant qu'une perte de temps.

Dans des cas plus extrêmes, ces données altérées pourraient entraîner des conséquences plus graves :

- Communications erronées
- Prise de décision basées sur de fausses données
- Dommages collatéraux
- Perte de confiance
- Poursuites judiciaires

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TH3image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TH3image-png.png)

Quelques exemples de perte d'intégrité de l'information :

- *Des logs systèmes ont été modifiés pour effacer les traces d'une activité.*
- *Un rapport financier à été altéré, poussant le conseil d'administration à prendre de mauvaises décisions.*
- *Des enregistrements de base de données contenant les mélanges des préparations ont été modifiés, conduisant à une production de produits inexploitables voire dangereux.*

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Disponibilité</span>**</span>

Le troisième principe est d'assurer la disponibilité des données et des services.

La disponibilité vise à assurer que les utilisateurs de la donnée ou du service puissent y accéder **o*****ù*** ils en ont besoin et **q*****uand*** ils en ont besoin.

En fonction du secteur d'activité de l'entreprise, il peut même s'agir de l'élément fondamental qui en permet le fonctionnement.

Par exemple les secteurs bancaire ou hospitalier. Dans ces deux cas, une perte de service, même momentanée, pourrait avoir des conséquences dramatiques. Comme par exemple :

- Perte de production.
- Destruction de stocks.
- Pertes de vies humaines.
- Perte de confiance
- Poursuites judiciaires

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/3Tbimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/3Tbimage-png.png)

Quelques exemples de perte de disponibilité des données :

- *Le cœur de réseau est tombé en panne, privant les utilisateurs de l'intégralité des services informatiques.*
- *Suite à une attaque par déni de service, les services de suivi de commandes ne sont plus disponibles.*
- *Une mise à jour a été effectuée sur un serveur de production, celle-ci a fait redémarrer le service.*

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**V. Conclusion**</span>

La triade **Confidentialité – Intégrité – Disponibilité** constitue le socle fondamental de toute démarche de sécurité informatique. Elle permet d’évaluer, structurer et prioriser les protections nécessaires pour garantir que les données restent accessibles aux bonnes personnes, exactes, et disponibles lorsque les utilisateurs en ont besoin.

Comprendre ces trois piliers, leurs risques et leurs interactions est essentiel pour analyser un système d’information, identifier ses vulnérabilités et mettre en place des mesures adaptées.

Dans les cours et les environnements professionnels, la triade CIA sert de référence pour aborder les normes, les bonnes pratiques et les stratégies de défense qui composent la cybersécurité moderne.

Voici un tableau récapitulatif qui résume les piliers, leurs objectifs et les risques auxquels ils permettent de faire face.

<table id="bkmrk-pilier-objectif-risq" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3731%;"></col><col style="width: 33.3731%;"></col><col style="width: 33.3731%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">**Pilier**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Objectif**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Risques**</td></tr><tr><td>Confidentialité</td><td>Protéger les accès, gérer les permissions.</td><td>Fuite, espionnage, vol de donnée.</td></tr><tr><td>Intégrité</td><td>Garantir l'exactitude des données.</td><td>Altération, fraude.</td></tr><tr><td>Disponibilité</td><td>Assurer l'accès aux données.</td><td>Pannes, DDoS.</td></tr></tbody></table>

# Sécurité - Hash et chiffrement

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/t12intermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/t12intermediaire-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : Cybersécurité, Hashing, chiffrement.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Afin de protéger les données sensibles et garantir la sécurité des échanges, les mécaniques cryptographiques jouent un rôle clé dans la cybersécurité. Elles permettent entre autres choses :

- De chiffrer des données sensibles (mots de passes, contenu protégé, données confidentielles, etc...)
- De chiffrer des communications (web, email, protocoles, ...)
- D'authentifier un système ou un utilisateur (signature numérique, empreinte, certificat, etc...)

Il existe pléthore d'algorithmes et de méthodes pour cacher ou protéger de la donnée. On retiendra ici deux concepts majeurs :

- Le hachage.
- Le chiffrement.

Il sera également possible d'aborder la notion de stéganographie.

<p class="callout success">**Trivia** : Dû à l'évolution des puissances de calcul et des menaces croissantes, il est nécessaire de constamment adapter les algorithmes de chiffrements afin de les renforcer voire de les abandonner si une méthode a été trouvée pour les 'casser'.</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Le Hash</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Définition**</span>

Le Hash (ou hashing, hachage) est une fonction mathématique qui vise à transformer une donnée de taille variable en une <span style="color: rgb(132,63,161);">***empreinte*** ***de taille fixe***</span>.

Cette empreinte disposera de propriétés intrinsèques. En effet, par nature

- Non réversible : Il est donc impossible de retrouver le message d'origine
- Déterministe : Une même entrée donnera toujours la même empreinte.
- Non falsifiable : La moindre altération de la donnée d'entrée donnera un hash complètement différent.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/VgIimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/VgIimage-png.png)

De par sa nature, cela rend cette méthode idéale pour le stockage sécurisé de mots de passe, la vérification d'intégrité des téléchargements, les signatures numériques et l'indexation rapide.

La vérification se fera par comparaison.

*exemples :*

*Dans le cas d'un téléchargement, le fournisseur du téléchargement fournit le hash ou somme de contrôle du téléchargement.*

*Après téléchargement, il est possible de calculer à son tour le hash / checksum et de les comparer à celui fourni par l'éditeur sur la page de téléchargement. Cela permet de s'assurer de l'intégrité des données et de leur non-altération.*

*Dans le cas de l'authentification, l'utilisateur entre son mot de passe. Celui-ci est Haché et envoyé au serveur d'authentification, celui-ci compare alors le hash reçu et le hash présent en base de donnée pour confirmer que le mot de passe fourni est le bon.*

#### <span style="color: rgb(35,111,161);">**2.2 Algorithmes courants**</span>

<table id="bkmrk-algorithme-statut-us" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 21.457%;"></col><col style="width: 20.5359%;"></col><col style="width: 58.0203%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">**Algorithme**  
</td><td class="align-center" style="background-color: rgb(194,224,244);">**Statut**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Usage recommandé**  
</td></tr><tr><td>MD5</td><td>Obsolète</td><td>Aucun (présence de failles majeures)</td></tr><tr><td>SHA-1</td><td>Obsolète</td><td>Aucun (collisions d'entrées)</td></tr><tr><td>SHA-256</td><td>Sûr </td><td>Intégrité des données, signatures</td></tr><tr><td>SHA-3</td><td>Sûr</td><td>Applications</td></tr><tr><td>bcrypt / scrypt / Argon2</td><td>Très sûr</td><td>Stockage de mots de passe</td></tr></tbody></table>

*Le statut des algorithmes se base sur les données de 2025*

<p class="callout warning">**Attention** : Lors du stockage de mots de passe avec sha-256, il faudra utiliser en complément un **KDF** (**K**ey **D**erivation **F**unction) comme vu ci-dessus (bcrypt, scrypt, pbkdf2, argon2).</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Le Chiffrement</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Définition**</span>

Le chiffrement (Cypher / Encryption), à l'inverse du hash, a pour vocation à être déchiffré et pas seulement comparé.

Celui-ci sert essentiellement dans les échanges. Pour chiffrer ou déchiffrer de la donnée, il faudra utiliser une ou plusieurs clés.

Il existe deux types de chiffrement, le chiffrement <span style="color: rgb(132,63,161);">**Symétrique**</span> et le chiffrement **<span style="color: rgb(132,63,161);">Asymétrique</span>.**

<p class="callout info">**Info** : Plus la clé de chiffrement est longue, plus le chiffrement sera fort.  
</p>

#### <span style="color: rgb(35,111,161);">**3.2 Le chiffrement symétrique**</span>

Le principe du chiffrement symétrique est d'utiliser <span style="color: rgb(132,63,161);">***une seule clé***</span> qui permettra à la fois de chiffrer et de déchiffrer la donnée.

L'avantage de ce type d'algorithme est qu'il est rapide à mettre en oeuvre. Cela le rend donc idéal pour le chiffrement de gros volumes comme des disques dur ou des bases de données.

L'inconvénient réside dans le fait que si la clé fuite, l'ensemble des données sera simple. Ce qui rend cette clé difficilement partageable.

Les algorithmes les plus courants sont :

<table id="bkmrk-algorithme-type-stat" style="border-collapse: collapse; width: 100%; height: 179.271px;"><colgroup><col style="width: 18.4768%;"></col><col style="width: 12.0397%;"></col><col style="width: 20.6254%;"></col><col style="width: 48.8713%;"></col></colgroup><tbody><tr style="height: 29.8785px;"><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Algorithme**  
</td><td class="align-center" style="background-color: rgb(194,224,244);">**Type**</td><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Statut**</td><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Usage recommandé**  
</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">DES</td><td>Bloc</td><td style="height: 29.8785px;">Obsolète</td><td style="height: 29.8785px;">aucun</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">3DES</td><td>Bloc</td><td style="height: 29.8785px;">Déprécié</td><td style="height: 29.8785px;">Transition uniquement</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">AES (128,192,256)</td><td>Bloc</td><td style="height: 29.8785px;">Standard moderne</td><td style="height: 29.8785px;">VPN, TLS, Chiffrement de disque</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">ChaCha20</td><td>Flux</td><td style="height: 29.8785px;">Très sûr</td><td style="height: 29.8785px;">réseau mobile, environnements connectés.</td></tr></tbody></table>

A noter que AES s'accompagne également de différentes méthodes pour chiffrer des blocs successifs.

<table id="bkmrk-algorithme-statut-s%C3%A9" style="border-collapse: collapse; width: 100%; height: 179.271px;"><colgroup><col style="width: 20.3841%;"></col><col style="width: 16.6887%;"></col><col style="width: 18.2428%;"></col><col style="width: 44.6976%;"></col></colgroup><tbody><tr style="height: 29.8785px;"><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Algorithme**  
</td><td class="align-center" style="background-color: rgb(194,224,244);">**Statut**</td><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Sécurité**</td><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Remarques**  
</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">ECB</td><td>Osolète</td><td style="height: 29.8785px;">Mauvais</td><td style="height: 29.8785px;">Révèle les motifs (patterns) de la donnée chiffrée.</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">CBC</td><td>Sûr</td><td style="height: 29.8785px;">Bon</td><td style="height: 29.8785px;">Nécessite un IV (**I**nitial **V**ector) aléatoire</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">CFB / OFB</td><td>Sûr</td><td style="height: 29.8785px;">Bon</td><td style="height: 29.8785px;">Flux pseudo-aléatoire</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">GCM</td><td>Très sûr</td><td style="height: 29.8785px;">Excellent</td><td style="height: 29.8785px;">Authentifié (AEAD), rapide</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**3.3 Le chiffrement asymétrique**</span>

Le principe du chiffrement asymétrique est qu'il dépends de deux clé. La première sert à chiffrer la donnée, la seconde à la déchiffrer.

Il s'agit du fameux couple <span style="color: rgb(132,63,161);">***Clé privée*** / ***Clé publique***</span> que l'on retrouve dans l'architecture PKI.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/aHtimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/aHtimage-png.png)

L'on s'en sert pour échanger des clé de chiffrement de manière sécurisée, pour vérifier les certificats et signatures numériques ainsi que pour de l'authentification par certificats.

Les algorithmes les plus courants sont :

<table id="bkmrk-algorithme-type-usag" style="border-collapse: collapse; width: 100%; height: 179.271px;"><colgroup><col style="width: 24.676%;"></col><col style="width: 24.1937%;"></col><col style="width: 51.1456%;"></col></colgroup><tbody><tr style="height: 29.8785px;"><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Algorithme**  
</td><td class="align-center" style="background-color: rgb(194,224,244);">**Type**</td><td class="align-center" style="background-color: rgb(194,224,244); height: 29.8785px;">**Usage recommandé**  
</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">DSA</td><td>Signature</td><td style="height: 29.8785px;">Aucun (déprécié)</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">ECDSA</td><td>Curve (courbes elliptiques)</td><td style="height: 29.8785px;">Signatures</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">RSA (2048, 3072,4096)</td><td>Facteurs premiers</td><td style="height: 29.8785px;">Chiffrement, signature</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">Ed25519</td><td>Curve (courbes elliptiques)</td><td style="height: 29.8785px;">multiple (rapide et sûr)</td></tr><tr><td>DH (**D**iffie-**H**ellman) / ECDH</td><td>Echange de clés</td><td>TLS, VPN</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Les signatures numériques</span>**</span>

#### <span style="color: rgb(35,111,161);">**4.1 Définition**</span>

Le principe de la signature numérique est de garantir <span style="color: rgb(132,63,161);">***authenticité***</span> (qui), l'<span style="color: rgb(132,63,161);">***intégrité*** </span>(non altération) et la <span style="color: rgb(132,63,161);">***non-répudiation***</span>.

Le processus de signature et de validation se déroule comme suit :

<div drawio-diagram="204"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1769173434-png.png" alt="drawing-1-1769173434.png"/></div>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Limitations et bonnes pratiques</span>**</span>

#### <span style="color: rgb(35,111,161);">**5.1 Considérations générales**</span>

Lors de l'application des concepts ci-dessus, il conviendra de respecter quelques principes élémentaires :

- Ne pas utiliser d'algorithmes obsolètes, dépréciés ou compromis.
- Préférer des clés fortes dans la mesure du possible.
- Conserver les secrets et clés publiques de manière sécurisée.

#### <span style="color: rgb(35,111,161);">**5.2 Considérations particulières**</span>

##### <span style="color: rgb(53,152,219);">5.2.1 Pour le hachage</span>

- Toujours utiliser un KDF (**K**ey **D**erivation **F**unction) pour les mots de passes.
- Ajouter un salt (sel) unique par utilisateur

Un <span style="color: rgb(132,63,161);">***Salt***</span> est un élément aléatoire introduit dans le processus de hachage des mots de passes pour éviter que si plusieurs utilisateurs utilisent le même mot de passe, le hash soit exactement le même.

*Exemple sans salt :*

<table class="wikitable" id="bkmrk-username-string-to-b"><tbody><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">**Username**</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">**String to be hashed**</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">**Hashed value = [SHA256](https://en.wikipedia.org/wiki/SHA256 "SHA256")**</td></tr><tr><td style="border-style: solid;">`user1`</td><td style="border-style: solid;">`<strong>password123</strong>`</td><td style="border-style: solid;">`EF92B778BAFE771E89245B89ECBC08A44A4E166C06659911881F383D4473E94F`</td></tr><tr><td style="border-style: solid;">`user2`</td><td style="border-style: solid;">`<strong>password123</strong>`</td><td style="border-style: solid;">`EF92B778BAFE771E89245B89ECBC08A44A4E166C06659911881F383D4473E94F`</td></tr></tbody></table>

*Exemple avec salt :*

<table class="wikitable" id="bkmrk-username-salt-value-" style="width: 100%;"><tbody><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244); width: 10.2512%;">**Username**</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244); width: 16.9281%;">**Salt value**</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244); width: 26.941%;">**String to be hashed**</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244); width: 45.895%;">**Hashed value = [SHA256](https://en.wikipedia.org/wiki/SHA256 "SHA256") (Password + Salt value)**</td></tr><tr><td style="border-style: solid; width: 10.2512%;">`user1`</td><td style="border-style: solid; width: 16.9281%;">`D;%yL9TS:5PalS/d`</td><td style="border-style: solid; width: 26.941%;">`<strong>password123</strong>D;%yL9TS:5PalS/d`</td><td style="border-style: solid; width: 45.895%;">`9C9B913EB1B6254F4737CE947EFD16F16E916F9D6EE5C1102A2002E48D4C88BD`</td></tr><tr><td style="border-style: solid; width: 10.2512%;">`user2`</td><td style="border-style: solid; width: 16.9281%;">`)<,-<U(jLezy4j>*`</td><td style="border-style: solid; width: 26.941%;">`<strong>password123</strong>)<,-<U(jLezy4j>*`</td><td style="border-style: solid; width: 45.895%;">`6058B4EB46BD6487298B59440EC8E70EAE482239FF2B4E7CA69950DFBD5532F2`</td></tr></tbody></table>

##### <span style="color: rgb(53,152,219);">5.2.2 Pour le chiffrement symétrique</span>

- Ne jamais réutiliser un IV (vecteur d'initialisation)

<span class="gs_tkn">Le </span>*<span style="color: rgb(132,63,161);">**<span class="gs_tkn">vecteur </span><span class="gs_tkn">d'initialisation </span><span class="gs_tkn">(IV)</span>**</span>*<span class="gs_tkn"> </span><span class="gs_tkn">est </span><span class="gs_tkn">un </span><span class="gs_tkn">bloc </span><span class="gs_tkn">de </span><span class="gs_tkn">bits </span><span class="gs_tkn">utilisé </span><span class="gs_tkn">dans </span><span class="gs_tkn">le </span><span class="gs_tkn">chiffrement </span><span class="gs_tkn">pour </span><span class="gs_tkn">initialiser </span><span class="gs_tkn">le </span><span class="gs_tkn">processus </span><span class="gs_tkn">de chiffrement</span><span class="gs_tkn">.</span>

<span class="gs_tkn">Il est généralement généré aléatoirement ou pseudo-aléatoirement et est utilisé pour initialiser le premier bloc de donnée lors d'une opération de chiffrement.</span>

<span class="gs_tkn">Cela garantit que lors du chiffrement, deux blocs identiques en entrée donne des résultats différents en sortie.</span>

<p class="callout success">**<span class="gs_tkn">Trivia</span>**<span class="gs_tkn"> : Cela rend plus difficile les attaques par cryptanalyse en évitant les pattern récurrents.</span></p>

##### <span style="color: rgb(53,152,219);">5.2.3 Pour le chiffrement asymétrique</span>

- Le standard actuel (2025) est d'utiliser des clés supérieures ou égales à 2048 bits.

##### <span style="color: rgb(53,152,219);">5.2.4 Autres recommandations</span>

- Utilisation de TLSv1.3 pour les protocoles sécurisés
- Utilisation de clés ed25519 pour le SSH
- Préférer WireGuard pour le VPN client (utilisation de ChaCha20).

<div drawio-diagram="204"></div>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">Conclusion</span>**</span>

En conclusion, dans le monde d'aujourd'hui, la cryptographie n'est pas seulement un moyen technique permettant d'assurer la confidentialité des échanges. C'est un pilier essentiel de la confiance numérique garantissant également l'intégrité et l'authenticité des échanges, d'autant plus primordiale dans une logique d'architecture Zero Trust.

Les méthodes utilisées vont dépendre grandement du besoin à adresser :

<table id="bkmrk-objectif-technique-a" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">**Objectif**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Technique**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Algorithmes à privilégier**</td></tr><tr><td>Intégrité des données</td><td>Hash</td><td>SHA-256, SHA-3</td></tr><tr><td>Stockage de mots de passe</td><td>KDF</td><td>bcrypt, Argon2

</td></tr><tr><td>Confidentialité</td><td>Chiffrement symétrique</td><td>AES‑GCM, ChaCha20</td></tr><tr><td>Echange de clé</td><td>Asymétrique</td><td>Diffie‑Hellman, ECDH  
</td></tr><tr><td>Signature</td><td>Asymétrique + Hash</td><td>RSA, Ed25519</td></tr></tbody></table>

<p class="callout success">**Trivia** : Bitlocker utilise un chiffrement asymétrique AES256 en mode XTS et s'appuie sur un chiffrement matériel grâce à la puce TPM si disponible.</p>

# Sécurité - La sauvegarde

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/823novice-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/823novice-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Novice

Notions : Sauvegardes, stratégies de sauvegarde, gestion du risque.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

#### <span style="color: rgb(35,111,161);">**1.1 Principe de la sauvegarde**</span>

Le but d'une sauvegarde est de garder une copie de la donnée à un instant T.

Combiné à une stratégie de sauvegarde, cela permet de garder un historique de la donnée ou d'un système à des fins de restauration ultérieure en cas de perte ou d'altération.

Cela peut se produire dans plusieurs situations :

- Perte de donnée (suite à une fausse manipulation, défaillance ou cyberattaque)
- Corruption de donnée
- Désastre ( de cause naturelle ou anthropique )

#### <span style="color: rgb(35,111,161);">**1.2 Types de sauvegarde**</span>

Là ou la sauvegarde diffère de la simple copie, c'est dans sa régularité et dans le fait d'en garder des copies à des dates antérieures.

En effet, bien qu'une copie seule permettrait de se prémunir contre une défaillance matérielle, si l'on en a un seul exemplaire et que la donnée d'origine est corrompue ou altérée, cette corruption ou altération sera également copiée.

Plusieurs types de sauvegardes existent.

##### <span style="color: rgb(53,152,219);">***1.2.1 Full backup***</span>

Sauvegarde complète du système, de la machine virtuelle ou du jeu de donnée.

<table id="bkmrk-avantages-inconvenie" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(191,237,210); border-style: none;">**AVANTAGES**</td><td class="align-center" style="background-color: rgb(248,202,198); border-style: none;">**INCONVENIENTS**</td></tr><tr><td style="background-color: rgb(191,237,210); border-style: none;">- Copie complète.
- Ne nécessite pas de rassembler plusieurs jeu de sauvegardes.
- Restauration simple en l'état.

</td><td style="background-color: rgb(248,202,198); border-style: none;">- Peut être très (trop) longue.
- Nécessite beaucoup d'espace.

</td></tr></tbody></table>

##### <span style="color: rgb(53,152,219);">***1.2.2 Incrémental***</span>

Une première sauvegarde complète est faite en début de cycle.

Puis chaque jour, une sauvegarde uniquement des données modifiées ou ajoutées depuis la dernière sauvegarde qui peut être une sauvegarde complète ou une sauvegarde incrémentielle..

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/FFMimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/FFMimage-png.png)

<table id="bkmrk-avantages-inconvenie-1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(191,237,210); border-style: none;">**AVANTAGES**</td><td class="align-center" style="background-color: rgb(248,202,198); border-style: none;">**INCONVENIENTS**</td></tr><tr><td style="background-color: rgb(191,237,210); border-style: none;">- Sauvegarde rapide
- Nécessite beaucoup moins d'espace

</td><td style="background-color: rgb(248,202,198); border-style: none;">- Nécessite d'avoir l'ensemble du jeu de sauvegarde

</td></tr></tbody></table>

##### <span style="color: rgb(53,152,219);">***1.2.3 Différentiel***</span>

Une première sauvegarde complète est faite en début de cycle.

Puis, chaque jour, une sauvegarde des données modifiées ou nouvellement ajoutées sur la base de la dernière sauvegarde complète.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/m1Kimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/m1Kimage-png.png)

Pour cette méthode, les avantages et inconvénients sont un compromis sur les deux méthodes précédentes.

- La sauvegarde est plus rapide qu'une complète, mais moins qu'une incrémentale.
- Nécessite moins d'espace qu'une complète journalière, mais plus qu'une incrémentale.
- Ne nécessite que la complète et la dernière différentielle pour la restauration au lieu du jeu complet.

En résumé, c'est un bon compromis entre les deux méthodes.

<p class="callout success">Mais l'important est avant tout d'avoir la méthode la plus adaptée aux contraintes de productions et aux budgets.</p>

#### <span style="color: rgb(35,111,161);">**1.3 Supports de sauvegardes**</span>

Les supports de sauvegardes sont multiples et se divisent en 3 catégories majeures :

1. Le stockage local ( HDD, SSD, NAS, SAN, ...).
2. Le stockage **Offsite** ou externalisé ( Bande, disque externe ).
3. Le stockage Cloud.

Comme il sera vu plus tard, il est nécessaire de mixer au moins deux types de sauvegardes afin de pérenniser la solution et anticiper le plus de risques possible.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Définir un plan de sauvegarde</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Composantes de la stratégie**</span>

Pour créer une stratégie de sauvegarde pertinente, il est avant tout nécessaire de se poser certaines question :

- **Scope** : Quelles données je sauvegarde ? Machine virtuelle, répertoires, fichiers, ...
- **Fréquence** : A quelle fréquence je sauvegarde ? Les données changent elles souvent ?
- **Responsabilité** : Qui en prends la responsabilité ? Qui en suit l'exécution ?
- **Stockage** : Où sont-elles stockées, sur quel support ?
- **Sécurité** : Comment sont-elles protégées ?

<p class="callout success">**Conseil** : Répondre à ces questions est essentiel et il faudra le faire dans cet ordre car les réponses aux premières conditionneront les réponses aux suivantes.</p>

<details id="bkmrk-exemple-scope-%3A%C2%A0je-d"><summary>Exemple</summary>

***Scope :** je dois sauvegarder une serveur de fichiers contenant des données de production tels que des bons de commande et de la facturation d'une volumétrie d'environ 400Go (+ ou - 500Mo par jours)*

***Fréquence** : les données sont vitales dans l'activité de l'entreprise et changent tous les jours. Il faudra donc à minima une sauvegarde journalière. Au vu du volume et des temps de sauvegarde, on pourra opter pour une complète hebdomadaire dans la nuit de samedi à dimanche et des incrémentales ou des différentielles quotidiennes*

***Responsabilité** : le service informatique en assurera le fonctionnement et la restauration éventuelle. Le suivi se fera par le service informatique également et des mails d'alerte et de rapports seront envoyés au service informatique et au responsable de production pour suivi.*

***Stockage** : le volume étant important, un disque est a exclure, il faudra donc opter pour un NAS en local avec suffisamment d'espace. D'autant que pour des raisons juridiques, il faudra garder un historique long. Le plan de sauvegarde pourrait ainsi s'accompagner d'un plan d'archivage sur un cold Storage (stockage à froid) pour les sauvegardes les plus anciennes.*

*On peut par exemple envisager une sauvegarde NAS pour un cycle d'une semaine, puis basculer les sauvegardes les plus anciennes sur des bandes externalisées pour plus de sécurité.*

***Sécurité** : Le NAS qui contiendra les sauvegardes des cycles les plus récents devra être isolé du réseau autant que faire se peut pour limiter les risques de cyber attaque.*

*Les volumes seront montés si pas de traces d'activité suspectes en début de travail (job) et seront démontés à la fin après validation.*

*Les bandes devront être stockées dans un local adapté en dehors du site de production principal pour palier au risque d'incendie.*

*L'ensemble des locaux contenant les données seront munies de portes coupe-feu, situé à un étage pour éviter les dommages en cas d'inondation et équipés de serrures à codes et d'alarmes pour limiter les disques d'intrusion.*

</details>#### <span style="color: rgb(35,111,161);">**2.2 Bonnes pratiques**</span>

- **Utiliser la règle des 3-2-1** : 3 copies sur au moins 2 médias différents et une copie hors site.
- Automatiser les jobs de backup pour réduire le risque d'erreur humaine.
- Chiffrer les supports de sauvegardes, plus particulièrement ceux en transit et en stockage hors site.
- Effectuer des tests de restauration réguliers pour s'assurer du bon fonctionnement des sauvegardes.
- Documenter **Clairement** et **précisément** les processus de sauvegardes et de restauration.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Rétention et conformité</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Stratégies de rétention**</span>

En plus des stratégies de rétention interne, des politiques règlementaires et normatives peuvent s'appliquer.

Voire dans certains cas, des contraintes d'ordre juridique (données liées au douanes, rétention à vie des bulletin de paye).

Il faudra donc adapter les politiques de sauvegarde et moyens de rétention de la donnée afin d'adresser ces problématique.

On distinguera ainsi deux types de stratégies de rétention :

- Court terme (jours, semaines, mois)
- Long terme (années, décennies, à vie)

On distinguera également deux types de stockage :

- **Hot storage** (stockage à chaud). 
    - disponible rapidement
    - pouvant être sollicité facilement et souvent si nécessaire
    - à un coût modéré à élevé selon la quantité et les performances

- **Cold storage** (stockage à froid). 
    - souvent sur des supports de grande capacité
    - non immédiatement accessible voire hors ligne
    - assez peu coûteux en prix au GigaOctet.

<table id="bkmrk-stockage-sur-bande-l" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jEgimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/jEgimage-png.png)

</td><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/aJ2image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/aJ2image-png.png)

</td></tr><tr><td style="border-style: hidden;">*Stockage sur bande LTO*

</td><td class="align-center" style="border-style: hidden;">*Evolution de la capacité de stockage des bandes LTO*</td></tr></tbody></table>

<p class="callout success">Basés sur ces deux éléments, le principe d'une bonne politique de rétention est d'obtenir le meilleurs compromis possible entre la durée de rétention, et l'optimisation des coûts de celle-ci.</p>

#### <span style="color: rgb(35,111,161);">**2.2 Sauvegarde vs archivage**</span>

La rétention de sauvegarde peut être mise en place en vue de pouvoir restaurer à des dates antérieures en cas de compromission silencieuse.

<p class="callout info">**Info** : Il est arrivé par exemple qu'un serveur soit 'cryptolocké' par un virus, mais que celui-ci ai en fait compromis le serveur 1 mois avant et soit resté en dormance.</p>

Un exemple de stratégie de rétention :

<div drawio-diagram="200"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1756725332-png.png" alt="drawing-1-1756725332.png"/></div>

L'archivage quand à lui est prévu à plus ou moins long terme et consistera à garder la donnée en vue d'une utilité ou consultation ultérieure, sans forcément attendre un sinistre. C'est le cas des documents où la loi exige de garder un historique, pour le fournir à l'administration sur demande.

#### <span style="color: rgb(35,111,161);">**2.2 Politique de suppression et d'audit**</span>

Dans les deux cas, il faudra prévoir une politique de suppression, sans quoi le besoin en stockage ne fera que croitre indéfiniment.

Dans le cas des sauvegardes, cela pourra être géré automatiquement par la solution de sauvegarde qui supprimera automatiquement les points de restauration les plus anciens.

<p class="callout info">**Info** : Il faudra également prendre en compte le point à partir duquel on considèrera qu'une sauvegarde est trop vielle et qu'une récupération de celle-ci sera de toute façon inutile tant ses données seront obsolètes.</p>

Dans le cas de l'archivage, cela se fera en fonction des contraintes légales. Il s'agira alors de purger les ***n*** plus vieux fichiers ou les fichiers plus vieux que ***n*** jours, mois, années.

<p class="callout info">**Info** : Tout comme il sera parfois nécessaire juridiquement de garder des fichiers sur une certaine période de temps, il pourra être obligatoire de les supprimer après une certaine période. Par exemple les données à caractère personnel dans le cadre de la **RGPD**.</p>

Enfin, il faudra s'assurer régulièrement que ces données sauvegardées ou archivées soient lisibles et exploitables en mettant en place des politiques d'audit et de tests. Au travers par exemple de tests réguliers de restauration ou de lecture, ou bien des tests de vérification d'intégrité.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Restauration des données</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 RPO, RTO et MTD**</span>

L'objectif de restauration pourra être découpé comme suit :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/BYVimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/BYVimage-png.png)

Le **RPO** (Objectif de récupération) est la durée maximale de perte de donnée acceptable. Elle correspond à la période entre la dernière sauvegarde et l'incident. En effet, toute donnée sur cette période est définitivement perdue.

Le **RTO** (Objectif de temps de récupération) est la durée visée pour la récupération de la donnée et le retour à un fonctionnement nominal.

Le **MTD** (Temps de rupture de service maximum toléré) est le temps total de coupure de service tolérable entre l'incident et le retour à la normale avant que les conséquences de cette absence de service deviennent critique (perte de production, pénalité financières, ...)

Il faudra ajouter aux estimations, la perte sèche de données ainsi que le temps passé à les reconstruire (si c'est possible).

Ces indicateurs, sont importants, car ils permettront de définir les stratégies de sauvegarde, cibler et prioriser les systèmes critiques et évaluer les risques financiers et opérationnels liés à l'interruption de service.

#### <span style="color: rgb(35,111,161);">**3.2 Scénarii de restauration**</span>

Dans le cadre d'une restauration, il faudra définir ce que l'on restaure :

- **File-level recovery** : Uniquement la donnée ou les fichier perdus ou altérés.
- **System-level recovery** : Le système en entier.
- **Bare-metal restore** : Restauration de l'ensemble de la VM y compris de son enveloppe.

Le scénario de récupération dépendra principalement de plusieurs facteurs :

- le type de sinistre (système endommagé ou juste donnée perdue/altérée)
- la nature et la quantité de donnée perdue ou altérée à restaurer
- l'origine du sinistre (attaque, perte de l'installation, fichiers supprimés)

Il faudra donc faire une estimation du temps de récupération de chaque scénario afin de calculer le RTO, voir si cela rentre dans le MTD.

Ce qui amènera donc à faire des simulations et estimations afin de prévoir à l'avance le scénario le plus adapté à l'incident.

#### <span style="color: rgb(35,111,161);">**3.3 Tests et validation**</span>

Au vu de l'ensemble des éléments présentés, il est donc crucial de procéder régulièrement à des tests et auditer scrupuleusement la consistance des sauvegardes et archives.

Cela permettra de répondre à l'ensemble des questions essentielles :

- La restauration est-elle possible ?
- Quelle sera la perte pour l'entreprise ?
- Combien de temps cela prendra ?

Il faudra donc organiser ces audits avec la participations des décideurs. Ils seront à même de fournir les contraintes métiers, définir l'acceptabilité de la perte, les conséquences d'une interruption de service et sa limite.

Faire l'exercice de restauration ou consultation des archives régulièrement permet de :

- tester, valider, documenter l'ensemble des éléments vu ci-dessus.
- faire évoluer les documentation et estimations existantes.
- s'assurer que le personnel est en mesure de mener efficacement les procédures.

# Sécurité - PCA, PRA et DRP

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/823novice-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/823novice-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Novice

Notions : PCA, PRA, stratégies de survie.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Dans certains secteurs d'activité (médicaux, bancaires, défense, etc...), une simple coupure de service peut avoir des conséquences graves. Et même pour des secteurs moins sous tensions, cela peut avoir des conséquences financières directes.

( *exemple : dans le secteur de l'agroalimentaire ou du médicament, le moindre doute sur la gestion de la chaîne du froid peut signifier une destruction de la production* ).

Afin d'assurer la pérennité du service informatique de l'organisation, Il est nécessaire d'anticiper ces problèmes et de prévoir des solutions.

La sauvegarde, bien que répondant en partie à ces points, doit être intégrée dans des plans plus larges.

On distingue 2 scenarii principaux dans la gestion de crise :

- **La continuité d'activité** : un problème survient (matériel par exemple), comment l'on s'assure de poursuivre l'activité avec pas ou peu de rupture de service.
- **La reprise d'activité** : un problème a eu pour conséquence l'arrêt de tout ou partie de l'activité de l'entreprise et il faut repartir.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Notions fondamentales</span>**</span>

Lors de l'établissement de ces plans, un certain nombres de points sont à retenir :

**La résilience** : Il s'agit de la capacité de l'organisation à résister à un incident qui pourrait entraîner une rupture d'activité.

**La disponibilité** (Availability) : Il s'agit du temps de disponibilité du service. Certaines entreprises (opérateurs télécom, datacenters, doivent assurer une disponibilité et garantissent souvent celle-ci. Elle est défini en pourcentage de disponibilité sur 1 année (par exemple, un datacenter peut assurer une disponibilité de 98% ce qui signifie que sur une année de 365 jours, ce qui signifie que l'entreprise garantit que sur une année, il n'y aura jamais plus de 7jours d'indisponibilité cumulés, consécutifs ou non)

**La récupération** (recovery) : En cas d'incident, la capacité à repartir en production et de récupérer les données de l'entreprise.

**La continuité** (continuity) : La continuité de l'activité ou du service. La capacité à assurer la fourniture de celui-ci même en cas d'incident.

Ces points seront étudiés, définis et des solutions seront apportées pour atteindre les objectifs fixés.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Le PCA</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 But du PCA**</span>

Le PCA (**P**lan de **C**ontinuité d'**A**ctivité) est un ensemble de mesures prises pour s'assurer de la continuité des services essentiels et minimiser au maximum l'impact d'un dysfonctionnement ou d'un incident.

Cela se réalise à tous les niveaux de votre infrastructure.

Sur la couche matérielle par exemple, on trouve sur les serveurs 2 alimentations électriques indépendantes, deux processeurs, des contrôleurs RAID pour s'assurer que le serveur continue de fonctionner même en cas de défaillance matérielle.

Sur la couche réseau, un certain nombres de protocoles permettent une redondance des équipements (STP, RSTP, LACP sur les switch, HSRP, VRRP pour les routeurs). Cela permet de palier à la perte d'un équipement réseau ou la défaillance d'une interface.

Ou sur des couches plus haute, des mises en place de redondances de services (2 AD, 2 filers, hébergés sur des nodes différents).

Ainsi, grâce à la combinaison de toutes ces mesures, on assure un certain niveau de fiabilité et de continuité.

Le service peut continuer à fonctionner malgré un problème ou une situation de crise.

#### <span style="color: rgb(35,111,161);">**3.2 Méthodologie de mise en place**</span>

Basés sur une étude de risque (voir [Sécurité - Analyse de risque (méthode Ebios)](https://docs.labs404.fr/books/cours-it/page/securite-analyse-de-risque-methode-ebios "Sécurité - Analyse de risque (méthode Ebios)") ), l'on devra suivre le schéma de réflexion suivant :

1. Définir les points critiques à protéger. Les "fonctions vitales" de l'entreprise.
2. Etablir les scénarii qui entraineraient une rupture de service.
3. Proposer, pour chaque point, une solution adaptée pour y répondre
4. Définir les responsabilité et rôles dans la mise en œuvre et le suivi du PCA
5. Rédiger les process
6. Effectuer des test réguliers après mise en œuvre

*Exemple : Une société agroalimentaire fabrique des tourtes à la viande, elle doit gérer des stocks de matières première et s'assurer du bon fonctionnement de la chaîne du froid. Dans ce cadre là, elle a déployé une solution de supervision à travers un réseau de capteurs dans les frigo et les entrepôts, ainsi que des outils de traçabilité des stocks et du temps passé hors stockage.*

*Scénario 1 : un dysfonctionnement suite à une coupure de courant, à mis HS certains équipements réseaux. Cela empêcherai la lecture des capteurs, ce qui ferait que l'entreprise n'aurai plus de moyen de remonter les données, ni d'être avertie en cas de problème. La chaîne de production devrait être bloquée et l'ensemble des stocks vérifiés. En cas de doute, cela entrainerai une destruction des stocks. Donc pertes financières directes, délai d'approvisionnement pour renouveler le stock.*

*Solutions proposées : Adopter une topologie réseau full mesh, redonder les équipements critiques, mettre en place des onduleurs afin de palier aux futures coupures électriques. Cela permettra en cas de rupture d'un chemin réseau, de panne d'un équipement ou d'une coupure électrique, de continuer à assurer la traçabilité des informations.*

*Scénario 2 : Les données des capteurs sont enregistrés dans une base de donnée, suite à une corruption système due à un disque plein, celle-ci est mise à l'arrêt. De fait, les données ne sont plus enregistrées et les conséquences seraient les mêmes que dans le scénario d'avant.*

*Solutions proposées : Séparer les données de la bases du système en les mettant sur des disques séparés. Cela réduira les pertes et empêchera une production future. Superviser l'espace disque afin de pouvoir entreprendre des actions préventives. Redonder le serveur de base de donnée sur un second nœud de la ferme de serveurs. Si l'un des serveurs tombe en panne, le second prendra le relai, assurant la continuité de l'enregistrement des mesures.*

#### <span style="color: rgb(35,111,161);">**3.3 Bonne pratiques**</span>

Tout comme pour la sauvegarde, Il faut s'assurer que le PCA sera fonctionnel le jour où celui-ci doit servir.

Il faut donc tester régulièrement celui-ci, valider les process et/ou les faire évoluer.

Il faut également mettre en place un plan de communication interne, s'assurer que les personnes qui sont responsables de ces points sont informées.

Vérifier la conformité avec les standards ISO 22301 et 27001.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Le PRA</span>**</span>

#### <span style="color: rgb(35,111,161);">**4.1 But du PRA**</span>

Le PRA (**P**lan de **R**eprise d'**A**ctivité) est un ensemble de mesures visant à reprendre le plus rapidement possible une activité normale suite à un incident majeur ayant entrainé une rupture de l'activité.

Cela peut consister à disposer d'équipements de rechange, d'un site où les machines virtuelles sont répliquées, de locaux déportés.

Contrairement au PCA où le but est d'éviter la rupture, le PRA part du principe que cette rupture est survenue et qu'il faut donc faire reprendre l'activité.

#### <span style="color: rgb(35,111,161);">**4.2 Méthodologie de mise en place**</span>

Basés sur une étude de risque (voir [Sécurité - Analyse de risque (méthode Ebios)](https://docs.labs404.fr/books/cours-it/page/securite-analyse-de-risque-methode-ebios "Sécurité - Analyse de risque (méthode Ebios)") ), l'on devra suivre le schéma de réflexion suivant :

1. Définir les points critiques à rétablir en priorité. Les "fonctions vitales" de l'entreprise.
2. Etablir les scénarii qui entraineraient une rupture de service.
3. Proposer, pour chaque point, une solution adaptée pour y répondre
4. Définir les responsabilité et rôles dans la mise en œuvre et le suivi du PRA
5. Rédiger les process
6. Effectuer des test réguliers après mise en œuvre

*Exemple : Une société de gestion d'autoroute dispose d'un centre de contrôle assurant la surveillance du réseau autoroutier et la coordination des interventions de maintenance et le contact avec les services d'urgences.*

*Scénario 1 : Suite à un accident, un incendie s'est déclenché à côté du site du PC. L'incendie se propage jusqu'aux locaux du PC. Une évacuation est demandée.*

*Solutions proposées : Construire un second bâtiment de PC de l'autre côté du réseau autoroutier géré et y disposer tout l'équipement nécessaire au fonctionnement du PC. Répliquer l'ensemble des serveurs et baies de stockages sur le site de secours. La procédure de démarrage est lancée au moment de l'ordre d'évacuation. Quand le personnel investit le site de secours, les équipements sont démarrés, fonctionnels, les données sont accessibles. La reprise de l'activité normale peut reprendre.*

*Scénario 2: Suite à une compromission des serveurs, un cryptolocker à infecté le réseau informatique et a chiffré les données. Le système est hors service.*

*Solutions proposées : Mettre ne place un système de sauvegarde hors ligne éprouvé et testé régulièrement. Disposer de réseaux isolés permettant une reprise de l'activité sans risquer une nouvelle compromission. Mettre en place un plan, au moins partiellement automatisé, de reconstruction des services et de récupération de la donnée.*

#### <span style="color: rgb(35,111,161);">**4.3 Bonne pratiques**</span>

Tout comme pour la sauvegarde et le PCA, Il faut s'assurer que le PRA sera fonctionnel le jour où celui-ci doit servir.

Il faut donc tester régulièrement celui-ci, valider les process et/ou les faire évoluer.

Il faut également mettre en place un plan de communication interne, s'assurer que les personnes qui sont responsables de ces points sont informées.

Les outils principaux du PRA à mettre en place et valider sont :

- Sauvegardes
- DRP (Disaster Recovery Procedure)

<p class="callout info">**Info** : Là où auparavant, les efforts du PRA se concentraient sur la réplication des machines, une sauvegarde complète des VM et de leur contenu, l'évolution des menaces en terme de cybersécurité fait qu'aujourd'hui on aura plus tendance à partir du principe que les réplicas et les sauvegardes du système sont potentiellement corrompu(e)s.</p>

<p class="callout success">**Astuce** : Découlant du constat ci-dessus, la méthode aujourd'hui privilégiée est une reconstruction complète du système et de l'infrastructure. Suivi d'une restauration des données conservées à part. Une bonne partie de la reconstruction est partiellement, voire entièrement automatisée.</p>

Définir correctement le RTO et le RPO.

![D1mimage.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/BYVimage-png.png)

Si il y a une possibilité lors de la conception de choisir le placement du site de PRA.

<details id="bkmrk-table-des-distances-"><summary>Table des distances - risques naturels et anthropiques</summary>

Dans la conception d'un centre de données, le choix du site est l'une des étapes les plus cruciales et constitue la toute première étape. Nous nous concentrons principalement sur deux sous-domaines : les risques naturels et anthropiques.

<table><tbody><tr><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">**Objet fabriqué par l'homme**</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">**Distance minimale (KM)**</td></tr><tr><td style="border-style: solid;">Stations-service/carburant</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Lignes de transmission à haute tension</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Les fugues des aéroports</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Petits lacs et zones de débordement</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Chemins de fer</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Grand complexe de magasins</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Tours de stockage d'eau</td><td style="border-style: solid;">1.6</td></tr><tr><td style="border-style: solid;">Canaux</td><td style="border-style: solid;">3.2</td></tr><tr><td style="border-style: solid;">Ports et ports</td><td style="border-style: solid;">3.2</td></tr><tr><td style="border-style: solid;">Lacs et barrages</td><td style="border-style: solid;">3.2</td></tr><tr><td style="border-style: solid;">Carrières</td><td style="border-style: solid;">3.2</td></tr><tr><td style="border-style: solid;">Stations radar</td><td style="border-style: solid;">5</td></tr><tr><td style="border-style: solid;">Laboratoires de recherche</td><td style="border-style: solid;">5</td></tr><tr><td style="border-style: solid;">Stations de radio/télévision</td><td style="border-style: solid;">5</td></tr><tr><td style="border-style: solid;">Ambassades</td><td style="border-style: solid;">5</td></tr><tr><td style="border-style: solid;">Aéroports</td><td style="border-style: solid;">8</td></tr><tr><td style="border-style: solid;">Usines chimiques et électriques</td><td style="border-style: solid;">8</td></tr><tr><td style="border-style: solid;">Stations et installations militaires</td><td style="border-style: solid;">13</td></tr><tr><td style="border-style: solid;">centrales nucléaires</td><td style="border-style: solid;">80</td></tr></tbody></table>

</details><details id="bkmrk-distance-entre-deux-"><summary>Distance entre deux sites</summary>

<table style="width: 100%;"><thead><tr><th style="width: 9.64153%;">**Distance**</th><th style="width: 68.356%;">**Buts et considérations**</th><th style="width: 22.0025%;">**Sources**</th></tr></thead><tbody><tr><td style="width: 9.64153%;">**1-5 km**</td><td style="width: 68.356%;">Protection contre les menaces locales (feu, explosion, crash aérien, etc...)</td><td style="width: 22.0025%;">Internal safety design</td></tr><tr><td style="width: 9.64153%;">**50-160 km**</td><td style="width: 68.356%;">Compromis entre un temps de latence correct et une distance optimale prévenant les risques régionaux.</td><td style="width: 22.0025%;">,</td></tr><tr><td style="width: 9.64153%;">**320+km**</td><td style="width: 68.356%;">Assure une dépendance régionale (Grille énergétiques différentes, régions sismiques différentes, etc...) mais peut probablement introduire de la latence.</td><td style="width: 22.0025%;"> </td></tr></tbody></table>

</details>---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Conclusion</span>**</span>

Pour des stratégies efficaces, il faudra mettre en place à la fois un PCA et un PRA. Car les deux n'adressent pas les mêmes problèmes.

Voici un cours comparatif entre les deux :

<table id="bkmrk-feature-pca-pra-timi"><thead><tr><td class="align-center" style="background-color: rgb(194,224,244); border-style: solid;">**Fonction** </td><td class="align-center" style="background-color: rgb(194,224,244); border-style: solid;">**pca**</td><td class="align-center" style="background-color: rgb(194,224,244); border-style: solid;">**pra**</td></tr></thead><tbody><tr><td style="border-style: solid;">timing</td><td style="background-color: rgb(251,238,184); border-style: solid;">Pendant et immédiatement après incident</td><td style="background-color: rgb(248,202,198); border-style: solid;">Après incident, en réponse.</td></tr><tr><td style="border-style: solid;">focus</td><td style="background-color: rgb(251,238,184); border-style: solid;">Continuité des opérations vitales</td><td style="background-color: rgb(248,202,198); border-style: solid;">Restauration de l'ensemble des opérations.</td></tr><tr><td style="border-style: solid;">nature</td><td style="background-color: rgb(251,238,184); border-style: solid;">Proactive</td><td style="background-color: rgb(248,202,198); border-style: solid;">Réactive</td></tr><tr><td style="border-style: solid;">exemple</td><td style="background-color: rgb(251,238,184); border-style: solid;">Garder un portail client accessible.</td><td style="background-color: rgb(248,202,198); border-style: solid;">Restaurer un service après une cyberattaque.</td></tr></tbody></table>

Et évidement, le tout devra être documenté, testé et amélioré.

Complétés avec des études de nouveaux scenarii.

# Sécurité - PKI et Certificats

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/t12intermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/t12intermediaire-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : certificats, identité, https, chiffrement.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Lors d’échanges sur des protocoles standards non sécurisés, il est facile d’intercepter les données. Afin de sécuriser ces échanges, celles‑ci doivent être chiffrées à l’aide d’algorithmes adaptés.

Cependant, même si les données sont chiffrées, il reste essentiel de s’assurer que l’on communique avec un partenaire de confiance. Il devient donc nécessaire de pouvoir valider l’identité de ce partenaire.

Il faut également garantir que les données transmises n’ont pas été altérées pendant l’échange.

Pour répondre à ces trois besoins (confidentialité, authentification et intégrité) a été créée l’infrastructure à clés publiques, ou Public Key Infrastructure (PKI).

Une PKI est un ensemble de composants matériels, logiciels et de procédures permettant de gérer les clés publiques des utilisateurs et des systèmes, afin de garantir la fiabilité de leurs identités. Elle renforce ainsi la confiance dans les systèmes numériques.

Bien qu’il existe plusieurs modèles de PKI, ce cours se concentrera sur un modèle reposant sur trois composants principaux :

- **Autorité de certification (CA)**
- **Autorité d’enregistrement (RA)**
- **Service ou autorité de validation (VA)**

Le principe de fonctionnement est le suivant :

1. Un utilisateur ou une machine génère une clé privée.
2. À partir de cette clé, une requête de certificat (CSR) est créée.
3. Cette requête est soumise à une autorité d’enregistrement.
4. L’autorité d’enregistrement vérifie l’identité du demandeur et transmet la requête à l’autorité de certification.
5. Une fois validée, l’autorité de certification signe la requête et génère le certificat, qui sera fourni à l’utilisateur ou à la machine.
6. Lors des échanges entre deux tiers, le destinataire peut vérifier la validité du certificat et son état (non‑révocation) via un service de validation

<table id="bkmrk-source-%3A-appviewx" style="border-collapse: collapse; width: 100%; height: 399.188px;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr style="height: 370.391px;"><td style="border-style: hidden; height: 370.391px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/AXgimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/AXgimage-png.png)

</td></tr><tr style="height: 28.7969px;"><td class="align-center" style="border-style: hidden; height: 28.7969px;">*Source : appViewx*</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Le protocole SSL/TLS</span>**</span>

<p class="callout info">**Info** : Le protocole SSL/TLS intervient entre les couches transport (4) et application (7).  
</p>

#### <span style="color: rgb(35,111,161);">**2.1 Qu'est ce que SSL/TLS**</span>

Pour chiffrer les communications, notamment web, il existe deux protocoles principalement utilisés :

- **SSL (Secure Sockets Layer)**: Le SSL est une technologie standard de chiffrement qui permet d'établir une communication à travers un socket chiffré entre un navigateur et un serveur web.

<p class="callout warning">**Attention** : l'usage de SSL est déprécié et remplacé par TLS.</p>

- **TLS (Transport Layer Security)**: Le protocole TLS est le successeur de SSL. Celui-ci permet une sécurité accrue avec des validations plus poussées et un meilleur chiffrement. Il est plus souvent appelé SSL/TLS. 
    - Les versions majoritairement utilisées sont TLS 1.2 et 1.3

Ceux-ci s'appuieront sur des certificats et des clés de chiffrement.

Plus les algorithmes de chiffrements utilisés sont performants, plus il sera difficile de déchiffrer la communication.

#### <span style="color: rgb(35,111,161);">**2.2 Le but des certificats SSL**</span>

L'utilisation des certificats poursuit un but triple :

- **Chiffrement** : Le certificat contient la clé publique utilisée pour établir un secret partagé, qui servira ensuite à chiffrer la communication.
- **Authentification** : Il garantit que l'identité du pair est vérifiée et qu'il s'agit bien de la machine/personne avec qui l'on souhaite communiquer.
- **Intégrité de la donnée** : L’intégrité des données est assurée par les mécanismes cryptographiques de TLS (MAC ou AEAD), pas par le certificat lui‑même.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Le fonctionnement de SSL/TLS</span>**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Application de Public Key Infrastructure (PKI)**</span>

Lors d’un échange d’informations utilisant SSL/TLS, le serveur possède une paire de clés composée d’une clé privée et d’une clé publique. La clé publique est intégrée dans un certificat numérique signé par une autorité de certification (CA).

Le client, quant à lui, ne possède généralement pas de clé privée : il utilise simplement les certificats des autorités de certification de confiance installés dans son système pour vérifier l’authenticité du certificat du serveur.

Lors de la connexion, le client peut :

- vérifier la signature du certificat du serveur grâce au certificat de la CA,
- vérifier que le certificat est valide (dates, nom de domaine),
- vérifier que le certificat n’a pas été révoqué (via CRL ou OCSP).

Une fois ces vérifications effectuées, le client peut établir une connexion TLS sécurisée avec le serveur.

<table id="bkmrk-source-%3A-sectigo" style="border-collapse: collapse; width: 100%; height: 470.188px;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr style="height: 441.391px;"><td class="align-center" style="border-style: hidden; height: 441.391px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PQeimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PQeimage-png.png)</td></tr><tr style="height: 28.7969px;"><td class="align-center" style="border-style: hidden; height: 28.7969px;">*Source : Sectigo*</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**3.2 Le processus du "Handshake" SSL**</span>

Une étape clé du fonctionnement de SSL/TLS est le '*<span style="color: rgb(132,63,161);">**handshake**</span>'*. Cette phase permet au client et au serveur de négocier les paramètres de sécurité, d’authentifier le serveur et d’établir un secret partagé qui servira à chiffrer la session.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Vueimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Vueimage-png.png)

1. **Client Hello**: Le client envoie un message contenant la version de TLS qu’il supporte, la liste des suites cryptographiques disponibles et des paramètres aléatoires.
2. **Server Hello**: Le serveur répond en choisissant une version TLS et une suite de chiffrement parmi celles proposées. Il envoie également son certificat SSL/TLS.
3. **Certificate Verification**: Le client vérifie le certificat du serveur à l’aide des autorités de certification de confiance (CA) et des mécanismes de révocation (CRL/OCSP).
4. **Pre-Master Secret**: Le client génère un pré‑secret (Pre‑Master Secret), le chiffre avec la clé publique du serveur (présente dans le certificat) et l’envoie au serveur.
5. **Session Keys**: Le client et le serveur dérivent indépendamment les clés de session à partir du Pre‑Master Secret et des valeurs aléatoires échangées.
6. **Secure Connection** : Une fois les clés établies, la communication est chiffrée et l’échange sécurisé peut commencer.

<p class="callout info">**Info** : Dans la version 1.3 de TLS, le processus de handshake à été simplifié afin d'être plus rapide et sécurisé (suppression du Pré-master secret et utilisation obligatoire de ECDHE (Perfect Forward Security)).</p>

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**IV. Les autorités de certifications**</span>


Comme vu plus haut, les autorité de certifications jouent un rôle déterminant dans une PKI. Elles sont responsables de la création, de la signature et de la gestion des certificats numériques.

#### <span style="color: rgb(35,111,161);">**4.1 Portée des autorités de certification**</span>

On les divise en deux groupes :

- **Les CA publiques.**
    - Elles sont publiées et accessible sur internet.
    - Elles ont fait l'objet de validations par des organismes spécialisés et disposent ainsi d'un haut degré de confiance.
    - Les certificats des autorités publiques sont installés dans tous les navigateurs et les OS et mis à jours avec ceux-ci.
    - Ainsi ils permettent une <span style="color: rgb(132,63,161);">***confiance Universelle***</span>.

*Par exemple : let's encrypt, Sectigo, Digicert, ...*

- **Les CA privées ou organisationnelles.**
    - Ce sont les CA mises en place au sein d'une organisation.
    - Elles ne sont validée qu'en interne par l'organisation et la portée de leur confiance se limite donc à celle-ci.
    - Les certificats ne sont pas installés dans les navigateurs ou les systèmes et doivent donc être déployés.
    - Elles permettent donc d'avoir une <span style="color: rgb(132,63,161);">***confiance en interne*** </span>envers les composants de l'organisation.

*Utilisés par exemple pour : VPN, interfaces web, applications, DNSsec, messagerie chiffrée, LDAPs, ...*

#### <span style="color: rgb(35,111,161);">**4.2 Type des autorités de certification**</span>

Une chaîne de certificat est généralement construite comme suit et repose sur :

- **Une autorité racine de confiance (ROOT CA)**
    - C’est l’autorité la plus haute dans la hiérarchie PKI.
    - Son certificat est <span style="color: rgb(132,63,161);">***autosigné***</span> (elle se signe elle-même).
    - Elle est *<span style="color: rgb(132,63,161);">**extrêmement protégée**</span>* : souvent hors ligne, stockée dans des modules matériels sécurisés (HSM).
    - Elle ne signe généralement <span style="color: rgb(132,63,161);">***pas directement***</span> les certificats des serveurs.
    - Son rôle principal est de signer les certificats des autorités intermédiaires.

La confiance dans toute la PKI repose sur la sécurité de la Root CA.

- **Les autorités intermédiaires (Intermediate CA)**
    - Située entre la Root CA et les certificats finaux (serveurs, utilisateurs).
    - Son certificat est signé par la Root CA ou par une autre CA intermédiaire.
    - Elle signe les certificats des serveurs ou des utilisateurs.
    - Permet de limiter les risques : si une CA intermédiaire est compromise, la Root CA peut la révoquer sans détruire toute la PKI.

La plupart des certificats SSL/TLS sont signés par une <span style="color: rgb(132,63,161);">***CA intermédiaire***</span>, pas par la racine.

#### <span style="color: rgb(35,111,161);">**4.3 Les certificats auto-signés**</span>

Un certificat autosigné est un certificat dont la clé publique appartient au même acteur que la clé privée et qui est <span style="color: rgb(132,63,161);">***signé par lui-même***</span>.

Il existe deux cas :

**1. Certificat autosigné légitime**

- C’est le cas des <span style="color: rgb(132,63,161);">**certificats racine**</span>.
- Ils doivent être autosignés, car ils sont au sommet de la chaîne de confiance.

**2. Certificat autosigné non reconnu**

- Généré par un serveur ou un administrateur sans passer par une CA.
- Utilisé parfois pour des tests ou des environnements internes.
- Les navigateurs affichent une alerte car **aucune autorité de confiance ne l’a validé**.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/dbTimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/dbTimage-png.png)

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Les types de certificats</span>**</span>

<table id="bkmrk-validation-cas-d%27usa" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3731%;"></col><col style="width: 33.3731%;"></col><col style="width: 33.3731%;"></col></colgroup><tbody><tr><td style="border-style: none;">  
</td><td class="align-center" style="border-style: solid; background-color: rgb(194,224,244);">**Validation**</td><td class="align-center" style="background-color: rgb(194,224,244);">**Cas d'usage**</td></tr><tr><td class="align-center" style="vertical-align: middle;">Validation de domaine (**DV**)</td><td>L’autorité de certification vérifie que le demandeur contrôle bien le nom de domaine concerné. Cela peut se faire par e‑mail, en ajoutant un enregistrement DNS, ou via un fichier placé sur le serveur.

</td><td>*Sites web simples, blogs, pages d’information, environnements de test...*

Ce type de certificat ne garantit pas l’identité de l’organisation derrière le site

</td></tr><tr><td class="align-center" style="vertical-align: middle;">Validation d'organisations (**OV**)</td><td>En plus de la vérification du domaine, l’autorité de certification vérifie l’existence légale de l’organisation, son adresse, son numéro d’enregistrement, etc.</td><td>*Sites professionnels, plateformes e‑commerce, services publics.*

Le certificat affiche le nom de l’organisation, ce qui renforce la confiance des utilisateurs.

</td></tr><tr><td class="align-center" style="vertical-align: middle;">Validation étendue (**EV**)</td><td>Vérification approfondie de l’organisation (existence légale, physique et opérationnelle).

L’autorité de certification suit un processus strict et documenté.

</td><td>*Sites à haute sensibilité : banques, services financiers, plateformes de paiement, administrations.*

Dans certains navigateurs, le nom de l’organisation apparaît en vert ou dans la barre d’adresse.

</td></tr></tbody></table>

---


### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">VI. Considérations de sécurité</span>**</span>

L’utilisation de certificats SSL/TLS renforce la sécurité des échanges, mais elle n’est pas infaillible. En effet, une mauvaise configuration expose à des risques. Il est essentiel de connaître les principales vulnérabilités et d’adopter des bonnes pratiques pour garantir une protection efficace.

#### <span style="color: rgb(35,111,161);">**6.1 Faiblesses et attaques**</span>

- **Man-in-the-Middle (MitM) :**Un attaquant intercepte la communication entre le client et le serveur, pouvant ainsi lire, modifier ou injecter des données.

Cette attaque est possible si le certificat n’est pas correctement vérifié ou si la connexion n’est pas chiffrée.

- **Usurpation de certificat (Certificate Spoofing) :** Des certificats falsifiés ou compromis peuvent être utilisés pour faire croire à l’utilisateur qu’il communique avec un site légitime.

Cela peut survenir si une autorité de certification est compromise ou si l’utilisateur ignore les avertissements du navigateur.

#### <span style="color: rgb(35,111,161);">**6.2 Bonnes pratiques**</span>

- **Mises à jour régulières :** Maintenir à jour les logiciels serveurs, bibliothèques SSL/TLS et certificats permet de corriger les vulnérabilités connues et d’éviter les failles exploitées par les attaquants.
- **Chiffrement fort :** Utiliser des algorithmes modernes et robustes (ex : AES‑256, ECDHE) et désactiver les suites de chiffrement obsolètes (ex : RC4, MD5, SSLv3).
- **Surveillance et audit :** Vérifier régulièrement la configuration SSL/TLS du serveur, la validité des certificats, et surveiller les journaux pour détecter toute tentative d’accès non autorisé ou anomalie.

#### <span style="color: rgb(35,111,161);">**6.3 Erreurs courantes**</span>

Les erreurs les plus courantes lors de l'utilisation des certificats qui peuvent empêcher l'affichage correcte d'un site sont :

- Certificat expiré
- Nom de domaine incorrect
- Chaîne incomplète
- Utilisation de suites de chiffrement faibles

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">Conclusion</span>**</span>

Les certificats SSL/TLS et l’infrastructure à clés publiques (PKI) constituent la base de la confiance numérique moderne. Ils permettent de garantir la confidentialité des échanges, d’authentifier les acteurs et d’assurer l’intégrité des données. Leur efficacité repose autant sur la robustesse des algorithmes que sur la bonne gestion des autorités de certification, des chaînes de confiance et des mécanismes de validation.

Dans un contexte où les attaques deviennent plus sophistiquées, il est essentiel de maintenir des configurations TLS à jour, de surveiller l’état des certificats et d’adopter des pratiques de sécurité rigoureuses. Une PKI bien conçue et correctement administrée reste l’un des piliers les plus fiables pour sécuriser les communications et renforcer la confiance dans les systèmes d’information.

# Systèmes

Contient les cours et notions théoriques sur les systèmes d'exploitations.

# Linux - Gestion des permissions

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/hyynovice-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/hyynovice-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Novice

Notions : Unix, Linux, gestion de droits.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

En gestion de droits sur les systèmes Unix, il y a 3 notions importantes :

- quel est le type de l'objet
- qui est propriétaire de l'objet (owner/group)
- quelles sont les permissions de l'objet

Lorsque l'on gère les systèmes de fichier, si l'on fait une commande :

```
ls -al
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/9l9image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/9l9image-png.png)

Celui-ci est affiché de la façon suivante :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ApTimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ApTimage-png.png)

De gauche à droite :

- La première lettre représente de type de l'objet. Les lettres suivantes (rwx), les droits sur les fichiers. 
    - [![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ESEimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ESEimage-png.png)
- Le chiffre suivant représente le nombre de lien sur l'objet. 
    - [![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ydfimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ydfimage-png.png)
- Puis l'utilisateur propriétaire et le groupe propriétaire. 
    - [![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nt2image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nt2image-png.png)
- La taille du fichier (en octets).
- [![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/eGVimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/eGVimage-png.png)
- La date de dernière modification. 
    - [![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/MNBimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/MNBimage-png.png)
- Le nom de l'objet 
    - [![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/yq0image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/yq0image-png.png)

<p class="callout info">**Note** : dans cet exemple, l'utilisateur et le groupe ont le même nom mais sont bien deux éléments séparés.</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Types d'objets</span>**</span>

Sur linux, le principe de base est que tout est fichier.

C'est ensuite l'attribut de l'objet qui déterminera son type; Les plus utilisés sont :

- **-** : Par défaut, un fichier
- **d** : Un répertoire (directory)
- **s** : fichier de socket
- **l** : lien symbolique

Mais il existe aussi :

- **c** : Périphérique de type caractère
- **b** : Périphérique de type bloc
- **p** : Pipeline

Un socket est un type de fichier représentant un socket au niveau réseau.

Un lien symbolique est un lien logique permettant de cibler un répertoire / fichier qui se situe à un autre endroit afin de le rendre disponible dans le répertoire courant sans pour autant en créer un duplicata.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Propriété de l'objet</span>**</span>

Les objets ont un couple de propriétaires.

Le premier est l'utilisateur propriétaire, le second est le groupe propriétaire.

Pour changer les propriétaires d'un objet, il faut utiliser la commande

```
chown <nomDuOwner>:<NomDuGroupe>
```

Il est possible d'ajouter <span style="color: rgb(132,63,161);">***-R***</span> pour rendre la modification récursive.

*Exemple :*

```shell
chown www-data:root index.php
```

<p class="callout info">**Info** : Par défaut, lors de la création d'un objet, l'utilisateur ayant créé l'objet est défini en tant qu'utilisateur propriétaire et son groupe personnel en tant que groupe propriétaire.</p>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Droits de l'objet</span>**</span>

#### <span style="color: rgb(35,111,161);">**4.1 Types de droits :**</span>

Les droits UNIX s'articulent autour de trois "actions" possibles :

- la lecture (r) : on peut par exemple lire le fichier avec un logiciel. Lorsque ce droit est alloué à un répertoire, il permet d’afficher la liste des fichiers du répertoire (la liste des fichiers présents à la racine de ce répertoire).
- l'écriture (w) : on peut modifier le fichier et le vider de son contenu. Lorsque ce droit est alloué à un répertoire, il autorise la création, la suppression et le changement de nom des fichiers qu'il contient, quels que soient les droits d'accès des fichiers de ce répertoire (même s'ils ne possèdent pas eux-mêmes le droit en écriture). Néanmoins le droit spécial *sticky bit* permet de passer outre ce comportement.
- l'exécution (x) : on peut exécuter le fichier s'il est prévu pour, c'est-à-dire si c'est un fichier exécutable. Lorsque ce droit est attribué à un répertoire, il autorise l'accès (ou ouverture) au répertoire.

#### <span style="color: rgb(35,111,161);">**4.2 Calculs des droits :**</span>

Ces lettres, appelés "flags" définiront les droits sur le répertoire. Ces droits sont basés sur un système en binaire sur 3 bits.

<table class="align-center" id="bkmrk-lettre-r-w-x-valeur-" style="border-collapse: collapse; width: 26.6667%; height: 59.5938px;"><colgroup><col style="width: 45.7399%;"></col><col style="width: 17.0283%;"></col><col style="width: 17.0524%;"></col><col style="width: 20.1794%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="background-color: rgb(194,224,244); height: 29.7969px;">Lettre</td><td class="align-center" style="height: 29.7969px;">**r**</td><td class="align-center" style="height: 29.7969px;">**w**</td><td class="align-center" style="height: 29.7969px;">**x**</td></tr><tr style="height: 29.7969px;"><td style="background-color: rgb(194,224,244); height: 29.7969px;">Valeur binaire</td><td class="align-center" style="height: 29.7969px;">*4*</td><td class="align-center" style="height: 29.7969px;">*2*</td><td class="align-center" style="height: 29.7969px;">*1*</td></tr></tbody></table>

Pour calculer tous les droits, il faudra additionner les valeurs de chaque bits pour en définir la valeur totale.

*par exemple, lecture + écriture = r+w = 2+4 = 6*

Ainsi, on aura la correspondance suivante :

<table id="bkmrk-valeur-d%C3%A9cimale-droi" style="border-collapse: collapse; width: 44.2857%;"><colgroup><col style="width: 35.6114%;"></col><col style="width: 64.3886%;"></col></colgroup><tbody><tr><td style="background-color: rgb(194,224,244);">Valeur Décimale</td><td style="background-color: rgb(194,224,244);">Droits</td></tr><tr><td class="align-center">1</td><td>exécution ( **--x** )</td></tr><tr><td class="align-center">2</td><td>écriture ( **--w** )</td></tr><tr><td class="align-center">3</td><td>écriture + exécution ( **-wx** )</td></tr><tr><td class="align-center">4</td><td>lecture ( **r--** )</td></tr><tr><td class="align-center">5</td><td>lecture + exécution ( **r-x** )</td></tr><tr><td class="align-center">6</td><td>lecture + écriture ( **rw-** )</td></tr><tr><td class="align-center">7</td><td>tous les droits ( **rwx** )</td></tr></tbody></table>

<p class="callout warning">**Attention** : la valeur 7 confère tous les droits et doit être appliquée en connaissance de cause, sous peine de représenter une faille de sécurité.</p>

#### <span style="color: rgb(35,111,161);">**4.3 Représentation des droits :**</span>

Les droits sur les objets seront ensuite représentés sous ce format :

<div drawio-diagram="234"><img src="https://docs.labs404.fr/uploads/images/drawio/2026-07/drawing-1-1762958793-png.png" alt="drawing-1-1762958793.png"/></div>

Le premier groupe de 3 lettres sont les permissions de l'utilisateur propriétaire.

Le second groupe représente les droits du groupe propriétaire.

Le 3<sup>ème</sup> groupe représente les droits appliqués à tout le monde.

#### <span style="color: rgb(35,111,161);">**4.4 Modification des droits :**</span>

Les permissions se modifient avec les commande ci-dessous :

```bash
chmod <notation décimale ou lettres> <objet>
```

Il est possible d'ajouter <span style="color: rgb(132,63,161);">***-R***</span> pour rendre la modification récursive.

*Exemple* :

```
chmod 755 /var/www/index.php
```

D'autres commandes existent pour modifier ou ajuster les droits, notamment avec les lettres ou pour ajouter/retirer un droit spécifique à l'utilisateur, au groupe ou à everyone.

Mais la méthode évoquée ci-dessus reste la plus simple et la plus rapide.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">V. Droits spéciaux</span>**</span>

#### <span style="color: rgb(35,111,161);">**5.1 Droits SUID :**</span>

Ce droit s'applique aux fichiers exécutables, il permet d'allouer temporairement à un utilisateur les droits du propriétaire du fichier, durant son exécution.

En effet, lorsqu'un programme est exécuté par un utilisateur, les tâches qu'il accomplira seront restreintes par ses propres droits, qui s'appliquent donc au programme.

Lorsque le droit SUID est appliqué à un exécutable et qu'un utilisateur quelconque l'exécute, le programme détiendra alors les droits du propriétaire du fichier durant son exécution.

Bien sûr, un utilisateur ne peut jouir du droit SUID que s'il détient par ailleurs les droits d'exécution du programme.

Ce droit est utilisé lorsqu'une tâche, bien que légitime pour un utilisateur classique, nécessite des droits supplémentaires (généralement ceux de *root*). Il est donc à utiliser avec précaution.

Pour des partitions supplémentaires, il faut activer le bit suid pour pouvoir l'utiliser en le spécifiant dans les options des partitions concernés dans le fichier fstab.

#### <span style="color: rgb(35,111,161);">**5.2 Droits SGID :**</span>

Ce droit fonctionne comme le droit SUID, mais appliqué aux groupes. Il donne à un utilisateur les droits du groupe auquel appartient le propriétaire de l'exécutable et non plus les droits du propriétaire.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">VI. Conclusion</span>**</span>

Le système de permission Unix est assez simple et équivoque. Mais en contrepartie, il est assez limité.

Il n'est possible, en effet, d'attribuer nativement des autorisation que pour 'utilisateur, groupe, tous les autres'.

Si l'on veut avoir une gestion plus fine et plus complexe, par exemple pour des serveurs de fichiers, il faudra utiliser des logiciels complémentaire qui prendront en charge les listes de contrôle d'accès.

# Méthodologie