Partie 03

Adresses IP

L'adresse IP est le numéro de téléphone d'un équipement sur un réseau. Comprendre leur structure et calculer des sous-réseaux est la compétence n°1 de tout administrateur réseau.

Pourquoi les machines parlent en binaire

Un ordinateur ne comprend pas les lettres ni les chiffres comme nous. À l'intérieur de chaque processeur, il y a des milliards de transistors — de minuscules interrupteurs électroniques. Chaque transistor ne connaît que deux états :

  • Tension haute (~5V ou ~3.3V) = 1 = allumé
  • Tension basse (~0V) = 0 = éteint

C'est comme un interrupteur de lampe : il est soit ON, soit OFF. Pas « un peu allumé ». Un seul de ces 0 ou 1 s'appelle un bit (binary digit). En regroupant 8 bits, on obtient un octet (byte), qui peut représenter 256 valeurs différentes (de 0 à 255).

Cliquez sur les cercles pour allumer/éteindre chaque bit :

📐Tous les processeurs — qu'il s'agisse d'un AMD/Intel x86-64 dans un PC ou d'un ARM dans un smartphone — fonctionnent en binaire. Ce qui change entre eux, c'est leur jeu d'instructions (la « liste de commandes » qu'ils comprennent), pas le fait qu'ils utilisent des 0 et des 1.
Pour en savoir plus : transistors et portes logiques

Un transistor est un composant électronique microscopique gravé dans le silicium du processeur. Imaginez un robinet d'eau commandé par un signal électrique : si le signal est haut, l'eau (le courant) passe → 1. Sinon, le robinet est fermé → 0. Un processeur moderne contient des milliards de ces robinets miniatures.

En combinant plusieurs transistors, on crée des portes logiques — les briques de base de tout calcul. Il en existe 7 principales :

Les 3 portes fondamentales

&
AND (ET)
Sortie = 1 si les deux entrées sont à 1
ABS
000
010
100
111
≥1
OR (OU)
Sortie = 1 si au moins une entrée est à 1
ABS
000
011
101
111
1
NOT (NON)
Inverse l'entrée : 0 → 1, 1 → 0
AS
01
10

Les portes dérivées

En combinant les portes fondamentales, on obtient 4 portes supplémentaires. Les versions « N » (NAND, NOR, XNOR) ajoutent un NOT à la sortie — reconnaissable au petit cercle sur le symbole.

&
NAND (NON-ET)
AND inversé — sortie = 0 seulement si les deux entrées sont à 1
ABS
001
011
101
110
≥1
NOR (NON-OU)
OR inversé — sortie = 1 seulement si les deux entrées sont à 0
ABS
001
010
100
110
=1
XOR (OU exclusif)
Sortie = 1 si les entrées sont différentes
ABS
000
011
101
110
=1
XNOR (NON-OU exclusif)
Sortie = 1 si les entrées sont identiques
ABS
001
010
100
111
💡La porte NAND est la plus importante en électronique : on peut reconstruire toutes les autres portes (AND, OR, NOT, XOR…) en combinant uniquement des NAND. C'est pourquoi les processeurs sont majoritairement fabriqués à base de portes NAND.

Comment des portes font-elles des maths ?

Prenons l'addition 1 + 1 en binaire. On a besoin de deux sorties : le résultat et la retenue (comme quand on fait 9 + 1 = 10 en décimal, le « 1 » part dans la colonne suivante).

  • Le résultat (bit du bas) se calcule avec une porte XOR
  • La retenue (carry) se calcule avec une porte AND

Donc : 1 + 1 → XOR(1,1) = 0 (résultat), AND(1,1) = 1 (retenue) → réponse = 10 en binaire = 2 en décimal. Ce petit circuit s'appelle un demi-additionneur. En les chaînant, on construit un additionneur complet capable d'additionner des octets entiers — et de là, multiplication, division, et tout le reste.

Votre processeur fait des milliards de ces opérations élémentaires par seconde. Toute l'informatique repose sur ces combinaisons de portes logiques.

Le système binaire — conversions

La valeur de chaque position (puissances de 2)

Dans un octet, chaque bit a une valeur qui double en allant de droite à gauche, comme les dizaines et centaines en décimal :

Position76543210
Valeur1286432168421
Puissance2⁷2⁶2⁵2⁴2⁰

Binaire → décimal

Pour convertir un nombre binaire en décimal, on additionne les valeurs des positions où le bit vaut 1.

Écrire le nombre binaire : 11001010

Placer les valeurs sous chaque bit :

Bit11001010
Valeur1286432168421
Compte1286482

Additionner : 128 + 64 + 8 + 2 = 202

Décimal → binaire

Pour convertir un nombre décimal en binaire, on fait des divisions successives par 2 et on note les restes :

172 ÷ 2 = 86, reste 0

86 ÷ 2 = 43, reste 0

43 ÷ 2 = 21, reste 1

21 ÷ 2 = 10, reste 1

10 ÷ 2 = 5, reste 0

5 ÷ 2 = 2, reste 1

2 ÷ 2 = 1, reste 0

1 ÷ 2 = 0, reste 1

On lit les restes de bas en haut : 10101100. Vérification : 128+32+8+4 = 172 ✅

Méthode rapide par soustraction

Au lieu de diviser, on peut procéder par soustraction. On parcourt les puissances de 2 de la plus grande (128) à la plus petite (1) :

172 ≥ 128 ? Oui → bit = 1, reste = 172 − 128 = 44

44 ≥ 64 ? Non → bit = 0

44 ≥ 32 ? Oui → bit = 1, reste = 44 − 32 = 12

12 ≥ 16 ? Non → bit = 0

12 ≥ 8 ? Oui → bit = 1, reste = 12 − 8 = 4

4 ≥ 4 ? Oui → bit = 1, reste = 0

0 ≥ 2 ? Non → bit = 0

0 ≥ 1 ? Non → bit = 0

Résultat : 10101100 — même résultat, souvent plus rapide mentalement.

Un octet = toujours 8 bits. Si votre nombre binaire fait moins de 8 chiffres, complétez avec des zéros à gauche. Exemple : 5 en décimal = 101 en binaire = 00000101 sur un octet.

Le système hexadécimal

Le binaire est précis mais très long à lire : 11001010 c'est 8 caractères pour un seul octet. L'hexadécimal (base 16) est un raccourci : chaque groupe de 4 bits correspond à 1 seul chiffre hex. Un octet entier s'écrit en seulement 2 caractères.

L'hexadécimal utilise 16 symboles : les chiffres 09 puis les lettres AF pour les valeurs 10 à 15.

DécimalBinaire (4 bits)HexDécimalBinaire (4 bits)Hex
000000810008
100011910019
200102101010A
300113111011B
401004121100C
501015131101D
601106141110E
701117151111F

Hexadécimal → décimal

On multiplie chaque chiffre hex par sa puissance de 16 (16¹ = 16 pour le chiffre de gauche, 16⁰ = 1 pour le chiffre de droite) :

Exemple : C8

C = 12, donc 12 × 16 = 192

8 = 8, donc 8 × 1 = 8

Total : 192 + 8 = 200

Décimal → hexadécimal

On divise par 16, on note le reste (converti en lettre si ≥ 10), puis on lit de bas en haut :

255 ÷ 16 = 15, reste 15F

15 ÷ 16 = 0, reste 15F

Résultat (de bas en haut) : FF — donc 255 = FF en hex

Binaire ↔ hexadécimal

C'est la conversion la plus simple : on groupe les bits par paquets de 4 (de droite à gauche) et on convertit chaque groupe avec le tableau ci-dessus.

Binaire : 11001010

Grouper par 4 : 1100 | 1010

Convertir : 1100 = C, 1010 = A

Résultat : CA

Dans l'autre sens (hex → binaire), on remplace chaque chiffre hex par ses 4 bits : 5F0101 111101011111.

Où voit-on l'hexadécimal au quotidien ?
  • Adresses MAC : AA:BB:CC:DD:EE:FF — 6 octets en hex séparés par des :
  • IPv6 : 2001:0db8:85a3::8a2e:0370:7334 — 8 groupes de 4 chiffres hex
  • Couleurs CSS/HTML : #FF5733 = Rouge=FF, Vert=57, Bleu=33
  • Adresses mémoire : 0x7FFE42A0 dans un débogueur
  • Codes d'erreur : les fameux écrans bleus Windows affichent des codes hex

Exercices — binaire & hexadécimal

1

Binaire → décimal Débutant

Convertissez ces octets binaires en décimal :

00001010 =
11111111 =
10000000 =
01100100 =
10101100 =
11000000 =
2

Décimal → binaire Débutant

Convertissez ces valeurs en binaire sur 8 bits (complétez les 8 chiffres) :

5 =
42 =
127 =
200 =
168 =
255 =

Exercices — hexadécimal

3

Décimal → hexadécimal Intermédiaire

Convertissez en hexadécimal (2 caractères, ex: FF) :

15 =
200 =
170 =
255 =
4

Hexadécimal → décimal Intermédiaire

Convertissez ces valeurs hex en décimal :

1A =
7F =
B4 =
E0 =

Exercices — conversions avancées

5

Binaire → hexadécimal Avancé

Convertissez ces octets binaires en hex (2 caractères) :

11110000 =
10101011 =
01011111 =
11001110 =
6

Hexadécimal → binaire Avancé

Convertissez ces valeurs hex en binaire sur 8 bits :

3D =
A7 =
DB =
6E =

IPv4 — structure binaire

Une adresse IPv4 = 32 bits représentés en 4 octets décimaux séparés par des points. Chaque octet vaut de 0 (00000000) à 255 (11111111). Total théorique : 2³² = 4 294 967 296 adresses.

192 11000000 Octet 1 . 168 10101000 Octet 2 . 1 00000001 Octet 3 . 42 00101010 Octet 4 (hôte) 32 bits — 4 294 967 296 adresses IPv4 (2³²)

Classes d'adresses IPv4

Classe 1er octet Masque par défaut Nb réseaux Hôtes/réseau Usage historique
A 1–126 /8 (255.0.0.0) 126 16 777 214 Très grands réseaux (DoD, universités américaines)
B 128–191 /16 (255.255.0.0) 16 384 65 534 Entreprises moyennes
C 192–223 /24 (255.255.255.0) 2 097 152 254 Petits réseaux locaux
D 224–239 Multicast (OSPF, mDNS…)
E 240–255 Réservé / Recherche
Pourquoi les classes sont-elles obsolètes ?

Le système de classes créait un énorme gaspillage. Une entreprise qui avait besoin de 300 adresses devait prendre une classe B entière (65 534 adresses) car une classe C (254 adresses) ne suffisait pas. Des milliers d'adresses étaient donc réservées mais jamais utilisées.

En 1993, le CIDR (Classless Inter-Domain Routing) a remplacé ce système. Avec le CIDR, on découpe les réseaux au bit près : un /23 donne 510 adresses, un /25 en donne 126. Fini le gaspillage.

Adresses privées — RFC 1918

Ces plages ne sont jamais routées sur Internet. N'importe qui peut les utiliser librement dans son réseau privé.

Plage CIDR Nb d'adresses Usage typique
10.0.0.0 – 10.255.255.255 /8 16 777 216 Grandes entreprises, opérateurs CGNAT
172.16.0.0 – 172.31.255.255 /12 1 048 576 Entreprises moyennes, VPNs
192.168.0.0 – 192.168.255.255 /16 65 536 Box FAI, réseaux domestiques ← vous êtes ici

Adresses spéciales

Adresse / Plage Nom RFC Description
0.0.0.0 Non spécifiée RFC 1122 Source inconnue ; route par défaut dans la table de routage
127.0.0.0/8 Loopback RFC 5735 La machine elle-même. Jamais envoyé sur le réseau. 127.0.0.1 = localhost.
169.254.0.0/16 APIPA / Link-local RFC 3927 Auto-attribuée si DHCP absent. Signe d'un problème réseau !
255.255.255.255 Broadcast limité RFC 919 Tous les hôtes du réseau local. Jamais routé.
224.0.0.0/4 Multicast RFC 5771 Groupes : 224.0.0.5 (OSPF), 224.0.0.251 (mDNS)
100.64.0.0/10 CGNAT RFC 6598 NAT niveau opérateur. Entre FAI et abonnés.
192.0.2.0/24 TEST-NET RFC 5737 Documentation et exemples uniquement. Jamais en production.

L'adresse APIPA 169.254.x.x — pourquoi ça arrive

Quand un équipement démarre et ne trouve aucun serveur DHCP, l'OS s'auto-attribue une adresse dans la plage 169.254.x.x. Voir une telle adresse = toujours un problème à résoudre.

L'OS envoie 3 requêtes DHCP DISCOVER en broadcast (attente ~5 s à chaque fois)

Aucune réponse → l'OS génère une IP aléatoire dans 169.254.1.0 à 169.254.254.255

Il envoie un ARP gratuit pour vérifier que personne d'autre n'utilise cette IP

Si libre → l'OS se l'attribue avec masque /16 et aucune passerelle

Communication uniquement avec d'autres hôtes APIPA du même segment — pas d'Internet

🔴169.254.x.x = toujours un problème DHCP : câble débranché, serveur DHCP en panne, bail expiré, VLAN mal configuré. Commencer par tester le câble, puis vérifier le serveur DHCP.

ARP — résolution IP → MAC

Le protocole ARP (Address Resolution Protocol, RFC 826) permet de traduire une adresse IP (couche 3) en adresse MAC (couche 2). Quand un hôte veut envoyer un paquet à une IP locale, il doit d'abord connaître l'adresse MAC de destination pour construire la trame Ethernet. ARP fonctionne exclusivement au sein d'un même domaine de broadcast : l'émetteur envoie une requête ARP en broadcast (FF:FF:FF:FF:FF:FF), et seul l'hôte concerné répond en unicast.

PC A 192.168.1.1 Routeur 192.168.1.254 ARP Request (broadcast FF:FF:FF:FF:FF:FF) « Who has 192.168.1.254 ? Tell 192.168.1.1 » ARP Reply (unicast) « 192.168.1.254 is at AA:BB:CC:DD:EE:FF » Broadcast Unicast

Après la réponse, l'hôte stocke le couple IP↔MAC dans son cache ARP (durée de vie typique : 15–45 min). On peut consulter ce cache avec la commande arp -a :

Adresse IP Adresse MAC Type
192.168.1.254 AA:BB:CC:DD:EE:FF dynamique
192.168.1.10 11:22:33:44:55:66 dynamique
192.168.1.1 DE:AD:BE:EF:CA:FE dynamique
ARP ne fonctionne qu'à l'intérieur d'un même sous-réseau / domaine de broadcast. Si l'IP de destination est sur un réseau distant, l'hôte n'envoie pas d'ARP vers cette IP distante — il résout plutôt l'adresse MAC de sa passerelle par défaut (gateway) et lui transmet le paquet. C'est le routeur qui se chargera de l'acheminer vers le réseau suivant.
ARP Spoofing — une attaque courante

Puisque ARP fonctionne sur la confiance (n'importe qui peut répondre « c'est moi ! »), un attaquant peut envoyer de fausses réponses ARP pour associer son adresse MAC à l'IP de la passerelle. Tout le trafic du réseau passe alors par sa machine : c'est une attaque Man-in-the-Middle.

Protection : les switches managés proposent le Dynamic ARP Inspection (DAI) qui vérifie les réponses ARP avant de les transmettre. Le DHCP Snooping y contribue aussi en validant les associations IP-MAC.

Masques de sous-réseau & CIDR

Exemple : 192.168.10.50/26

        Adresse : 11000000.10101000.00001010.00110010
        Masque : 11111111.11111111.11111111.11000000 (/26 = 255.255.255.192)
        |<---------- 26 bits réseau ---------->|<-6b->|
        Réseau : 192.168.10.0 (bits hôte à 0)
        Broadcast: 192.168.10.63 (bits hôte à 1)
        Hôtes : 2^6 − 2 = 62 utilisables
📐Dans chaque sous-réseau, 2 adresses sont réservées : l'adresse réseau (bits hôte à 0) et l'adresse de broadcast (bits hôte à 1). Hôtes utilisables = 2⊃n − 2.

Calculateur de sous-réseau interactif

Adresse réseau
Broadcast
Masque
Masque binaire
Premier hôte
Dernier hôte
Hôtes utilisables
Classe historique

NAT & PAT

Le NAT traduit les IPs privées en IP(s) publique(s). Le PAT (NAT overload) permet à plusieurs machines de partager une seule IP publique grâce aux numéros de port.

PC1 192.168.1.10:4500 —→|
        PC2 192.168.1.11:3200 —→| Routeur/Box —→ 82.64.10.5:40001 —→ Serveur
        PC3 192.168.1.12:8800 —→| (PAT) 82.64.10.5:40002
        82.64.10.5:40003
Les limites du NAT

Le NAT/PAT est une rustine géniale mais il a des inconvénients :

  • Casse la connectivité bout-en-bout : une machine externe ne peut pas initier une connexion vers votre PC privé sans redirection de port
  • Problèmes avec le P2P : BitTorrent, jeux en ligne, visioconférence nécessitent des techniques de contournement (hole punching, STUN/TURN)
  • VoIP et gaming : la traduction d'adresses ajoute de la latence et complique le routage des flux temps réel
  • Double NAT : si votre FAI fait du CGNAT et votre box fait du NAT, certains services deviennent inaccessibles

C'est justement pour éliminer le NAT qu'IPv6 a été créé : chaque machine peut avoir sa propre adresse publique.

IPv6 — le successeur d'IPv4

IPv6 = 128 bits écrits en hexadécimal, répartis en 8 groupes de 4 chiffres hex séparés par des :. On peut compresser les groupes de zéros consécutifs avec :: (une seule fois par adresse).

2001:0db8:85a3:0000:0000:8a2e:0370:7334 (adresse complète)
        2001:db8:85a3::8a2e:370:7334 (compressée)

Cela représente 2¹²⁸ = 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses possibles — assez pour attribuer des milliards d'adresses à chaque étoile de l'univers observable.

Type Préfixe Équivalent IPv4 Description
Loopback ::1/128 127.0.0.1 La machine elle-même
Link-local fe80::/10 169.254.x.x Auto-configurée sur chaque interface (SLAAC)
Privé (ULA) fc00::/7 RFC 1918 Réseau local privé non routable
Global unicast 2000::/3 IP publique Adresse routable sur Internet
Multicast ff00::/8 224.x.x.x Remplace le broadcast (inexistant en IPv6)

Pourquoi IPv6 est nécessaire

IPv4 offre « seulement » 4,3 milliards d'adresses. Le pool central de l'IANA a été épuisé en février 2011. Les registres régionaux (RIPE en Europe, ARIN en Amérique du Nord…) sont en pénurie depuis plusieurs années. Avec l'explosion des objets connectés (smartphones, montres, frigos, caméras…), le nombre d'appareils dépasse largement le nombre d'adresses IPv4.

Le NAT a permis de gagner du temps en cachant des milliers de machines derrière une seule IP publique. Mais c'est une rustine, pas une solution : le NAT casse la connectivité directe et complique de nombreux protocoles.

📐Pourquoi on reste quand même en IPv4 ? Malgré la pénurie, la migration vers IPv6 est lente pour plusieurs raisons :
• L'infrastructure mondiale est construite sur IPv4 depuis 40 ans — routeurs, firewalls, logiciels
• Le NAT fonctionne assez bien pour la plupart des usages quotidiens
• La migration coûte cher : il faut former les équipes, tester, mettre à jour les équipements
• La période de transition nécessite le dual-stack (IPv4 + IPv6 en parallèle), doublant la complexité

Les dangers spécifiques d'IPv6

En IPv4 avec NAT, vos appareils sont cachés derrière l'adresse publique de votre box. Un attaquant sur Internet ne voit que votre box, pas vos PC. En IPv6, chaque appareil peut recevoir une adresse Global Unicast routable — il est alors directement visible depuis Internet.

🔴Avec IPv6, chaque machine possède potentiellement une adresse unique au monde et directement joignable. Un attaquant peut cibler précisément votre téléphone, votre caméra ou votre imprimante — sans avoir à passer par un NAT. Le firewall de votre box est votre seule protection.

Un autre problème : avec la méthode EUI-64, l'adresse IPv6 est calculée à partir de l'adresse MAC de l'appareil. Comme la MAC est fixe, on peut suivre un appareil à la trace sur tous les réseaux qu'il rejoint. Les Privacy Extensions (RFC 4941) règlent ce problème en générant des adresses temporaires aléatoires.

SLAAC et l'identifiant d'interface (EUI-64)

SLAAC (Stateless Address Autoconfiguration) permet à un appareil de se configurer automatiquement en IPv6 sans serveur DHCP. L'appareil prend le préfixe annoncé par le routeur et y ajoute un identifiant d'interface dérivé de son adresse MAC (méthode EUI-64).

Exemple : MAC AA:BB:CC:DD:EE:FF → identifiant EUI-64 A8BB:CCFF:FEDD:EEFF. Préfixe du routeur 2001:db8:1:: → adresse complète 2001:db8:1::a8bb:ccff:fedd:eeff.

Le problème : cette adresse est permanente et prévisible. Quelqu'un qui connaît votre MAC peut vous identifier sur n'importe quel réseau. C'est pourquoi les OS modernes activent les Privacy Extensions : ils génèrent un suffixe aléatoire qui change régulièrement, rendant le traçage beaucoup plus difficile.

IPv6 au quotidien

La plupart des box FAI françaises supportent déjà le dual-stack : votre connexion fonctionne simultanément en IPv4 et IPv6. Vous pouvez vérifier en tapant ipconfig (Windows) ou ip addr (Linux) — vous verrez probablement une adresse commençant par 2a ou fe80.

Les grands services (Google, YouTube, Netflix, Facebook, Cloudflare) sont tous accessibles en IPv6. Votre navigateur privilégie automatiquement IPv6 quand c'est disponible — vous l'utilisez peut-être déjà sans le savoir.

Attention : certains firewalls d'entreprise ne filtrent pas IPv6 aussi rigoureusement qu'IPv4. Si votre politique de sécurité ne couvre qu'IPv4, un attaquant pourrait contourner vos règles en passant par IPv6. Toute politique de filtrage doit couvrir les deux protocoles.