← Réseaux

Adressage IP avancé

Sommaire

Déterminer l'adresse réseau d'un hôte, son adresse de diffusion, sa plage adressable, et savoir si deux machines peuvent se parler. Tout repose sur une opération : un ET logique en binaire.

1. De l'adressage par classe au CIDR

L'adressage par classe gaspillait massivement les adresses : un masque 255.0.0.0 revenait à « offrir » 16 777 214 adresses publiques à une seule entreprise.

L'adressage sans classe (CIDR, Classless Inter-Domain Routing) attribue des blocs correspondant précisément au nombre d'hôtes utiles, en dehors de toute notion de classe. La notation /n indique simplement le nombre de bits à 1 dans le masque.

2. Le masque

Le masque est une suite contiguë de 1 suivie d'une suite de 0. La seule information utile est le nombre de 1. Il n'est pas nécessairement un multiple de 8.

CIDRMasque décimalBits hôteHôtes adressables
/24255.255.255.08254
/25255.255.255.1287126
/26255.255.255.192662
/27255.255.255.224530
/28255.255.255.240414
/29255.255.255.24836
/30255.255.255.25222

Formule : avec n bits d'hôte, on obtient 2n − 2 adresses utilisables. On retire deux adresses : celle du réseau (tous les bits hôte à 0) et celle de diffusion (tous les bits hôte à 1), qui ne peuvent être attribuées à une machine.

Poids des bits dans un octet, à connaître par cœur :

128   64   32   16    8    4    2    1

3. Méthode de calcul

On ne travaille que sur l'octet « coupé » par le masque, les autres sont recopiés tels quels.

  1. Convertir l'octet concerné de l'hôte et du masque en binaire.
  2. Adresse réseau : ET logique bit à bit entre l'hôte et le masque (1 ET 1 = 1, sinon 0). Autrement dit : garder les bits réseau, mettre tous les bits hôte à 0.
  3. Adresse de diffusion : reprendre l'adresse réseau et mettre tous les bits hôte à 1.
  4. Premier hôte : adresse réseau + 1.
  5. Dernier hôte : adresse de diffusion − 1.

4. Exemples corrigés

192.168.10.2 / 255.255.255.240 (soit /28)

        128  64  32  16   8   4   2   1
hôte      0   0   0   0   0   0   1   0     →   2
masque    1   1   1   1   0   0   0   0     → 240
réseau    0   0   0   0   0   0   0   0     →   0

192.168.20.185 / 25

            128  64  32  16   8   4   2   1
hôte          1   0   1   1   1   0   0   1   → 185
masque        1   0   0   0   0   0   0   0   → 128
réseau        1   0   0   0   0   0   0   0   → 128
premier hôte  1   0   0   0   0   0   0   1   → 129
dernier hôte  1   1   1   1   1   1   1   0   → 254
diffusion     1   1   1   1   1   1   1   1   → 255

Avec un /25, le même octet peut donner deux réseaux : 192.168.20.0 (plage .1 à .126, diffusion .127) et 192.168.20.128 (plage .129 à .254, diffusion .255). Un hôte en .2 et un hôte en .185 ne sont donc pas dans le même réseau, malgré des trois premiers octets identiques.

200.100.40.33 / 27

            128  64  32  16   8   4   2   1
hôte          0   0   1   0   0   0   0   1   →  33
masque        1   1   1   0   0   0   0   0   → 224
réseau        0   0   1   0   0   0   0   0   →  32
diffusion     0   0   1   1   1   1   1   1   →  63

5. Adresses privées et publiques

Plage privéeCIDRUsage courant
10.0.0.0 – 10.255.255.25510.0.0.0/8Grandes infrastructures
172.16.0.0 – 172.31.255.255172.16.0.0/12Réseaux d'entreprise
192.168.0.0 – 192.168.255.255192.168.0.0/16Petits réseaux, box

Une adresse privée n'est pas routable sur Internet : la sortie passe par une traduction d'adresses (NAT). 200.100.40.33 ne figure dans aucune de ces plages : c'est une adresse publique.

À connaître également : 127.0.0.0/8 (boucle locale) et 169.254.0.0/16 (APIPA, attribuée automatiquement quand le DHCP ne répond pas — symptôme typique d'un problème réseau).

6. Deux hôtes peuvent-ils communiquer ?

La question revient toujours à la même vérification : les deux adresses donnent-elles la même adresse réseau une fois le masque appliqué ?

Erreur classique en TP : deux postes correctement adressés mais avec des masques différents. A voit B dans son réseau, B ne voit pas A dans le sien. Le ping part et ne revient jamais. Vérifier le masque autant que l'adresse.