Les sous-réseaux et masques IP

Rappels

Dans les chapitres précédents nous avons abordé les notions de classes d’adresses IP, de routage et de plan d’adressage. Nous avons également présenté au moins deux cas de justification d’utilisation des sous-réseaux ainsi que le concept général du sous-réseau. Celui-ci, pour rappel, est une sous-répartition d’une adresse réseau standard définie à l’aide de bits inutilisés dans la partie machine de l’adresse IP.

Nous avons vu qu’une adresse IP « standard » comportait une partie réseau (appelée aussi « net-id ») et une partie machine (appelée aussi « net-host »). Le principe est donc de « gratter » quelques bits de la partie machine pour définir une sous répartition de la partie réseau. L’adresse aura donc trois parties :

  • la partie réseau définie sur 1, 2 ou 3 octets selon sa classe
  • la partie sous-réseau définie sur X bits
  • et la partie machine définie sur 3, 2 ou 1 octets (selon la classe de l’adresse) moins les X bits de la partie sous-réseau

Notations

Jusqu’ici, pour définir une adresse IP générique j’utilisais la notation R.R.M.M (pour une classe B par exemple), où R représente la valeur décimale d’un octet réseau et où M représente la valeur décimale d’un octet machine. Nous allons enrichir cette notation pour pouvoir définir l’adresse générique jusqu’au bit ! Ainsi « r » représentera la valeur binaire d’un bit d’un octet réseau, « s » pour les bits sous-réseaux et enfin « m » pour les bits machines. Donc, selon cette notation, une adresse standard de classe B sera notée :

  • R.R.M.M = rrrrrrrr.rrrrrrrr.mmmmmmmm.mmmmmmmm

Supposons maintenant que je dispose de l’adresse, classe B, 128.10.0.0, nous obtiendrons la notation suivante :

  • 128.10.0.0 = 10000000.00001010.00000000.00000000

Pour gagner un peu de temps en écriture, j’aurais pu aussi la représenter tel que : 128.00001010.M.M ou 128.00001010.0.0 ! Nous mélangerons allégrement toutes les notations (décimales, binaires et génériques) mais maintenant que les accords de notation sont fixés, nous nous comprenons n’est-ce pas ? Bien sûr ces notations ne sont pas standard et ne sont à considérer que dans le cadre de ce cours, pour faciliter votre compréhension !

Logique de définition des sous-réseaux

ll est maintenant temps d’entrer dans le vif du sujet ! Le problème se pose généralement ainsi :

  • j’ai une ou deux adresses réseaux IP de classe X
  • j’ai 10 réseaux physiques et 40 machines par réseau
  • quels sous-réseaux dois-je définir pour interconnecter ces réseaux et machines ?

Supposons que vous ayez les adresses 10.0.0.0 (classe A) et 192.168.1.0 (classe C). Vous remarquerez que ces deux adresses sont « non routables », vous êtes donc conforme à la RFC 1918.

Vos 10 réseaux physiques sont interconnectés par des liaisons louées raccordées à des routeurs à chaque extrémité. Vous avez donc 9 liaisons louées, considérées par IP comme des réseaux physiques. Sur chacune de ces liaisons les routeurs d’extrémités doivent avoir une adresse IP sur l’interface raccordée à la liaison. Il vous faut donc en plus de vos sous-réseaux pour vos 10 LAN, 9 sous-réseaux pour vos liaisons louées supportant chacun deux adresses machines.

