Première rédaction de cet article le 20 mai 2008
On voit souvent des administrateurs réseaux parler de « classe B » ou de « classe C » en se référant à un groupe d'adresses IP. Ces termes sont dépassés et reflètent une réalité qui a disparu depuis longtemps. Ils ne devraient plus être employés.
Pour expliquer pourquoi, je dois faire un détour sur la façon dont
fonctionne l'adressage IP, normalisé, pour IP
version 4, dans le RFC 791. Les adresses IPv4
faisant 32 bits, ce protocole permet 2^32 soit
plus de quatre milliards d'adresses. Pas question que les routeurs aient une route vers chacune de
ces adresses. Leur mémoire n'y suffirait pas et, surtout, le rythme de
changement serait trop élevé. On regroupe donc aujourd'hui les adresses
contiguës en préfixes de
longueur N où N est le nombre de bits qui servent à identifier le
préfixe, les autres bits identifiant la machine. En IPv4 et IPv6, ce
nombre de bits n'est pas fixé par le protocole, il est déterminé par
l'administrateur système. On note un réseau par son préfixe, suivi
d'une barre oblique et de la longueur du préfixe. Par exemple, le préfixe
192.0.2.128/25
a une longueur N de 25 bits, ces
25 bits valant 11000000 00000000 00000010 10000000
,
laissant 7 bits pour identifier une machine sur ce réseau. Si
plusieurs routes sont possibles pour une destination donnée, le
routeur prendra la plus spécifique (celle dont N
est le plus grand).
A t-on toujours fait comme cela ? Non. Il y a de nombreuses années,
les préfixes étaient de taille fixe, on avait uniquement le choix en
des préfixes de longueur 8, baptisés « classes A », de longueur 16, les
« classes B » et de longueur 24, les « classes C ». Ce système était
très rigide et gaspillait considérablement les adresses (si une classe C
ne suffisait pas, pas possible de prendre un /23
,
il fallait sauter directement à une classe B). Il a donc été abandonné
au profit de l'adressage actuel, qui avait été baptisé
CIDR pour Classless Inter-Domain
Routing. Classless donc, « sans
classe ». Ce nom dit bien ce qu'il veut dire, les classes ont disparu.
Le premier RFC sur les idées qui mèneront à CIDR a été le RFC 1338 en juin 1992. Le RFC 1467 en août 1993 faisait le point sur le déploiement de CIDR. Les RFC 1518 et RFC 1519 en septembre 1993 sont les premier à décrire CIDR sous sa forme actuelle, pendant que le RFC 1517 décrivait les motivations et les problèmes que CIDR visait à résoudre. C'est donc depuis quinze ans que les classes ont disparu ! Révisée, la norme actuelle est le RFC 4632. Comme on le voit, l'adressage actuel est très ancien. Il est très inquiétant que des enseignants ignorants donnent toujours des cours IP où les classes sont citées, sans préciser qu'elles n'ont qu'un intérêt historique.
Les classes se voient encore un peu dans certaines techniques comme
le DNS où les
délégations dans in-addr.arpa
se font sur des
frontières d'octets. Ce problème a
été largement réglé par le RFC 2317.
Pendant les quelques années où la communauté Internet testait la
nouvelle technique, certains termes avaient été utilisés, qui n'ont
plus de raison d'être. C'est ainsi qu'on parlait de
supernetting pour désigner
l'agrégation de plusieurs classes en un préfixe
plus général (cette technique étant la base de CIDR, elle n'a plus
besoin d'un nom spécifique, même s'il faut encore apparemment dire à
IOS ip classless
pour
qu'il l'accepte). De même, les VLSM (Variable Length Subnet
Mask) ont été oubliés : le masque du réseau est désormais
toujours de longueur variable.
Le successeur d'IPv4, IPv6, est, lui, parti proprement en tenant compte de l'expérience de son prédécesseur et a toujours été « sans classe ».
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)