137 votes

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

Il s'agit d'un Question canonique sur le sous-réseau IPv6.

En rapport :

Je sais beaucoup de choses sur Sous-réseau IPv4 et, alors que je me prépare à (déployer|travailler sur) un réseau IPv6, j'ai besoin de savoir dans quelle mesure ces connaissances sont transférables et ce qu'il me reste à apprendre. À première vue, IPv6 semble être beaucoup plus complexe qu'IPv4. J'aimerais donc savoir :

  • IPv6 est de 128 bits, alors pourquoi /64 est le plus petit sous-réseau recommandé pour les hôtes ? En rapport avec cette question :
    • Pourquoi est-il recommandé d'utiliser /127 pour les liens point à point entre routeurs, et pourquoi était-il déconseillé de le faire dans le passé ? Dois-je modifier les liens existants entre routeurs pour utiliser /127 ?
    • Pourquoi les machines virtuelles seraient-elles provisionnées avec moins de /64 d'adresses ?
    • Existe-t-il d'autres situations dans lesquelles je devrais utiliser un sous-réseau plus petit que /64 ?
  • Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6 ? Par exemple, un /24 IPv4 correspond-il directement à un /56 ou un /120 IPv6 ?
  • Mes interfaces ont plusieurs adresses IPv6. Le sous-réseau doit-il être le même pour toutes les interfaces ?
  • Pourquoi est-ce que je vois parfois un % plutôt qu'un / dans une adresse IPv6 et qu'est-ce que cela signifie ?
  • Est-ce que je gaspille trop de sous-réseaux ? Ne va-t-on pas encore en manquer ?
  • En quoi le sous-réseau IPv6 est-il différent du sous-réseau IPv4 ?

163voto

Greg Dubicki Points 303

La première chose qu'il faut mentionner à propos du sous-réseau IPv6 est qu'il y a une différence mode de pensée est nécessaire. En IPv4, on pense généralement à combien de adresses dont vous disposez et comment vous pouvez en attribuer suffisamment à chaque utilisateur final. En IPv6, on pense généralement à combien /64 - sous-réseaux dont vous disposez et comment vous pouvez les allouer aux utilisateurs finaux. Vous ne vous préoccupez presque jamais du nombre d'adresses IP qui seront utilisées dans un sous-réseau donné. À l'exception de certains cas particuliers, comme les liaisons point à point, chaque sous-réseau dispose tout simplement de beaucoup plus d'adresses qu'il n'en aura jamais besoin.

Les sous-réseaux IPv6 sont généralement /64 parce que c'est nécessaire pour que SLAAC (auto-configuration d'adresse sans état) pour fonctionner. Même lorsque SLAAC n'est pas utilisé, il peut y avoir d'autres raisons pour utiliser /64 . Par exemple, il peut y avoir des appareils d'utilisateurs finaux qui suppose juste /64 ou bien le routage de sous-réseaux plus étroits que /64 pourrait être inefficace sur certains routeurs parce que l'implémenteur du routeur a optimisé le cas de /64 ou des routes plus larges afin d'économiser la mémoire de la table de routage.

Pourquoi est-il recommandé d'utiliser /127 pour les liaisons 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'une des quadrillions d'adresses inutilisées sur le sous-réseau provoquent des demandes de sollicitation de voisins indésirables et des entrées de table qui pourraient noyer un routeur. Ces paquets mal adressés peuvent être malveillants ou accidentels. Mais même si vous configurez effectivement une liaison point à point comme /127 certaines personnes préconisent d'attribuer un /64 de toute façon, juste pour être cohérent.

Pourquoi les machines virtuelles sont-elles provisionnées avec des sous-réseaux plus étroits que ceux de l'entreprise ? /64 ?

Je ne sais pas précisément pourquoi les machines virtuelles seraient approvisionnées avec des sous-réseaux plus étroits que ceux de l'entreprise. /64 . Peut-être parce qu'un fournisseur d'hébergement a supposé qu'un serveur était comme un utilisateur final et ne nécessitait qu'un seul /64 sans prévoir que le serveur serait en fait un ensemble de machines virtuelles nécessitant une topologie de routage interne ? On pourrait aussi le faire simplement pour rendre le plan d'adressage plus facile à mémoriser : l'hôte obtient PREFIX::/64 alors chaque VM reçoit PREFIX:0:NNNN::/96 où NNNN est unique à la VM et la VM peut allouer PREFIX:0:NNNN:XXXX:YYYY comme bon lui semble.

Puis-je mapper directement des sous-réseaux IPv4 vers des sous-réseaux IPv6 ? Par exemple, est-ce qu'un réseau IPv4 /24 correspondent directement à une adresse IPv6 /56 ou /120 ?

Du point de vue du fonctionnement de l'adressage et du routage, la longueur du préfixe a la même signification dans IPv6 et IPv4. À ce niveau, on peut 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 hôte, c'est comme un /64 en IPv6". Mais cette comparaison n'est pas vraiment pertinente. De solides conventions sont apparues dans IPv6, qui font que la division des tailles de réseau ressemble un peu plus à l'ancien monde des réseaux à classes d'IPv4. Certes, IPv6 n'a pas réintroduit l'adressage par classe dans lequel les quelques bits les plus significatifs de l'adresse imposent un masque de réseau particulier, mais ce qu'IPv6 fait ont certaines tailles de réseau standard [defacto/conventionnellement] :

  • /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" ne sont jamais censés être plus étroits (préfixe plus long) que /64 . Aucun sous-réseau ne devrait jamais être plus large (préfixe plus court) que /64 depuis un /64 Le nombre d'adresses d'hôtes est bien plus important que ce dont 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 larges que /48 à chaque utilisateur final et considèrent toujours que l'utilisation de leur adresse est justifiée, certains FAI peuvent (et le font déjà) choisir d'allouer une adresse de type /56 aux clients grand public comme un compromis entre l'allocation d'un grand nombre de sous-réseaux pour eux et l'économie d'adresses.
  • /48 : un bloc de 65536 les sous-réseaux de base et la taille recommandée du bloc que chaque site d'extrémité des clients 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.

Dans les réseaux de fournisseurs de services et d'entreprises, on trouve beaucoup plus de longueurs de préfixes que ces quatre-là. Lorsque l'on examine les tables de routage des routeurs à l'intérieur de ces réseaux, IPv4 et IPv6 ont beaucoup en commun, y compris la plupart des méthodes de routage : les routes pour les préfixes plus longs ont priorité sur les routes de couverture pour les préfixes plus courts, de sorte qu'il est possible d'agréger (raccourcir) et d'approfondir (allonger) les routes. Comme en 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 mise en correspondance 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. Pour ce faire, il existe certainement des conventions d'usage courant : intégrer le "numéro de sous-réseau" IPv4 dans une partie du préfixe IPv6, soit par le biais de 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 toutes les interfaces ?

Absolument pas ! Les hôtes IPv6 sont censés pouvoir être multihommes en ayant plusieurs adresses IP simultanément qui proviennent de différents sous-réseaux, tout comme IPv4. S'ils sont autoconfigurés avec SLAAC, les différents sous-réseaux peuvent provenir d'annonces de routeurs différents.

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 le même nom. n bits. Une adresse sans barre oblique est une adresse d'hôte. Vous pouvez considérer qu'une telle adresse a une valeur implicite de /128 à la fin, ce qui signifie que les 128 bits sont spécifiés.

Le signe pour cent accompagne un lien-local adresse. En IPv6, chaque interface possède une adresse locale de liaison en plus de toutes les autres adresses IP qu'elle peut avoir. Mais le fait est que les adresses locales de liaison sont toujours, sans exception, dans la liste des adresses IP. fe80::/10 bloc. Mais si nous essayons de parler à un pair en utilisant une adresse locale de liaison et que l'hôte local possède plusieurs interfaces, comment savoir quelle interface utiliser pour parler à ce pair ? Normalement, la table de routage nous indique quelle interface utiliser pour un préfixe particulier, mais ici, elle nous dira que fe80::/10 est accessible par 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 .

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