Votre logique sera la suivante (du moins je vous le conseille !) :

  • Vous créez des « subnets » sur l’adresse réseau de classe C pour les affecter aux liaisons louées. En effet l’adresse de classe C est celle qui présente le moins de place pour la partie machine, mais vous ne dépasserez jamais 2 adresses machines par liaison louée ! Par contre votre réseau pouvant éventuellement s’étendre à de nouveaux LAN (ou sites), vous allez prévoir une extension possible du besoin en sous-réseaux pour vos liaisons louées.
  • Vous créez des subnets sur l’adresse réseau de classe A pour les affecter à vos LANs. En effet, l’adresse de classe A est celle qui présente le plus de place pour définir des machines (3 octets !). Vous avez donc, potentiellement, la possibilité de placer 16 millions de machines sur le réseau 10.0.0.0. Si vous le découpez vous pouvez prévoir, par exemple (et en théorie), 256 sous-réseaux (un octet de la partie machine) supportant chacun 65 536 machines (les deux derniers octets de la partie machine). Vous avez ainsi la possibilité d’ajouter de nouveaux sous-réseaux (LAN ou sites) puisque actuellement vous n’en utilisez que 10 sur les 256 disponibles et sur chacun des sous-réseaux vous avez la possibilité de mettre bien plus de machines que vos 40 initialement prévues.

A ce stade, votre politique d’adressage est définie ! Bravo !

Calcul des sous-réseaux

Première partie : Adressage des LANs

Nous venons de choisir le premier octet machine pour définir des sous-réseaux et les deux derniers octets pour définir les machines de chaque sous-réseau. Le format d’adresse sera donc le suivant :

  • R.ssssssss.M.M soit R.R.S.M.

Les valeurs possibles pour l’octet S de sous-réseau vont donc de 0 (00000000) à 255 (11111111). Vous disposez apparemment donc de 256 sous-réseaux. Est-ce bien sûr ?

  • Quelle est l’adresse du premier sous-réseau ? … Celle qui a tous les bits « s » à 0, soit S=0. Pour définir une adresse sous-réseau, comme pour une adresse réseau, il faut également mettre tous les bits de la partie machine à 0. Donc l’adresse réseau du premier sous-réseau sera 10.0.0.0 ! Mais cette adresse est celle du réseau général ! On ne peut pas l’utiliser. Donc avec 8 bits « s », vous ne pouvez, en principe, définir que 255 sous-réseaux (256 combinaisons mois une !).
  • Quelle est l’adresse du dernier sous-réseau ? … Celle qui a tous les bits « s » à 1, soit S=255, ce qui donne l’adresse 10.255.0.0. Mais ! Rappelez-vous la notion d’adresse de diffusion dirigé dans le chapitre 5 … Pour adresser toutes les machines d’un même réseau, on place à 1 tous les bits de la partie machine. Cette logique est la même pour les sous-réseaux. Quelle sera donc l’adresse de « broadcast » du dernier sous-réseaux ? … Celle ayant tous les bits de la partie machine à 1, soit la valeur 255 pour les deux derniers octets. L’adresse sera donc : 10.255.255.255. Mais c’est l’adresse « broadcast » du réseau général 10.0.0.0 ! On ne peut donc pas utiliser le sous-réseau 10.255.0.0 car son « broadcast » correspondrait à celui du réseau général ! Donc avec 8 bits vous ne pouvez pas définir 256 sous-réseaux, vous ne pouvez pas définir 255 sous-réseaux, vous ne pouvez définir que 254 sous-réseaux !

En vérité, quelque soit le nombre de bits que vous utiliserez pour définir des sous-réseaux, les valeurs tout à 0 pour ses bits et les valeurs tout à 1 seront interdites. Vous disposerez donc de 2N – 2 possibilités !

Pour notre exemple nous disposons donc de 254 sous-réseaux dont les adresses vont de 10.1.0.0 à 10.254.0.0 !

Deuxième partie : Adressage des WANs (Liaisons louées)

Il s’agit ici de définir, sur l’adresse de Classe C fournie une répartition de bits de sous-réseaux qui permettent de définir un maximum de sous-réseau avec la possibilité de mettre au plus deux machines sur chacun d’eux (un routeur à chaque extrémité de la liaison).

Sur une adresse de classe C seul le dernier octet est disponible pour adresser les machines, il faudra, en plus, définir des bits de sous-réseaux sur cet octet. En théorie si on utilise un bit seulement pour la partie machine, on disposera de deux combinaisons (0 et 1) permettant de définir les deux machines. Mais, depuis le chapitre 5, nous savons que les adresses machines 0 et 255 sont impossibles (adresse réseau et broadcast). Nous avons démontré que N bits machines définissez 2N – 2 machines ! Si on ne prend qu’un bit machine on ne pourra donc définir aucune machine (21-2 = 2-2 = 0). Il faut donc au minimum 2 bits machines qui définirons 22-2 = 4-2 = 2 machines. Ces bits seront les deux derniers de l’octet machine de la classe C. Les 6 premiers bits seront donc des bits de sous-réseaux, on aura le format suivant :

  • R.R.R.ssssssmm

