Adresse IP, les masque de sous-réseau
Les masques de sous-réseaux (subnet mask) permettent de déterminer si une adresse IP est locale ou distante dans un réseau.
Ce masque est obligatoire, même si vous ne possédez que deux machines reliées par un câble croisé. Il est obligatoire car il intervient dans le processus de routage IP.
Le masque de sous-réseau permet de masquer une partie de l'adresse IP pour distinguer un id de (sous-)réseau et un id hôte.
Il se présente presque de la même manière qu'une adresse IP : 4 octets. Ces 4 séries de 8 bits sont encodés au niveau de l'utilisateur sous la forme de 4 nombres décimaux séparés par des points.
Exemple :
À quoi sert le masque de sous-réseau ?
En résumé, le masque de sous réseau est une succession de bits à 1.
Selon l'étendue du masque, nous retrouverons plus ou moins de bits à 1, ce qui nous obligera à utiliser plus ou moins de bits pour déterminer le sous-réseau, le reste étant accordé à l'adresse de l'hôte.
Si nous ne possédons pas dans notre table ARP l'adresse MAC de la machine que nous cherchons à joindre,
une porte logique AND est d'abord appliquée à notre propre adresse IP et à notre masque de sous réseau.
La même opération est effectuée sur l'adresse IP que nous cherchons à joindre, et sur notre masque de sous réseau.
Si les deux résultats sont identiques, nous savons que la machine se trouve dans le même sous-réseau, et une requête ARP sera donc lancée afin d'obtenir la correspondance entre l'adresse IP et l'adresse MAC de la machine que nous désirons joindre.
Sinon, il faudra passer par l'adresse spécifiée pour la passerelle par défaut (un routeur ou par exemple une passerelle).
Conversions en binaire des masques de sous-réseaux IP
Je me suis retrouvé dans une situation où un certain nombre de machines placées sur le même support physique ne pouvaient pas communiquer entre elles. Ma première réaction a été de vérifier par un ipconfig ma configuration IP.
Très sur de moi, je me suis dit que comme les machines possédaient toutes le même masque de sous-réseau, le problème ne pouvait provenir de là.
J'étais dans l'erreur, car après de laborieuses recherches et tentatives, j'ai constaté que malgré le masque de sous-réseau identique, j'étais face à deux réseaux bien distincts.
Exemple
Sous-réseau 1 :
- masque de sous-réseau : 255.255.255.240
- première adresse de machine : 193.125.5.1
- dernière adresse de machine : 193.125.5.14
Sous-réseau 2 :
- masque de sous-réseau : 255.255.255.240
- première adresse de machine : 193.125.5.17
- dernière adresse de machine : 193.125.5.30
Toute communication est donc impossible entre les machines 193.125.5.14 et 193.1255..17, et pourtant le masque de sous-réseau est identique !
Calcul des masques de sous-réseaux IP
Appliquons à l'adresse IP ce que nous avons vu dans la partie consacrée aux conversions en binaire.
Machine A :
11000001 01111101 00000101 00001110 (adresse IP 193.125.5.14 )
11111111 11111111 11111111 11110000 (subnet mask 255.255.255.240)
11000001 01111101 00000101 00000000 réseau 193.125.5.0
Machine B :
11000001 01111101 00000101 00010001 (adresse IP 193.125.5.17 )
11111111 11111111 11111111 11110000 (subnet mask 255.255.255.240)
11000001 01111101 00000101 00010000 réseau 193.125.5.16
Conclusion :
La machine A est dans le sous-réseau 193.125.5.0 avec le masque de sous-réseau 255.255.255.240,
la machine B est dans le sous-réseau 193.125.5.16 avec le masque de sous-réseau 255.255.255.240
Elles ne peuvent donc pas communiquer sans moyen d'interconnexion.
Notation courte des masques de sous réseaux
Pour l'exemple, j'ai spécifié l'adresse ip et le masque de sous-réseau par deux séries de quatre valeurs.
Une autre notation plus courte est souvent employée : 193.125.5.14/28
Pourquoi /28 ? Simplement parce-que le masque porte sur 28 éléments binaires (28 bits consécutifs à 1).
Calcul des adresses de sous-réseaux IP
Il est possible que l'on doive diviser notre réseau en spécifiant un nombre de machines nécessaire dans chaque sous-réseau.
A ce moment, nous ne pouvons plus travailler de manière équitable entre chaque sous-réseau...
Situation de départ
Nous pouvons utiliser le range IP 10.170.84.0/22
L'unité informatique à raccorder est dispersée sur 5 blocs interconnectés par des routeurs :
Nous devons donc calculer les adresses de chaque sous-réseau, et les plages d'adresses IP.
Préparation des réseaux
10.170.84.0/22
00001010 10101010 01010100 00000000 : 10.170.84.0 (réseau de base)
11111111 11111111 11111100 00000000 : 255.255.252.0 (masque de base)
Bloc A
Nous désirons adresser 450 hôtes, voyons de combien de bits nous avons besoin pour gérer 450 adresses...
Avec un octet, nous avons 256 adresses (28=256). Ajoutons un bit : 29=512. Cela nous suffit.
11111111 11111111 11111100 00000000 : 255.255.252.0 (masque de base)
11111111 11111111 11111110 00000000 : 255.255.254.0 (masque du sous-réseau A)
Remarque : le masque de sous-réseau ne se fait donc plus sur 22 mais sur 23 bits, et qu'il reste donc 9 bits pour l'adressage des hôtes.
00001010 10101010 01010100 00000000 : 10.170.84.0 (réseau de base)
00001010 10101010 01010100 00000001 : 10.170.84.1 (première machine du réseau A)
00001010 10101010 01010101 11111110 : 10.170.85.254 (dernière machine du réseau A)
00001010 10101010 01010101 11111111 : 10.170.85.255 (broadcast du réseau A)
Adresse du réseau A : 16.170.84.0/23
Bloc B
Nous désirons adresser 130 hôtes, : 27=128 < 130 <28=256.
11111111 11111111 11111100 00000000 : 255.255.252.0 (masque de base)
11111111 11111111 11111111 00000000 : 255.255.255.0 (masque du sous-réseau B)
00001010 10101010 01010110 00000001 : 10.170.86.1 (première machine du réseau B)
00001010 10101010 01010110 11111110 : 10.170.86.254 (dernière machine du réseau B)
00001010 10101010 01010110 11111111 : 10.170.85.255 (broadcast du réseau B)
Adresse du réseau B : 16.170.86.0/24
Bloc C
Nous désirons adresser 70 hôtes, : 26=64< 70 <27=128.
11111111 11111111 11111100 00000000 : 255.255.252.0 (masque de base)
11111111 11111111 11111111 10000000 : 255.255.255.128 (masque du sous-réseau C)
00001010 10101010 01010111 00000001 : 10.170.87.1 (première machine du réseau C)
00001010 10101010 01010111 01111110 : 10.170.87.126 (dernière machine du réseau C)
00001010 10101010 01010111 01111111 : 10.170.87.127 (broadcast du réseau C)
Adresse du réseau C : 16.170.87.0/25
Bloc D
Nous désirons adresser 32 hôtes, : 25=32.
Avons-nous assez avec 32 adresses ?
Non, c'est insuffisant, car deux adresses sont réservées l'adresse du sous-réseau (tous les bits host ip à 0) et le broadcast (tous les bits host ip à 1).
Nous devons donc réserver 6 bits pour l'adressage de nos 32 hôtes.
11111111 11111111 11111100 00000000 : 255.255.252.0 (masque de base)
11111111 11111111 11111111 11000000 : 255.255.254.192 (masque du sous-réseau D)
00001010 10101010 01010111 10000001 : 10.170.87.129 (première machine du réseau D)
00001010 10101010 01010111 10111110 : 10.170.87.190 (dernière machine du réseau D)
00001010 10101010 01010111 10111111 : 10.170.87.255 (broadcast du réseau D)
Adresse du réseau D : 16.170.87.128/26
Bloc E
Nous désirons adresser 30 hôtes, cette fois, nous pourrions penser que 32 adresses sont suffisantes...
Mais il subsiste une petite astuce : nous ne devons pas oublier que les sous-réseaux sont interconnectés, et que nous devons donc réserver deux adresses pour les routeurs.
11111111 11111111 11111100 00000000 : 255.255.252.0 (masque de base)
11111111 11111111 11111111 11000000 : 255.255.254.192 (masque du sous-réseau E)
00001010 10101010 01010111 11000001 : 10.170.87.193 (première machine du réseau E)
00001010 10101010 01010111 11111110 : 10.170.87.254 (dernière machine du réseau E)
00001010 10101010 01010111 11111111 : 10.170.85.255 (broadcast du réseau E)
Adresse du réseau E : 16.170.87.192/26
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 22/01/2004, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/reseaux-ip-subnetmask.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.