Comment fonctionne le sous-réseau IPv6 et en quoi est-il différent du sous-réseau IPv4?

116

Ceci est une question canonique sur le sous-réseau IPv6.

Apparenté, relié, connexe:

Je connais beaucoup de choses sur le sous- réseau IPv4 et, au moment de préparer (déployer | travailler) un réseau IPv6, j'ai besoin de savoir dans quelle mesure ces connaissances sont transférables et ce que je dois encore apprendre. À première vue, IPv6 semble être beaucoup plus complexe que IPv4. Donc j'aimerais savoir:

  • IPv6 est 128 bits, alors pourquoi / 64 est-il le plus petit sous-réseau recommandé pour les hôtes? Relatif à ceci:
    • Pourquoi est-il recommandé d'utiliser / 127 pour les liaisons point à point entre routeurs et pourquoi était-il déconseillé dans le passé? Devrais-je changer les liens de routeur existants pour utiliser / 127?
    • Pourquoi les machines virtuelles seraient-elles configurées avec moins de / 64 adresses?
    • Existe-t-il d'autres situations dans lesquelles j'utiliserais un sous-réseau inférieur à / 64?
  • Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6? Par exemple, un IPv4 / 24 correspond-il directement à un IPv6 / 56 ou / 120?
  • Mes interfaces ont plusieurs adresses IPv6. Le sous-réseau doit-il être identique pour tous?
  • Pourquoi vois-je parfois un% plutôt qu'un / dans une adresse IPv6 et que signifie-t-il?
  • Est-ce que je gaspille trop de sous-réseaux? Ne va-t-on pas simplement en manquer?
  • De quelles autres manières les sous-réseaux IPv6 sont-ils différents des sous-réseaux IPv4?
Michael Hampton
la source

Réponses:

138

La première chose à mentionner à propos du sous-réseau IPv6 est qu’il faut recourir à un mode de pensée différent . Dans IPv4, vous réfléchissez généralement au nombre d' adresses disponibles et à la manière dont vous pouvez en attribuer suffisamment à chaque utilisateur final. Dans IPv6, vous réfléchissez généralement au nombre de sous-réseaux (/ 64) dont vous disposez et à la manière dont vous pouvez les allouer aux utilisateurs finaux. Vous ne vous souciez presque jamais du nombre d'adresses IP qui seront utilisées dans un sous-réseau donné. À l'exception de certains cas particuliers, tels que les liens point à point, chaque sous-réseau a tout simplement plus d'adresses que nécessaire, de sorte que vous ne vous préoccupez que de l'allocation des sous-réseaux, et non des hôtes à l'intérieur.

Les sous-réseaux IPv6 sont généralement / 64 car cela est nécessaire au bon fonctionnement de SLAAC (autoconfiguration d’adresses sans état). Même lorsque SLAAC n'est pas utilisé, il peut y avoir d'autres raisons d'utiliser / 64. Par exemple, il se peut que certains périphériques utilisateurs finaux assument simplement / 64, ou que des sous-réseaux de routage plus longs que / 64 soient inefficaces sur certains routeurs, car le responsable de la mise en œuvre du routeur a optimisé le cas de / 64 ou des itinéraires plus courts afin de sauvegarder les itinéraires. mémoire de la table de routage.

Pourquoi est-il recommandé d'utiliser / 127 pour les liens point à point

Dans le cas particulier de liens point à point, il est recommandé d'utiliser / 127 au lieu de / 64 afin d'éviter une vulnérabilité où les paquets adressés à l'un quelconque des quadrillions d'adresses inutilisées du sous-réseau provoquent des demandes de sollicitation de voisins non désirées et des entrées de table pourrait noyer un routeur. De telles adresses mal adressées peuvent être malicieuses ou accidentelles. Mais même si vous configurez un lien point à point comme / 127, certaines personnes recommandent d’attribuer un entier / 64 de toute façon juste pour être cohérent.

Pourquoi les machines virtuelles seraient-elles configurées avec des sous-réseaux inférieurs à / 64?

