Le CIDR
Le Classless Inter-Domain Routing (CIDR), est mis au point en 1993 afin de diminuer la taille de la table de routage contenue dans les routeurs. Pour cela, on agrège plusieurs entrées de cette table en une seule.
La distinction entre les adresses de classe A, B ou C a été ainsi rendue obsolète, de sorte que la totalité de l'espace d'adressage unicast puisse être gérée comme une collection unique de sous-réseaux indépendamment de la notion de classe. Le masque de sous-réseau ne peut plus être déduit de l'adresse IP elle-même, les protocoles de routage compatibles avec CIDR, dits classless, doivent donc accompagner les adresses du masque correspondant. C'est le cas de Border Gateway Protocol dans sa version 4, utilisé sur Internet (RFC
La notation avec un slash ( / )
Cela veut dire que l'adresse IP 192.168.1.45 est associée à un masque ayant 24 bits de masqués.
La notation avec un slash semble devenir la plus courante et la plus utilisée aujourd'hui notamment avec le succès du CIDR
Exemple simple !
192.168.10.0/23 représenterait une fusion de deux sous-réseaux de la classe C, 192.168.10.0 et 192.168.11.0 ayant chacun un masque de sous-réseau de… 255.255.255.0.
Cela dit, avec l'adressage CIDR, le masque /23 nous donne l'équation suivante :
192.168.10.0/23 (adressage CIDR) = 192.168.10.0/24 (ou 255.255.255.0) + 192.168.11.0/24 (ou 255.255.255.0)
Exemple
Comment résumer une route
Étape
1 : détecter les réseaux ayant le même préfixe
Étape
2 : convertir des réseaux en binaire
Subnet 1 : 192.168.0.0/24 soit 11000000. 10101000. 00000000.00000000/24
Subnet 2 : 192.168.1.0/24 soit 11000000. 10101000. 00000001.00000000/24
Subnet 3 : 192.168.2.0/24 soit 11000000. 10101000. 00000010.00000000/24
Subnet 4 : 192.168.3.0/24 soit 11000000. 10101000. 00000011.00000000/24
Étapes
3 et 4 : détecter les motifs entre les sous-réseaux en binaire (étape 3) et les
compter (étape 4)
Tous ces sous-réseaux ont
11000000.10101000.000000 en commun. Comptons le nombre de bits : il y en a 22
Donc : 11000000.10101000.00000000.00000000/22 soit
192.168.0.0/22
Le VLSM
Le calcul du nombre d'adresses d'un sous-réseau est le suivant, 2taille de l'adresse - masque.
Un fournisseur d'accès internet peut ainsi se voir allouer un bloc /19 (soit 232-19 = 213 = 8192 adresses) et créer des sous-réseaux de taille variable en fonction des besoins à l'intérieur de celui-ci : de /30 pour des liens points-à-point à /24 pour un réseau local de 200 ordinateurs. Seul le bloc /19 sera visible pour les réseaux extérieurs, ce qui réalise l'agrégation et l'efficacité dans l'utilisation des adresses.
Vous avez un réseau de 250 hôtes. Vous voulez réduire la congestion de ce dernier et décidez de le subnetter en plusieurs sous-réseaux. Grâce aux techniques du subnetting , vous décidez de le subnetter en cinq réseaux de 50 hôtes chacun.
PS : Il est impossible d’obtenir cinq réseaux de 50 hôtes pile chacun (d’ailleurs, c’est une mauvaise pratique de choisir un masque qui nous donne exactement le nombre d’hôtes dont nous avons besoin). À la rigueur, nous pourrons obtenir cinq réseaux pouvant contenir au moins 50 hôtes. Dans ce cas, le réseau pourrait contenir un maximum de 62 hôtes si on masque 2 bits
250 = 2^6-2 (6 bits pour la partie hote)
Vous obtenez alors vos cinq sous-réseaux et vous êtes contents : le but est atteint.
Maintenant, imaginez que vous êtes un administrateur réseau employé dans une entreprise. Vous avez un sous-réseau 192.168.100.0/24. Votre patron vous dit qu’il souhaite une segmentation par fonctions,
Il vous donne les spécifications suivantes :
·
Un sous-réseau de
50 hôtes, uniquement pour les
secrétaires de l’entreprise.
·
Deux
sous-réseaux de 12 hôtes chacun,
pour les techniciens et les comptables.
·
Un sous-réseau de
27 hôtes pour les développeurs
d’applications.
·
routeur_AE, qui relie le réseau A et E ;
·
routeur_link, qui relie les réseaux F, G et H au réseau E ;
·
etc.
implémentation des masques à longueurs variables
Les prérequis pour pouvoir suivre et comprendre ce TD sont :
·
Maîtrise de la
notion de masque de sous-réseau et son utilité.
·
Maîtrise des 8
premières puissances de 2.
·
Maîtrise de la
conversion du binaire au décimal et l’inverse.
·
Maîtrise de la
notion du subnetting et sa procédure.
·
Maîtrise de la
notion de passerelle et son rôle.
·
Maîtrise de
l’adressage CIDR et sa notation.
Étape 1 : se focaliser sur le sous-réseau qui a le plus grand nombre
d’hôtes
Combien de bits devons-nous utiliser pour avoir au moins 50 hôtes ?
2^6 -2 = 62 Nous allons donc devoir garder 6 bits de la partie « host » de notre masque.
En binaire, nous obtenons donc : 11000000 . 10101000 . 11001000 . nnhhhhhh avec n les bits disponibles pour le réseau, et h les bits qu’on ne doit pas masquer pour obtenir au moins 50 hôtes.
Étape 2 : choisir un network ID pour l’étape 1
Citation
00hhhhhh ;
01hhhhhh ;
10hhhhhh ;
11hhhhhh.
En remplaçant le h (pour hôte) par 0 (puisque nous ne les masquons pas), on obtient le network ID pour chaque sous-réseau, soit les suivants :
Citation
00000000 = .0
01000000 = .64
10000000 = .128
11000000 = .192
N'ayant que 2 bits masqués pour le sous-réseau, on peut donc utiliser un masque de /26 ou 255.255.255.192 pour chacun de ses sous-réseaux obtenus, juste comme on ferait dans un réseau utilisant l’adressage par classe.
Voilà. Nous avons 4 network ID, vous pouvez choisir n’importe lequel pour le sous-réseau A. Dans ce TD, nous choisissons au hasard .64, soit la notation 192.168.100.64/26 (Network ID/masque). Les autres sous-réseaux devront se contenter des trois sous-réseaux restants
Étape 3 : Se focaliser sur le second plus grand
sous-réseau
Citation
11000000 . 10101000 . 11001000 . nnnhhhhh
N’est-ce pas ? Alors, nous pouvons faire toutes les combinaisons possibles avec les trois bits pour n, n’est-ce pas ? Faux !
Faux ! Nous n’avons besoin que de 5 bits. C'est logique puisque nous en avons trois consacrés au sous-réseau, non ?
Oui, mais non ! Si vous le faites ainsi, vous êtes en train de subnetter le network ID originel soit le 192.168.100.0, alors que c’est ce que nous avons déjà fait dans l’étape 1, en masquant 2 bits pour le réseau. Mais ici, nous voulons subnetter un subnet. C’est totalement différent, nous allons donc prendre un sous-réseau déjà obtenu dans l’étape 1 et le re-subnetter à nouveau
Dans l’étape 1, nous avions obtenu 4 combinaisons, soit 4 network ID. Nous avons sélectionné le 255.255.255.192 soit le /26 pour le sous-réseau A. Il nous reste donc trois network ID disponibles, soit :
Citation
00000000 = .0/26
01000000 = .64/26 // sous-réseau A
10000000 = .128/26
11000000 = .192/26
Choisissons le .128 dont le network ID sera 192.168.100.128/26, ce qui donne en binaire (focus sur le 4e octet) : 10000000. Or nous n’avons besoin que de 5 bits disponibles pour les hôtes, alors qu’ici nous en avons 6. Nous allons donc supprimer un bit pour les hôtes et l’allouer au sous-réseau.
Citation
10n00000.
Voilà ! Nous avons donc 3 bits pour le sous-réseau et 5 pour les hôtes. Maintenant, nous pouvons donc créer deux sous-réseaux à partir du sous-réseau original.
C’est cela l’intérêt du VLSM, on subdivise encore un sous-réseau. Nous avons donc :
Citation
10000000 = .128
10100000 = .160
En résumé, voici ce que nous avons fait :
·
1. Nous
disposions à l'origine d'un Network ID de 192.168.100.0/24.
·
2. Nous l’avons
subdivisé pour obtenir un sous-réseau ayant un masque de 192.168.100.64/26 et
pouvant contenir au moins 50 hôtes.
·
3. Nous avons
pris le sous-réseau obtenu dans l’étape 2 et l’avons re-subnetté en
deux sous-réseaux (.128 et .160) qui auront un masque de... /27.
Ici également, nous pouvons choisir n'importe quel Network ID : choisissons le premier, soit .128/27. Le sous-réseau restant (.160/27) pourrait être utilisé dans le futur, s'il y a agrandissement du sous-réseau.
Voici la liste des Network ID que nous avons obtenus depuis l’étape 1 :
Citation
00000000 = .0/26 | libre pour être re-subnetté
01000000 = .64/26 | sous-réseau A
10000000 = .128/26 | Nous ne pouvons plus l’utiliser, il a été re-subnetté
10000000 = .128/27 | Nous prenons celui-ci pour le sous-réseau B
10100000 = .160/27 | nous gardons celui-ci pour le futur
Étape 4 : se focaliser sur le troisième plus vaste
sous-réseau
Citation
10100000
Nous
avons 5 bits libres pour les hôtes, ce qui était suffisant pour le réseau B qui
nécessitait 27 hôtes. Mais pour le réseau C ou D, nous aurons une perte de
27-12 = 15 hôtes, et c’est ce que nous voulons éviter. Nous allons donc retirer
un bit de la partie hôte et l’allouer à la partie réseau de notre masque de
manière à avoir 4 bits pour les hôtes et 4 pour la partie réseau car 24-2 = 14,
ce qui nous convient.
Nous avons donc :
Citation
101n0000
·
10 représente ici les deux bits consacrés au réseau au
départ dans l’étape 1. C’est notre motif de base : nous ne devons pas le
changer, le reste de nos subnets en binaire doit commencer par 00.
·
1 représente le bit sur lequel nous nous sommes
concentrés dans l’étape 3.
·
n est le bit supplémentaire que nous allons ajouter à
la partie réseau du masque de manière à ne rester qu’avec 4 bits pour les hôtes.
Grace à ce bit de plus que nous avons, nous pouvons donc avoir deux combinaisons (soit le laisser à 0 ou le masquer à 1), ce qui nous donne la possibilité d’obtenir deux autres sous-réseaux à partir du sous-réseau de base, ce qui nous donne (avec le focus sur le 4e octet toujours) :
Citation
10100000
= .160
10110000 = .176
10110000 = .176
Il
ne nous reste plus qu’à trouver le nouveau masque pour ces deux nouveaux
sous-réseaux, ce qui est simple puisque nous n’avons qu’à compter le nombre de
bits masqués. Soit 11111111.11111111.11111111.11110000,
puisque nous n’avons que 4 bits pour les hôtes, le reste des bits est donc
masqué pour la partie réseau.
Nous aurons donc un masque de 255.255.255.240
ou /28 pour la notation CIDR.
Résumons
donc tous les subnets obtenus depuis l’étape 1 afin de choisir un Network ID
pour les réseaux C et D.
Citation
00000000
= .0/26 | subnet libre pour être re-subnetté
01000000 = .64/26 | déjà utilisé par le sous-réseau A
10000000 = .128/26 | Nous ne pouvons plus utiliser celui-ci, car nous l’avons re-subnetté
01000000 = .64/26 | déjà utilisé par le sous-réseau A
10000000 = .128/26 | Nous ne pouvons plus utiliser celui-ci, car nous l’avons re-subnetté
11000000 = .192/26 | subnet pour un futur agrandissement
10000000 = .128/27 | déjà utilisé pour le sous-réseau B
10100000 = .160/27 | nous ne pouvons plus l’utiliser, car nous l’avons re-subnetté
10100000 = .160/28 | Prenons celui-ci pour le sous-réseau C
10110000 = .176/28 | Prenons celui-ci pour le sous-réseau D
Cinquième et dernière étape : déterminer les Network
ID pour les interfaces de liaison
Regardez
sur votre schéma. Comment allons-nous nouer ces sous-réseaux entre eux ? Par un
routeur bien entendu, et c’est exactement ce que fait le routeur routeur_link
dans le schéma. Mais comme chaque routeur, il possède deux interfaces de
liaison. Il faut donc deux adresses IP pour relier F et E, deux pour relier G
et E, et deux pour relier H et E.
Nous pouvons le faire les yeux fermés en binaire, nous n'avons besoin de 2 bits car 22-2 = 2. Ça tombe pile-poil. ;) Nous devons donc choisir un sous-réseau libre pour être re-subnetté. Vous pouvez choisir celui que vous voulez parmi les sous-réseaux libres que nous avons obtenu jusqu’ici. Pour suivre ce TD, choisissez le sous-réseau 00000000/26.
Ici également, nous nous rendons compte que ce sous-réseau a été subnetté de manière à obtenir au moins 50 hôtes (sous-réseau A), voilà pourquoi 6 bits sont disponibles pour les hôtes. Or nous n’avons besoin que de deux bits. Qu’allons-nous faire ? Exactement ce que nous avons fait dans les étapes précédentes, nous allons allouer 4 bits de plus à la partie réseau du masque pour ne rester qu’avec deux bits pour les hôtes.
Nous obtenons donc ceci :
Citation
00nnnnhh
Maintenant
nous avons 4 bits alloués au réseau, ce qui donne la possibilité d’obtenir 16
sous-réseaux (2^4) à partir de ce sous-réseau. Vous devez être capable de
déterminer chacun de ces 16 sous-réseaux, mais comme nous sommes gentils
aujourd’hui, nous vous écrivons les huit premiers, l’avant-dernier et
le dernier.
Citation
00000000
= .0/30
00000100 = .4/30
00001000 = .8/30
00001100 = .12/30
00010000 = .16/30
00010100 = .20/30
00011000 = .24/30
00011100 = .28/30
00100000 = .32/30
................................................
................................................
00111000 = .56/30
00111100 = .60/30
00000100 = .4/30
00001000 = .8/30
00001100 = .12/30
00010000 = .16/30
00010100 = .20/30
00011000 = .24/30
00011100 = .28/30
00100000 = .32/30
................................................
................................................
00111000 = .56/30
00111100 = .60/30
PS : chacun de ces sous-réseaux nous donnera deux hôtes disponibles, vous pouvez donc choisir quatre sous-réseaux parmi les 16 pour les interfaces de liaison, c'est-à-dire pour les adresses IP de chaque interface du routeur.
Résumons chacun des sous-réseaux trouvés depuis l’étape 1 :
Citation
00000000
= .0/26 | nous ne pouvons plus utiliser celui-ci, nous l’avons re-subnetté
00000000 = .0/30 | utilisons celui-ci pour le sous-réseau E
00000100 = .4/30 | sous-réseau F
00001000 = .8/30 | sous-réseau G
00001100 = .12/30 | sous-réseau H
01000000 = .64/26 | sous-réseau A
10000000 = .128/26 | Nous ne pouvons plus utiliser celui-ci, car nous l’avons re-subnetté
11000000 = .192/26 | subnet pour un futur agrandissement
10000000 = .128/27 | sous-réseau B
10100000 = .160/27 | nous ne pouvons plus l’utiliser, car nous l’avons re-subnetté
10100000 = .160/28 | sous-réseau C
10110000 = .176/28 | sous-réseau D
conclusion...
00000000 = .0/30 | utilisons celui-ci pour le sous-réseau E
00000100 = .4/30 | sous-réseau F
00001000 = .8/30 | sous-réseau G
00001100 = .12/30 | sous-réseau H
01000000 = .64/26 | sous-réseau A
10000000 = .128/26 | Nous ne pouvons plus utiliser celui-ci, car nous l’avons re-subnetté
11000000 = .192/26 | subnet pour un futur agrandissement
10000000 = .128/27 | sous-réseau B
10100000 = .160/27 | nous ne pouvons plus l’utiliser, car nous l’avons re-subnetté
10100000 = .160/28 | sous-réseau C
10110000 = .176/28 | sous-réseau D
conclusion...
Bonne Chance
mohameddouhaji7@gmail.com