mardi 30 décembre 2014

Adresses IP (v4) et masque de sous réseau


Les classiques : le netID et HostID

Pour aller plus loin dans l'étude des réseaux, il est indispensable de passer par un peu de théorie rébarbative, mais hélas nécessaire, nous allons donc essayer de faire çà en douceur....

Un masque de sous réseau, mais pour quoi faire?


Si tout le monde comprend implicitement à quoi sert une adresse IP, les choses se compliquent dès lors que l'on parle du masque de sous réseau. Pourtant, ce masque est indispensable dans le fonctionnement des réseaux locaux (LAN), et également lors du routage entre LANs (que l'on passe par internet ou non).

Le masque de sous réseau permet de déterminer la partie (nombre de bits dont la valeur est  0 ou 1) réservée à l'adressage (netid), et la partie (nombre de bits dont la valeur est 0 ou 1) utilisée pour adresser des hôtes (hostid :  les adresses IP que l'on pourra affecter à des hôtes).

Pour déterminer le hostid et le netid d'une adresse IP, il faut réaliser un ET logique entre l'adresse IP et son masque. Il faut donc transformer l'adresse IP (forme décimale) en forme binaire, idem pour le masque.


Conversion Décimal->Binaire

Les adresses IPv4 sont codées sous 4 chiffres en décimal: exemple 192.168.1.1