Je ne sais pas précisément pourquoi les machines virtuelles seraient configurées avec des sous-réseaux inférieurs à / 64. Peut-être parce qu'un fournisseur d'hébergement a supposé qu'un serveur ressemblait à un utilisateur final et ne nécessitait qu'un seul sous-réseau (/ 64), sans anticiper qu'il s'agirait en fait d'un ensemble d'ordinateurs virtuels nécessitant une topologie de routage interne? Cela pourrait également être fait simplement pour faciliter la mémorisation du plan d’adressage: l’hôte obtient PREFIX::/64, puis chaque VM obtient PREFIX:0:NNNN::/96où NNNN est unique et peut être alloué PREFIX:0:NNNN:XXXX:YYYYà sa guise.

Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6? Par exemple, un IPv4 / 24 correspond-il directement à un IPv6 / 56 ou / 120?

Du point de vue du bas niveau du fonctionnement de l’adressage et du routage, la longueur du préfixe a la même signification dans IPv6 et IPv4. À ce niveau, vous pouvez faire une analogie telle que "un IPv4 / 16 utilise la moitié des bits pour l’adresse réseau et la moitié des bits pour l’adresse de l’hôte, c’est comme un / 64 dans IPv6". Mais cette comparaison n’est pas vraiment appropriée. Des conventions fortes sont apparues dans IPv6, ce qui fait que les divisions des tailles de réseau ressemblent un peu plus à l'ancien monde des réseaux classieux en IPv4. Certes, IPv6 n'a pas réintroduit l'adressage par classe dans lequel les bits les plus significatifs de l'adresse forcent un masque de réseau particulier, mais IPv6 possède certaines tailles de réseau standard [défacto / conventionnellement]:

  • / 64 : taille de base d'un seul sous-réseau: LAN, WAN, bloc d'adresses pour les hôtes virtuels Web, etc. Les sous-réseaux "normaux" ne doivent jamais être plus petits (préfixe plus long) que / 64. Aucun sous-réseau n'est supposé être plus grand (préfixe plus court) que / 64, car le nombre d'adresses hôtes d'un / 64 est bien plus que ce que l'on peut imaginer avoir besoin.
  • / 56 : un bloc de 256 sous-réseaux de base. Même si les politiques actuelles permettent aux fournisseurs de services Internet de distribuer des blocs d'une taille égale à / 48 à chaque utilisateur final tout en considérant que l'utilisation de leurs adresses est bien justifiée, certains fournisseurs de services Internet peuvent (et le font déjà) choisir d'affecter a / 56 à des clients grand public en guise de compromis. entre les lots d'allocation de sous-réseaux pour eux et adresse économie.
  • / 48 : un bloc de 65 536 sous-réseaux de base et la taille de bloc recommandée que chaque site d'extrémité client du fournisseur de services Internet devrait recevoir.
  • / 32 : taille de bloc par défaut que la plupart des fournisseurs de services Internet recevront chaque fois qu'ils demanderont plus d'adresses à un registre d'adresses régional.

À l’intérieur des réseaux de fournisseurs de services et d’entreprises, on peut voir beaucoup plus de longueurs de préfixe que ces 4. Lorsqu'on examine les tables de routage des routeurs au sein de ces réseaux, IPv4 et IPv6 ont beaucoup en commun, notamment la plupart des méthodes de routage: les routes pour préfixes plus longs remplacent les routes pour les préfixes plus courts, de sorte qu'il est possible d'agréger (raccourcir) et de forer des itinéraires plus longs. Comme dans IPv4, les itinéraires peuvent être agrégés ou résumés en blocs plus grands avec des préfixes plus courts afin de minimiser la taille des tables de routage.

Une question différente du mappage entre IPv4 et IPv6 serait de savoir comment harmoniser les attributions IPv4 et IPv6 sur des machines à double pile afin que les plans d’adressage puissent être facilement compris. Loin de là, il existe certainement des conventions d'usage courant: incorporer le "numéro de sous-réseau" IPv4 dans une partie du préfixe IPv6, soit avec BCD (par exemple 10.0.234.0/24devient 2001:db8:abcd:234::/64), soit binaire ( 10.0.234.0/24devient 2001:db8:abcd:ea::/64).

