Sous-réseau IPv6 a / 64 - qu'est-ce qui se cassera et comment le contourner?

27

Dans IPv6, vous n'êtes pas censé créer un sous-réseau pour un élément inférieur à un / 64 (RFC 5375). Entre autres choses, SLAAC ne fonctionne pas avec des sous-réseaux plus petits, et apparemment aussi certaines autres fonctionnalités vont se casser.

Quelles sont les solutions de contournement pour les situations où les FAI ne vous donneront qu'un seul / 64 mais vous aurez besoin de plusieurs sous-réseaux en interne? Le conseil commun semble être de simplement trouver un autre FAI qui distribuera un / 56 ou / 48. Dans certaines parties du monde, cela peut fonctionner, mais dans notre région (États-Unis), ce n'est pas possible en raison d'un manque de concurrence. La plupart de mes clients ont de la chance si un seul FAI dessert leur région. Beaucoup de gens ici sont toujours connectés.

Mes clients ne se qualifieront pas pour leurs propres / 48 d'ARIN.

Kevin Keane
la source
9
Je n'essaierais pas de déployer IPv6 dans ce scénario. Continuez de faire pression sur le FAI pour fournir une connectivité appropriée. Rendez leurs erreurs très visibles et publiques, si nécessaire. Chapitre Citation et verset de la RFC 6177. Bien sûr, vous devez d' abord vous assurer qu'il est leur erreur, et que votre équipement demande un sous - réseau plus grand.
Michael Hampton
5
C'est aussi un mauvais conseil. Compte tenu de tous ses avantages, la plupart des gens devraient déployer IPv6 à la première occasion disponible. Malheureusement, de nombreux FAI ont préparé un petit-déjeuner complet pour chiens avec leur service IPv6, ce qui rend leur utilisation imprudente.
Michael Hampton
2
Nous pourrions discuter toute la journée si ce sont les FAI qui en font un petit-déjeuner (ce qu'ils ont certainement fait!), Ou si les concepteurs d'IPv6 n'étaient pas réalistes dans leur supposition que les FAI ne feraient pas cela. Bien sûr, je ne dis pas à mes clients de rester à l'écart de l'IPv6 pour toujours, jusqu'à ce que la poussière soit retombée. Je suis sûr que dans cinq ans, ou même plus tôt, il y aura un SLAAC 2.0 qui prend en charge les sous-réseaux plus petits, avec NAT (de nombreux routeurs le mettent déjà en œuvre de toute façon), et tout le reste pour faire fonctionner IPv6 face à l'adversité. Je cherchais plutôt des solutions en ce moment.
Kevin Keane
4
Ne comptez pas sur le désordre IPv4 comme NAT pour fonctionner correctement avec IPv6. NAT était un hack, pas une fonctionnalité ...
Sander Steffann
3
@KevinKeane NAT a toujours été un hack et le sera toujours. Chaque problème que les gens ont essayé de résoudre en utilisant NAT a une vraie solution qui n'implique pas NAT - mais cela implique probablement IPv6. La grande majorité des bris dont vous parlez peuvent être attribués à des déploiements NAT ou IPv6 incomplets.
kasperd

Réponses:

28

Si le FAI ne vous donne pas plus d'un / 64, alors ce FAI est nul. Si c'est un soulagement, je peux vous dire que je dois faire face à des FAI qui craignent encore plus que cela. Ici, il est parfaitement normal de retirer les adresses IPv4 publiques des clients et de les mettre derrière un CGN. Et si vous leur demandez des adresses IPv6, ils vous diront qu'ils n'offrent pas IPv6 car il n'y a pas encore de pénurie d'adresses IPv4, et tant qu'il y aura des serveurs sans prise en charge IPv6, ils n'offriront pas IPv6 car il est impossible pour un client à double pile pour se connecter à un serveur IPv4 uniquement.

Si un fournisseur de services Internet me donnait ce que vous avez, je le prendrais car il aspire moins que ce que j'ai pu obtenir jusqu'à présent.

Pour aller de l'avant, je vous recommande de suivre deux approches en parallèle.

Faire pression sur le FAI

Mettez autant de pression que possible sur le FAI. Cela inclut contacter d'autres FAI et éventuellement changer si un autre FAI peut vous offrir une meilleure offre.

Assurez-vous de tester ce qui se passe si votre routeur demande un délégué / 48, / 52, / 56 ou / 60 via DHCPv6 sur le WAN. Je testerais les quatre longueurs de préfixe juste au cas où le serveur DHCPv6 pour une raison quelconque ne distribuerait qu'une longueur de préfixe spécifique et ignorerait les demandes pour d'autres longueurs de préfixe.

Tirez le meilleur parti de ce que vous avez

Étant donné que vous allez probablement devoir vivre avec des hacks pour aller de l'avant, vous devez vous demander qui aspire moins IPv4 avec des hacks ou IPv6 avec des hacks.

Il y a quelques hacks que vous pouvez utiliser pour étirer un seul / 64 à beaucoup d'hôtes.

Transformer un préfixe de lien en préfixe routé

Si vous avez un seul / 64 sur la liaison WAN mais aucun préfixe routé vers votre LAN, vous pouvez transformer ce / 64 en préfixe routé en quelques étapes. Configurez l'interface WAN sur votre routeur en tant que / 126 plutôt que / / 64. Installez un démon de publicité voisin (tel que ndppd) sur le routeur pour publier sa propre adresse MAC pour chaque adresse dans le / 64, à l'exception des 4 adresses dans le / 126. Avec ces deux étapes, vous aurez un / 64 routé que vous pouvez utiliser sur votre LAN à l'exception des 4 adresses utilisées pour la liaison WAN.

Une version modifiée de ce hack peut partager le lien / 64 sur plusieurs routeurs. Le préfixe de liaison devra alors être un peu plus court que / 126 pour permettre une adresse IP à chaque routeur, un / 120 serait assez court pour permettre jusqu'à 254 routeurs.

Chaque routeur n'aura évidemment qu'un préfixe qui sera plus long que / 64. Je vous recommande de faire le préfixe pour chaque routeur aussi longtemps que possible tout en ayant suffisamment d'adresses IP pour le LAN sur ce routeur. Un A / 112 ou / 120 pour chaque routeur conviendrait probablement. Chaque routeur répond avec sa propre adresse MAC pour que le voisin découvre quoi que ce soit dans le préfixe de ce routeur.

Dans cette variante, chaque routeur aura des préfixes identiques configurés sur leur côté WAN et répondra aux demandes de découverte de voisin pour le préfixe attribué à leur côté LAN. Évidemment, aucun des préfixes LAN ne peut se chevaucher et aucun d'entre eux ne peut chevaucher le préfixe que vous avez configuré du côté WAN.

Donc, si le routeur FAI agissant comme votre passerelle se trouve à l'adresse 2001: db8 :: 1/64, vous pouvez utiliser 2001: db8 :: / 120 comme WAN et vous pouvez affecter 2001: db8 :: 1: 0/112 à le premier routeur, 2001: db8 :: 2: 0/112 au deuxième routeur, etc.

Sur le LAN, vous pouvez étendre un / 64 à de nombreux hôtes soit en sous-réseaux, soit en pontant. Vous devrez déterminer laquelle des deux vous convient le mieux.

Sous-réseau

Si vous sous-réseau le / 64, vous pouvez aussi aller aux préfixes les plus longs qui ont encore suffisamment d'adresses pour les hôtes dont vous avez besoin. Ne sous-réseau pas dans les préfixes / 80, préférez plutôt / 116, / 120 ou / 124 par sous-réseau. Les choses qui ne fonctionnent pas si vous n'utilisez pas / 64 sont peu susceptibles de s'en soucier et en optant pour / 116 ou plus, vous réduirez l'impact de certaines attaques DoS de découverte de voisins (si elles sont présentes dans l'un de vos systèmes).

Dans une telle configuration de sous-réseau, vous casserez SLAAC, vous avez donc besoin d'un serveur DHCPv6 pour répondre sur chaque segment et d'adresses IPv6 statiques configurées sur tous les appareils sans prise en charge DHCPv6.

Pontage

Le pontage est l'autre alternative. Cela signifie essentiellement que vous ne sous-réseau pas, mais exécutez l'intégralité de votre réseau local comme un seul segment IPv6 avec un préfixe / 64. (Si vous en avez besoin, le / 64 peut s'étendre à la fois au LAN et au WAN.)

IPv6 est conçu pour permettre aux ponts de reconnaître vers quels réseaux pontés chaque adresse anycast doit être transférée. De cette façon, vous évitez d'avoir à diffuser des paquets sur chaque liaison physique de votre réseau local.

Les ponts peuvent également appliquer des pare-feu et une protection contre l'usurpation d'identité des voisins sur le réseau local.

Avec une intelligence suffisante sur les ponts, il n'y a en principe aucune limite au nombre de commutateurs que vous pouvez ponter sur un seul / 64.

kasperd
la source
Merci! C'était exactement le type de réponse que je cherchais! J'aime particulièrement votre idée de transformer le / 64 en un préfixe routé. Pouvez-vous nous en dire un peu plus, s'il vous plaît? Premièrement, je ne comprends pas pourquoi vous proposez un / 126, plutôt qu'un / 127? Quelles adresses IP sont utilisées où? Deuxièmement, chez l'un de mes clients, j'ai en fait trois routeurs internes distincts. Dans IPv4, ils ont trois IP publiques différentes dans le / 29 fourni par le FAI. Votre schéma fonctionnerait-il toujours avec ces routeurs?
Kevin Keane
De plus, je ne sais pas comment installer un démon de publicité de voisin sur l'un des routeurs. Un routeur est Fortigate, un autre est Belkin, et je pense que le troisième est Linksys.
Kevin Keane
@KevinKeane La raison pour laquelle je suggère un / 126 est que vous aurez souvent besoin d'au moins trois adresses dans le préfixe. Du côté ISP, le routeur peut avoir le préfixe configuré comme 2001: db8 :: 1/64, ce qui signifie 2001: db8 :: est spécial et 2001: db8 :: 1 est utilisé par le routeur ISP. Votre propre routeur est généralement configuré avec 2001: db8 :: 2, ce qui signifie que vous avez ensuite utilisé trois adresses et a / 127 ne sera pas suffisant. A / 127 aurait pu fonctionner si vous n'aviez pas utilisé un hack avec une longueur de préfixe différente configurée aux deux extrémités du lien.
kasperd
Merci d'avoir expliqué cela! Donc, lorsque j'ai trois routeurs desservant trois réseaux internes différents, je devrais utiliser un / 125, et chaque routeur publierait, via la publicité du voisin, son propre MAC uniquement pour ces IP dans le sous-réseau correspondant?
Kevin Keane
1
Il existe une RFC informationnelle, RFC 7421, Analyse des limites 64 bits dans l'adressage IPv6 , qui présente une discussion complète sur le /64sous - réseau, et ce que je peux mal quand je ne l'utilise pas.
Ron Maupin
10

Oui, faire pression sur votre FAI pour qu'il ne suce pas est l'option préférée. Les politiques d'allocation RIR supposent que le FAI donne à chaque client un / 48; il n'y a absolument aucune raison pour que le FAI ne le fasse pas.

IPv6 n'est pas un fan de sous-réseaux plus petits, mais la seule chose qui est censée casser, à ma connaissance, est SLAAC. Vous aurez des problèmes avec des bogues et des hypothèses dans certaines piles IPv6, qui supposent aveuglément "/ 64 == sous-réseau", mais c'est un bogue, pas une fonctionnalité, et vous pouvez battre le vendeur pour le corriger. Qu'il soit corrigé avant que votre FAI ne vous donne un / 48, d'autre part ...

womble
la source
Je pense que certaines parties du protocole de découverte du voisin sont également censées casser. Le RFC 5375 a toute une liste d'autres choses mais je ne connais pas vraiment les implications pratiques. Obtenir seulement un / 64 peut parfois être simplement une question d'argent. Votre FAI peut attribuer aux utilisateurs à domicile uniquement un / 64 et des / 48 uniquement aux comptes professionnels. Tout simplement parce que vous voulez séparer votre bureau à domicile ou votre WiFi du reste de la maison, ou parce que vous voulez un sous-réseau distinct à utiliser pour les machines virtuelles? Désolé pour la diatribe - j'essaie de régler un problème ici, pas d'essayer de changer des choses que je ne peux pas contrôler.
Kevin Keane
2
Si votre FAI voulait être un véritable coup de pouce à ce sujet, il distribuerait un / 128 à chaque abonné résidentiel. Je suppose que vous pouvez envoyer la RFC 5375 au FAI et leur dire de vous donner IPv6, plutôt que IPv5.5 ...
womble
En fait, au moins un FAI que je connais fait ça (Verizon Wireless). C'est l'une des raisons pour lesquelles je soutiens que le NAT est toujours nécessaire dans IPv6. Mais cela est distinct de ma question, bien sûr.
Kevin Keane
1
La recommandation / 48 de la RFC 3177 n'est plus valide, la plupart des RIR recommandent désormais un / 56 pour les sites d'extrémité comme décrit dans la RFC 6177: tools.ietf.org/html/rfc6177
skrause
@skrause Non pas que cela fasse une différence de toute façon. Il y a suffisamment de 48 pour qu'ils ne s'épuisent pas. Même à un ratio HD de 80%, il faudrait 2 ^ 36 alloués / 48 secondes avant que l'IANA ait consommé la totalité des 2000 :: / 3. Et à moins que votre site final ne soit un centre de données majeur, le / 56 possède suffisamment de sous-réseaux pour votre site final.
kasperd