Decoupage réseau
par
, 24/11/2018 à 17h47 (1112 Affichages)
Le sujet est un extrait de cette discussion Calcul de sous réseaux
Le principe de la notation CIDR en bref consiste a considérer les 32 bits qui font les 4 octets de l'adresse v4. Chaque octet ayant 8 bits.
En considérant par exemple un octet dont tous les bits sont désactivés, disponible pour un découpage, la definition de la partie réseau se fait en activant le(s) bit(s) significatif(s); le bit le plus à gauche vers la droite correspondant à la dimension. Ce qui appliqué à l'octet pour activer un ou plusieurs bits contigus, on prend l'une des valeurs de ces 8 nombres: 128; 192; 224; 240; 248; 252; 254; 255.
L'adresse 10.0.0.0/8 signifie que tous les 8 premiers sont activés pour le masque soit 255.0.0.0
Par exemple sur 10.0.1.0/24 que tu veux découper cette plage en 32 sous plages de 8 adresses.
Tu as 8 bits disponible dans cette adresse.
En prenant les 3 bits les moins significatifs sur cette adresse réseau, tu aura 5 bits restants pour tes sous réseaux.
La base étant binaire, Donc 2^5 = 32 valeurs possibles et 2^3 = 8 valeurs possibles.
Ce qui te donne 15 adresses possibles de sous réseaux ayant chacune une plage de 8 adresses.
Les sous plages seront considérés comme suit :
Network Broadcast 10.0.1.0/29 10.0.1.1/29 ... 10.0.1.6/29 10.0.1.7/29
Autrement dit, si tu as une adresse 10.0.0.0/8 en 123 sous réseaux, tu as à droite 24 bits disponibles pour déterminer le dimensionnement.
C'est le nombre de sous réseau souhaite que tu veux atteindre qui impose dans ce cas le nombre d'adresses par réseau et le masque a choisir qui serait compatible avec l'alignement des bits.
Le 1er bloc qui suit le bloc réseau est a considérer comme le bloc que tu veux distribuer.
La question que tu devras te poser est : Quel est le découpage possible de 255, en suivant la logique des bits ? Ou plutôt dans quel alignement de bits je peux obtenir 123 adresses (qui est plus légitime).
En ceci la réponse est 7 bits qui prennent au max 127 valeurs.
Le masque sera donc de 15 bits. les sous réseaux auront 17 bits.
soit une plage possible de 10.0.0.0/15 a 10.127.0.0/15 dans lequel tu peux piocher tes 123 sous réseaux.
Network ... ... ... Broadcast 10.0.0.0/15 10.1.0.0/15 ... 10.123.0.0/15 10.127.0.0/15
Les explications beaucoup plus techniques qui suivent sont de vxlan.is.top
1) Un peu de calculs...
Partons d'un bloc IP de subnet mask /n.
On veut splitter ce bloc en k sous-blocs.
Quelle est la condition nécessaire et suffisante sur k pour que ces k sous-blocs soient de largeur égale ?
L'espace d'adressage fourni par B /n est de largeur 2^(32-n).
On divise l'espace d'adressage en k sous-blocs, chaque sous-bloc fournit donc 2^(32-n)/k adresses IP.
La condition nécessaire et suffisante pour que les k sous-blocs occupent tout le bloc de mask n est la suivante :
2^(32-n)/k doit être une puissance de 2
Si ça n'est pas la cas, l'exercice de pensée est terminé :-)
Prenons ton exemple.
Si tu pars de 10.142.0.0/16, n=16, k=123,
2^(32-16)/123=532 et des poussières
alors impossible de partager ton /16 en 123 sous-réseaux de largeur égale.
2) En revanche, si 2^(32-n)/k est une puissance de 2, chaque sous-bloc fournit 2^m host et le subnet mask de chaque sous-bloc sera égal à 32-m.
Si on reprent ton exemple de 10.142.0.0/16, on sera dans ce cas de figure si on veut splitter le 10.142.0.0/16 en 128 blocs parce que :
2^(32-16)/128 = 512 = 2^9
Il faudra 9 bits dans chaque sous-réseau pour pouvoir coder les 512 adresses IP.
Le subnet mask de tous ces sous-réseaux sera donc égal à 32-9=23.
Par récurrence, on trouve facilement que ces sous-réseaux seront de la forme :
10.142.2a.0/23 avec a dans {0,1,...,127}
ce qui donne bien 128 sous-réseaux IP de largeur 512 IP (All 0 et 1 inclus) et on n'a perdu aucune adresse IP du bloc.
3) En reprenant ton énoncé, si je veux diviser le bloc 10.142.0.0/16 en 123 sous-blocs de largeur égale et de "façon maximale", ça donnera les sous-réseaux
10.142.2a.0/23 avec a dans {0,1,...,122}
en laissant les sous-réseaux 10.142.246.0/23, 10.142.248.0/23, ..., 10.142.252.0/23, 10.142.254.0/23 inoccupés donc encore provisionnables.
Ces types de raisonnements relèvent de l'IP design et sont utilisés pour calculer les "summary" ou agrégats IP dans les grosses infras de routage.