Publication réservée aux abonnés du Point Service AIX
Janvier 1998
Jean-Luc GESTIN
Voici de petites questions agaçantes que se pose l'administrateur de système, qui doit se frotter au subnetting, lorsque les contraintes d'administration de l'entreprise obligent à mettre en oeuvre des subnet masks...
Jongler avec les translations binaire-décimal sur un coin de papier devient vite fastidieux. Je propose donc, ici, ma modeste contribution pour faciliter la vie chahutée de l'homme-orchestre système.
Lors d'une addition logique par un "&", nous savons que :
Par l'application d'un masque discriminateur,
cette propriété simple permet, dans une adresse IP, de distinguer
la partie réservée au réseau de la partie réservée à la machine.
Par exemple :
125.1.2.3 (machine)
& 255.0.0.0 (masque)
----------
= 125.0.0.0 (réseau)
La machine "125.1.2.3" se trouve sur le réseau
"125.0.0.0" et il s'agit d'un masque de classe A.
Table 3. Les masques de réseaux sur Internet.
Classe | Eventail d'adresses
(range) | Masque de réseau |
Classe A | 001 à 127 | 255.0.0.0 |
Classe B | 128 à 191 | 255.255.0.0 |
Classe C | 192 à 223 | 255.255.255.0 |
Note: Attention, tenir compte de la remarque suivant ce tableau, |
Exemple :
L'adresse de réseau "112.21.10.52" est, par défaut, une adresse
de Classe A (range 1-126). Mais si un masque de
"255.255.255.0" lui est appliquée, elle devient une adresse de
classe C : 3 octets sont réservés au réseau.
Or, sur Internet, on ne trouvera jamais d'adresse de classe C
commençant en "112"...
Cette situation a pu exister sans poser trop de problèmes jusqu'à présent. Mais, à l'heure où les réseaux internes commencent à s'ouvrir sur l'Internet (le vrai) via des Firewalls (pare-feux), ce non-respect des lois naturelles de l'Internet obligera ces administrateurs à de pénibles translations d'adresses, qui rendent plus complexe l'accès à Internet.
Rappelons qu'il est possible de respecter la classification officielle de l'Internet sans interférer avec des adresses "réelles". Il suffit, pour cela, de choisir les adresses du réseau interne à l'entreprise parmi les trois valeurs suivantes :
En effet, le "RFC 1597" (1) a défini ces adresses comme étant réservées aux réseaux privés internes. De ce fait, aucune de ces adresses ne sera propagée sur les réseaux de l'Internet.
Le subnetting est à utiliser lorsque :
Le principe du subnetting est simple : il consiste à diminuer la plage des digits réservés aux adresses des machines pour étendre la plage des digits réservés aux adresses des sous-réseaux, en y positionnant des "1" de masquage.
Ainsi, nous pouvons étendre le masque des digits positionnés à
"1" sur une partie des digits réservés à l'adresse de la machine.
Un réseau "129.112.0.0" (avec un masque de "255.255.0.0")
peut, très simplement, être découpé en sous-réseaux en prélevant le
troisième octet de l'adresse IP pour décrire les sous-réseaux. Si nous
appliquons un masque de "255.255.255.0", les sous-réseaux
se nomment alors : "129.112.1.0", "129.112.2.0",
"129.112.3.0", etc.
Cette situation idéale se rencontre rarement en entreprise, car la plage
des adresses libres disponibles est déjà restreinte... Mais on pourra
pallier cet inconvénient en utilisant une extension du masque limitée
aux premiers digits du troisième octet de l'adresse IP.
Notre
réseau "129.112.0.0" (avec un masque de "255.255.0.0")
peut donc être découpé en un nombre variable de sous-réseaux en fonction
de l'extension de masque choisie :
"255.255.128.0" (10000000),
ou "255.255.192.0" (11000000),
ou "255.255.224.0" (11100000), etc.
Autre exemple, avec un masque de "255.255.240.0", qui permet de faire du subnetting sur une adresse de classe B, nous obtenons 16 subnets numérotés : 0, 16, 32, 48, 64... jusqu'à 240 par incréments de 16.
Nous pouvons maintenant déterminer auquel des 16 subnets appartient une machine d'adresse "129.112.33.1", en lui appliquant le masque : 129.112.33.1 (machine) & 255.255.240.0 (masque) ---------------- = 129.112.32.0 (adresse du subnet recherché)
En fonction de ses besoins, l'administrateur doit donc déterminer quel est le masque de sous-réseau le mieux à même de garantir l'équilibre entre le nombre de sous-réseaux nécessaires et le nombre de machines possibles par sous-réseau.
Ce choix fixe le nombre de digits significatifs du masque de
subnet à configurer sur le(les) routeur(s) et
sur les machines situées sur les sous-réseaux.
Ce choix doit rester cohérent pour l'ensemble des machines qui
participent au subnetting.
Dans les faits, si les masques de réseau des machines appartenant à ces
subnets sont correctement positionnés, il n'y a aucune
confusion dans le routage.
Cependant, l'habitude est restée et le premier subnet
(numéroté "0") n'est jamais -ou rarement- utilisé.
De la même façon, on aurait pu craindre de confondre l'adresse de
broadcast du réseau lui-même (par exemple :
"192.2.3.255" pour un réseau "192.2.3.0" avec un masque
de "255.255.255.0") avec l'adresse de broadcast
dirigé du dernier subnet numérotable d'adresse IP identique
("192.2.3.255" pour un subnet "192.2.3.240"
et un masque à "255.255.255.240").
Mais, là encore, dans les faits, il n'y a aucune confusion dans le
routage et, par exemple, "192.2.3.255" est bien reconnu comme
étant l'adresse de broadcast dirigé du subnet.
Exemple d'utilisation :
Soit le réseau "123.456.789.0" dont le masque
est "255.255.255.0".
Je souhaite étendre la plage d'adresses réservées au réseau.
Avec un masque de subnet à "255.255.255.224",
je réserve 3 digits supplémentaires sur le dernier octet de l'adresse IP
pour décrire des subnets.
Ceci me permet de disposer de 8 subnets, dont les adresses de subnet seront :
Ces adresses (0, 32, 64, 96, 128, ...) sont listées dans la colonne "subnet".
Les adresses de broadcast de ces subnets sont
listées dans la colonne "broadcast".
Par exemple, le subnet "123.456.789.160"
possède une adresse de broadcast "123.456.789.191".
Le nombre de machines par subnet est indiqué en haut du tableau pour un masque de type "255.255.255.224" ; on dispose de 30 machines par subnet.
La plage d'adresses disponibles pour ces machines est lue dans la colonne "range addr".
Plus le nombre de subnets créés dans un réseau donné est important, plus nous perdons d'adresses machines disponibles. En effet : les adresses des subnets et les adresses des broadcasts dirigés consomment ces ressources.
Un masque à "252" correspond à une situation caricaturale : le minimum de 2 digits pour l'adresse-machine est atteint. Des quatre positions que peuvent prendre ces 2 digits : 00, 01, 10 et 11, il faut exclure les positions 00 (subnet) et 11 (broadcast). Cela ne laisse, pour chacun des 64 subnets créés, que la possibilité d'accueillir 2 machines,
A l'inverse, avec un masque à "128", si nous excluons le subnet d'adresse "0", il nous reste... un subnet d'adresse "128" pouvant accueillir moitié moins de machines que l'enveloppe-réseau de niveau supérieur.
Ceci explique pourquoi les valeurs des masques de subnet sont prises généralement dans des configurations "raisonnables" : "224" ou "240".
Par souci de lisibilité, ces tableaux font l'impasse sur le masque "254" et, bien évidemment, sur le masque "255" : les tableaux sortiraient de la feuille...
Exemple d'utilisation :
Soit le réseau "123.456.0.0", dont le masque
est "255.255.0.0".
Je souhaite étendre la plage d'adresses réservées au réseau.
Avec un masque de subnet à "255.255.224", je réserve
3 digits supplémentaires, sur le troisième octet de l'adresse IP,
pour décrire des subnets. Ceci me permet de disposer de
8 subnets, dont les adresses de subnet seront :
Ces adresses (0.0, 32.0, 64.0, 96.0, 128.0, ...) sont listées dans la colonne "subnet".
Les adresses de broadcast de ces subnets sont listées dans la colonne "broadcast". Par exemple, le subnet "123.456.160.0" possède une adresse de broadcast à "123.456.191.255".
Le nombre de machines par subnet est indiqué en haut des tableaux : pour un masque de type "255.255.224.0", on dispose de 8190 machines par subnet.
La plage d'adresses disponibles pour ces machines est trouvée dans la colonne "range addr".
- Avec un masque de subnet de "255.255.255.192", l'adresse "193.112.1.191" correspond, non pas à une adresse-machine, mais à l'adresse de broadcast du subnet "193.112.1.128".
- Avec un masque de subnet de "255.255.224.0", on n'arrive pas à atteindre la machine "156.71.161.202" depuis le subnet "156.71.128.0"... c'est bien normal puisque cette machine se trouve dans le subnet "156.71.160.0",
(1) Request For Comment. Soumission d'une amélioration pour faire évoluer la normalisation des protocoles de réseau.