Vous remarquez que nous ne sommes pas obligé de prendre tout un octet pour définir des sous-réseaux !

  • Le premier sous-réseau sera celui ayant la combinaison ssssss = 000001 (000000 : est impossible en regard de la démonstration du paragraphe précédent).
  • Le dernier sous-réseau sera celui ayant la combinaison ssssss = 111110 (111111 : est impossible en regard de la démonstration du paragraphe précédent)

Pour définir des réseaux et sous-réseaux on place la partie machine à 0, donc les bits « mm » à 0. Les combinaisons finales sont donc :

  • 192.168.1.00000100 = 192.168.1.4
  • 192.168.1.11111000 = 192.168.1.248

Pour chaque sous-réseau les deux adresses machines possibles sont les combinaisons « 01 » et « 10 » sur les bits « mm« . On obtient donc les adresses suivantes pour les machines du premier sous-réseau :

  • Machine 1 : 192.168.1.00000101 = 192.168.1.5
  • Machine 2 : 192.168.1.00000110 = 192.168.1.6

Les adresses de diffusion (broadcast) sur ces deux sous-réseaux sont les combinaisons « 11 » sur les bits « mm« . On obtient donc les adresses « broadcast » suivantes pour le premier et le dernier sous-réseau :

  • Premier sous-réseau : 192.168.1.00000111 = 192.168.1.7
  • Dernier sous-réseau : 192.168.1.11111011 = 192.168.1.251

Le tableau suivant présente les adresses réseaux, machines et broadcast pour les 5 premiers sous-réseaux. Pour vous entraîner vous pouvez essayer de trouver ces adresses pour les X autres sous-réseaux (une barre de chocolat au premier qui trouve la valeur de X !).

192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7
192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11
192.168.1.12 192.168.1.13 192.168.1.14 192.168.1.15
192.168.1.16 192.168.1.17 192.168.1.18 192.168.1.19
192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23

La question qui tue !

Maintenant vous êtes heureux ! Vous savez calculer des sous-réseaux ! Si ça se trouve, vous trouvez même ça facile ! Je ne supporte pas votre air béat ! Je vais donc figer sur vos faces ce stupide sourire satisfait ! Question … :

  • Comment une machine fait-elle pour savoir qu’elle se trouve dans le sous-réseau 192.168.1.4 quand on lui donne l’adresse 192.168.1.5 ?

Vous n’êtes pas sans savoir qu’il est important pour elle de savoir dans quel réseau ou sous-réseau elle se trouve puisque selon le cas, elle transmettra ses paquets directement à la station destinataire ou à la passerelle ! Or nous savons qu’elle peut repérer son réseau par la valeur du premier octet qui défini la classe d’adresse et donc la portée des octets réseaux. Mais comment peut-elle deviner que vous avez étendue la partie réseau en « grignotant » des bits machines pour définir du sous-réseau ?

Le masque qui sauve !

Heureusement que Zorro est là ! La machine n’a absolument aucun moyen de savoir si vous avez défini des sous-réseaux rien qu’en scrutant son adresse ! C’est pourquoi vous allez devoir l’informer de la portée réelle des octets réseaux dans son adresse. Pour cela vous allez lui donner une information supplémentaire, qu’on appelle le masque !

Le principe est simple ! Vous allez ajouter une information qui ressemble à une adresse IP mais qui a un format spécial. Dans cette fausse adresse :

  • vous placer à 1 tous les bits qui, dans l’adresse initiale, définissent le réseau et le sous-réseau.
  • vous placer à 0 tous les bits qui, dans l’adresse initiale, définissent la machine.

La machine, en superposant son masque sur son adresse, pourra ainsi repérer la portée des bits réseaux et sous-réseau.