Mes interfaces ont plusieurs adresses IPv6. Le sous-réseau doit-il être identique pour tous?

Absolument pas! Les hôtes IPv6 devraient pouvoir être multi-hôtes en ayant plusieurs adresses IP simultanément provenant de différents sous-réseaux, tout comme IPv4. S'ils sont configurés automatiquement avec SLAAC, les différents sous-réseaux peuvent provenir de publications de routeur provenant de différents routeurs.

Pourquoi vois-je parfois un% plutôt qu'un / dans une adresse IPv6 et que signifie-t-il?

Vous ne verriez pas l'un au lieu de l'autre. Ils ont des significations différentes. Une barre oblique désigne un préfixe (sous-réseau), ce qui signifie un bloc d'adresses commençant par les mêmes nbits. Une adresse sans barre oblique est une adresse d'hôte. Vous pouvez penser qu'une telle adresse a un "/ 128" implicite à la fin, ce qui signifie que tous les 128 bits sont spécifiés.

Le signe de pourcentage accompagne une adresse de lien local. Dans IPv6, chaque interface a une adresse lien-local en plus de toute autre adresse IP dont elle pourrait disposer. Mais le problème est que les adresses des liens locaux sont toujours, sans exception, dans le fe80::/10bloc. Mais si nous essayons de parler à un homologue en utilisant une adresse locale de liaison et que l'hôte local dispose de plusieurs interfaces, comment savoir quelle interface utiliser pour dialoguer avec cet homologue? Normalement, la table de routage nous indique quelle interface utiliser pour un préfixe particulier, mais ici, elle nous indiquera ce qui fe80::/10est accessible via chaque interface.

La réponse est que nous devons lui dire quelle interface utiliser en utilisant la syntaxe address%interface. Par exemple, fe80::1234:5678:8765:4321%eth0.

Est-ce que je gaspille trop de sous-réseaux? Ne va-t-on pas simplement en manquer?

Personne ne sait. Qui peut dire l'avenir?

Mais considérez ceci. Dans IPv6, le nombre de sous - réseaux disponibles est le carré du nombre d' adresses individuelles disponibles dans IPv4. C'est vraiment beaucoup. Non, je veux dire vraiment beaucoup!

Mais toujours: nous distribuons automatiquement un / 32 à tout FAI qui en fait la demande, nous distribuons un / 48 à chaque client du FAI. Peut-être que nous exagérons et que nous gaspillerons IPv6 après tout. Mais il y a une disposition pour cela: seulement un huitième de l'espace IPv6 a été mis à la disposition pour ce jour: 2000::/3. L'idée est que si nous faisons un gâchis horrible du premier huitième et que nous devons réviser radicalement les politiques d'allocation libérales, nous devons essayer sept fois de plus avant que nous ayons des problèmes.

Et enfin: IPv6 ne doit pas durer éternellement. Sa durée de vie sera peut-être plus longue que celle d'IPv4 (une durée de vie impressionnante et elle n'est pas terminée) mais, comme toute technologie, elle cessera un jour de compter. Nous avons seulement besoin de le faire d'ici là.

Celada
la source
13
Très bonne explication! Surtout à propos de la mentalité différente. Si vous regardez les chiffres, vous constaterez qu'il y a 536 870 912/32 (petits FAI) en 2000 :: / 3. Avec une population mondiale de 7 milliards, ce qui correspond à un fournisseur de services Internet sur 13, et chacun de ces fournisseurs de services Internet peut compter sur 65 536 clients avec un / 48 chacun. Pas besoin de s'inquiéter de gaspiller des adresses pour l'instant :-)
Sander Steffann
Oui, c'est une très bonne explication.
Fergus
2
Bonne explication sur les détails spécifiques de 2000 :: / 3.
Koos van den Hout
5
Belle explication. +1 sur le dernier commentaire. J'espère que tout le monde a déjà vu ça: xkcd.com/865
Nico
@SanderSteffann Et si cela pose problème, il serait tout à fait raisonnable que les FAI attribuent les nouveaux / 64 aux utilisateurs résidentiels au lieu de / 48s. ). Le schéma actuel est juste conçu pour laisser la place à l'expansion à chaque couche.
Immibis
45

