Adresses de bouclage IPv6 (équivalent à 127.xxx)

16

J'ai mis en place un environnement de développement où j'ai une adresse de bouclage distincte pour plusieurs sites Web.

Par exemple, j'ai les éléments suivants:

127.0.0.1 www.example.com
127.0.0.2 foo.example.com
127.0.0.3 bar.example.com
127.0.0.4 waffles.example.com

Je voudrais une solution équivalente pour IPv6.

Je sais déjà que vous pouvez utiliser :: 1 comme adresse de bouclage, mais :: 2, :: 3, etc. ne semblent pas fonctionner.

Existe-t-il d'autres adresses de bouclage dans IPv6? Existe-t-il un moyen d'avoir plusieurs adresses de bouclage uniques?

Docteur Jones
la source
1
Je recommanderais :: ffff: 7f00: 1, :: ffff: 7f00: 2, et ainsi de suite, mais sans aucun doute quelqu'un me jetterait des fruits pourris.
womble
Vous pouvez essayer quelque chose dans la portée de multidiffusion d'interface locale IPv6. Cela rebouclera sur votre hôte, et c'est une gamme énorme. Que cela fonctionne ou non pour vous dépendra de ce que vous essayez de faire.
Ron Maupin

Réponses:

13

Techniquement :: 2, :: 3 etc. font partie de :: 0.0.0.0/96, la gamme "ipv4 compatible ipv6 address". Il est obsolète, mais vous ne voulez probablement pas utiliser cette plage.

Pour un environnement de laboratoire, utilisez un adressage local unique. Accédez à https://www.ultratools.com/tools/rangeGenerator et générez vous-même un préfixe. Ensuite, vous pouvez choisir les adresses que vous voulez dans ce préfixe et les affecter à l'interface de bouclage.

Ben Jencks
la source
Pourquoi pas :: 127.0.0.0/96?
Todd
9

Votre adresse de bouclage est :: 1/128. Notez la largeur du sous-réseau qui le restreint à un seul hôte. changez le masque de sous-réseau en quelque chose de plus large et vérifiez votre table de routage. Ou utilisez des adresses lien-local.

Fladi
la source
1
Cette réponse serait meilleure, si vous avez ajouté, sur l'un ou les deux, sur Windows ou Linux, comment lier des adresses IPv6 supplémentaires à l'interface de bouclage. En IPv4, vous obtenez 127.0.0.1/8, et en IPv6 vous obtenez :: 1/128, alors y a-t-il un moyen d'ajouter un peu plus pour IPv6?
William
2
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ sudo ip route add local ::/104 dev lo 
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::2
PING ::2(::2) 56 data bytes
64 bytes from ::2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from ::2: icmp_seq=2 ttl=64 time=0.128 ms
^C
--- ::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.083/0.105/0.128/0.024 ms
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::3
PING ::3(::3) 56 data bytes
64 bytes from ::3: icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from ::3: icmp_seq=2 ttl=64 time=0.141 ms
64 bytes from ::3: icmp_seq=3 ttl=64 time=0.142 ms

de Puis-je lier un (grand) bloc d'adresses à une interface?

c'est la seule chose qui a fonctionné pour moi. spécifique à Linux, bien sûr.

nota bene : parce que cela pourrait entrer en conflit avec les adresses 0.0.0.0/8 à un moment donné dans le futur, ce ::127.0.0.0/104serait probablement un meilleur choix.

jcomeau_ictx
la source
Cela élargit effectivement la table de routage dans la plage réservée à la compatibilité ipv4 comme décrit par Ben Jencks.
korkman
cela ne me concerne absolument pas. c'est à des fins de test; c'est sur ma machine locale; cela ne touche que moi.
jcomeau_ictx
1
@jcomeau_ictx Que cela vous concerne ou non, cela peut concerner toute personne qui utilisera votre réponse, car elle les affectera ensuite .
mtraceur
il le pourrait, mais sans doute jusqu'à ce que la plage ipv4 0/8 soit attribuée. de toute façon, je vais corriger ma réponse.
jcomeau_ictx
cela aurait été mauvais si j'avais utilisé / 96, mais j'ai utilisé / 104. de toute façon, j'ai édité la réponse pour utiliser :: 127.0.0.0/104, la plage de bouclage.
jcomeau_ictx
2

