(modifié le 5 avril 2023 à 0:15)

Il existe des dizaines de sites permettant de calculer un masque de sous-réseau, mais peu sont pratiques.

image wikipedia (domaine public)

Le seul que j'utilise depuis des années ne paye pas de mine et me rends pourtant service à chaque fois que j'en ai besoin. Profitons-en pour repartir des bases.

Vous allez enfin tout comprendre 🙂

Prenons le temps de revenir sur les bases du réseau, on va essayer de le faire de façon intelligible et buvable, j'ai bien dit essayer ! En tout cas quand j'ai appréhendé toutes ces notions j'aurai aimé qu'on me les présente de cette façon, car les livres scolaires laissaient planer de trop nombreux doutes et incompréhensions. Cette époque scolaire où l'on couchait le binaire sur papier pour déterminer le masque sous-réseau d'une adresse IP suivant sa classe est bien loin pour moi.

Mais il faut passer par là pour comprendre le mécanisme.  Aujourd'hui nous utilisons le classless, ou sans classe, aussi connu sous le terme VLSM (Variable Length Subnet Mask). En opposition au système classfull qui détermine le masque de sous réseau à partir de la classe d'une adresse l'IP.

C'est d'ailleurs pour cette raison que Windows complète automatiquement avec un masque quand vous entrez une adresse IP, il se base sur la classe de l'IP. Mais rien ne vous empêche de lui forcer la main :

config-ip

Les classes ont l'inconvénient de consommer trop d'adresses IP et vous avez probablement entendu parlé de la pénurie IPv4.

Class less

En utilisant un système classless avec la notation CIDR on peut découper un réseau en différents sous-réseaux pour éviter d'attribuer trop d'adresses IP à un demandeur. C'est vrai pour les adresses IP publiques (internet) mais aussi dans les réseaux d'entreprises quand le nombre de machines à connecter est important. De même qu'on limite les domaines de multidiffusion (broadcast) au niveau 3 du modèle OSI (la couche réseau).

La 1ère adresse d'un sous réseau correspond toujours à l'adresse réseau et la dernière est l'adresse de broadcast (diffusion). Comme deux sous-réseaux ne peuvent pas communiquer entre-eux sans un routeur (passerelle), on est tranquille. Voilà pourquoi on implémente généralement un couple routeur/pare-feu pour pouvoir contrôler les flux entre les réseaux.

En l'absence de classe chaque adresse IP réseau doit systématiquement être accompagnée de son masque dans les équipements réseaux (routeurs principalement). Ce masque est souvent écrit en notation CIDR, plus court mais nécessitant d'avoir recourt à une bonne mémoire ou d'utiliser un outil, que je vais vous présenter.

Voici un exemple de correspondance entre un masque et sa notation CIDR :
255.255.255.0 devient /24
La notation CIDR est simple à comprendre. Vous convertissez le masque de sous-réseau décimal en binaire, le nombre CIDR détermine le nombre de bit à mettre à 1 en commençant par la gauche. Voici notre masque 255.255.255.0 en binaire :

1111 1111 . 1111 1111 . 1111 1111 . 0000 0000

Pour y parvenir nous avons converti chaque octet (=8 bits), avec Google par exemple. Si nous comptons le nombre de bit à "1" en rouge nous obtenons la notation CIDR /24. L'adresse de notre réseau en 192.168.0.0 s'écrit donc de la façon suivante :

192.168.0.0/24

Bon dans cet exemple c'est assez facile de déterminer l'adresse réseau (192.168.0.0) et l'adresse de broadcast (192.168.0.255).

Et voici le gros piège ! Avec un /24 notre "255.255.255" correspond à la partie définissant le réseau et le ".0" correspond aux adresses IP allouables : 255.255.255.0. Une adresse de broadcast ne se termine pas nécessairement par 255, tout comme une adresse réseau ne se termine pas non forcément par 0. C'est ce point précis qui est à l'origine de nombreuses confusions dans les esprits !

Pour bien comprendre, choisissons un autre masque :

192.168.0.0/27

Hein ?! Pour passer de la notation CIDR vers binaire c'est simple nous posons 27 bit à 1, puis le reste à 0 :

1111 1111 . 1111 1111 . 1111 1111 . 1110 0000

Pour retrouver la notation décimale il faut convertir le binaire en décimal. Le début ne change pas, mais le dernier octet devient 224:

255.255.225.224

Et là comment je trouve la première et la dernière adresse de mon sous-réseau ?

Tout à l'heure c'était facile car le dernier groupement était réservé pour les adresses IP, mais là les bits en rouge sont à cheval sur les deux derniers octets.

grox : l'outil indispensable

C'est là qu'arrive à votre rescousse le site grox (basé sur whatmask)

edit 09/2021 : l'outil n'existe plus, voici des équivalents :

(vous pouvez aussi utiliser le paquet ipcalc sous GNU/Linux):

grox

On obtient dans l'ordre :

  • l'adresse IP (adresse réseau dans notre cas),
  • le masque CIDR,
  • le masque décimal,
  • le masque inversé restant (wildcard),
  • l'adresse du réseau,
  • l'adresse de broadcast (dernière IP réservée)
  • la plage IP allouable à des machines (192.168.0.1 à 192.168.0.30)