IPv6 est de 128 bits, alors pourquoi / 64 est-il le plus petit sous-réseau recommandé pour les hôtes?

Tout d'abord, un peu d'art ASCII des RFC pour établir la terminologie:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+

Le préfixe de routage global identifie généralement le réseau global auquel l'adresse appartient. C'est typiquement 48 bits. L'ID d'interface identifie une interface réseau donnée. C'est typiquement 64 bits. Les 16 bits restants constituent votre ID de sous-réseau.

OK, avec l'explication:

Selon RFC 4291 - Architecture d'adressage IP version 6 :

Toutes les adresses Global Unicast autres que celles commençant par 000 binaire ont un champ ID d'interface 64 bits.

Et RFC 5375 - Considérations sur l’affectation d’adresse IP de monodiffusion IPv6 :

Un élément important d’un plan d’adressage IPv4 consiste à déterminer la longueur de chaque préfixe de sous-réseau. Contrairement à IPv4, l'architecture d'adressage IPv6 [RFC4291] spécifie que tous les sous-réseaux utilisant des adresses globalement uniques et des ULA ont toujours la même longueur de préfixe de 64 bits.

Donc, en ignorant l'exception du préfixe 000, l'ID d'interface est toujours exactement 64 bits. C'est une autre façon de dire que tous les réseaux de diffusion locaux sont toujours à 64 bits . Si vous avez une adresse IPv6, son masque de réseau est toujours de 64 bits. Jamais plus, jamais moins. Si un espace d'adressage supérieur à celui-ci vous a été attribué (masque de réseau plus court que 64 bits), il est alors supposé que vous allez le partitionner en réseaux 64 bits et gérer vous-même le routage. Si on vous donnait un réseau plus petit que cela (masque de réseau plus long), alors quelqu'un foirait.

Alors, pourquoi 64 bits exactement?

En règle générale, les adresses IPv6 sont configurées automatiquement plutôt qu'attribuées. Le routeur indiquera quel préfixe de réseau est disponible (préfixe de routage + ID de sous-réseau: 64 premiers bits), et votre ordinateur remplira les derniers 64 bits en utilisant son propre identifiant unique. Comment votre ordinateur crée-t-il un identifiant unique? Il existe quelques possibilités, la plus courante consiste à utiliser l'adresse MAC de votre interface. Vous divisez le MAC en deux (moitié fournisseur / moitié série), retournez le bit universel local du côté fournisseur et reliez-les FF:FEau milieu. Ainsi 00:30:48:01:23:45devient 0230:48ff:fe01:2345. Placez maintenant le préfixe de réseau 64 bits annoncé sur le côté gauche, et vous avez votre adresse IP.

Le point important ici est que si vous suivez ce schéma, les conflits d’adresses IP ne se produiront pas. Étant donné que chaque périphérique d'un réseau de diffusion donné BESOIN d'une adresse MAC unique pour fonctionner, l'attachement de l'ID d'interface à l'adresse MAC signifie que, tant que le trafic de diffusion n'entre pas en collision, les adresses IPv6 ne le seront pas non plus. L'utilisation de 64 bits (au lieu des 48 uniquement dédiés aux adresses MAC) donne un peu de marge de manœuvre au-delà des adresses fournies par ce schéma (il en existe plusieurs autres).

Existe-t-il d'autres situations dans lesquelles j'utiliserais un sous-réseau inférieur à / 64?

Nan. Pas sauf si tu es cassé. Vous avez peut-être une justification basée sur les exigences locales pour la configuration d’un routage manuel avec votre réseau existant. Mais gardez à l'esprit que, ce faisant, vous faites probablement un gâchis:

De la RFC 5375 - Considérations d'attribution d'adresse IPv6 unicast :

L'utilisation d'une longueur de préfixe de sous-réseau différente de a / 64 annulera de nombreuses fonctionnalités d'IPv6, notamment la découverte de voisin (ND), la découverte de voisin sécurisé (SEND) [RFC3971], les extensions de confidentialité [RFC4941], des éléments de Mobile IPv6 [RFC4866], Multicast - Mode Sparse (PIM-SM) avec Embedded-RP [RFC3956] et multiréseau de site par intermédiation IPv6 (SHIM6) [SHIM6], entre autres. Un certain nombre d'autres fonctionnalités en cours de développement ou proposées reposent également sur / 64 préfixes de sous-réseau.