Je recommande d'utiliser les adresses RFC 4193 pour cela. RFC 4193 vous permet de construire votre propre / 48 pour une utilisation locale en prenant la valeur d'octets fdsuivie de 5 octets aléatoires . Vous êtes autorisé à mettre tout ce que vous jugez bon après les 48 premiers bits, donc si vous vouliez un / 64, vous pouvez prendre fdsuivi de 7 octets aléatoires comme dans cet exemple pour les systèmes Linux:

ip -6 route add to local fd66:29e9:f422:8dfe::/64 dev lo

L'utilisation de la RFC 4193 a l'avantage par rapport aux réponses précédentes que vous ne violez aucun RFC en le faisant et que les adresses peuvent être utilisées sans identifiant d'interface.

Chacune des plages mentionnées dans les réponses précédentes utilise soit des plages réservées à des fins différentes, soit des adresses de liaison locale qui nécessitent un identifiant d'interface lorsqu'elles sont utilisées.

Il existe un brouillon expiré suggérant que la plage 1::/32est allouée pour des adresses de bouclage supplémentaires comme vous le demandez. Cependant, étant donné que ce projet a expiré il y a des années et qu'aucune allocation de ce type n'a été faite, vous ne pouvez pas l'utiliser 1::/32pour cela.

kasperd
la source
J'ai maintenant écrit un petit outil en ligne de commande pour générer des préfixes conformes à la RFC 4193: v6tools.kasperd.dk/rfc4193
kasperd
0

L'utilisation de l'adressage local par lien semble être la seule option valable. Ce que la plupart des suggestions ignorent ici est le fait que le préfixe IPv6 déclare la portée , et je ne voudrais pas que mon adressage présumé privé soit de portée mondiale.

Donc pour Linux:

$ sudo ip -6 address add fe80::1/64 dev lo
$ sudo ip -6 address add fe80::2/64 dev lo
$ sudo ip -6 address add fe80::3/64 dev lo

Et spécifiez l'interface lorsque vous vous référez à de telles adresses. Test avec netcat:

$ nc -l -p 10001 fe80::1%lo
$ nc fe80::1%lo 10001

Vérification de la portée correcte:

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 fe80::1/64 scope link 
       valid_lft forever preferred_lft forever

Pourtant, il ne semble pas très élégant de devoir ajouter chaque IP pour pouvoir s'y lier. Avec 127.0.0.0/8, vous pouvez vous lier à n'importe quelle adresse sans les affecter au préalable.

korkman
la source
Non, ULA est un moyen valide pour effectuer l'adressage local du site. Il ne sera pas acheminé par défaut sur Internet. Vous pouvez cependant l'acheminer localement. Chaque sous-réseau d'un site peut avoir un préfixe privé raisonnablement unique au monde , indépendant du FAI.
John Mahowald
Et le site local n'est PAS l'hôte local. C'est mon point :-)
korkman
0

Il existe une propor- tion RFC appelée A Larger Loopback Prefix for IPv6 , qui propose de l'utiliser 1::/32comme réseau local. Cependant, la proposition n'a pas été approuvée et a expiré déjà en 2013.

F.Raab
la source
Cela a déjà été mentionné dans la réponse que j'ai écrite l'année dernière sur cette même question.
kasperd
@kaspered Oh oui vous avez raison, désolé de ne pas l'avoir remarqué puisque la réponse comprend en fait deux réponses et commence par l'autre.
F.Raab
Je n'ai pas vraiment considéré le projet expiré comme une réponse car il n'est jamais devenu une norme. Je l'ai noté sous ma réponse, car il s'agit d'informations contextuelles pertinentes et fournit un contexte sur la tentative de normalisation d'une plage à cette fin particulière.
kasperd