Parce qu'on m'a récemment posé la question (ce qui me fait dire qu'on a les lecteurs qu'on mérite…), je vais essayer de tenter une explication de comment que ça marche IPv4, pourquoi c'est un protocole tout pourri du siècle dernier et pourquoi IPv6, c'est merveilleux, beau, chaud et que ça sauve des bébés phoques et agrandit ton pénis.

Tout d'abord, il faut savoir que l'Internet Protocol version 4 repose sur un nombre fini d'adresses. Dans un réseau où il y a des centaines de machines, le plus simple pour savoir qui est qui, c'est simplement de tout numéroter (un peu comme le téléphone, on donne un numéro à chaque ligne). Comme la puissance des machines du début d'Internet (fin des années 70) est limitée et que le nombre de machines sur Internet à cette époque est limité (un ordinateur est cher, il y a donc peu d'ordinateurs et ces derniers permettent en général de relier de multiples terminaux passifs), les créateurs d'Internet ont décidé de coder le nombre de machines possibles sur le réseau sur 32bits, ce qui apparaissait alors comme largement suffisant.

Calcul rapide, 32 bits, ça nous fait 2^32 adresses possibles soit 4 294 967 296 d'adresses, beaucoup plus qu'il n'en faut pour les quelques milliers d'ordinateurs de l'époque (et dans les faits, c'était suffisant jusqu'à il y a environ 10 ans). Une adresse IP est donc simplement un numéro dans le grand ensemble des numéros disponibles. Pour donner un exemple concret, l'adresse IP de ce serveur est 91.121.21.148 en représentation humainement lisible (4 chiffres de 0 à 255), ce qui correspond pour la machine au numéro 1 534 662 036. Au final, ce n'est qu'un numéro unique dans l'ensemble des numéros du réseau.

aintenant qu'on sait comment on va numéroter les machines, ce serait bien qu'on arrive à décider qui va les numéroter pour éviter d'avoir des doublons (imagine la situation si deux personnes avaient le même numéro de téléphone par exemple). On crée donc l'IANA qui est chargée de distribuer de très grandes plages d'adresses à des RIR, Regional Internet Registries, au nombre de un par « continent » :

  • RIPE (Réseau IP Européens) pour l'Europe et le Moyen-Orient ;
  • ARIN pour l'Amérique du Nord ;
  • LACNIC pour l'Amérique du Sud ;
  • APNIC pour l'Asie-Pacifique ;
  • AfriNIC pour l'Afrique.

Ces autorités régionales distribuent des plages d'adresses IP (plus petites) aux entreprises et FAI de leur continent respectif. On avait donc une grande quantité d'adresses disponibles et on en a donné des morceaux au fur et à mesure.

Les soucis ont commencé le jour où de nouveaux besoins sont apparus et notamment au niveau des rézo privés. L'IANA a alors décidé de réserver des plages d'adresses pour d'autres usages que de les distribuer :

  • Les 268 435 456 d'adresses de la plage 240.0.0.0/4 (allant donc de l'adresse 4 026 531 840 à l'adresse 4 294 967 295 la dernière adresse possible en IPv4) ont été réservées pour des usages futures qui ne sont jamais apparus ;
  • Il y a de nouveau 268 435 456 d'adresses qui ont été réservé pour ceux qu'on appelle le multicast (et qui n'a jamais fonctionné sur Internet) ;
  • Les plages d'adresses 10.0.0.0/8 (16 777 216 d'adresses), 192.168.0.0/16 (65 536) et 172.16.0.0/12 (1 048 576 d'adresses) sont réservées pour l'adressage privée (à l'intérieur des rézo d'entreprises par exemple) ;
  • Il y a un nombre incalculable d'adresses qui sont gaspillés pour les besoins du routage sur Internet (simplement parce qu'IPv4 « gâche » des adresses pour le découpage du réseau…);
  • Et il y a des plages interdites, utilisées pour du test, etc…

Au final, il n'y a qu'environ 3 milliards et quelques d'adresses réellement utilisables sur le réseau Internet. Or, si tu fais bien le calcul, tu as sûrement chez toi un fixe, un portable ou deux, un mobile dernière génération avec du Wi-Fi, une imprimante, une(des) console(s) de jeux, etc… qui doivent tous aller sur Internet d'une manière ou d'une autre. Comme il y a 2 milliards d'internautes, on en arrive rapidement à avoir plus de 12 milliards de périphériques connectés au réseau Internet pour seulement 3 milliards d'adresses, ça ne peut pas fonctionner (je suis formel, j'ai essayé, 12, ça rentre pas dans 3 même avec un chausse-pied).

Pour la prochaine fois, j'expliquerai donc comment on a fait pour contourner le souci et quels autres problèmes cela a entraîné.