IPv4 : adressage et subnetting
Le format d’une adresse IPv4
1. L’adresse IPv4 et le masque de sous-réseau
Une adresse IPv4 se compose de 32 bits organisés en quatre séquences de 8 bits représentées numériquement et séparées par des points.
Une adresse IPv4 est composée de deux parties que sont :
-
l’adresse du réseau (aussi dénommée "préfixe réseau"),
-
l’adresse de l’hôte.
Pour déterminer quels bits appartiennent à quelle partie, on a recours à un masque de sous-réseau. Le masque, comme l’adresse IPv4, est composé de 32 bits. Une opération AND entre l’adresse IPv4 et le masque permet de déterminer où s’arrête la partie réseau de l’adresse.
Le masque de sous-réseau est donc une suite plus ou moins longue de bits contigus ayant la valeur 1. Cette propriété fait qu’une séquence de 8 bits ne peut avoir qu’une série de valeurs numériques bien définies que voici :
Valeurs des bits du masque |
Valeurs numériques |
0000 0000 |
0 |
1000 0000 |
128 |
1100 0000 |
192 |
1110 0000 |
224 |
1111 0000 |
240 |
1111 1000 |
248 |
1111 1100 |
252 |
1111 1110 |
254 |
1111 1111 |
255 |
Ces valeurs numériques sont codées sur 8 bits, la longueur totale du masque est donc de 32 bits. Il peut être utile de mémoriser cette séquence par la suite.
Exemple 1
L’exemple qui suit montre une utilisation de la division d’une adresse IPv4 :
Adresse IP |
192 |
168 |
1 |
1 |
1100 0000 |
1010 1000 |
0000 0001 |
0000 00001 |
|
Masque |
255 |
255 |
0 |
0 |
1111 1111 |
1111 1111 |
0000 0000 |
0000 0000 |
|
Résultat AND |
1100 0000 |
1010 1000 |
0000 0000 |
0000 0000 |
Adresse réseau |
192 |
168 |
0 |
0 |
En convertissant l’adresse IPv4 et le masque réseau en binaire puis en effectuant une opération AND entre les deux, on obtient un résultat qui correspond à l’adresse réseau.
Dans cet exemple, le masque indique donc que les 16 premiers bits de l’adresse font partie de l’adresse réseau tandis que les 16 derniers bits font partie de l’identification de l’hôte.
Masque de 16 bits
Le réseau est donc 192.168.0.0 et toute machine dont les 16 premiers bits commencent par 192.168 fait partie de ce réseau. En suivant ce schéma, des adresses valables pour...
Les classes d’adresses IPv4
Lors des débuts de l’utilisation d’IP sur les réseaux, seul le premier octet de l’adresse était utilisé en tant que préfixe réseau. Cette manière de procéder à l’attribution des adresses permettait d’avoir 256 réseaux gigantesques de 16 millions d’hôtes.
Pour lever cette limitation, la RFC 790 prévoit qu’une adresse IP doit être divisée en deux parties qui sont le NetID et le HostID.
Cinq classes identifiées de A à E ont alors été créées et correspondent au nombre de bits utilisés pour définir la partie réseau.
De nos jours la notion de classe est devenue obsolète car les protocoles de routage actuels prennent en compte le masque de sous-réseau qui fixe de manière explicite la taille du préfixe.
Cependant la notion de classe sert encore aujourd’hui de point de repère et c’est la raison pour laquelle elle est incluse dans ce chapitre.
1. La classe A
La classe A définit une longueur de préfixe de 8 bits. Le premier bit d’une adresse de classe A commence toujours par 0 (de 0000 0000 à 0111 1111) ce qui signifie que la valeur du premier octet est comprise entre 0 et 127.
Classe A
Une classe A dispose de 24 bits pour l’adressage des machines, elle...
Les types d’adresses IPv4
Initialement, IP ne faisait aucune discrimination entre les adresses. Une adresse IP était parfaitement équivalente à une autre et une machine connectée à Internet devait posséder une adresse unique sur l’ensemble du réseau IP.
Ce n’est que plus tard, en 1994, qu’est évoquée la notion d’adresse privée avec la RFC 1597. Puis en 1996, la célèbre RFC1918 scelle leur utilisation.
1. Les adresses IP privées
Une adresse IP privée est une adresse qui est attribuée à un hôte réseau et qui n’est pas diffusée sur Internet. Cet état a permis de ralentir la déplétion d’adresses IPv4 en considérant que certaines plages d’adresses peuvent être réutilisables au sein de plusieurs réseaux, perdant ainsi leur caractère d’unicité globale.
Ces adresses ne sont pas routables sur Internet ce qui veut dire que les fournisseurs d’accès Internet n’échangent pas ces plages.
Ainsi deux entreprises différentes peuvent utiliser le même plan d’adressage au sein de leur propre réseau car jamais elles ne doivent communiquer ensemble en utilisant au sein d’un paquet IPv4 une adresse classée comme privée.
Une plage par classe d’adresses a été...
Le subnetting
1. Qu’est-ce que le subnetting ?
Le procédé appelé communément "subnetting" est l’action de diviser un réseau donné en une série de réseaux plus petits. Une plage d’adresses, de classe B par exemple, permet théoriquement d’adresser 65 534 hôtes différents et bien qu’il soit techniquement permis d’avoir un grand réseau de cette taille, cela risque de poser certains problèmes.
Un seul grand réseau signifie qu’un seul grand domaine de Broadcast existe. Pour rappel, les messages Broadcast sont nécessaires au fonctionnement d’IPv4. Un nombre très conséquent de messages Broadcast sur le réseau ne peut que dégrader les performances du réseau car un message Broadcast ne transporte pas, dans ce cas, des données utiles. De plus, même dans un réseau commuté, l’utilisation de Broadcast implique que seule la machine émettrice communique.
Pour les experts en sécurité, un tel réseau veut dire que toutes les machines sont capables de communiquer directement ensemble au niveau 2 et limiter les communications entre deux ou plusieurs machines devient compliqué en matière de maintenance.
Créer des réseaux plus petits avec le subnetting répond à ces deux problématiques (et à d’autres). Des réseaux différents, plus petits et qui contiennent moins d’hôtes, sont séparés par des équipements de niveau 3 qui ne transmettent pas les broadcasts.
Puisque l’adressage IP est logique, l’administration est libre d’organiser l’adressage de ses réseaux comme bon lui semble et donc de créer si nécessaire des silos de sécurité ce qui simplifie énormément la gestion des règles de filtrage.
Pour les besoins de cette section, un scénario simple va être créé. Il s’agit d’un réseau X dont l’adresse actuelle est 172.16.0.0/16. Ce réseau héberge un certain nombre d’hôtes (seuls cinq sont représentés sur le schéma).
Réseau IP initial
2. Planification de l’adressage
Avant d’examiner les calculs qui permettent de créer...
Le VLSM
1. Qu’est-ce que le VLSM ?
VLSM (Variable Length Subnet Mask) est un masque de sous-réseau à longueur variable.
Dans la partie précédente, le découpage du réseau a été fait de manière fixe, c’est-à-dire que tous les sous-réseaux peuvent contenir le même nombre d’hôtes.
Or deux réseaux peuvent parfaitement avoir deux besoins radicalement différents à ce niveau. Un premier réseau peut avoir besoin d’héberger 120 hôtes tandis qu’un deuxième seulement… 2 (dans le cas d’un réseau point à point par exemple).
Un réseau trop grand par rapport au nombre d’hôtes qu’il doit héberger provoque une perte d’adresses car ces adresses ne peuvent pas être réattribuées en dehors de leurs subnets respectifs.
Bien sûr cela n’est pas critique lorsqu’il est question d’adressage privé car ces adresses sont gratuites et, au pire, l’organisation du réseau sera moins pratique. En revanche lorsqu’il s’agit d’adresses publiques, l’heure n’est plus au gaspillage d’une part car l’entreprise (ou le fournisseur d’accès Internet) paie ces adresses et d’autre part car il devient très difficile aujourd’hui d’en obtenir à cause de la pénurie d’adresses.
L’utilisation du VLSM permet donc de diviser un préfixe donné en réseaux plus petits et de tailles variables. Ce procédé utilise la même méthode de base que le subnetting standard.
2. La méthode de calcul
Toujours avec le préfixe 172.16.0.0/16, le scénario implique que plusieurs réseaux de tailles différentes sont requis :
-
Un premier réseau contenant 280 hôtes.
-
Un deuxième réseau contenant 745 hôtes.
-
Un troisième réseau contenant 32 hôtes.
-
Deux réseaux de type point à point contenant uniquement 2 équipements.
Il est tentant de faire le subnetting directement dans l’ordre fourni dans l’énoncé, mais faire le découpage en VLSM oblige au respect d’une règle importante : il faut nécessairement commencer par le réseau qui...
ICMP
1. Présentation d’ICMP
ICMP (Internet Control Message Protocol) est un protocole qui est généralement associé à la couche de niveau 3 du modèle OSI.
Ce protocole est défini dans la RFC 792.
ICMP est utilisé pour transporter des messages de contrôle et d’erreur qui fournissent des informations concernant l’état du réseau. La commande la plus connue est la commande ping qui a pour objectif d’envoyer une requête ICMP de type Echo Request et d’attendre une réponse de type Echo Reply. D’autres types de messages d’information et d’erreur existent qui renvoient des indications sur l’état du réseau.
Comme tous les protocoles, ICMP doit s’appuyer sur des informations qu’il ajoute au paquet pour rendre son service.
Dans le cas d’ICMP, l’en-tête est encapsulé par IP, ce qui oblige IP à lui affecter un numéro de protocole afin qu’il soit identifié. Ce numéro est le numéro 1.
La structure de l’en-tête est la suivante :
0 |
1 |
2 |
3 |
Type |
Code |
Checksum |
|
Autres données spécifiques |
L’en-tête très simple se compose des éléments suivants :
Type
Le champ Type indique le type de message ICMP qui est envoyé. Il existe plusieurs types de messages ICMP. Echo Request et Echo Reply sont deux exemples bien connus de type de message ICMP.
Code
Le champ Code est l’état d’un type donné. Pour un type de message donné, la réponse peut être formulée selon différents états. Afin de bien comprendre la relation Type/Code, un tableau récapitulatif est fourni dans la section Les types...
L’obtention d’une adresse IPv4
1. L’attribution statique
Pour qu’un équipement puisse disposer d’une adresse IPv4, une configuration explicite est nécessaire. Puisque l’adressage IP est un adressage de niveau 3 et qu’il s’agit d’un adressage logique, il n’y a pas d’adresse automatiquement fournie par un constructeur comme c’est le cas pour les adresses MAC.
Certains équipements sont parfois configurés avec une adresse par défaut mais cela n’empêche pas à un instant donné d’entrer une configuration manuellement pour obtenir ce comportement.
Donc l’administrateur réseau est en mesure d’adresser manuellement les équipements qui composent son réseau et même toutes les machines finales s’il le souhaite.
Cette méthode permet un grand contrôle des adresses qui sont attribuées mais cela n’est possible que sur un réseau de petite taille, la charge administrative étant trop importante pour des réseaux plus grands. En termes de maintenance, cela signifie également qu’à chaque fois qu’une machine est déplacée sur un autre réseau, elle doit être reconfigurée.
L’attribution statique, ou manuelle, est en revanche toujours utile pour certains équipements stratégiques comme les routeurs, les firewalls et la plupart des serveurs.
2. L’attribution automatique
Lorsqu’il s’agit d’adresser les machines finales de nos jours, une méthode d’attribution automatique est préférée. Le protocole standard actuel pour l’adressage automatique est DHCP (Dynamic Host Configuration Protocol).
Auparavant les protocoles RARP (Reverse Address Resolution Protocol) puis BOOTP (Bootstrap Protocol) se sont succédés comme moyen d’attribution des adresses IP. Ces protocoles ne sont pas développés ici car ils sont considérés comme obsolètes aujourd’hui.
DHCP a été défini pour la première fois dans la RFC 1531 en 1993 en tant qu’ajout au protocole de l’époque BOOTP car ce dernier ne remplissait pas toutes les demandes des administrateurs.
DHCP est capable d’attribuer dynamiquement des adresses...
L’adressage spécial
1. Link local ou APIPA
La plage d’adresses APIPA (Automatic Private Internet Protocol Addressing) est la plage allant de 169.254.0.0 à 169.254.255.255. Il s’agit d’une plage d’adresses utilisées lorsqu’une interface configurée en tant que client DHCP n’obtient pas de réponse d’un serveur DHCP.
L’objectif initial était de permettre à des machines dont le réseau ne dispose pas d’un serveur DHCP de communiquer entre elles.
Les plages d’adresses APIPA ne sont pas routables sur Internet et sont exclusivement dédiées à des communications locales.
2. Loopback
L’adresse de Loopback (à ne pas confondre avec les interfaces de type Loopback) est l’adresse 127.0.0.1. Cette adresse peut être utilisée pour vérifier la configuration de l’hôte. Un ping vers 127.0.0.1 a pour effet de pinguer la machine elle-même. Si une réponse est reçue, cela signifie que TCP/IP est activé sur la machine.
La table de routage
1. Qu’est-ce que la table de routage ?
Les routeurs ont pour tâche principale d’effectuer la jonction entre les différents réseaux pour que les différentes machines qui y sont localisées puissent se joindre.
Les routeurs étant des équipements de niveau 3, cela signifie qu’ils sont capables de lire les en-têtes IPv4 et IPv6 afin d’effectuer ces jonctions. Exactement comme les switches ont besoin d’une table de switching (la table MAC), les routeurs ont besoin d’une table qui regroupe toutes les informations de niveau 3 et cette table est la table de routage. Attention un équipement de niveau n doit naturellement comprendre et gérer les couches inférieures. Donc le routeur, qui est un périphérique de couche 3, comprend et gère également les couches 1 et 2.
Lorsqu’un paquet IP est adressé au routeur, ce dernier a pour charge de lire les informations contenues dans l’en-tête IP puis de les comparer aux entrées de la table de routage afin de trouver le meilleur chemin possible et donc, l’interface de sortie adéquate. Par défaut et dans la plupart des cas, le routeur lit l’adresse IP de destination afin d’identifier le réseau de destination recherché.
2. Construction de la table de routage
Pour construire la table de routage, un routeur doit donc s’appuyer sur deux informations principales. D’une...
Routing Forwarding Process
Les opérations effectuées par le routeur à partir de la réception du paquet jusqu’à l’envoi du paquet vers sa destination sont regroupées sous le nom de Routing Forwarding Process.
Les opérations sont les suivantes :
-
À la réception, vérification du FCS (Frame Check Sequence)
Lorsque la trame est reçue sur l’interface du routeur, le FCS doit être vérifié. Si le FCS est invalide, cela signifie que la trame est corrompue, auquel cas il n’est pas nécessaire de la traiter.
-
Lecture de l’en-tête de niveau 2
Bien qu’étant un équipement de niveau 3, le routeur doit lire l’en-tête de niveau 2 afin de s’assurer que l’adresse de destination à ce niveau correspond bien à son interface.
-
Suppression de l’en-tête de niveau 2
Le routeur doit supprimer l’en-tête de niveau 2 qui sera réécrit lors de l’envoi.
-
Lecture de la destination et recherche dans la table de routage
Le routeur lit l’adresse IP de destination et recherche dans sa table de routage pour trouver l’entrée correspondante. Une fois l’entrée identifiée, le routeur a à sa disposition les informations nécessaires pour choisir une interface de sortie.
-
Décrémentation du TTL
C’est au routeur...
La route statique et la route par défaut
1. La route statique
Les routes statiques sont des routes manuellement renseignées par l’administrateur. Ces routes sont statiques car elles ne sont pas mises à jour directement si une modification du réseau survient.
La commande ip routeest nécessaire et elle doit comporter au minimum les informations suivantes :
-
Le préfixe de destination.
-
L’adresse de next-hop ou l’interface de sortie.
La commande suivante indique de router le réseau 192.168.10.0/24 vers l’interface FastEthernet0/0 :
R0(config)#ip route 192.168.10.0 255.255.255.0 FastEthernet 0/0
La commande suivante indique de router le réseau 192.168.11.0/24 vers l’adresse de next-hop 10.10.10.1 :
R0(config)#ip route 192.168.10.0 255.255.255.0 10.10.10.1
2. La route par défaut
En tant qu’équipement de niveau 3, le routeur peut lui aussi disposer d’une route par défaut. La route par défaut est utilisée quand la table de routage ne dispose pas d’une entrée correspondant au réseau de destination recherché.
Le concept de route par défaut est mis à contribution notamment pour les routeurs qui ne disposent que d’un seul choix pour expédier les paquets. Cette méthode permet d’avoir une table de routage très simple.
La configuration d’une route par défaut passe...