....

Cependant, certains administrateurs réseau ont utilisé des préfixes plus longs que / 64 pour les liens de connexion aux routeurs, généralement deux routeurs sur une liaison point à point. Sur les liaisons où toutes les adresses sont attribuées par configuration manuelle et tous les nœuds de la liaison sont des routeurs (et non des hôtes finaux) connus du réseau, les administrateurs n'ont besoin d'aucune des fonctionnalités IPv6 reposant sur / 64 préfixes de sous-réseau. peut marcher. L'utilisation de préfixes de sous-réseau plus longs que / 64 n'est pas recommandée pour une utilisation générale, et leur utilisation pour les liens contenant des hôtes finaux serait une très mauvaise idée, car il est difficile de prédire quelles fonctionnalités IPv6 les hôtes utiliseront à l'avenir.

Pourquoi est-il recommandé d'utiliser / 127 pour les liaisons point à point entre routeurs et pourquoi était-il déconseillé dans le passé?

Vous voudrez peut-être faire un survol de la RFC 3627 - Utilisation de / 127 Longueur du préfixe entre les routeurs considérés comme nuisibles . Consultez ensuite la RFC 6164 suivante - Utilisation des préfixes IPv6 sur 127 bits sur les liaisons inter-routeurs .

L’objection à l’utilisation de préfixes plus longs que / 64 sur les routeurs concerne la configuration automatique du routeur, qui risque d’échouer dans de rares circonstances. L’objection à l’utilisation de préfixes plus courts que / 127 (2 hôtes uniquement) concerne un certain nombre de problèmes de déni de service potentiels liés à l’envoi de paquets aux adresses non routées. Étant donné que les problèmes de déni de service réels sont pires que les échecs de configuration automatique théoriques, / 127 est le nouveau favori.

Devrais-je changer les liens de routeur existants pour utiliser / 127?

Si vous contrôlez un routeur IPv6, je vous recommande de lire les deux RFC (ils sont courts!) Et de décider vous-même.

Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6?

Par exemple, un IPv4 / 24 correspond-il directement à un IPv6 / 56 ou / 120?

En fait, oui. Rappelez-vous que préfixe 000 nous avons volontairement ignoré plus tôt? Eh bien, voici une utilisation pour cela:

Sur les systèmes à double pile (ceux avec les piles IPv4 et IPv6 actives), vous pouvez représenter IPv4 à l'aide de la mécanique IPv6. Ils l'appellent " adresses IPv6 mappées IPv4 ". Le modèle est entièrement composé de zéros, suivi de FFFF, suivi de l'adresse IPv4 32 bits.

Alors, 192.168.100.21devient ::FFFF:C0A8:6415- ou plus simplement: ::FFFF:192.168.100.21. Comme ce bit de droite représente une adresse IPv4, il est traditionnellement écrit en utilisant une forme décimale en pointillé.

S'agissant d'une adresse IPv4 réelle, il utilise toujours les en-têtes IPv4, etc., ce qui signifie qu'une pile IPv4 doit être présente, les itinéraires IPv4 doivent être définis et ainsi de suite. L'avantage est que vous pouvez représenter à la fois les adresses IPv4 et IPv6 à l'aide d'une structure d'adresses unique, ce qui peut simplifier le développement d'applications. Cela ne fait aucune différence en ce qui concerne le réseau.

