Dis Tonton Gibbon, comme ça marche Internet ? (Partie 2)
Comme on l'a vu précédemment, il n'y a déjà pas assez d'adresses pour tous les périphériques qui se connectent actuellement (et en fait depuis quelques années) au réseau Internet. Pour éviter la super mouise, il a donc fallu ruser comme des chacals…
On a donc un problème. Et ce problème il est connu depuis qu'Internet est devenu accessible au grand public. On sait qu'on a pas assez d'adresses pour tout le monde. Mais on est malin et on a donc inventé le NAT (Network Address Translation = traduction d'adresses réseaux). Le principe, c'est que chaque ordinateur du réseau domestique ou du réseau d'entreprise a une adresse privée (qui ne marche donc pas sur Internet), mais connaît une machine qui a à la fois une adresse privée et une adresse publique (Freebox, Livebox, etc…).
Basiquement, quand une machine du réseau local veut aller joindre une machine d'Internet, le boîtier Internet va prendre en compte sa requête, effacer l'adresse de l'expéditeur pour la remplacer par son adresse publique et la transmettre sur Internet. Concrètement tu tapes http://blogdesinges.fr sur ton ordi qui est en 192.168.1.15 par exemple, la boîboîte voit arriver un paquet qui dit :
Je suis 192.168.1.15 et je veux joindre 91.121.21.148
Si la box envoit le paquet tel quel, ça ne peut pas marcher : Internet va lui dire que le paquet ne peut pas avoir pour expéditeur 192.168.1.15 parce que c'est une adresse privée (l'équivalent informatique d'un Dans Ton Cul). Donc la box, pas folle, remplace cette adresse par son adresse :
Je suis <IP publique de la box du joyeux lecteur> et je veux joindre 91.121.21.148
Et elle attend patiemment la réponse. Quand la réponse vient, elle a cette forme :
Je suis 91.121.21.148 et je veux joindre <IP publique de la box du joyeux lecteur>
Le symétrique de la précédente. Comme la box sait qu'elle a envoyé une requête, elle sait à quel ordinateur du réseau local ce paquet est destiné. Elle remplace donc simplement l'adresse du destinataire par l'adresse 192.168.1.15. Et le tour est joué, la page s'affiche. Bon évidemment, dans la pratique, c'est un tout petit peu plus compliqué que cela : chaque paquet suit effectivement ce cheminement là, mais il y a nettement plus de choses à faire pour afficher une simple page Web.
Le problème ici, c'est qu'on peut bien envoyer des requêtes pour recevoir des réponses. Mais on ne peut pas recevoir directement des requêtes. Si la box reçoit un truc et qu'elle n'avait rien demandé et que personne dans le réseau local n'avait rien demandé, elle le jette. Purement et simplement. C'est plus simple à imaginer avec un téléphone : tu peux appeler les gens et ils peuvent alors te parler, mais ils ne peuvent pas t'appeler. Si c'était le cas du serveur de Blog2Singes, ce serait extrêmement problématique parce qu'il serait incapable de répondre aux requêtes.
C'est le deuxième principal problème d'IPv4 : le NAT a permis de reculer le problème de quelques années, mais n'a rien réglé. Au contraire, il a fermé une partie du réseau et les concepteurs d'applications comme la VoIP et le P2P ont dû trouver des astuces de porc pour continuer de fonctionner malgré les barrières.
Donc la solution, c'est simplement IPv6 \o/
Ce coup-ci, il a été décidé qu'on allait coder les adresses sur 128 bits soit 340 282 366 920 938 463 463 374 607 431 768 211 456 d'adresses possibles ou 667 millions de milliards d'adresses IP par mm² de la surface terrestres (!). Donc là plus de souci : comme on a plus de pénurie, on peut donner des adresses à tout le monde (et même plusieurs centaines de millions de milliards d'adresses pour chaque connexion) et on a plus besoin de faire de la traduction d'adresses. Toutes les applications qui posaient problème ne posent donc plus de problème et on peut même envisager d'en faire des nouvelles qui peuvent utiliser toutes les particularités d'un réseau 100% connecté \o/
Les adresses IPv6 permettent de retrouver un monde où tous les ordinateurs peuvent se connecter entre et ou les box ne font plus que connecter vraiment les ordinateurs à Internet et pas bricoler au milieu pour que ça marche.
Ma conclusion sera : IPv6, c'est bien, mangez-en.

Commentaires
Et donc ceux qui râlent en disant le NAT faisait une sorte de firewall du pauvre et que c'était bien pratique pour Mme Michu de pas avoir tous ses ports d'ouverts à la horde sauvage des vilains méchants hackers à cagoule noire... ils ont tort?
Faudra prévoir un filtrage logiciel? on va voir des "ip6tables pour les nuls" dans les rayons de la fnouc?
Une partie 3 pour expliquer tout ça peut-être?
La « sécurité » par le NAT est une chimère.
Pour éviter les problèmes en IPv6, tout ce qu'il faut, c'est que les machines soient correctement configurées à la sortie du carton, que les services qui ne sont pas supposés dépasser le LAN écoutent en v4 uniquement par exemple (partage de fichiers, imprimante, etc…) et que les autres programmes n'écoutent en v6 que s'ils ont besoin.
Et effectivement, une troisième partie pour expliquer cela ne ferait peut-être pas de mal… Toujours mieux que ce petit commentaire dans tous les cas…
J'imagine que statistiquement il va avoir de plus en plus de routes v6 dans la table de routage des routeurs internet, meme si on imagine bien qu'on va jouer à fond la carte de la "routes summarization".
Qu'en est-il de la puissance CPU nécéssaire pour stocker des quantitées astronomiques de routes v6? Là on a ptet les grandes routes internet dans les routeurs, mais le nombre de routes va croitre de facon exponentielle, non?
A l'heure actuelle, les produits du marché peuvent-ils encaisser cette charge?
Comme tu l'as dit, je pense qu'on va jouer à fond sur les résumés de route. Après tout rien n'empêche un routeur d'annoncer une grande route bête qui sera vu par plein de gens et de redispatcher derrière vers des sous-réseaux de cette route.
Une des grandes forces d'IPv6, c'est que le routage peut être purement hiérarchique, ce qui n'est pas forcément le cas d'IPv4.