Personne ne sait. Qui peut dire l'avenir ?

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

Mais quand même : nous distribuons automatiquement une /32 à tout ISP qui en fait la demande, nous distribuons une /48 à chaque client de l'ISP. Peut-être que nous exagérons et que nous allons finalement dilapider l'IPv6. Mais il existe une disposition à cet effet : Seul un huitième de l'espace IPv6 a été mis à disposition jusqu'à présent : 2000::/3 . L'idée est que si nous faisons un gâchis épouvantable lors du premier huitième et que nous devons revoir radicalement les politiques d'allocation libérales, nous pouvons essayer sept fois de plus avant d'avoir des problèmes.

Et enfin : L'IPv6 ne doit pas être éternel. Il aura peut-être une durée de vie plus longue qu'IPv4 (une durée de vie impressionnante et ce n'est pas fini), mais comme toute technologie, il cessera un jour d'avoir de l'importance. Il nous suffit de tenir jusque-là.

50voto

tylerl Points 14785

IPv6 est de 128 bits, alors pourquoi /64 est 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. Il est généralement composé de 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 constituent votre ID de sous-réseau.

OK, on continue avec l'explication :

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

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

Et RFC 5375 -- Considérations sur l'attribution d'adresses de monodiffusion IPv6 :

Une partie importante d'un plan d'adressage IPv4 est de décider de la longueur de chaque préfixe de sous-réseau. Contrairement à IPv4, l'architecture d'adressage IPv6 d'adressage IPv6 [RFC4291] spécifie que tous les sous-réseaux utilisant les adresses uniques et ULAs ont toujours la même longueur de préfixe de 64 bits. bits.

Donc en ignorant l'exception du préfixe 000, l'ID de l'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 on vous a attribué un espace d'adressage plus grand que cela (masque de réseau plus court que 64 bits), on suppose que vous allez partitionner cet espace d'adressage en réseaux de 64 bits et gérer le routage vous-même. Si on vous a attribué un réseau plus petit que cela (masque de réseau plus long), c'est que quelqu'un s'est planté.

So, pourquoi 64-bits exactement ?

En règle générale, les adresses IPv6 sont configurées automatiquement plutôt qu'attribuées. Le routeur annonce quel préfixe réseau est disponible (préfixe de routage + ID de sous-réseau : 64 premiers bits), et votre ordinateur remplit les 64 derniers bits en utilisant son propre identifiant unique. Comment votre ordinateur trouve-t-il un identifiant unique ? Il y a plusieurs possibilités, la plus courante étant d'utiliser l'adresse MAC de votre interface. Vous divisez l'adresse MAC en deux (moitié fournisseur / moitié série), vous inversez le bit universel-local du côté fournisseur, et vous les réunissez à nouveau avec FF:FE au milieu. Donc 00:30:48:01:23:45 devient 0230:48ff:fe01:2345 . Maintenant, mettez le préfixe 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 appareil sur un réseau de diffusion donné A BESOIN d'une adresse MAC unique pour fonctionner, le fait de lier l'ID de l'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 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 en existe plusieurs autres).

Existe-t-il d'autres situations dans lesquelles je devrais utiliser un sous-réseau plus petit que /64 ?

Nope. Non, sauf si vous êtes cassé. Vous pouvez avoir une justification basée sur des exigences locales pour mettre en place un routage manuel avec votre réseau existant. Mais gardez à l'esprit qu'en faisant cela, vous allez probablement créer un désordre :

De RFC 5375 -- Considérations sur l'assignation des adresses d'unicast IPv6 :

L'utilisation d'une longueur de préfixe de sous-réseau autre que /64 rompra de nombreuses fonctionnalités d'IPv6, notamment la découverte de voisins (ND), la découverte de voisins Discovery (SEND) [RFC3971], les extensions de confidentialité [RFC4941], certaines parties de Mobile IPv6 [RFC4866], Protocol Independent Multicast - Sparse Mode (PIM-SM) with Embedded (PIM-SM) avec Embedded-RP [RFC3956], et Site Multihoming by IPv6 Intermediation (SHIM6). Intermediation (SHIM6) [SHIM6], entre autres. Un certain nombre d'autres fonctionnalités en cours de développement ou proposées reposent également sur des préfixes de sous-réseau /64.

....

Cependant, certains administrateurs de réseaux ont utilisé des préfixes plus longs que /64 pour des liens reliant des routeurs, généralement deux routeurs seulement sur une liaison liaison point à point. Sur les liaisons où toutes les adresses sont attribuées par configuration manuelle, et où tous les noeuds de la liaison sont des routeurs (et non des routeurs (et non des hôtes finaux) connus du réseau, les administrateurs n'ont pas besoin des n'ont pas besoin des fonctions IPv6 qui reposent sur les préfixes de sous-réseau /64. fonctionner. L'utilisation de préfixes de sous-réseau plus longs que /64 n'est pas recommandée en utilisation générale, et les utiliser pour des liens contenant des hôtes finaux serait une une mauvaise idée, car il est difficile de prédire quelles fonctions IPv6 les hôtes que 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é de le faire dans le passé ?

Vous pourriez vouloir passer sous silence RFC 3627 -- Utilisation de la longueur du préfixe /127 entre routeurs considérée comme nuisible . Jetez ensuite un coup d'œil à ce qui suit RFC 6164 -- Utilisation de préfixes IPv6 de 127 bits sur les liens inter-routeurs .

L'objection à l'utilisation de préfixes plus longs que /64 sur les routeurs est liée à l'échec potentiel de l'auto-configuration des routeurs dans de rares circonstances. L'objection à l'utilisation de préfixes plus courts que /127 (2-hôtes seulement) concerne un certain nombre de problèmes potentiels de déni de service liés aux paquets envoyés aux adresses non routées. Puisque les problèmes de déni de service dans le monde réel sont pires que les échecs théoriques de l'auto-configuration, /127 est le nouveau favori.

Dois-je modifier les liens existants du routeur 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 vers des 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 comment l'utiliser :

Sur les systèmes à double pile (ceux dont les piles IPv4 et IPv6 sont actives), vous pouvez représenter IPv4 à l'aide de la mécanique IPv6. On appelle cela " Adresses IPv4 mappées IPv6 ". Le motif est composé de tous les zéros, suivis 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 . Comme le bit de droite représente une adresse IPv4, elle est traditionnellement écrite sous forme décimale en pointillés.

Comme il s'agit d'une adresse IPv4 réelle, elle utilise toujours les en-têtes IPv4, etc., ce qui signifie qu'une pile IPv4 doit être présente, que des routes IPv4 doivent être définies, etc. 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 des applications. Cela ne fait pas la moindre différence en ce qui concerne le réseau.

20voto

Rémy Bourgoin Points 859
  1. IPv6 est de 128 bits, alors pourquoi /64 est le plus petit sous-réseau recommandé pour les hôtes ?

    Cette taille de préfixe était à l'origine recommandée dans un ancien RFC - il y a eu depuis une révision de cette politique où le problème des attaques par découverte de voisin est pris en compte et où l'utilisation d'un /126 est une atténuation valide - néanmoins, si vous mettez en place des liens PtP dans le seul but de router du trafic, une option alternative est simplement de s'en tenir à un /64 et de mettre un pare-feu sur ce sous-réseau. Mieux encore, allouez-vous un pool dans lequel vous puiserez des sous-réseaux /64, et placez l'ensemble de ce pool sur une liste noire de destinations à votre périphérie (et partout ailleurs d'où pourrait provenir l'hostilité).

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

    /127 n'est pas recommandé entre routeurs et ne l'a jamais été - l'adresse Anycast tous routeurs est l'adresse tous 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 parfait.

    Dans tous les cas, je ne conseillerais pas de changer les liens /64 existants, à moins que votre équipement ne soit vulnérable à une attaque par inondation du cache de découverte du 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, mettez simplement un pare-feu.

  3. Pourquoi les machines virtuelles seraient-elles provisionnées avec des sous-réseaux plus petits que /64 ?

    Cela casse le SLAAC et les RA, à moins que vous ne le fassiez vraiment, vraiment Si vous savez ce que vous faites, il est peu probable que vous ayez une bonne raison de faire cela - peut-être que votre fournisseur en amont ne vous a donné qu'un seul /64, mais si c'est le cas, vous devez retourner le voir et lui en demander plus. S'il veut vous faire payer pour cela, commencez à chercher un nouveau fournisseur et envoyez-lui des courriels désagréables contenant des liens vers les RFC pertinentes.

  4. Existe-t-il d'autres situations dans lesquelles je devrais utiliser un sous-réseau plus petit que /64 ?

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

    Inversement, il y a sont des situations où vous PAS voulez utiliser des sous-réseaux plus petits que /64 - en particulier partout où vous exploitez un environnement avec des équipements de routage matériel (pensez aux routeurs et aux commutateurs L3 de marque) - certains seront incapables d'effectuer le routage matériel de préfixes plus longs que /64, d'autres devront diviser l'opération en plusieurs comparaisons, ainsi, vous devriez au moins faire de votre mieux pour vous assurer que /64 est le préfixe le plus long dans votre backbone (OSPF/ISIS/EIGRP/etc.).

  5. Puis-je établir une correspondance directe entre les sous-réseaux IPv4 et les sous-réseaux IPv6 ? Par exemple, un /24 IPv4 correspond-il directement à un /56 ou un /120 IPv6 ?

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

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

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

  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 link-local (fe80::/12) - étant donné que la même adresse link-local peut légitimement exister sur plusieurs interfaces, le délimiteur % est utilisé pour permettre de spécifier de quelle interface il s'agit. Linux rend généralement obligatoire la spécification de l'interface lors d'opérations impliquant un link-local. Windows Vista/2008 et les versions ultérieures sont un peu plus intelligentes et ne se plaignent que si l'adresse locale de lien n'est pas unique.

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

    Non. C'est un cheval mort qui a été fouetté. WAAAAAAAAAY trop de fois - l'Internet IPv6 mondial actuel est de 2000::/3 - il existe plusieurs autres préfixes que l'IANA pourrait commencer à utiliser si, d'une manière ou d'une autre, tous les RIR de la planète parvenaient à épuiser leurs stocks d'adresses. Donc non, nous ne manquerons pas d'espace, et même si c'est le cas, il suffira d'un simple coup de stylo pour faire apparaître un nouveau préfixe, et non d'un changement technique. La seule chose que cette question met vraiment en évidence, c'est l'incapacité de l'esprit humain à comprendre pleinement à quel point l'espace d'adressage est ridiculement vaste.

  9. En quoi le sous-réseau IPv6 est-il différent du sous-réseau IPv4 ?

    Outre le fait que vous ne vous souciez pas de l'espace que vous utilisez, rappelez-vous qu'il n'y a pas d'adresse de diffusion et que l'adresse "subnet-zero" est maintenant l'adresse all-routers anycast (qui est en fait une adresse qui existe implicitement sur tous les noeuds configurés pour transmettre des paquets IPv6) - ceci a pour effet secondaire utile de vous permettre d'utiliser cette adresse all-zero comme route par défaut dans un réseau (non, cela ne causera pas de duplication de paquets, c'est ANYcast, pas MULTIcast) - gardez cependant à l'esprit que l'hôte peut passer d'un routeur à l'autre toutes les quelques secondes, ce qui n'est pas approprié pour une configuration de pare-feu dynamique si le suivi des connexions n'est pas synchronisé entre eux.

    En dehors de cela, l'autre différence majeure est qu'IPv6 se soucie des adresses dupliquées 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 sur le lien l'utilise déjà. D'un autre côté, NUD est utile si vous configurez des routes statiques - vous pouvez en fait 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 la plus faible sera utilisée, que le next-hop soit mort ou vivant (bien que cela puisse ne pas être vrai pour certaines implémentations IPv4 qui utilisent ARP pour valider les routes, comme Cisco et d'autres grands fournisseurs de routeurs).

    TLDR ; IPv6 détecte les adresses dupliquées et les voisins inaccessibles. L'adresse all-zero est all-routers anycast et la diffusion n'existe pas, all-ones est une adresse normale.

3voto

Sander Steffann Points 7432

Pour ceux qui se demandent d'où vient dans les spécifications 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'identifiant d'interface n'est pas égale à 128 bits, l'option Information sur le préfixe DOIT être ignorée. [...]

Il est de la responsabilité de l'administrateur système de s'assurer que que les longueurs des préfixes contenus dans les annonces de routeur sont conformes à la longueur des identificateurs d'interface pour ce type de liaison. type de liaison.

Et de Architecture d'adressage IP version 6 (RFC 4291) :

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

Par conséquent, étant donné que 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 lorsqu'on utilise SLAAC est de 64 bits.

3voto

Peter Green Points 3844

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

Parce que les partisans d'IPv6 aimaient l'idée d'une auto-configuration sans état.

Si vous optez pour une autre taille de sous-réseau, la configuration automatique sans état ne fonctionnera pas. D'autres problèmes mineurs peuvent également survenir, lisez la rfc7421 pour plus de détails.

Personnellement, je pense que l'autoconfiguration sans état est une idée stupide de toute façon. Elle conduit à des adresses illisibles et ne vous donne pratiquement 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, c'est que si vous les suivez et que les choses tournent mal, vous pouvez pointer du doigt la convention, mais 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 permet d'éviter les attaques par épuisement de la découverte des voisins.

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

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

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

Ils peuvent leur attribuer des adresses "on-link" où la machine est censée répondre aux demandes de découverte des voisins. Certains fournisseurs d'hébergement ont choisi de donner à chaque machine une adresse /64, ce qui présente des avantages en termes de mobilité des adresses. D'autres donnent à chaque VLAN une adresse /64 et attribuent ensuite aux machines individuelles des sous-blocs de cette adresse, ce qui utilise moins d'adresses et peut signifier que le trafic local reste local plutôt que de passer par un routeur.

Ou ils peuvent traiter la machine comme un routeur et lui attribuer un bloc routé. Dans ce cas, elle aura besoin de suffisamment d'adresses pour adresser tous ses sous-réseaux internes. Si vous suivez la convention "tous les sous-réseaux doivent être /64", cela signifie qu'il faut lui allouer au moins un /64, voire plus. Cela a du sens 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 vers des sous-réseaux IPv6 ? Par exemple, un /24 IPv4 correspond-il directement à un /56 ou un /120 IPv6 ?

Une telle cartographie relève de la politique locale.

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

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é en conjonction avec les adresses locales de liaison. Il est nécessaire car une machine peut avoir plusieurs interfaces et les réseaux connectés à ces interfaces peuvent avoir des adresses locales de liaison qui se chevauchent.

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

Je ne m'en ferais pas trop.

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

Et s'il y avait une crise, il suffirait d'un trait de plume pour revenir sur cette étrange décision.

La taille des tables de routage est une préoccupation bien plus importante en ce qui concerne l'évolutivité d'IPv6. La NAT IPv6 est fortement déconseillée. L'exploitation d'un grand réseau sur des adresses attribuées par un 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 assisterons à une explosion des demandes d'espace IPv6 indépendant du fournisseur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X