tylerl
la source
20
  1. IPv6 est de 128 bits, alors pourquoi / 64 est-il le plus petit sous-réseau recommandé pour les hôtes?

    Cette taille de préfixe était à l'origine recommandée dans une RFC plus ancienne. Depuis lors, cette stratégie a été révisée. Le problème des attaques de découverte de voisin est pris en compte et l'utilisation de / 126 est une solution valable. Néanmoins, si vous configurez des liens point à point avec le Pour acheminer le trafic, une autre option consiste simplement à conserver un sous-réseau / 64 et un pare-feu. Mieux encore, allouez-vous un pool dans lequel vous allez dessiner / 64 sous-réseaux et conservez ce pool entier en tant que destination sur la liste noire (et partout où cette hostilité pourrait provenir)

  2. Pourquoi est-il recommandé d'utiliser / 127 pour les liaisons point à point entre routeurs et pourquoi était-il déconseillé dans le passé? Devrais-je changer les liens de routeur existants pour utiliser / 127?

    / 127 n'est pas recommandé entre routeurs et ne l'a jamais été - l'adresse Anycast de tous les routeurs est l'adresse du sous-réseau de tous les zéros; cela signifie que / 127 n'est techniquement valable qu'entre deux machines où l'une d'elles n'agit PAS comme routeur. / 126 va bien sur.

    Toutefois, dans tous les cas, je ne conseillerais pas de changer de lien / 64 existant à moins que votre équipement ne soit vulnérable à une attaque de flot de cache par Discovery Discovery - et même dans ce cas, déterminez d’abord si vous allez réellement utiliser ce / 64 pour la connectivité Internet. , si la réponse est non, il suffit de le pare-feu.

  3. Pourquoi les machines virtuelles seraient-elles configurées avec des sous-réseaux inférieurs à / 64?

    Cela casse SLAAC et les RA, à moins que vous ne sachiez vraiment ce que vous faites, il est peu probable que vous ayez une bonne raison de le faire - peut-être que votre amont vous a donné un seul / 64 mais si c'est le cas, vous devez y aller retournez-leur et demandez-leur davantage. S'ils veulent vous faire payer, commencez à chercher un nouveau fournisseur et envoyez-leur peut-être des courriels sournois faisant référence aux RFC correspondantes.

  4. Existe-t-il d'autres situations dans lesquelles j'utiliserais un sous-réseau inférieur à / 64?

    Honnêtement? probablement pas. Si je pense à une raison légitime pour laquelle un sous-réseau plus petit est préférable pour des objectifs autres que la prévention des attaques du NPD, je modifierai cette section.

    Inversement, il existe des situations dans lesquelles vous NE voudriez PAS utiliser de sous-réseaux inférieurs à / 64 - en particulier lorsque vous exécutez un environnement avec un équipement de transfert de matériel (pensez aux routeurs de marque et aux commutateurs L3) - certains seront incapables d'effectuer le routage matériel des préfixes plus long que / 64, d’autres doivent scinder l’opération en plusieurs comparaisons. Par conséquent, vous devriez au moins faire de votre mieux pour vous assurer que / 64 est le préfixe le plus long de votre dorsale (OSPF / ISIS / EIGRP / etc.).

  5. Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6? Par exemple, un IPv4 / 24 correspond-il directement à un IPv6 / 56 ou / 120?

    Officiellement, :: ffff: xxxx est le format d'une adresse IPv4 mappée IPv6 - il existe bien sûr également un certain nombre de mécanismes de transition, à savoir 6to4 et son relatif, 6rd, qui mappent une adresse IPv4 en une adresse IPv6 globale aux fins de fournir un accès IPv6 sur IPv4 en créant un préfixe IPv6 dérivé de l'adresse IPv4 transférée.

  6. Mes interfaces ont plusieurs adresses IPv6. Le sous-réseau doit-il être identique pour tous?

    Non, l'utilisation d'adresses et de tailles de sous-réseaux variables sur la même interface ne devrait pas être un problème. Si c'est le cas, l'implémentation est boguée. Bien sûr, une meilleure question est: pourquoi voudriez-vous faire cela?

  7. Pourquoi vois-je parfois un% plutôt qu'un / dans une adresse IPv6 et que signifie-t-il?

    C'est un délimiteur, généralement appliqué aux adresses link-local (fe80 :: / 12) - comme la même adresse link-local peut légitimement exister sur plusieurs interfaces, le délimiteur% permet de spécifier quelle interface est destinée. Linux rend généralement obligatoire la spécification de l'interface lors d'opérations impliquant un lien local. Windows Vista / 2008 et les versions ultérieures sont un peu plus intelligentes et ne se plaindront pas à moins qu'un lien-local ne soit pas unique.

  8. Est-ce que je gaspille trop de sous-réseaux? Ne va-t-on pas simplement en manquer?

    Non. C’est un cheval mort qui a été flagellé WAAAAAAAAAY trop souvent - l’Internet mondial IPv6 actuel est 2000 :: / 3 - il existe plusieurs autres préfixes que l’IANA pourrait commencer à utiliser si, d’une manière ou d’une autre, chaque RIR de la planète parvient à épuiser leur adresse des stocks. Donc non, nous ne manquerons pas d’espace, et même si nous le faisons, il suffit d’un simple coup de stylo pour afficher un nouveau préfixe, et non un changement technique. La seule chose que cette question met vraiment en évidence est l'incapacité de l'esprit humain à comprendre à quel point l'espace d'adresses est ridiculement vaste.

  9. De quelles autres manières les sous-réseaux IPv6 sont-ils différents des sous-réseaux IPv4?

    En plus de ne pas vous soucier de combien d’espace vous utilisez, souvenez-vous qu’il n’ya pas d’adresse de diffusion et que l’adresse "sous-réseau-zéro" est maintenant l’adresse anycast de tous les routeurs (qui est une adresse implicite sur tous les nœuds configurés). transmettre les paquets IPv6) - cela a un effet secondaire utile, car il vous permet d'utiliser l'adresse de tous les zéros comme route par défaut dans un réseau (non, cela ne causera pas de duplication de paquets, c'est ANYcast, pas MULTIcast) - n'oubliez pas bien que l'hôte puisse basculer entre les routeurs toutes les quelques secondes, cela n'est pas approprié pour une configuration de pare-feu avec état si le suivi de connexion n'est pas synchronisé entre eux.

    En dehors de cela, l'autre différence majeure réside dans le fait qu'IPv6 se préoccupe des adresses en double et des voisins morts (NUD). Ainsi, contrairement à IPv4, un hôte refuse d'utiliser une adresse s'il peut déterminer qu'un autre nœud du lien l'utilise déjà. . NUD, d’autre part, est utile si vous configurez des routes statiques - vous pouvez définir plusieurs routes distinctes pour un préfixe avec différentes métriques. Elles fonctionneront, contrairement à IPv4 où la route de métrique la plus basse sera utilisée, que la prochaine -hop est mort ou en vie (bien que cela puisse ne pas être vrai pour certaines implémentations IPv4 qui utilisent ARP pour valider des itinéraires tels que Cisco et d'autres grands fournisseurs de routeurs)

    TLDR; IPv6 détecte les adresses en double et les voisins inaccessibles. L'adresse tout-zéro est anycast avec tous les routeurs et il n'y a rien de tel qu'une diffusion, all-one est une adresse normale.

Olipro
la source
3
En réponse à la réponse 2) ... tools.ietf.org/html/rfc6164 tools.ietf.org/html/rfc6547
cpt_fink
3

Pour ceux qui se demandent d’où proviennent les spécifications / 64 pour SLAAC, voici quelques références supplémentaires:

De la configuration automatique d'adresse sans état IPv6 (RFC 4862) :

Si la somme de la longueur du préfixe et de la longueur de l'identificateur d'interface n'est pas égale à 128 bits, l'option Informations de préfixe DOIT être ignorée. [...]

Il incombe à l'administrateur système de s'assurer que la longueur des préfixes contenus dans les annonces de routeur correspond à la longueur des identificateurs d'interface pour ce type de lien.

Et à partir de l'architecture d'adressage IP version 6 (RFC 4291) :

Pour toutes les adresses unicast, à l'exception de celles commençant par la valeur binaire 000, les ID d'interface doivent avoir une longueur de 64 bits et être générés au format EUI-64 modifié.

Par conséquent, comme l'ID d'interface doit avoir une longueur de 64 bits et que la somme de la longueur du préfixe et de la longueur de l'ID d'interface doit être de 128, la seule longueur possible du préfixe lors de l'utilisation de SLAAC est de 64 bits.

Sander Steffann
la source
2

IPv6 est de 128 bits, alors pourquoi / 64 est-il le plus petit sous-réseau recommandé pour les hôtes?

Parce que les partisans d'IPv6 ont aimé l'idée d'une configuration automatique sans état.

Si vous optez pour une autre taille de sous-réseau, la configuration automatique sans état sera interrompue. Certaines autres choses mineures peuvent aussi casser, prenez une lecture de rfc7421 pour plus de détails.

Personnellement, je pense que l'autoconfiguration sans état est une idée stupide de toute façon. Cela conduit à des adresses illisibles et ne vous donne pratiquement aucun contrôle sur l'adressage au-delà de l'assignation du bloc au sous-réseau.

Bien sûr, le problème avec les conventions est que si vous les suivez et que les choses tournent mal, vous pouvez pointer sur les conventions, si vous refusez de les suivre et que les choses tournent mal, ce sera votre faute.

Pourquoi est-il recommandé d'utiliser / 127 pour les liaisons point à point entre routeurs,

L'utilisation de sous-réseaux avec un petit nombre d'adresses disponibles évite les attaques d'épuisement de la découverte des voisins.

Bien sûr, ce raisonnement ne s’applique pas uniquement aux liens point à point. J'imagine qu'il était politiquement possible de faire cette recommandation pour les liens de routeur point à point, mais pas politiquement de le faire pour d'autres liens.

Pourquoi les machines virtuelles seraient-elles configurées avec moins de / 64 adresses?

Nous devons faire une distinction ici. Un fournisseur d'hébergement peut attribuer des adresses à une machine (physique ou virtuelle) de deux manières.

Ils peuvent leur attribuer des adresses "en liaison" où la machine est censée répondre aux demandes de découverte des voisins. Certains fournisseurs d’hébergement ont choisi d’attribuer à chaque machine un a / 64 qui présente des avantages en termes de mobilité d’adresses, d’autres à un VLAN a / 64, puis de donner à chaque machine des sous-blocs de celle utilisant moins d’adresses et pouvant signifier que le trafic local reste local passer à un routeur.

Ils peuvent aussi traiter la machine comme un routeur et lui attribuer un bloc routé. Dans ce cas, il faudrait assez d’adresses pour adresser tous les sous-réseaux internes. Si vous suivez la convention "Tous les sous-réseaux doivent être / 64", cela signifie que vous lui affecterez au moins a / 64 et éventuellement davantage. Cela est logique pour les machines qui ont des "réseaux à l'intérieur de la machine", par exemple un hôte conteneur.

Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6? Par exemple, un IPv4 / 24 correspond-il directement à un IPv6 / 56 ou / 120?

Une telle cartographie relève de la politique locale.

Mes interfaces ont plusieurs adresses IPv6. Le sous-réseau doit-il être identique pour tous?

Non

Pourquoi vois-je parfois un% plutôt qu'un / dans une adresse IPv6 et que signifie-t-il?

% est un identifiant d'interface. Il est utilisé conjointement avec les adresses de liens locaux. Cela est nécessaire car une machine peut avoir plusieurs interfaces et les réseaux connectés à ces interfaces peuvent avoir des adresses lien-local qui se chevauchent.

Est-ce que je gaspille trop de sous-réseaux? Ne va-t-on pas simplement en manquer?

Je ne m'inquiéterais pas trop à ce sujet.

Même avec l'étrange décision des concepteurs IPv6 d'utiliser un espace d'adressage de 128 bits et d'en jeter près de la moitié sur une configuration automatique sans état, IPv6 a toujours énormément plus d'espace que IPv4.

Et s'il y avait une crise, il ne faudrait qu'un coup de stylo pour revenir sur cette décision étrange.

La taille de la table de routage est un problème beaucoup plus important lié à l'évolutivité IPv6. Le NAT IPv6 est fortement déconseillé. L'exploitation d'un réseau étendu sur des adresses attribuées par le fournisseur entraîne un risque important de blocage du fournisseur.

Je pense donc que, avec l'intensification de la pénétration d'IPv6 dans les réseaux d'entreprise, nous assisterons à une explosion des demandes d'espace IPv6 indépendant du fournisseur.

Peter Green
la source