Fonctionnement des réseaux TCP/IP : Couche 3 : Réseau⚓
Introduction
La Couche 3 s'assure de la transmission d'une information d'un réseau local à un autre. La couche 3 va donc me permettre de joindre n'importe quel réseau sur Internet, en passant à travers d'autres réseaux. La connexion à une machine sur un autre réseau se fera à travers des réseaux, de proche en proche.
La commande traceroute (ou tracert) permet d'indiquer par quelle hôte l'information circule pour aller d'un point A à un point B. Ci dessous un extrait du résultat de cette commande. On remarque que pour se connecter au serveur qui héberge wikipedia, les données sont passées par 8 réseaux différents :
Asresse IP
Dans sa version 4, IP définit une adresse sur 4 octets. Une partie définit l'adresse du réseau (NetID ou SubnetID suivant le cas), l'autre partie définit l'adresse de l'hôte dans le réseau (HostID). La taille relative de chaque partie varie suivant le masque de (sous) réseau. Afin de simplifier la lecture et l'écriture d'adresses IP, les adresses sont affichée en général avec la notation en décimal pointée. Cette dernière sépare les 4 octets sous forme de 4 chiffres décimaux allant de 0 à 255.
Exemple : 192.168.0.1
Les classes d'adresse
Bien que cette façon de faire soit désormais obsolète, il reste intéressant de l'étudier, pour mieux comprendre la notion de masque de sous-réseau.
Hormis la classe D multicast, destinée à faire de la diffusion d'information pour plusieurs hôtes simultanément, il existe trois classes d'adresses IP:

La classe A permet de créer peu de réseaux, mais avec beaucoup d'hôtes dans chaque réseau, La classe C faisant l'inverse.
Étendue de chaque classe :
Pour savoir à quelle classe appartient une adresse la méthode consiste à retenir la règle logique suivante :
La classe est définie par les bits les plus lourds (les plus à gauche)
Le bit le moins signifiant pour la classe est toujours un 0
Les autres sont tous à 1
La classe A est signalée par un seul bit, donc obligatoirement un 0
La classe B par deux bits, donc 1 0
La classe C par trois bits, donc 1 1 0
La classe D (multicast) par 4 bits donc 1 1 1 0