Pour calculer les netID et hostID (la partie réservée à indiquer le réseau, puis la partie réservée pour les hôtes, cad les adresses IP que l'on pourra distribuer).

Pour convertir ces 4 nombres décimaux en notation binaire, il existe plusieurs solutions, je vous propose celle-ci:

Les valeurs décimales possibles pour une adresse IP vont de 0 à 255. Soit 256 valeurs possibles.
Pour coder 256 valeurs possibles en décimal, il faut 2^8 bits (2^8=256).

Donc, une adresse IP 192.168.1.1 sera traduite en binaire par 4 chiffres de 8 bits en décimal:
192.168.1.1 = wwwwwwww.xxxxxxxx.yyyyyyyy.zzzzzzzz

Comment transformer du décimal en binaire?

Facile: dans le tableau ci dessous, 192 est en binaire, sur la ligne d'en dessous, sont représentés les 8 bits avec leur valeur correspondante en décimal: Le bit de poids fort (le bit le plus à gauche) correspond à la valeur 128 en décimal, le suivant 64, puis 32 etc, et le bit de poids faible (le plus à droite), à pour valeur 1 en décimal.


Pour convertir du décimal en binaire, il suffit de déterminer les bits que l'on va mettre à 1 pour obtenir 192 en binaire.
192-128, (premier bit de poids fort)=64, le bit de poids fort sera mis à 1
64=64 (second bit de poids fort) =0, le second bit sera mis à 1
tous les autres bits seront ensuite mis à 0
192 en binaire s'écrit donc 11000000

Faisons de même avec 168 en nous basant sur le même tableau:
168-128=40, le premier bit de poids fort sera mis à 1
40-64=pas possible, ceci donne une valeur négative, le second bit sera mis à 0
40-32=8, le troisème bit sera mis à 1
8-16=pas possible, car négatif, le 4ème bit sera mis à 0
8-8=0, le 5eme bit sera mis à 1
les bits restant seront à 0
168 s'écrit en binaire comme ceci: 10101000


Déterminer les parties netid et hostid, numéro de réseau et adresse de broadcast à partir d'une adresse IP et de son masque.

Maintenant que nous savons convertir du décimal en binaire, nous pouvons déterminer le netID et le hostID en réalisant un ET logique entre les deux (en binaire)

Rappels sur l'opération ET logique en binaire:
1 ET 1 = 1
1 ET 0 = 0
0 ET 1 = 0
0 ET 0 = 0

Voyons ce que ceci va donner avec l'adresse IP 192.168.1.1 et le masque 255.255.255.0
Ci dessous, 192.168.1.1 a été converti en binaire, et le masque aussi.
En troisième ligne, nous réalisons un ET logique.
En dernière ligne, on convertit les 4 chiffres binaires en décimal

Le numéro du réseau est 192.168.1.0, cette adresse IP n'est affectable à aucun appareil, il sert de frontière au sous réseau (le sous réseau commence à 192.168.1.0).

Le NetID est 192.168.1, c'est la partie permettant de déterminer avec quel sous réseau nous travaillons.
Le HostID est le dernier groupe de 8 bits: Celui dont tous les bits sont à 0. 
Nous pouvons faire varier ce dernier chiffre de 0 à 255.

Comme nous venons de le voir, sur ce sous réseau, le 0 représente le numéro du sous réseau et ne pourra pas être utilisé (il sert de frontière). Il existe une autre frontière: le broadcast.
L'adresse de broadcast est toujours la dernière adresse IP du sous réseau, ici ce sera 255 (se déduit intuitivement: la dernière valeur possible du dernier chiffre binaire).

Cette adresse de broadcast peut s'obtenir en réalisant un OU logique entre l'adresse IP et le masque inversé. Le masque inversé s'obtient simplement en mettant à 0 tous les bits à 1 et à 1 tous les bits à 0.

Ou logique:
0 OU 1 = 1
1 OU 0 = 1
1 OU 1 = 1
0 OU 0 = 0

L'erreur la plus classique


Est de considérer que tous les numéros de sous réseau commencent par 0 et ont pour adresse de broadcast 255. C'est une très grosse erreur, en fait, c'était vrai il y a 20 ans, lorsque les réseaux étaient découpés en classe d'adressage, mais depuis le temps, ce concept a disparu, et on ne parle plus que de masque CIDR.
On aura donc très souvent des numéros de réseau ne commencant pas par 0 et n'ayant pas comme adresse de broadcast 255.


Exemple: refaites les calculs, mais avec l'adresse IP 192.168.1.17 et le masque 255.255.255.240
Le numéro du réseau sera 192.168.1.16, et l'adresse de broadcast 192.168.1.31

La méthode intuitive est donc à proscrire, et pour bien comprendre ce fonctionnement il convient de réaliser plusieurs conversions manuelles....par la suite, de très nombreux outils existent sur le web pour réaliser automatique ces conversions.

Je vous conseille ici la calculette Cisco certification Kits subnet calculator qui est un excellent outil d'aide au découpage de sous réseaux.

CIDR

La notation "simple" des masques (par exemple 255.255.255.0) est désuette.
Aujourd'hui nous notons le masque de sous réseau en notation CIDR. (Classless Inter Domain Routing), qui consiste à indiquer simplement le nombre de bits utilisés dans le masque, précédé du caractère /

/24 représente donc un masque de 24 bits à 1 (soit 255.255.255.0 en décimal)
/26 représente donc un masque de 26 bits à 1 (soit 255.255.255.192 en décimal).

192.168.1.1 masque 255.255.255.0 s'écrit donc 192.168.1.1/24
192.168.1.17 masque 255.255.255.240 s'écrit donc 192.168.1.17/28 



Compliqué?

Il faut jouer un peu avec ce concept.
Armé de la calculette de cisco (ou autre) exercez vous à calculer manuellement les netid, hostid, numéro de réseau, adresse de broadcast pour bien comprendre le fonctionnement.
Seule la pratique permet de bien intégrer ces concepts.

Avec 3 ou 4 heures d'entrainement répartis sur une semaine, vous devriez être au top!



La suite: étude de réseau avec Cisco Packet Tracer


Nous sommes désormais armés du minimum pour étudier nos premiers réseaux dans le simulateur packet tracer.

Je vous invite donc à télécharger Cisco Packet Tracer 6 et l'installer sur votre PC, car la prochaine fois, nous allons étudier plus finement le fonctionnement des réseaux avec cet indispensable outil de formation.










Aucun commentaire:

Enregistrer un commentaire