Adressage Ipv4
Adressage Ipv4
Adressage Ipv4
Philippe Latu
philippe.latu(at)inetdoc.net
https://www.inetdoc.net
Résumé
Le système d'adressage défini avec le protocole réseau du modèle TCP/IP est incontournable
dans la mise en œuvre des réseaux actuels. L'objet de cet article est de décrire succinctement le
fonctionnement et les possibilités de l'adressage IPv4.
1. Copyright et Licence
Copyright (c) 2000,2022 Philippe Latu.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.3 or any later version
published by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included
in the section entitled "GNU Free Documentation License".
Méta-information
Cet article est écrit avec DocBook XML sur un système Debian GNU/Linux. Il est disponible en version
imprimable au format PDF : adressage.ipv4.pdf.
Conventions typographiques
Tous les exemples d'exécution des commandes sont précédés d'une invite utilisateur ou prompt
spécifique au niveau des droits utilisateurs nécessaires sur le système.
• Toute commande précédée de l'invite $ ne nécessite aucun privilège particulier et peut être utilisée
au niveau utilisateur simple.
unicast
Le trafic unicast désigne une communication entre un hôte source unique et un hôte destination
unique lui aussi.
multicast
Le trafic multicast désigne une communication entre un hôte source unique et un groupe d'hôtes qui
ont choisi de recevoir le flux émis par la source. L'émission d'une chaîne de télévision est l'analogie
usuelle pour ce type de trafic. L'émission est permanente et seuls les téléviseurs réglés pour recevoir
cette chaîne affichent la vidéo de cette chaîne.
broadcast
Le trafic broadcast désigne un flux émis par un hôte à destination de tous les autres hôtes
appartenant au même domaine de diffusion. Ce type de trafic ne peut exister que sur les réseaux
dits de diffusion comme Ethernet. Par exemple, le protocole ARP utilise une trame de diffusion
(broadcast) pour interroger tous les autres hôtes du réseau pour savoir à quelle adresse MAC
correspond l'adresse IPv4 connue.
• La partie réseau est commune à l'ensemble des hôtes d'un même réseau,
Le masque de réseau
Le masque de réseau sert à séparer les parties réseau et hôte d'une adresse. On retrouve l'adresse
du réseau en effectuant un ET logique bit à bit entre une adresse complète et le masque de réseau.
L'adresse de diffusion
Chaque réseau possède une adresse particulière dite de diffusion. Tous les paquets avec cette
adresse de destination sont traités par tous les hôtes du réseau local.
Voici un exemple d'affichage de la configuration des interfaces réseau d'un hôte avec un système GNU/
Linux. On a volontairement conservé l'affichage des multiples adresses réseau d'une même interface.
L'exercice consiste ici à identifier les adresses IPv4 présentées dans le tableau ci-dessus.
$ ip addr ls
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether ba:ad:00:ca:fe:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2001:db8:feb2:10:b8ad:ff:feca:fe00/64 scope global dynamic
valid_lft 2591986sec preferred_lft 604786sec
inet6 fe80::b8ad:ff:feca:fe00/64 scope link
valid_lft forever preferred_lft forever
L'interface de boucle locale lo joue un rôle très particulier. Elle est utilisée pour les communications
réseau entre les processus locaux exécutés sur le système. Ces communications ne nécessitant
aucun «contact» avec l'extérieur, aucune interface réseau physique ne doit être sollicitée.
Les informations qui nous intéressent sont placées sur cette ligne. L'adresse 192.168.1.1 est
l'adresse IPv4 affectée à l'interface Ethernet eth0.
Le masque réseau en notation CIDR est /24 ; soit 24 bits consécutifs à 1 en partant de la gauche.
En notation développée, il correspond à : 255.255.255.0.
L'adresse de diffusion est 192.168.1.255 compte tenu du masque réseau.
Pour plus d'informations voir Configuration d'une interface réseau.
Classe A
Le premier octet a une valeur comprise entre 1 et 126 ; soit un bit de poids fort égal à 0. Ce premier
octet désigne le numéro de réseau et les 3 autres correspondent à l'adresse de l'hôte.
L'adresse réseau 127.0.0.0 est réservée pour les communications en boucle locale.
Classe B
Le premier octet a une valeur comprise entre 128 et 191 ; soit 2 bits de poids fort égaux à 10. Les 2
premiers octets désignent le numéro de réseau et les 2 autres correspondent à l'adresse de l'hôte.
Classe C
Le premier octet a une valeur comprise entre 192 et 223 ; soit 3 bits de poids fort égaux à 110. Les
3 premiers octets désignent le numéro de réseau et le dernier correspond à l'adresse de l'hôte.
Classe D
Le premier octet a une valeur comprise entre 224 et 239 ; soit 3 bits de poids fort égaux à 1. Il
s'agit d'une zone d'adresses dédiées aux services de multidiffusion vers des groupes d'hôtes (host
groups).
Classe E
Le premier octet a une valeur comprise entre 240 et 255. Il s'agit d'une zone d'adresses réservées
aux expérimentations. Ces adresses ne doivent pas être utilisées pour adresser des hôtes ou des
groupes d'hôtes.
Tableau 2. Espace d'adressage
Classe Masque réseau Adresses réseau Nombre de Nombre d'hôtes
réseaux par réseau
A 255.0.0.0 1.0.0.0 - 126.255.255.255 126 16777214
B 255.255.0.0 128.0.0.0 - 16384 65534
191.255.255.255
C 255.255.255.0 192.0.0.0 - 2097152 254
223.255.255.255
D 240.0.0.0 224.0.0.0 - adresses uniques adresses uniques
239.255.255.255
E non défini 240.0.0.0 - adresses uniques adresses uniques
255.255.255.255
Le tableau ci-dessus montre que la distribution de l'espace d'adressage est mal répartie. On ne dispose
pas de classe intermédiaire entre A et B alors que l'écart entre les valeurs du nombre d'hôte par réseau
est énorme. La répartition en pourcentages de l'espace total d'adressage IPv4 est :
• Classes A - 50%
• Classes B - 25%
• Classes C - 12.5%
• Classes D - 6.25%
• Classes E - 6.25%
À cette mauvaise distribution de l'espace d'adressage, il faut ajouter les nombreuses critiques sur la
façon dont les attributions de classes IPv4 ont été gérées dans les premières années de l'Internet.
Comme les classes ont souvent été attribuées sur simple demande sans corrélation avec les besoins
effectifs, on parle d'un grand «gaspillage».
Au cours des années, plusieurs générations de solutions ont été apportées pour tenter de compenser
les problèmes de distribution de l'espace d'adressage. Les sections suivantes présentent ces solutions
dans l'ordre chronologique.
• Il existe quantité de vers et|ou virus dont les mécanismes de propagation se basent sur une
reconnaissance des cibles par diffusion. Le ver Sasser en est un exemple caractéristique. En
segmentant un réseau en plusieurs domaines de diffusion, on limite naturellement la propagation de
code malveillant. Le subnetting devient alors un élément de la panoplie des outils de sécurité.
Selon les termes du document RFC950, les sous-réseaux dont les bits de masque sont tous à 0 ou tous
à 1 ne devaient pas être utilisés pour éviter les erreurs d'interprétation par les protocoles de routage dits
classful comme RIPv1. En effet, ces protocoles de routages de «première génération» ne véhiculaient
aucune information sur le masque sachant que celui-ci était déterminé à partir de l'octet le plus à
gauche. Dans notre exemple ci-dessus, il y avait confusion aux niveaux de l'adresse de réseau et de
diffusion.
• L'adresse du sous-réseau 192.168.1.0 peut être considérée comme l'adresse réseau de 2 réseaux
différents : celui avec le masque de classe C (255.255.255.0) et celui avec le masque complet après
découpage en sous-réseaux (255.255.255.224).
• De la même façon, l'adresse de diffusion 192.168.1.255 est la même pour 2 réseaux différents :
192.168.1.0 ou 192.168.1.224.
Depuis la publication du document RFC950, en 1985, les protocoles de routage qui servent à
échanger les tables d'adresses de réseaux connectés entre routeurs ont évolué. Tous les protocoles
contemporains sont conformes aux règles de routage inter-domaine sans classe (CIDR). Les protocoles
tels que RIPv2, OSPF et BGP intègrent le traitement des masques de sous-réseaux. Ils peuvent même
regrouper ces sous-réseaux pour optimiser le nombre des entrées des tables de routage. Pour appuyer
cet argument, le document RFC1878 de 1995 spécifie clairement que la pratique d'exclusion des sous-
réseaux all-zeros et all-ones est obsolète.
La technique du supernetting est basée sur l'identification des bits communs à toutes les adresses de
réseau à synthétiser. Dans la liste des 4 réseaux ci-dessus les 22 premiers bits ne varient pas. L'adresse
de réseau qui «synthétise» ces 4 entrées est donc :
Address: 172.16.12.0 10101100.00010000.000011 00.00000000
Netmask: 255.255.252.0 = 22 11111111.11111111.111111 00.00000000
La technique VLSM n'est pas seulement utile aux principaux fournisseurs d'accès Internet (Internet
Service Provider ou ISP). Un administrateur possédant plus d'un sous-réseau peut utiliser cette
technique pour utiliser son espace assigné plus efficacement. Considérons l'exemple ci-dessous :
1
L'acronyme CIDR se prononce comme le «cidre» en anglais : cider.
Le fournisseur d'accès a attribué le réseau 198.51.100.0 avec le masque 255.255.255.128 ; soit l'adresse
réseau 198.51.100.0/25. On dispose donc de la moitié du réseau 198.51.100.0/24.
Le graphique ci-dessus donne plusieurs indication qui vont permettre de découper le réseau
198.51.100.0/25 en autant de sous-réseaux que de périmètres définis.
• Chaque périmètre définit le nombre d'hôtes présent dans le domaine de diffusion. Pour permettre
une évolution de ce nombre d'hôtes dans le futur, on choisit de le doubler pour chaque périmètre de
type LAN (trait droit sur le schéma ci-dessus).
On s'intéresse donc en premier lieu à la colonne la plus à droite du tableau ci-dessous pour compléter
chaque ligne.
On note que le nombre maximum d'adresses d'hôtes disponibles correspond à l'espace d'adressage du
sous-réseau moins deux. C'est parce que la première adresse désigne le réseau et que la dernière est
l'adresse de diffusion vers tous les hôtes du sous-réseau. Lorsque l'on planifie les espaces d'adressage
VLSM, il est préférable de doubler le nombre d'adresses disponibles de chaque sous-réseau pour
prévoir les évolutions futures.
Pour s'affranchir de la notation complète des masques des classes d'adresses IPv4, une nouvelle
notation a été introduite. Elle consiste à noter le nombre de bits à 1 du masque après le caractère '/'
à la suite de l'adresse.
En reprenant l'exemple précédent de découpage en sous-réseaux d'une adresse qui à l'origine était de
classe C, on peut noter le troisième sous-réseau sous la forme : 198.51.100.32/27.
La notation /27 correspond à 27 bits de masque réseau à 1 ; soit un masque complet de 255.255.255.224.
Les techniques de routage inter-domaine sans classe (CIDR) et l'utilisation de masques réseaux de
longueur variable (VLSM) ont servi à optimiser l'espace d'adressage IPv4 de tout l'Internet.
(19) est partagé entre partie réseau et partie hôte. Si on le convertit en binaire, on obtient :
00010011. On effectue cette fois-ci un OU logique avec la valeur binaire correspondant aux 3 bits
d'hôtes à un (00000111). On obtient : 00010111 ; soit 23 en décimal. L'adresse de diffusion du
sous-réseau est donc 172.16.23.255.
Dans le contexte domestique d'utilisation d'une «box», le fournisseur d'accès Internet (FAI) attribue
dynamiquement une ou plusieurs adresses IP à l'interface WAN de l'équipement. Tous les hôtes du
réseau domestique se voient attribuer une adresse IPv4 privées. L'adresse source de chaque paquet
sortant émis par un hôte du réseau privé est traduite par l'adresse publique de la «box».
Peu importe le nombre d'hôtes (donc d'adresses IPv4) utilisées dans le réseau privé, une seule adresse
IPv4 est utilisée. C'est à ce niveau que l'on réalise une économie considérable dans la consommation
des adresses IPv4 vu de l'Internet.
Cette solution n'est pas sans défaut puisque les hôtes du réseau privés ne sont pas joignables depuis
le réseau public et qu'il est nécessaire d'avoir recours à des programmes supplémentaires pour gérer
le multiplexage des ports de la couche transport.
Dans le monde GNU/Linux, les mécanismes de traduction d'adresses sont inclus dans la partie filtrage
avec couple netfilter/iptables. Par conception des fonctions de traduction d'adresses distinguent deux
usages :
• partager une interface unique du réseau public Internet entre tous les hôtes du réseau privé,
• rendre un serveur situé dans le réseau privé accessible depuis l'Internet.
Dans le premier cas, on parle de traduction d'adresses source (S-NAT). Ce sont les adresses
sources des paquets IPv4 émis par les hôtes du réseau privé qui sont réécrites avec une adresse IPv4
publique.
Dans le second cas, on parle de traduction d'adresses destination (D-NAT). Une adresse IPv4
destination publique est réécrite avec une adresse IPv4 privée en fonction de la destination (adresse
IPv4 ou service) demandé.
Ces usages des fonctions de traduction d'adresses avec Linux ont été décrits pour la première fois dans
le document de référence Guide Pratique du NAT sous Linux.
Le mécanisme général de «réutilisation d'adresses IP» a été décrit dans le document standard
RFC3022.
Q7. Soit l'adresse 192.16.5.133/29. Combien de bits sont utilisés pour identifier la partie réseau ?
Combien de bits sont utilisés pour identifier la partie hôte ?
Correction :
Address: 192.16.5.133 11000000.00010000.00000101.10000 101
Netmask: 255.255.255.248 = 29 11111111.11111111.11111111.11111 000
Correction :
Address: 172.16.5.10 10101100.00010000.00000101.0000 1010
Netmask: 255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
c. Quelle est l'adresse réseau de chacun des huit sous-réseaux ainsi définis ?
Correction :
Address: 132.45.0.0 10000100.00101101. 00000000.00000000
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
a. Pour découper l'adresse réseau de départ en huit sous-réseaux, 3 bits supplémentaires sont
nécessaires (2^3 = 8).
c. Pour obtenir la liste des huit adresses de sous-réseaux, on construit la table des
combinaisons binaires sur les 3 bits supplémentaires du masque réseau.
Numéro 0 : 10000100.00101101.000 00000.00000000 soit 132.45.0.0
Numéro 1 : 10000100.00101101.001 00000.00000000 soit 132.45.32.0
Numéro 2 : 10000100.00101101.010 00000.00000000 soit 132.45.64.0
Numéro 3 : 10000100.00101101.011 00000.00000000 soit 132.45.96.0
Numéro 4 : 10000100.00101101.100 00000.00000000 soit 132.45.128.0
Numéro 5 : 10000100.00101101.101 00000.00000000 soit 132.45.160.0
Numéro 6 : 10000100.00101101.110 00000.00000000 soit 132.45.192.0
Numéro 7 : 10000100.00101101.111 00000.00000000 soit 132.45.224.0
Q10. On attribue le réseau 200.35.1.0/24. Il faut définir un masque réseau étendu qui permette de
placer 20 hôtes dans chaque sous-réseau.
a. Combien de bits sont nécessaires sur la partie hôte de l'adresse attribuée pour accueillir au
moins 20 hôtes ?
b. Quel est le nombre maximum d'adresses d'hôte utilisables dans chaque sous-réseau ?
Correction :
b. La relation entre le nombre de bits (n) de la partie hôte d'une adresse IPv4 et le nombre
d'adresses utilisables est : 2^n - 2. Les deux combinaisons retirées sont l'adresse de réseau
(tous les bits de la partie hôte à 0) et l'adresse de diffusion (tous les bits de la partie hôte à 1).
Dans le cas présent, avec 5 bits d'adresses pour la partie hôte, le nombre d'adresses
utilisables est 30 (2^5 - 2 = 30).
c. Le masque du réseau attribué occupe 24 bits et le masque étendu 27 bits (voir question
précédente). Le codage des adresses de sous-réseau utilise donc 3 bits. Avec 3 bits, on peut
coder 8 (2^3) combinaisons binaires soit 8 sous-réseaux.
d. Pour obtenir la liste des huit adresses de sous-réseaux, on construit la table des
combinaisons binaires sur les 3 bits supplémentaires du masque réseau.
Numéro 0 : 11001000.00100011.00000001.000 00000 soit 200.35.1.0
Numéro 1 : 11001000.00100011.00000001.001 00000 soit 200.35.1.32
Numéro 2 : 11001000.00100011.00000001.010 00000 soit 200.35.1.64
Numéro 3 : 11001000.00100011.00000001.011 00000 soit 200.35.1.96
Numéro 4 : 11001000.00100011.00000001.100 00000 soit 200.35.1.128
Numéro 5 : 11001000.00100011.00000001.101 00000 soit 200.35.1.160
Numéro 6 : 11001000.00100011.00000001.110 00000 soit 200.35.1.192
Numéro 7 : 11001000.00100011.00000001.111 00000 soit 200.35.1.224
e. L'adresse de diffusion du sous-réseau numéro 2 correspond à la combinaison binaire pour
laquelle tous les bits de la partie hôte sont à 1 et l'adresse réseau 200.35.1.64.
Address: 200.35.1.64 11001000.00100011.00000001.010 00000
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Broadcast: 200.35.1.95 11001000.00100011.00000001.010 11111
b. La plage des adresses utilisables pour le sous-réseau numéro 3 (140.25.96.0/19 est obtenue
en ajoutant 1 à l'adresse de ce réseau et en soustrayant 2 à l'adresse du réseau suivant.
Network: 140.25.96.0/19 10001100.00011001.011 00000.00000000
HostMin: 140.25.96.1 10001100.00011001.011 00000.00000001
HostMax: 140.25.127.254 10001100.00011001.011 11111.11111110
Q12. Alice est au bord de la crise de nerfs ! Aucun des messages envoyés à Bob n'est arrivé à
destination. Bob est lui aussi sur le point de craquer ! Il essaie désespérément d'envoyer des
messages à Alice sans succès. Il faut absolument faire quelque chose pour les aider.
Quelle erreur a été commise dans l'affectation des adresses (et|ou) des masques réseau ?
Proposer une solution pour rendre les communications possibles.
Correction :
On étudie les plages d'adresses utilisables pour chacun des réseaux : le LAN d'Alice, la liaison
WAN et le LAN de Bob.
Les adresses affectées aux interfaces du poste de travail et du routeur sont bien comprises
dans les limites du réseau 172.16.68.192/27. Le problème ne vient pas de ce réseau.
Les adresses affectées aux interfaces WAN des deux routeurs sont bien comprises dans les
limites du réseau 172.16.68.224/28. Les adresses de réseau du LAN d'Alice et de la liaison
WAN ne se recouvrent pas. Le problème ne vient pas non plus de ce réseau.
Si les adresses affectées aux interfaces du poste de travail et du routeur de Bob sont bien
comprises dans les limites du réseau 172.16.68.224/27, le LAN de Bob et la liaison WAN
partagent le même espace d'adressage. Le routeur de Bob est donc bien incapable de
prendre une décision d'acheminement des paquets d'un réseau vers l'autre. Le problème
vient donc de ce dernier réseau.
Une solution simple consiste à compléter le masque réseau du LAN de Bob de façon à ce qu'il
n'y ait plus chevauchement avec la liaison WAN. Avec un masque sur 29 bits on aurait les
caractéristiques suivantes. Alice et Bob pourraient enfin échanger des messages.
Network: 172.16.68.248/29 10101100.00010000.01000100.11111 000
HostMin: 172.16.68.249 10101100.00010000.01000100.11111 001
HostMax: 172.16.68.254 10101100.00010000.01000100.11111 110
Modélisations réseau
Le document Modélisations réseau compare les deux principaux modèles : OSI et TCP/IP puis
présente une synthèse baptisée «modèle contemporain» associant les avantages de chacun.
• RFC950 Internet Standard Subnetting Procedure : ce document traite de l'utilité des sous-
réseaux (subnets). Ce sont des sous-ensembles logiques d'un réseau Internet unique.
À l'époque de la publication de ce document, les protocoles de routage tels que RIPv1 utilisaient
la classe du réseau routé dans les mécanismes d'acheminement des paquets IPv4. L'usage du
premier sous-réseau all-zeros était exclu sachant qu'il était impossible de distinguer l'adresse
réseau du réseau complet de l'adresse de ce premier sous-réseau. L'usage du dernier sous-
réseau (all-ones) était aussi exclu sachant qu'il était impossible de distinguer l'adresse de
diffusion du réseau de l'adresse de ce dernier sous-réseau.
• RFC1878 Variable Length Subnet Table For IPv4 : ce document apporte une clarification sur les
difficultés relatives au découpage en sous-réseaux des réseaux IPv4. Il fournit une table standard
de sous-réseaux.
Depuis la publication de ce document, il est possible d'utiliser l'ensemble des sous-réseaux
sachant que les protocoles de routage véhiculent le masque que chaque entrée de réseau.
• RFC1518 An Architecture for IP Address Allocation with CIDR : cet article fournit une architecture
et un plan d'affectation des adresses IPv4 sur l'Internet. Cette architecture et le plan sont
prévus pour jouer un rôle important en orientant l'Internet vers l'affectation d'adresses avec une
stratégie d'agrégation.
dans le but de préserver l'espace d'adressage et de limiter la croissance explosive des tables de
routage dans les routeurs «sans route par défaut».
• RFC1520 Exchanging Routing Information Across Provider Boundaries in the CIDR Environment :
le but de ce document est double. D'abord, il décrit diverses solutions pour échanger l'information
de routage inter-domaine à travers les limites d'un domaine dans le cas où un du domaine est
CIDR-capable et l'autre pas. Ensuite, il traite des conséquences de l'utilisation des protocoles de
routage inter-domaine (BGP-4, IDRP) dans le routage intra-domaine.
• RFC3022 The IP Network Address Translator (NAT) : ce document propose une autre solution
à court terme (ndt. Pour répondre au problème de saturation de l'espace d'adressage IPv4 en
1994), la réutilisation d'adresse, qui complète le routage inter-domaine sans classe (CIDR). La
solution de réutilisation d'adresse consiste à placer des traducteurs d'adresse de réseau (NAT)
aux frontières des réseaux d'extrémités (stub networks).
• RFC1918 Address Allocation for Private Internets : ce document décrit l'attribution d'adresse
pour les réseaux privés. L'attribution permet la pleine connectivité de couche réseau parmi tous
les centres serveurs à l'intérieur d'une entreprise aussi bien que parmi tous les centres serveurs
publics de différentes entreprises.