Autrement dit l'IP 192.168.0.32 sera totalement hors plage et ne communiquera pas avec ce sous réseau sans une passerelle assurant le routage et ayant une patte IP dans chacun des sous-réseaux.

Voici les correspondances pour vous y habituer :
/32 255.255.255.255
/31 255.255.255.254
/30 255.255.255.252
/29 255.255.255.248
/28 255.255.255.240
/27 255.255.255.224
/26 255.255.255.192
/25 255.255.255.128
/24 255.255.255.0
/23 255.255.254.0
/22 255.255.252.0
/21 255.255.248.0
/20 255.255.240.0
/19 255.255.224.0
/18 255.255.192.0
/17 255.255.128.0
/16 255.255.0.0
/15 255.254.0.0
/14 255.252.0.0
/13 255.248.0.0
/12 255.240.0.0
/11 255.224.0.0
/10 255.192.0.0
/9 255.128.0.0
/8 255.0.0.0
/7 254.0.0.0
/6 252.0.0.0
/5 248.0.0.0
/4 240.0.0.0
/3 224.0.0.0
/2 192.0.0.0
/1 128.0.0.0
/0 0.0.0.0

Vous remarquerez qu'une adresse IP 192.168.0.1 peut s'exprimer ainsi : 192.168.0.1/32 ou encore 192.168.0.1-255.255.255.255.

A proscrire dans les tables de routage de vos équipements, car vous oublierez que vous avez mis une route statique pour une seule adresse IP et le jour ou vous chercherez l'erreur je vous jure que vous allez tourner en rond un moment ! Surtout s'il y a du DHCP actif. Oui ça sent le vécu alors je vous demande de me croire sur parole.

Les erreurs à éviter

Quelques points importants à garder en tête pour éviter les confusions :

  • "masque" et "masque de sous-réseau" signifient la même chose
  • rien ne différencie un réseau d'un sous-réseau, tous deux ont une adresse réseau et un masque. On parle souvent de sous-réseau quand on part d'une plage et qu'on la découpe en plusieurs plages. Certains ouvrages parlent de réseau et d'autre de sous-réseaux, c'est du pareil au même
  • découper une plage IP en plusieurs (sous) réseaux implique un routeur/passerelle ayant une patte dans chacun des sous réseaux (consomme des interfaces)
  • une erreur de configuration sur le masque d'une machine :
    •  s'il est inférieur en CIDR (/24 au lieu de /27), bien que hasardeux cela communiquera si la passerelle est la bonne car le /24 englobe le /27, on parle de sur-réseau (attention aux paquets retours qui ne reviendront pas si l'IP n'est pas dans le range des adresses IP allouables du /27), souvent utilisé dans les tables de routage pour économiser des lignes
    • s'il est supérieur en CIDR (/27 au lieu de /24), cela ne communiquera jamais
  • ne vous lancez pas dans une découpe de sous-réseaux si vous pouvez vous en passer. Ne croyez pas que je m'amuse avec des sous-réseaux à la maison ! Choisissez des plages d'adresses privées en adéquation avec le nombre de machines à connecter avant de découper en sous-réseaux.

sur-reseau

Pour l'IPv6 ça se complique car on dispose d'une adresse IP en hexadécimal au lieu de décimal, et ça fait de très looooongues adresses en binaire. Je plains les étudiants qui devront se taper des conversions en partiel, pour mon cas c'était encore anecdotique mais la transition devra bien se faire prochainement.

Gardez donc sous le coude : le site grox et un équivalent chez mxtoolbox qui acceptent le CIDR sans broncher. Les métiers du réseau (ingé, admin systèmes/ réseaux) ne se cantonnent pas à ses problématiques toute la journée, heureusement, mais il ne faut pas non plus que ce soit un point bloquant si vous souhaitez vous lancer dans cette branche car ce sera récurrent si vous devez faire de l'architecture réseau (changement de plan IP, migration, fusion, etc).

J'espère que vous ne verrez plus les masques de la même façon.

Complément : le découpage en subnets

Exemple : je veux découper 192.168.78.0 /24 en 4 sous réseaux.

Après plusieurs essais avec whatmask on décide que le /26 (255.255.255.192) convient pour notre découpage.

Découpage en sous-réseaux
@Sous-Réseau CIDR IP machines @diffusion
192.168.78.0 /27 1 à 62 .63
192.168.78.64 /27 65 à 126 .127
192.168.78.128 /27 129 à 190 .191
192.168.78.192 /27 193 à 254 .255

Dans ce cas vous devrez bien sûr disposer d'une passerelle dans chaque sous-réseau car ce sont des réseaux différents.

En complément je vous invite à lire ce guide qui explique la "méthode magique" qui permet de déterminer les sous-réseaux lorsque l'on veut segmenter un réseau.

Le site TunnelsUP propose un outil pour découper rapidement grâce aux boutons "backward" et "forward".

Complément vidéo chez IT-Connect

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter