Le NAT, un terme étrange, une présence (trop) fréquente dans nos réseaux
Les adorateurs de beaux réseaux disent qu’il fait office de « sécurité du pauvre » dans nos réseaux domestiques. Vous avez déjà probablement vu ce terme ailleurs, dans les aides de certains jeux vidéo en ligne (ou tuto pour les consoles de salon, à une époque), ou dans certaines applications de communication dites « NAT-friendly » (remember MSN Messenger). Alors c’est quoi ce « énaté » ?
Ah, Internet, le réseau des réseaux. On a jamais autant bien décrit sa structure avec cette phrase : une interconnexion de réseaux informatiques de taille diverses et variées, utilisant les même protocoles de communication. Une description qui vous semble nébuleuse ? Votre bidulebox et tout ce qui y est raccordé (filaire ou Wi-Fi) constitue un réseau informatique en soit. Ce réseau est relié à celui de votre opérateur, qui s’est chargé ensuite de se raccorder à d’autres : fournisseurs d’accès, opérateur de transit, plateformes de diffusion (Youtube&co), etc…
Toutes les machines de ce réseau sont identifiées par une adresse IP. Depuis leur création les réseaux « IP » utilisent la même version du protocole, en version 4, qui définit la « forme » et la quantité d’adresses. Problème, avec l’explosion des appareils raccordés au réseau, les adresses disponibles se raréfient à grande vitesse. Pour éviter de trop « consommer » d’adresses, les fournisseurs d’accès ont recours à des techniques diverses, dont le NAT.
Traduction ? Vraiment ?
Network Address Translation, pour traduction d’adresse réseau, est un procédé permettant de modifier à la volée l’adresse IP au sein des paquets transmis entre deux machines. Avant d’aller plus loin, un schéma de votre connexion est préférable :
Derrière la box, vous utilisez une adresse dite privée, typiquement commençant par 192.168.X.X. Pourtant les serveurs web ne verront que l’adresse « publique », celle qui est attribuée à la box. Et donc la box fait cette fameuse « traduction » à la volée (c’est plutôt une transformation, et donc techniquement un mensonge), dans le sens privé->public quand vous envoyez des paquets, et au retour dans le sens public->privé, tout en gardant en mémoire la communication en cours pour ne pas que ça se perde en route.
Un procédé qui déséquilibre le réseau
Ce procédé est transparent quand c’est vous qui initiez la communication (vous cherchez à visionner une page web, par exemple). Par contre, si vous installez un serveur web chez vous, il faudra dire à votre box que quiconque cherchera à afficher les pages qu’il héberge seront à rediriger vers la machine en particulier. En effet, vu que les gens de l’extérieur ne peuvent pas pointer directement sur votre machine, il contactent la box. Si celle-ci ne sait pas à qui transmettre les demandes, elle laisse tomber la communication (on peut souvent « contourner » ce problème avec la fonctionnalité dite de « DMZ », où l’on envoie toutes les requêtes entrantes à une machine en particulier).
On perd donc une caractéristique intrinsèque d’Internet : chaque machine doit pouvoir faire office de client ET de serveur. Le problème est donc partiellement insoluble : pour faire office de serveur, il faut pouvoir attribuer une adresse publique à chaque machine, ce qui est, comme je l’ai rappelé, impossible maintenant en IPv4 avec la quantité mirobolante d’appareils raccordés à Internet, les smartphones en tête.
Le CGNAT, le pire du NAT, dans votre poche (enfin presque)
Parlons-en des smartphones. Rien que sur le marché français, on doit pas être loin d’avoir plus de smartphones que d’habitants en circulation. Et donc en théorie il faudrait plus d’adresse IP que d’habitants, ce qui ne serait pas impossible, mais coûterait très, très cher aux opérateurs (tout ce qui est rare est cher). Ce problème est amplifié par ce qu’on appelle le « M2M », pour Machine To Machine, qui repose lui aussi sur les réseaux mobiles sans fil pour faire communiquer des machines entre elles directement.
Pour faire d’énormes économies donc (ça commence seulement à se voir sur vos forfaits, grâce à Free Mobile, faites le calcul), les opérateurs ont trouvé la pirouette : coller tous les mobiles derrières ce qu’on appelle un CGNAT, pour « Carrier Grade NAT », c’est à dire une traduction d’adresses à échelle du fournisseur. En gros, tous nos appareils 2G/3G/4G sont placés derrière ce qu’on pourrait appeler d’immenses bidulebox, qui font le même travail que celle qui se trouve chez vous, mais à l’échelle de l’opérateur et des millions d’appareils, ce que n’est pas capable de gérer le petit boîtier sur votre prise téléphonique.
Là encore, c’est un gros problème, puisque contrairement à la box maison, vous n’avez la main sur rien. L’opérateur est le seul juge de ce que vous utilisez ou pas, et ce même si c’est interdit théoriquement dans les textes de loi. Rappelez-vous pendant des années les mentions « P2P, VoIP interdites » dans les CGU. Le mail est encore considéré à part par SFR sur certaines gammes de forfait, alors que c’est du trafic Internet par définition. Pendant longtemps, vous n’aviez pas le droit d’utiliser TOUS les protocoles existants. Sans parler d’autres restrictions, qui sont devenues plus visibles année après année avec l’apparition des smartphones, sur les types de fichiers ou leur taille par exemple. Ou pire encore, et qui est encore d’actualité, l’utilisation de proxys transparents pour recompresser les images visualisées au travers de leurs réseaux.
Il existe une solution : IPv6
Dès le début des années 90, l’Internet Engineering Task Force, qui s’occupe de définir les standards de communication d’Internet, a commencé à travailler sur le successeur d’IPv4. Principale amélioration : la taille des adresses. En informatique, tout est codé en « bits », des « chiffres » qui ne valent que 0 ou 1. Et pour une adresse IPv4, on utilise 32 bits, donc on a 2^32 valeurs possibles d’adresses, soit 4 294 967 296 adresses (certaines ne sont pas utilisables cependant). Pour IPv6, on passe à 128 bits, soit 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses (pas de fautes, essayez de faire 2^128 sur votre calculette). Autant dire qu’on a de quoi voir venir, au point qu’on attribue souvent un bloc à une connexion, c’est à dire plusieurs IPs publiques d’un coup, au lieu d’une seule en IPv4. Pour info, une IPv6 se présente sous la forme suivante :
1 2 3 4 |
#IPv4 192.168.1.1 #IPv6 2001:41d0:1:1b00:213:186:33:17 |
IPv6 est « finalisé » depuis 1998. On aurait pu s’attendre donc, à l’image des autres technologies conçues pour Internet, à ce que son utilisation se répande à vitesse « Grand V », pour ne pas se voir empêtré dans les problèmes de saturation et de pénurie d’aujourd’hui (qui provoquent beaucoup de problèmes). Et pourtant, il a fallu attendre 2004 pour que l’ICANN, qui chapeaute ce qui touche aux noms de domaines, ajoute le support dans le DNS. Les serveurs racines ont commencé à se voir attribuer une adresse IPv6 en 2008, quatre ans après, ce qui est énorme. Sur le papier, les routeurs Cisco, qui sont à priori majoritaires au sein des infrastructures Internet (pour le plus grand bonheur de la NSA), supportent l’IPv6 depuis 2001. Sur le papier seulement, parce que certains matériels demeurent incompatibles malgré les mises à jour logicielles, et doivent donc être remplacés (ses concurrents ont à peu près suivi le même parcours).
Du côté de nos machines, Windows XP n’a reçu le support d’IPv6 qu’en 2004, avec le Service Pack 2 tant décrié alors (notamment parce qu’il demandait deux fois plus de mémoire vive qu’avant, ce qui coûtait cher à l’époque). Internet Explorer n’a été que partiellement compatible dans sa version 6, fournie avec XP. Depuis Windows Vista, une double pile IPv4/IPv6 est disponible par défaut, ce qui devrait assurer un support transparent pour l’un comme pour l’autre. Le noyau Linux disposait du support avant le début des années 2000. Les principaux logiciels utilisés tous les jours, navigateurs en tête (dont Firefox depuis sa version 1), ont soit été mis à jour, soient supportent d’emblée le « nouveau ». Enfin bref, avant 2005, tout était déjà prêt côté machines pour que l’IPv6 soit massivement utilisé. Tout ?
Des FAI (mais pas que) salement à la traîne
En effet, on ne peut pas dire que nos fournisseurs d’accès se pressent pour nous mettre à disposition les bons moyens de garder un Internet propre. Nerim a été le premier, en 2003, mais il n’est pas accessible directement au grand public. Il faudra attendre fin 2007 pour voir le premier FAI « Michu-compliant » proposer nativement de l’IPv6 sur son réseau; je vous le donne en mille : c’est Free. SFR a suivi, même s’il aura fallu attendre 5 ans de plus. À ce jour Orange ne propose toujours pas d’IPv6 pour ses clients « particuliers », alors que c’est le plus gros FAI de France. Et pas d’IPv4 fixe non plus vous me direz, ce qui est d’autant plus scandaleux vu l’importance de l’opérateur. Quand OVH a débarqué sur le « marché » de l’ADSL et du SDSL, son réseau a directement proposé les deux protocoles. Comme quoi c’est possible, et surtout que les routeurs sont prêts. D’autant que les Livebox ont toujours utilisé un noyau Linux, qu’on sait compatible.
Le cas d’FDN et de manière générale des opérateurs associatifs est assez « amusant ». Ces opérateurs fonctionnent généralement comme les MVNO sur mobile. Ils collectent du trafic qui parcourt les tuyaux des FAI existants, moyennant finance. Et bien ils sont capables de vous proposer de l’IPv6, même en collecte Orange, alors que ce dernier ne sait pas vous le proposer, un comble !
Point à noter aussi, aucun support d’IPv6 n’est prévu pour les réseaux mobiles dans un avenir proche, ce qui leur rendrait pourtant bien service. Oui, le contrôle de vos communications est un business, et passer par leurs restrictions leur rapporte de l’argent. Pourtant, tout appareil Android utilise un noyau Linux, et le BSD des iMachin est aussi prêt pour IPv6 depuis un bout de temps déjà. Bref, on attend encore et toujours les opérateurs.
Puisqu’il faut malgré tout un support matériel pour pouvoir traiter les adresses autrement plus grandes en v6 qu’en v4, on s’attendait à ce que les fabricants de switch/routeurs à destination du grand public suivent le chemin tracé par les fournisseurs d’infrastructures. Las, encore l’année dernière certains matériels ne savaient pas prendre en charge l’IPv6, soit 14 ans après sa finalisation. Et ce n’est pas un problème purement technique, entre matériel et logiciel, tout est disponible pour que ce support fonctionne.
Du côté des services, le tableau n’est pas moins rose. La plupart des sites Web en 2015 ne proposent toujours pas d’IPv6 en plus du v4. C’est dommage, parce que nos appareils le testent en premier avant le v4, et donc son utilisation serait immédiate à sa disponibilité.
1 2 3 4 |
[seboss666@Seboss666L ~]$ dig +short AAAA piwik.org 2a00:b6e0:1:200:177::1 [seboss666@Seboss666L ~]$ dig +short AAAA orange.fr [seboss666@Seboss666L ~]$ |
Si vous hébergez votre site chez OVH sur leurs offres mutualisées, il sera disponible « out-of-the-box ». Idem pour leurs offres VPS. Sur votre serveur dédié, ça sera à vous de vous assurer que c’est aussi le cas. Et là, comment dire, je fais partie de ceux à blâmer, car ce blog n’est accessible en IPv4, la faute à une configuration de la machine qui me résiste. Mais je ne désespère pas, j’y arriverais. Le fait est que je ne suis qu’un auto-didacte, là où la plupart des gros sites Web, marchands directs ou pas, ont nécessairement une armée de diplômés qui devraient forcément avoir la capacité de permettre au futur de fonctionner au plus vite. Ils n’ont donc aucune excuse.
Et vous voulez la blague ? Il suffirait que Google et/ou Facebook décident « d’éteindre » leur couche IPv4 pour ne plus proposer que la v6 pour que les choses bougent. Parce que des Michus qui ne savent qu’à peine allumer leur smartphone qui viennent râler en boutique parce que « j’ai plus Internet sur mon téléphone ni à la maison », ça passe très, très mal. Et le niveau de compétences des journalistes français donnerait aussi un très bon relais de communication.
Sacré article bravo !
Pourtant dieu sait que c’était pas gagné, j’ai eu beaucoup de mal à choisir les bons mots, les bonnes tournures. Mais content que ça plaise 🙂
Merci pour ce joli pavé 🙂
Excellente conclusion 🙂
Mais attention hein, Orange propose l’IPv6 sans aucun souci.
En payant. Cher car sur les contrats pro.
Du coup j’ai un doute sur un passage tout IPv6. 2050 ?
Il y a peut-etre une histoire de cloud derriere tout ça. Des millions sont investis la-dedans. Ralentir l’ipv6 pour rentabiliser le cloud.
Si encore ça pouvait résoudre tous les problèmes, mais non, de toute façon, c’est retarder pour mieux sauter. Et le M2M ne peut pas non plus se contenter de ça, certains systèmes ont besoin d’une connexion directe DANS LES DEUX SENS, ce que ne permet pas le NAT. Bref, il est temps d’entrer au 21° siècle pour les opérateurs. Le plus tôt sera le mieux.