Si l'on arrive à retenir la définition ou son image, ça devient facile de retrouver l'étendue de chaque classe :
Classe | Première adresse | Dernière adresse |
A | 0.0.0.1 | 127.255.255.254 |
B | 128.0.0.1 | 191.255.255.254 |
C | 192.0.0.1 | 223.255.255.254 |
D | 224.0.0.1 | 239.255.255.254 |
A ce stade, nous pourrions penser qu'il peut y avoir, par exemple, 128 réseaux de classe A, avec la possibilité d'avoir 16 777 216 hôtes dans chaque réseau. C'est bien entendu, un peu plus compliqué que çà.
Il y a déjà quelques adresses que l'on ne peut pas attribuer à un hôte:
L'adresse d'hôte =0 (exemple: 192.168.1.0 dans une classe C) : Par convention, l'adresse IP dont la partie hôte est nulle est réservée à l'identification du réseau.
L'adresse d'hôte avec tous ses bits à 1 (exemple: 192.168.1.255) : Par convention, cette adresse signifie que tous les hôtes du réseau 192.168.1.0 sont concernés (Adresse de broadcast).
Les réseaux privés
Une adresse Internet doit être unique. Cette considération, qui ne posait pas trop de problèmes pour des réseaux d'entreprises coupés du reste du monde, devient très restrictive à l'échelle de l'Internet où chaque adresse IP doit être unique à l'échelle planétaire. Ceci représente une contrainte énorme, et qui fait que la pénurie d'adresses IP est une catastrophe annoncée bien plus certaine que celle du bug de l'an 2000. (le prochain protocole IP v6 prévoit de la marge,)
Pour permettre aux entreprises de construire leur réseau privé, il a donc été réservé dans chaque classe A, B et C des adresses de réseaux qui ne sont jamais attribuées sur l'Internet (RFC 1918). Tout paquet de données contenant une adresse appartenant à ces réseaux doit être éliminé par le premier routeur établissant une connexion avec l'Internet.
Ces réseaux privés sont :
Classe | Réseaux privés | Identification |
A | 10.0.0.0 | Pour les réseaux privés |
A | 127.0.0.0 | Pour l'interface de boucle locale (localhost ) |
B | 169.254.0.0 à 169.254.255.255 | Pour l'auto-configuration en réseau local |
B | 172.16.0.0 à 172.31.0.0 | Pour les réseaux privés |
C | 192.168.0.0 à 192.168.255.0 | Pour les réseaux privés |
Le masque de sous-réseau
Le masque de sous-réseau est un ensemble de 4 octets destiné à isoler:
Soit l'adresse de réseau (NetID ou SubnetID) en effectuant un ET logique bit à bit entre l'adresse IP et le masque :
\(NetID = IP . M\)
Soit l'adresse de l'hôte (HostID) en effectuant un ET logique bit à bit entre l'adresse IP et le complément du masque (!masque) :
\(HostID = IP . \overline{M}\)
Les masques de sous-réseau par défaut sont, suivant les classes d'adresses :
Classe | Masque par défaut | Nb octets pour l’hôte |
A | 255.0.0.0 | 3 |
B | 255.255.0.0 | 2 |
C | 255.255.255.0 | 1 |
Par défaut, un masque de sous réseau englobe donc la totalité de la classe.
Le modèle CIDR
La méthode traditionnelle d'attribution d'adresses IP menait souvent à un usage inefficace, car une organisation pouvait obtenir une classe entière d'adresses tout en n'en utilisant qu'une fraction.
Avec le modèle CIDR (Classless Inter-Domain Routing), la classification par classe est abandonnée, sauf pour certaines classes réservées à l'utilisation privée. Les adresses sont maintenant allouées en blocs, indépendamment de leur classe initiale. L'IANA (Internet Assigned Numbers Authority, située aux États-Unis) alloue actuellement des blocs d'adresses consécutives, caractérisées par un masque de 32 bits, avec les x premiers bits à 1 et les bits restants à 0. Dans ce système, un bloc d'adresse est représenté comme suit : adresse.base/x
Par exemple, la classe C 192.168.0.0 avec un masque 255.255.255.0 serait notée : 192.168.0.0/24
Dans cette notation, on distingue deux adresses particulières :
192.168.0.0 qui représente l'ensemble du bloc ;
192.168.0.255 qui est l'adresse de diffusion (broadcast) de ce bloc.
L'avantage du modèle CIDR est sa flexibilité. Par exemple, un bloc peut être défini ainsi : 192.168.0.0/26
Pour mieux analyser un bloc, on peut utiliser le programme "ipcalc".

Nous avons donc ici la possibilité d'adresser 62 nœuds, et l'étendue totales des adresses utilisées (réseau et broadcast compris) est :
Question 1
Question⚓
A quel sous réseau appartient l'adresse 62.161.99.115/21 (NetID) ?
Adresse IP en binaire | ________ ________. ________ ________.________ ________. ________ ________ |
Masque en binaire | ________ ________. ________ ________.________ ________. ________ ________ |
NetID (binaire) = | ________ ________. ________ ________.________ ________. ________ ________ |
NetID (décimal) = | _________________._________________.________________._____________ |
Question 2
Question⚓
Quelle est la partie de l'adresse qui concerne l'hôte (HostID)?
Adresse IP en binaire | ________ ________. ________ ________.________ ________. ________ ________ |
\(\overline{M}\) | ________ ________. ________ ________.________ ________. ________ ________ |
HostID (binaire) = | ________ ________. ________ ________.________ ________. ________ ________ |
HostID (décimal) = | _________________._________________.________________._____________ |
Question 3
Question⚓
3.1 Quelle est la plus petite adresse IPMin possible dans ce sous réseau?
Avec \(IPMin = NetID +1\)
3.2 Quelle est la plus grande adresse possible IPMax dans ce sous réseau?
avec IPMax = NetID + M-1
avec \(IP_{Max} = NetID + (\overline{M}-1)\)
Adresse IP en binaire | ________ ________. ________ ________.________ ________. ________ ________ |
\(\overline{M} -1\) | ________ ________. ________ ________.________ ________. ________ ________ |
IPMax (binaire) = | ________ ________. ________ ________.________ ________. ________ ________ |
IPMax (décimal) = | _________________._________________.________________._____________ |