web-dev-qa-db-fra.com

Comment fonctionne le sous-réseau IPv6 et en quoi diffère-t-il du sous-réseau IPv4?

Il s'agit d'une question canonique sur le sous-réseau IPv6.

En relation:

Je sais beaucoup de choses sur IPv4 Subnetting , et alors que je me prépare à (déployer | travailler sur) un réseau IPv6, j'ai besoin de savoir combien de ces connaissances sont transférables et ce que j'ai encore besoin d'apprendre. IPv6 semble à première vue beaucoup plus complexe que IPv4. Je voudrais donc savoir:

  • IPv6 est de 128 bits, alors pourquoi/64 est-il le plus petit sous-réseau recommandé pour les hôtes? À ce sujet:
    • Pourquoi est-il recommandé d'utiliser/127 pour les liaisons point à point entre les routeurs, et pourquoi était-il recommandé par le passé? Dois-je modifier les liens de routeur existants pour utiliser/127?
    • Pourquoi les machines virtuelles seraient-elles provisionnées avec moins d'une valeur/64 d'adresses?
    • Y a-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 aux 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 le même pour tous?
  • Pourquoi est-ce que je vois parfois un% plutôt qu'un/dans une adresse IPv6 et qu'est-ce que cela signifie?
  • Suis-je en train de perdre trop de sous-réseaux? N'allons-nous pas simplement manquer de nouveau?
  • De quelles autres manières principales le sous-réseau IPv6 est-il différent du sous-réseau IPv4?
120
Michael Hampton

La première chose à mentionner à propos du sous-réseau IPv6 est qu'un autre mode de pensée est nécessaire. Dans IPv4, vous pensez généralement au nombre d'adresses dont vous disposez et à la manière dont vous pouvez en allouer suffisamment à chaque utilisateur final. Dans IPv6, vous pensez généralement au nombre (/ 64) de sous-réseaux dont vous disposez et à la façon de les allouer aux utilisateurs finaux. Vous ne vous inquiétez presque jamais du nombre d'adresses IP qui seront utilisées dans un sous-réseau donné. À l'exception de certains cas spéciaux comme les liens point à point, chaque sous-réseau a simplement beaucoup plus d'adresses disponibles qu'il n'en aura jamais besoin, vous ne vous souciez donc que d'allouer des sous-réseaux, pas d'hôtes à l'intérieur.

