La pénurie d'adresses IPv4
Selon Vint Cerf (le père de l'IP), la taille de l'adresse IPv4 32 bits a été choisie de manière arbitraire. La propriété intellectuelle était une expérience collaborative entre le gouvernement et les universités, et l’Internet public actuel n’était jamais envisagé. Le paradigme IP était que chaque périphérique connecté aurait une adresse IP unique (tous les paquets envoyés entre les périphériques IP seraient connectés de bout en bout de l'adresse IP source à l'adresse IP de destination), et de nombreux protocoles utilisant IP dépendent de chaque périphérique. avoir une adresse IP unique.
En supposant que nous puissions utiliser toutes les adresses IPv4 possibles *, il n'y a que 4 294 967 296 adresses IPv4 possibles, mais (en septembre 2018), la population mondiale actuelle était de 7 648 290 361. Comme vous pouvez le constater, il n’ya pas assez d’adresses IPv4 possibles pour que chaque personne en ait une, mais de nombreuses personnes possèdent un ordinateur, une imprimante, un téléphone portable, une tablette, une console de jeu, une télévision connectée, etc., nécessitant chacune une adresse IP. cela ne concerne même pas les besoins des entreprises en adresses IP. Nous sommes également à la veille de l'Internet des objets (IoT), où chaque appareil a besoin d'une adresse IP: ampoules, thermostats, thermomètres, pluviomètres et systèmes de gicleurs, détecteurs d'alarme, appareils, véhicules, ouvre-portes de garage, systèmes de divertissement, colliers pour animaux de compagnie, et qui sait quoi tout le reste.
* Il existe des blocs d'adresses IPv4 qui ne peuvent pas être utilisés pour l'adressage d'hôte. Par exemple, la multidiffusion a un bloc de 268 435 456 adresses qui ne peuvent pas être utilisées pour l'adressage hôte. L'IANA gère le registre d'adresses IANA IPv4 à usage spécifique à l'adresse https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml pour documenter tous les blocs d'adresses spéciales et leurs objectifs. .
IANA (Internet Assigned Numbers Authority) n'a plus de blocs d'adresses IPv4 à attribuer aux RIR (Registres Internet régionaux) à attribuer dans leurs régions respectives, et les adresses RIR ont également épuisé leurs adresses IPv4 à attribuer dans chaque région. Les fournisseurs de services Internet (ISP) et les entreprises qui souhaitent ou ont besoin d'adresses IPv4 ne peuvent plus obtenir les adresses IPv4 de leurs RIR et doivent maintenant essayer d'acheter des adresses IPv4 auprès d'entreprises potentiellement plus importantes monte).
Même si toutes les adresses IPv4 réservées à des fins spéciales et ne pouvant pas être utilisées pour l'adressage hôte étaient disponibles, nous serions toujours dans la même position car il n'y a tout simplement pas assez d'adresses IPv4 en raison de la taille limitée des adresses IPv4.
Atténuer le manque d'adresses IPv4
IANA et les RIR auraient été à court d’adresses IPv4 bien avant cela si IANA et l’IETF (Groupe de travail sur l’ingénierie de l’Internet) n’avaient pas adopté de mesures d’atténuation de la pénurie d’adresses IPv4. Une mesure d’atténuation importante a été la dépréciation des classes de réseau IPv4 au profit du CIDR (Classless Inter-Domain Routing). L’adressage par classe n’autorise que trois tailles de réseau assignées (16 777 216, 65 536 ou 256 adresses d’hôte au total par réseau), ce qui signifie que de nombreuses adresses sont gaspillées (une entreprise n’ayant besoin que de 300 adresses d’hôte doit se voir attribuer un réseau doté de 65 536 hôtes possibles. adresses, en gaspillant plus de 99% des adresses de la classe du réseau),
De loin, l’atténuation qui a eu le plus grand impact sur la durée de vie d’IPv4 est l’utilisation de l’adressage privé et d’une variante de la NAT (traduction d’adresses réseau) appelée NAPT (traduction d’adresses réseau), ce que veulent dire la plupart des gens reportez-vous à NAT ou PAT (PAT est un terme spécifique au fournisseur pour NAPT). Malheureusement, NAPT est une solution de contournement moche qui enfreint le paradigme de bout en bout de l'IP, ainsi que les protocoles qui dépendent d'un adressage IP unique, nécessitant des solutions de contournement encore plus horribles.
NAT / NAPT
Le concept de NAT est assez simple: il remplace l’une ou les deux adresses IPv4 source et de destination dans un en-tête de paquet lorsque le paquet passe à travers le périphérique NAT. En pratique, il nécessite un calcul car l'en-tête IPv4 dispose d'un champ calculé pour vérifier l'intégrité de l'en-tête IPv4. Toute modification apportée à l'en-tête IPv4 nécessite un nouveau calcul du champ. Certains protocoles de transport de la charge utile du paquet ont également leur propre calcul. champs qui doivent être recalculés, en utilisant des ressources informatiques du périphérique NAT pouvant être utilisées pour le transfert de paquets.
Dans Basic NAT, le périphérique NAT dispose d’un pool d’adresses IPv4 qu’il utilise pour remplacer les adresses IPv4 source des en-têtes de paquet des paquets IPv4 envoyés d’un réseau interne à un réseau externe. Il gère également une table de traduction afin de traduire le les adresses IPv4 de destination du trafic en provenance du réseau extérieur afin de restituer les paquets aux hôtes appropriés du réseau intérieur. Cela nécessite également des ressources sur le périphérique NAT pour construire et gérer la table de traduction et pour effectuer des recherches dans la table. Cette utilisation des ressources peut ralentir la transmission des paquets car les ressources utilisées par NAT proviennent des ressources pouvant être utilisées pour la transmission des paquets.
NAPT va plus loin dans le NAT de base en traduisant également les adresses de protocole de transport (ports) pour TCP et UDP, ainsi que les ID de requête pour ICMP. En traduisant également les adresses de la couche de transport, NAPT permet l'utilisation d'une seule adresse IPv4 externe pour plusieurs adresses IPv4 hôtes internes. NAPT nécessite encore plus de ressources que le NAT de base, car il nécessite une table distincte pour chaque protocole de couche de transport et doit également effectuer les calculs d'intégrité pour les protocoles de transport.
Utilisation de l'adressage IPv4 privé pouvant être réutilisé sur plusieurs réseaux (vous avez peut-être remarqué que la plupart des réseaux domestiques / résidentiels utilisent par défaut le même réseau 192.168.1.0/24, qui se trouve dans l'une des plages d'adresses IPv4 privées allouées par l'IANA) , avec NAPT, permet aux utilisateurs professionnels et particuliers d’utiliser chacun une adresse externe (publique) unique pour un grand réseau interne (à adresse privée). Cela permet d'économiser de nombreuses adresses IPv4 (plusieurs fois le nombre total d'adresses IPv4 possibles) et a prolongé la durée de vie de l'IPv4 bien au-delà du point où il se serait effondré sans NAPT. NAPT présente de sérieux inconvénients:
- NAPT rompt le paradigme de bout en bout IP et ne fonctionne qu'avec TCP, UDP et ICMP, rompant ainsi avec d'autres protocoles de transport. Il existe également des protocoles de couche application qui utilisent TCP ou UDP et sont cassés par NAPT, même si TCP et UDP fonctionnent nominalement avec NAPT. D'autres mesures d'atténuation, telles que STUN / TURN, peuvent être disponibles pour certains protocoles de couche application, mais elles peuvent augmenter les coûts et la complexité.
- NAPT nécessite beaucoup de ressources et ralentit le transfert de paquets par rapport à ce qui est possible sans utiliser aucune forme de NAT. Certains fournisseurs ajoutent du matériel dédié pour limiter le besoin de voler des ressources lors du transfert de paquets, mais cela entraîne des coûts, une taille, une complexité et une consommation d'énergie supplémentaires.
- Lors de l'utilisation de NAPT, le trafic initié de l'extérieur du réseau NAPT ne peut pas être acheminé vers le réseau interne car il n'y a pas d'entrée de traduction dans la table de traduction, qui est ajoutée par le trafic initié. La seule adresse extérieure (publique) est configurée sur le périphérique NAT, et tous les paquets avec cette adresse IPv4 de destination et aucune entrée pour l’adresse IPv4 source dans la table de traduction pour le protocole de transport sont supposés être destinés au périphérique NAPT lui-même et non le réseau intérieur. Il existe une atténuation, appelée Port Forwarding, pour ce problème.
- Le transfert de port configure essentiellement, manuellement, une entrée permanente dans une table de traduction pour permettre au trafic initié à l'extérieur qui est destiné à un protocole de transport particulier et à l'adresse du protocole d'être transmis à un hôte interne particulier. Cela présente l’inconvénient de ne permettre qu’à un hôte interne d’être la cible d’un protocole de transport et d’une adresse donnés. Par exemple, s'il existe plusieurs serveurs Web sur le réseau interne, un seul des serveurs Web peut être exposé sur le port TCP 80 (le port par défaut pour les serveurs Web).
- En raison de la grave pénurie d'adresses IPv4, les fournisseurs de services Internet (ISP) ne disposent plus d'adresses publiques à attribuer à leurs clients. Les fournisseurs de services Internet ne peuvent plus obtenir d'adresses publiques. Ils ont donc adopté des mesures d'atténuation qui affectent particulièrement les utilisateurs résidentiels et domestiques. Les fournisseurs de services Internet souhaitent réserver leur précieux pool d'adresses publiques à leurs clients commerciaux prêts à payer pour obtenir le privilège d'obtenir des adresses publiques. Pour ce faire, les fournisseurs de services Internet commencent à présent à attribuer des adresses privées ou partagées à leurs clients résidentiels et résidentiels, et utilisent NAPT sur leurs propres routeurs pour faciliter l'utilisation de plusieurs adresses privées ou partagées sur une seule adresse publique. Cela crée une situation où un réseau domestique / résidentiel est derrière deux traductions NAPT (ISP NAPT au client NAPT),
- De nombreuses personnes font l'erreur d'associer NAPT à la sécurité, car les hôtes internes ne peuvent pas être directement adressés de l'extérieur. C'est un faux sentiment de sécurité. Etant donné qu'un pare-feu connectant un réseau au réseau Internet public constitue un emplacement pratique pour exécuter NAPT, la situation est simplement perturbée. Cela crée une perception dangereuse que NAPT, en tant que tel, est le pare-feu, et un véritable pare-feu est inutile. La sécurité du réseau provient de pare-feu, qui bloquent par défaut tout le trafic initié de l'extérieur, n'autorisant que le trafic pour lequel il est explicitement configuré, en effectuant éventuellement une inspection approfondie du contenu du paquet pour en éliminer les charges dangereuses. Ce que certaines personnes ne réalisent pas, c'est que, sans pare-feu, matériel ou logiciel, situé à l'extérieur du périphérique NAPT ou intégré à celui-ci, pour protéger le périphérique NAPT, le périphérique NAPT lui-même est vulnérable. Si le périphérique NAPT est compromis, il a, avec son extension, un accès complet au réseau privé adressé de manière privée. Les paquets initiés de l'extérieur qui ne correspondent pas à une table de traduction sont destinés au périphérique NAPT lui-même, car c'est le périphérique qui est effectivement adressé avec l'adresse externe, de sorte que le périphérique NAPT peut être attaqué directement.
La solution à la pénurie d'adresses IPv4
L'IETF a prédit la pénurie d'adresses IPv4 et a créé la solution suivante: IPv6, qui utilise des adresses de 128 bits, ce qui signifie qu'il existe 340 282 326 920 468 463 473 473 463 374 374 261 478 211 456 adresses IPv6 possibles. Le nombre presque inimaginable d'adresses IPv6 supprime le besoin de NAPT (IPv6 ne possède pas de normes NAT, contrairement à IPv4, et le RFC IPv6 NAT interdit spécifiquement NAPT), en restaurant le paradigme IP de bout en bout d'origine. Les mesures prises pour remédier à la pénurie d'adresses IPv4 visent à prolonger la durée de vie d'IPv4 jusqu'à ce que IPv6 soit omniprésent, auquel point IPv4 devrait disparaître.
Les humains ne peuvent pas vraiment comprendre les nombres de la taille utilisée pour IPv6. Par exemple, un réseau IPv6 standard utilise 64 bits pour chacune des parties réseau et hôte de l'adresse réseau. Cela représente 18 446 744 073 709 551 616 réseaux IPv6 standard / 64 possibles, et le même nombre (énorme) d'adresses hôtes pour chacun de ces réseaux. Pour essayer de comprendre un nombre aussi important, envisagez des outils qui analysent toutes les adresses possibles d'un réseau. Si un tel outil pouvait analyser 1 000 000 d'adresses par seconde (peu probable), il faudrait plus de 584 542 années pour effectuer l'analyse sur un seul réseau / 64 IPv6. Actuellement, seulement 1/8 de l'espace d'adressage IPv6 total est alloué aux adresses IPv6 globales, soit 2 305 843 009 213 693 952 réseaux IPv6 / 64 standard, et si la population mondiale est de 21 milliards en 2100 (nombre quelque peu réaliste), Chacune de ces 21 milliards de personnes pourrait avoir 109 802 048 réseaux IPv6 / 64 standard, chaque réseau ayant 18 446 744 073 709 551 616 adresses hôtes possibles. Malheureusement, la pénurie d'adresses IPv4 (depuis des décennies) a tellement enracinée la conservation de l'adresse chez les gens, que beaucoup de gens ne peuvent tout simplement pas le laisser partir et ils essayent de l'appliquer à IPv6, ce qui est inutile et réellement préjudiciable. IPv6 est en fait conçu pour gaspiller des adresses.
L’IETF présentait également l’avantage du recul et améliorait l’IP (en IPv6) en supprimant les fonctionnalités de l’IPv4 qui ne fonctionnaient pas bien, en améliorant certaines fonctionnalités IPv4 et en ajoutant des fonctionnalités qui n’avaient pas IPv4, créant ainsi une nouvelle adresse IP améliorée. . Étant donné qu'IPv6 est un protocole complètement distinct d'IPv4, il peut être exécuté en parallèle avec IPv4 car la transition s'effectue d'IPv4 à IPv6. Les hôtes et les périphériques réseau peuvent exécuter à la fois IPv4 et IPv6 sur la même interface (double pile), les uns des autres étant invisibles. il n'y a pas d'interférence entre les deux protocoles.
Le problème avec IPv6 est qu’il s’agit en fait d’un protocole complètement différent, incompatible avec le très répandu IPv4, et que nombre de personnes jugent que les mesures prises pour remédier à la pénurie d’adresses IPv4 sont «assez bonnes». Le résultat est qu’il est supérieur à 20 années depuis la normalisation d’IPv6, et l’utilisation d’IPv6 a vraiment gagné du terrain (Google rapporte, en septembre 2018, que l’adoption mondiale d’IPv6 dépassait 20% et que le taux d’adoption d’IPv6 aux États-Unis dépassait 35%). La raison pour laquelle nous passons finalement à IPv6 est qu’il n’ya tout simplement plus d’adresses IPv4 inutilisées à attribuer.
Il existe d’autres obstacles, faisant tous partie de la culture IPv4, qui sont tout simplement difficiles à regarder. Beaucoup de gens ont également peur de l'IPv6, ayant grandi et se sentant à l'aise avec IPv4, les verrues et autres. Par exemple, les adresses IPv6 semblent être grandes et laides par rapport aux adresses IPv4, ce qui semble mettre beaucoup de monde. En réalité, IPv6 est souvent plus facile et plus flexible que IPv4, en particulier pour l’adressage, et les leçons tirées d’IPv4 ont été appliquées à IPv6 depuis le début.