Par exemple, le masque IP d’une adresse de Classe A standard (sans sous-réseaux) aura tous les bits du premier octet à 1 puisque seul le premier octet d’une adresse classe A, défini des bits réseaux :

  • Adresse classe A : R.M.M.M
  • Masque classe A : 11111111.M.M.M = 255.M.M.M

Si nous reprenons nos deux exemples précédents, les masques se définissent comme suit.

Adresses des LANs

Nous utilisions une classe A avec le deuxième octet réservé à la définition des sous-réseaux. Le masque associé doit donc couvrir (masquer !) les deux premiers octets réseau :

  • Adresse sous-réseau : 10.ssssssss.M.M
  • Masque associé : 11111111.11111111.0.0 = 255.255.0.0

Lorsque vous fixez une adresse à une machine, vous lui donnez également son masque. Par exemple, pour la machine 2 du sous-réseau 5, vous indiquerez:

  • Adresse machine : 10.5.0.2
  • Masque : 255.255.0.0

Ainsi la machine sait qu’elle est dans le sous-réseau 10.5.0.0 et non pas dans le réseau 10.0.0.0 !

Adresse des WANs

La logique est la même, nous avons utilisé 6 bits du dernier octet pour définir des sous réseau :

  • Adresse sous-réseau : 192.168.1.ssssssmm
  • Masque associé : 11111111.11111111.11111111.11111100 = 255.255.255.252

Le dernier octet du masque à la valeur 252 car seuls les 6 premiers bits de l’octet sont à 1. Les deux derniers bits définissant les machines, ils sont à 0 !

Par exemple, pour la machine 1 du sous-réseau 5, vous indiquerez :

  • Adresse machine : 192.168.1.21
  • Masque : 255.255.255.252

Et voilà ! Vous savez tout des sous-réseaux et masques !

Accords de notations standards

Un architecte réseau va dresser des plans d’adressages dans des tableaux, il va faire des schémas de réseaux pour imager l’architecture finale. Pour chacune de ces opérations il faudra qu »il soit en mesure d’afficher le plan d’adressage selon une notation standard compréhensible par tout le monde.

Dans les schémas précédents de ce cours, j’ai souvent indiqué les adresses machines en entier avec une petite flèche dirigé vers l’interface à laquelle elle était associée. Cette notation est lourde et surcharge les schémas.

Il existe donc des accords de notation :

  • Une adresse IP doit toujours être indiquée avec son masque, qu’elle soit « subnettée » ou pas.
  • L’adresse réseau ou sous-réseau est affectée au réseau physique
  • L’adresse machine est indiquée à coté de l’interface sans la partie réseau. En effet on a déjà la partie réseau indiquée par l’adresse réseau associée au réseau physique.

Il existe deux accords pour indiquer un masque associé à une adresse :

  • Indication littérale du masque. Exemple : 14.0.0.0 / 255.0.0.0 ou 192.168.1.20 / 255.255.255.252. Le masque fait apparaître clairement la valeur décimale de chaque octet.
  • Indication contractée. Exemple : 14.0.0.0/8 (pour un masque 255.0.0.0) ou 192.168.1.20/30 (pour un masque 255.255.255.252). Le /n indique le nombre de bits réseaux et sous-réseaux dans l’adresse. Cette deuxième forme est aujourd’hui la plus usitée.

Conclusion du chapitre

Et voilà ! Ce chapitre conclu cette longue, longue présentation de l’adressage IP. Vous vous sentez soulagé ? Rassurez-vous, le plus dur reste à venir !

Vous savez maintenant, en théorie, mettre en place un plan d’adressage IP, dit de niveau 3. Vous devez être en mesure d’éviter les pièges courants et vous comprenez enfin à quoi correspondent les chiffres dans les « Propriétés réseaux – Protocole IP » de votre PC.

Dans le chapitre suivant (pour se reposer) nous allons descendre d’une couche, pour étudier les spécificités du fonctionnement d’IP sur un réseau local, et notamment comprendre le fonctionnement d’ARP !

Page Précédente  |  Page Suivante