Les sous-réseaux IPv6 sont généralement/64 car cela est nécessaire pour que SLAAC (autoconfiguration d'adresse sans état) fonctionne. Même lorsque SLAAC n'est pas utilisé, il peut y avoir d'autres raisons d'utiliser/64. Par exemple, il peut y avoir des appareils d'utilisateurs finaux qui supposent simplement/64, ou bien des sous-réseaux de routage plus longs que/64 peuvent être inefficaces sur certains routeurs parce que l'implémentateur de routeur a optimisé le cas de/64 ou des itinéraires plus courts afin d'économiser mémoire de table de routage.

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

Pour le cas spécifique des liaisons point à point,/127 est recommandé au lieu de/64 afin d'éviter une vulnérabilité où les paquets adressés à l'un des quadrillions d'adresses inutilisées du sous-réseau provoquent des demandes de sollicitation de voisins indésirables et des entrées de table qui pourrait noyer un routeur. Ces paquets mal adressés peuvent être malveillants ou accidentels. Mais même si vous configurez réellement une liaison point à point en tant que/127, certaines personnes préconisent de toute façon d'affecter un/64 juste pour être cohérent.

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

Je ne sais pas précisément pourquoi les machines virtuelles seraient provisionnées avec des sous-réseaux inférieurs à/64. Peut-être parce qu'un hébergeur supposait qu'un serveur était comme un utilisateur final et ne nécessitait qu'un seul sous-réseau (/ 64), ne prévoyant pas que le serveur serait en fait une collection de machines virtuelles 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 chacun VM obtient PREFIX:0:NNNN::/96 où NNNN est unique à VM et VM peut allouer PREFIX:0:NNNN:XXXX:YYYY à sa guise.

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

Du point de vue de 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 en IPv6". Mais cette comparaison n'est pas vraiment appropriée. Des conventions fortes sont apparues dans IPv6 qui font que les divisions de tailles de réseau ressemblent un peu plus à l'ancien monde des réseaux de classe dans IPv4. Certes, IPv6 n'a pas réintroduit l'adressage par classe dans lequel les quelques bits les plus significatifs de l'adresse forcent un masque de réseau particulier, mais ce qu'IPv6 fait est certain [defacto/conventionally] tailles réseau standard :

  • /64 : la 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" sont jamais prévu d'être plus petit (préfixe plus long) que/64. Aucun sous-réseau ne devrait jamais être plus grand (préfixe plus court) que/64 car la valeur des adresses d'hôte de/64 est bien plus que ce que nous pouvons imaginer avoir besoin.
  • /56 : un bloc de 256 sous-réseaux de base. Même si les politiques actuelles permettent aux FAI de distribuer des blocs aussi grands que/48 à chaque utilisateur final et considèrent toujours que leur utilisation de l'adresse est bien justifiée, certains FAI peuvent (et le font déjà) choisir d'allouer un/56 aux clients de qualité grand public comme compromis entre les lots d'allocation de sous-réseaux pour eux et aborder l'économie.
  • /48 : un bloc de 65536 sous-réseaux de base et la taille de bloc recommandée que chaque site final client ISP devrait recevoir.
  • /32 : la taille par défaut du bloc que la plupart des FAI 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. En regardant les tables de routage des routeurs à l'intérieur de ces réseaux, IPv4 et IPv6 ont beaucoup en commun, y compris la plupart du fonctionnement du routage: les itinéraires pour les préfixes plus longs remplacent les itinéraires couvrant les préfixes plus courts, il est donc possible d'agréger (raccourcir) et d'explorer vers le bas (allonger) les itinéraires. Comme dans IPv4, les routes peuvent être agrégées ou résumées en blocs plus grands avec des préfixes plus courts afin de minimiser la taille des tables de routage.

Une autre question de mappage entre IPv4 et IPv6 serait de savoir comment harmoniser les affectations IPv4 et IPv6 sur les machines à double pile afin que les plans d'adressage puissent être facilement compris. Loin de cela, il existe certainement des conventions couramment utilisées pour ce faire: 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/24 devient 2001:db8:abcd:234::/64) ou binaire (10.0.234.0/24 devient 2001:db8:abcd:ea::/64).

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

Absolument pas! Les hôtes IPv6 devraient pouvoir être multi-hôtes en ayant simultanément plusieurs adresses IP 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 d'annonces de routeur de différents routeurs.

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

Vous ne verriez pas l'un au lieu de l'autre. Ils ont des significations différentes. Une barre oblique indique un préfixe (sous-réseau), c'est-à-dire un bloc d'adresses qui commencent toutes par les mêmes n bits. Une adresse sans barre oblique est une adresse d'hôte. Vous pouvez penser à une telle adresse comme ayant 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 possède une adresse de liaison locale en plus de toutes les autres adresses IP qu'elle pourrait avoir. Mais le fait est que les adresses de lien local sont toujours, sans exception, dans le fe80::/10 bloquer. Mais si nous essayons de parler à un homologue en utilisant une adresse locale de lien et que l'hôte local a plusieurs interfaces, comment savoir quelle interface utiliser pour parler à cet homologue? Normalement, la table de routage nous dit quelle interface utiliser pour un préfixe particulier, mais ici elle nous dira que fe80::/10 est accessible via toutes les interfaces.

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.

Suis-je en train de perdre trop de sous-réseaux? N'allons-nous pas simplement manquer de nouveau?

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

Et enfin: IPv6 ne doit pas durer éternellement. Il aura peut-être une durée de vie plus longue que IPv4 (une durée de vie déjà impressionnante et ce n'est pas fini), mais comme toute technologie, il cessera un jour de compter. Nous devons seulement le faire jusque-là.

143
Celada

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 ASCII art 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 appartient l'adresse. C'est généralement 48 bits. L'ID d'interface identifie une interface réseau donnée. Il s'agit généralement de 64 bits. Les 16 bits restants sont votre ID de sous-réseau.

OK, avec l'explication:

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

Toutes les adresses de monodiffusion globale autres que celles qui commencent par 000 binaire ont un champ ID d'interface 64 bits.

Et RFC 5375 - Considérations d'attribution d'adresse de monodiffusion IPv6 :

Une partie importante d'un plan d'adressage IPv4 consiste à décider de 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 et ULA globales uniques 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 64 bits exactement. 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 64 bits. Jamais plus, jamais moins. Si un espace d'adressage vous a été attribué plus grand (masque de réseau plus court que 64 bits), il est supposé que vous allez partitionner cet espace d'adressage en réseaux 64 bits et gérer le routage vous-même. Si on vous a donné un réseau plus petit que cela (masque de réseau plus long), alors quelqu'un a foiré.

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 annoncera quel préfixe de réseau est disponible (préfixe de routage + ID de sous-réseau: premiers 64 bits), et votre ordinateur remplira les 64 derniers bits en utilisant son propre identifiant unique. Comment votre ordinateur trouve-t-il un identifiant unique? Il y a quelques possibilités, la plus courante est d'utiliser l'adresse MAC de votre interface. Vous divisez le MAC en deux (moitié fournisseur/moitié série), retournez le bit universel-local côté fournisseur et réunissez-les à nouveau avec FF:FE au milieu. Donc 00:30:48:01:23:45 devient 0230:48ff:fe01:2345. Maintenant, placez le préfixe de réseau 64 bits annoncé sur le côté gauche de cela, et vous avez votre adresse IP.

Le point important ici est que si vous suivez ce schéma, les collisions d'adresses IP ne se produiront pas. Étant donné que chaque périphérique sur un réseau de diffusion donné a besoin d'une adresse MAC unique pour fonctionner, lier l'ID d'interface à l'adresse MAC signifie que tant que le trafic de diffusion ne se heurte pas, 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 seules adresses fournies par ce schéma (il y en a plusieurs autres).

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

Nan. Sauf si vous êtes brisé. Eh bien, vous pouvez avoir une justification basée sur les exigences locales pour configurer le routage manuel avec votre réseau existant. Mais gardez à l'esprit qu'en faisant cela, vous faites probablement un gâchis:

De RFC 5375 - Considérations d'attribution d'adresse de monodiffusion IPv6 :

L'utilisation d'une longueur de préfixe de sous-réseau autre que a/64 interrompra de nombreuses fonctionnalités d'IPv6, notamment la découverte de voisins (ND), la découverte de voisins sécurisés (SEND) [RFC3971], les extensions de confidentialité [RFC4941], certaines parties de Mobile IPv6 [RFC4866], indépendant du protocole Multidiffusion - Mode clairsemé (PIM-SM) avec Embedded-RP [RFC3956] et site multihébergement 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 les préfixes de sous-réseau/64.

....

Cependant, certains administrateurs réseau ont utilisé des préfixes plus longs que/64 pour les liaisons reliant les routeurs, généralement seulement deux routeurs sur une liaison point à point. Sur les liens où toutes les adresses sont attribuées par configuration manuelle, et tous les nœuds sur le lien sont des routeurs (pas des hôtes finaux) connus du réseau, les administrateurs n'ont besoin d'aucune des fonctionnalités IPv6 qui s'appuient sur les préfixes de sous-réseau/64, ceci 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 des 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 les routeurs, et pourquoi était-il recommandé par le passé?

Vous voudrez peut-être passer outre RFC 3627 - Utilisation de la longueur de préfixe/127 entre les routeurs considérés comme nuisibles . Ensuite, jetez un œil à la suite RFC 6164 - Utilisation des préfixes IPv6 127 bits sur les liaisons inter-routeur .

L'objection à l'utilisation de préfixes plus longs que/64 sur les routeurs est liée à l'échec de la configuration automatique des routeurs dans de rares circonstances. L'objection à l'utilisation de préfixes plus courts que/127 (2 hôtes uniquement) a à voir avec un certain nombre de problèmes potentiels de déni de service liés aux paquets envoyés aux adresses non acheminées. Étant donné que les problèmes de déni de service dans le monde réel sont pires que les échecs théoriques de configuration automatique,/127 est le nouveau favori.

Dois-je modifier 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 par vous-même.

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

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

En fait, oui. Vous vous souvenez du préfixe 000 que nous avons intentionnellement ignoré plus tôt? Eh bien, voici une utilisation:

Sur les systèmes à double pile (ceux avec des 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 composé de zéros, suivi de FFFF, suivi de l'adresse IPv4 32 bits.

Donc, 192.168.100.21 devient ::FFFF:C0A8:6415 - ou plus simplement: ::FFFF:192.168.100.21. Étant donné que ce bit de droite représente une adresse IPv4, il est traditionnellement écrit en utilisant la forme décimale en pointillés.

Comme il s'agit d'une adresse IPv4 réelle, elle utilise toujours des en-têtes IPv4, etc., ce qui signifie qu'une pile IPv4 doit être présente, des routes IPv4 doivent être définies, et tout cela. L'avantage est que vous pouvez représenter les adresses IPv4 et IPv6 à l'aide d'une structure d'adresse unique, ce qui peut simplifier le développement d'applications. Cela ne fait aucune différence en ce qui concerne le réseau.

46
tylerl
  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 initialement recommandée dans une ancienne RFC - il y a eu depuis une révision de cette politique où le problème des attaques de découverte de voisins est considéré et l'utilisation d'un/126 est une atténuation valide - néanmoins, si vous configurez des liens PtP avec le Dans le seul but de router le trafic, une option alternative est simplement de coller avec un/64 et un pare-feu qui sous-réseau. Mieux encore, allouez-vous un pool à partir duquel vous tirerez/64 sous-réseaux, et ayez tout ce pool comme destination sur votre liste noire sur votre Edge (et partout où l'hostilité pourrait provenir)

  2. Pourquoi est-il recommandé d'utiliser/127 pour les liens point à point entre les routeurs, et pourquoi était-il recommandé par le passé? Dois-je modifier les liens de routeur existants pour utiliser/127?

    / 127 n'est pas recommandé entre les routeurs et ne l'a jamais été - l'adresse Anycast de tous les routeurs est l'adresse de tous les zéros du sous-réseau; cela signifie que/127 n'est techniquement valable qu'entre deux machines où l'une d'elles est [~ # ~] pas [~ # ~] agissant comme un routeur./126 est bien sûr bien.

    Dans tous les cas cependant, je ne conseillerais pas de changer de liens/64 existants à moins que votre équipement ne soit vulnérable à une attaque par saturation du cache de découverte de voisin - 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 provisionnées avec des sous-réseaux inférieurs à/64?

    Cela casse le SLAAC et les RA, sauf si vous vraiment, vraiment savez ce que vous faites, il est peu probable que vous ayez une bonne raison de le faire - peut-être que votre amont ne vous a donné qu'un seul/64 mais si tel est le cas, vous devez leur revenir et en demander plus, s'ils veulent vous facturer, commencer à chercher un nouveau fournisseur et peut-être aussi leur envoyer des e-mails sournois reliant aux RFC pertinents.

  4. Y a-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 à des fins autres que la prévention des attaques NDP, je modifierai cette section.

    Inversement, il y a il y a situations où vous auriez [~ # ~] pas [~ # ~] souhaitez utiliser des sous-réseaux inférieurs à/64 - en particulier partout où vous exécutez un environnement avec un équipement de transfert matériel (pensez aux routeurs de marque et aux commutateurs L3) - certains ne pourront pas faire le routage matériel des préfixes plus longs que/64 , d'autres doivent diviser 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 aux 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 à des fins de fournir un accès IPv6 sur IPv4 en créant un préfixe IPv6 dérivé de l'adresse IPv4 sur laquelle il est transféré.

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

    Non, l'utilisation de différentes adresses et tailles de sous-réseau sur la même interface ne devrait pas poser de problème. Si c'est le cas, l'implémentation est boguée. Bien sûr, une meilleure question est pourquoi feriez-vous cela?

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

    Il s'agit d'un délimiteur, généralement appliqué aux adresses lien-local (fe80 ::/12) - puisque la même adresse lien-local peut exister légitimement sur plusieurs interfaces, le délimiteur% est utilisé pour permettre de spécifier à quelle interface il s'agit. Linux rend généralement obligatoire la spécification de l'interface lors des opérations impliquant un lien local. Windows Vista/2008 et au-delà sont un peu plus intelligents et ne se plaindront que si un lien local n'est pas unique.

  8. Suis-je en train de perdre trop de sous-réseaux? N'allons-nous pas simplement manquer de nouveau?

    Non. C'est un cheval mort qui a été fouetté [~ # ~] waaaaaaaaay [~ # ~] trop de fois - l'Internet Global IPv6 actuel est 2000 ::/3 - il y en a 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 réussissait à épuiser ses stocks d'adresses. Donc non, nous ne manquerons pas d'espace, et même si nous le faisons, cela nécessite un coup de crayon pour afficher un nouveau préfixe, pas 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'adressage est ridiculement vaste.

  9. De quelles autres manières principales le sous-réseau IPv6 est-il différent du sous-réseau IPv4?

    En plus de ne pas vous soucier de la quantité d'espace que vous utilisez, n'oubliez pas qu'il n'y a pas d'adresse de diffusion et que l'adresse "subnet-zero" est maintenant l'adresse anycast de tous les routeurs (qui est fondamentalement une adresse qui existe implicitement sur tous les nœuds configurés pour transférer les paquets IPv6) - cela a un effet secondaire utile de vous permettre d'utiliser tous les zéros comme adresse par défaut dans un réseau (non, cela ne causera pas de duplication de paquets, c'est ANYcast, pas MULTIcast) - gardez à l'esprit bien que l'hôte puisse basculer entre les routeurs toutes les quelques secondes, cela n'est donc pas approprié pour une configuration de pare-feu dynamique si le suivi de la connexion n'est pas synchronisé entre eux.

    En dehors de cela, l'autre différence majeure est que IPv6 se soucie des adresses en double et des voisins morts (NUD) - ainsi, contrairement à IPv4, un hôte refusera 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 réellement définir plusieurs routes distinctes vers un préfixe avec des métriques différentes et elles fonctionneront réellement, contrairement à IPv4 où la route métrique la plus basse sera utilisée indépendamment du fait que la prochaine -hop est mort ou vivant (bien que cela puisse ne pas être vrai pour certaines implémentations IPv4 qui utilisent ARP pour valider des routes comme Cisco et d'autres fournisseurs de routeurs majeurs)

    TLDR; IPv6 détecte les adresses en double et les voisins inaccessibles. L'adresse tout-zéro est tous les routeurs anycast et il n'y a rien de tel que la diffusion, tout-les est une adresse régulière.

20
Olipro

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

De Autoconfiguration 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 sur le préfixe DOIT être ignorée. [...]

Il est de la responsabilité de l'administrateur système de s'assurer que la longueur des préfixes contenus dans les annonces de routeur est cohérente avec la longueur des identificateurs d'interface pour ce type de lien.

Et à partir de IP Version 6 Addressing Architecture (RFC 4291) :

Pour toutes les adresses de monodiffusion, à l'exception de celles qui commencent par la valeur binaire 000, les ID d'interface doivent avoir une longueur de 64 bits et être construits au format EUI-64 modifié.

Par conséquent, étant donné que l'ID d'interface doit être 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.

3
Sander Steffann

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 également se briser, lisez rfc7421 pour plus de détails.

Personnellement, je pense que la configuration automatique sans état est une idée stupide de toute façon. Il conduit à des adresses illisibles et ne vous donne aucun contrôle sur l'adressage au-delà de l'attribution 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 la convention, 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 les routeurs,

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

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

Pourquoi les machines virtuelles seraient-elles provisionnées avec moins d'une valeur/64 d'adresses?

Nous devons faire une distinction ici. Un hébergeur peut attribuer des adresses à une machine de deux manières (physiques ou virtuelles).

Ils peuvent leur attribuer des adresses "en liaison" où la machine est censée répondre aux demandes de découverte des voisins. Certains hébergeurs ont choisi de donner à chaque machine un/64 qui présente des avantages dans la mobilité des adresses, d'autres donnent chacun VLAN a/64, puis donnent aux machines individuelles des sous-blocs de celui qui utilise moins d'adresses et peut signifier que le trafic local reste local plutôt que de passer à un routeur.

Ou ils peuvent traiter la machine comme un routeur et lui affecter un bloc routé. Dans ce cas, il aurait besoin de suffisamment d'adresses pour traiter tous ses sous-réseaux internes. Si vous suivez la convention "tous les sous-réseaux doivent être/64" cela signifierait l'allouer au moins a/64 et possiblement plus. Cela est logique pour les machines qui ont des "réseaux à l'intérieur de la machine", par exemple un hôte de conteneur.

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

Une telle cartographie est une question de politique locale.

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

Non

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

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

Suis-je en train de perdre trop de sous-réseaux? N'allons-nous pas simplement manquer de nouveau?

Je ne m'en inquiéterais pas trop.

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

Et s'il y avait un resserrement, il faudrait un peu plus d'un coup de stylo pour revenir sur cette étrange décision.

Un problème beaucoup plus important avec l'évolutivité IPv6 est la taille de la table de routage. IPv6 NAT est fortement déconseillé. L'exécution d'un grand réseau sur des adresses attribuées par le fournisseur entraîne un risque important de verrouillage du fournisseur.

Je pense donc qu'à mesure que la pénétration d'IPv6 dans les réseaux d'entreprise s'accélérera, nous verrons une explosion des demandes d'espace IPv6 indépendant du fournisseur.

2
Peter Green