Il existe des dizaines de sites permettant de calculer un masque de sous-réseau, mais peu sont pratiques.
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 :
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):
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.
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.
@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
22 commentaires
Merci pour ce rappelle très clair.
C'est une fiche parfaite pour se remomérer certains détails!
Ouch ça fait longtemps tout ça pour ma part. 🙂
Je m'épingle ça quelque part, merci!
Et la semaine prochaine, interro ! 🙂
il y a aussi l'outil ipcalc sous Linux 😀
@Toune: c'est vrai ! pour ceux utilisant un ordinateur sous linux http://memo-linux.com/ipcalc-le-calcul-reseau-facile/
Merci pour le partage pour Linux. Pour quand le tutoriel dédié ? Signé par un adapte ce cet OS 🙂 .
merci, c'est beaucoup plus clair que sur d'autre site, cela m'a permis de me rafraichir la mémoire partiellement.
Un exemple avec 3 ou 4 sous réseau sera la bienvenue aussi
merci beaucoup, ça m'a vraiment aidee
Bonjour,
Très bien expliqué. Voici un petit vidéo qui l'explique simplement, avec examples.
https://youtu.be/gu34dOtc6Rc
Merci, ta vidéo est très pédagogique aussi !
Merci beaucoup pour vos explications. En plus d'être clair c'était très agréable à lire.
@Leila: merci pour les encouragements, j'espère que les réseaux n'ont plus de secret pour vous 🙂
merci, c'est beaucoup plus clair, sauf que j'ai noté une petite erreur :
je pense que le masque (255.255.255.192) est égale à ( /26 ) en notation CIDR
vraiment notre compréhension devient trop sensible
Salut, je suis désolé mais il y a une erreur... Le /26 permet d'obtenir 8 sous réseaux et non pas 4 ! il faut pour découper un /24 en 4 sous réseaux un /26...
Faites attention !!
@alex30290: Heu non :
172.16.0.0/26 (255.255.255.192) donne :
1- 172.16.0.1 - 172.16.0.62
2- 172.16.0.65 - 172.16.0.126
3- 172.16.0.129 - 172.16.0.190
4- 172.16.0.193 - 172.16.0.254
Ce qui donne bien 4 sous réseaux.
@Mr Xhark: comment creer 5 sous reseaux dans adresse 172.16.0.0
Merci pour ces explications claires mais ....
Dans votre exemple de découpage il semblerait qu'un /27 ne donne pas 255.255.255.192 mais 255.255.255.224
C'est le /26 qui donne effectivement 255.255.255.192 et 62 hosts par réseau
@Crinblanc: tout à fait il restait une coquille, c'est corrigé merci !
Merci pour ces explications