IPv6-Loopback-Adressen (entspricht 127.xxx)


16

Ich habe eine Entwicklungsumgebung eingerichtet, in der ich eine separate Loopback-Adresse für mehrere Websites habe.

Zum Beispiel habe ich Folgendes:

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

Ich hätte gerne eine gleichwertige Lösung für IPv6.

Ich weiß bereits, dass Sie :: 1 als Loopback-Adresse verwenden können, aber :: 2, :: 3 usw. scheinen nicht zu funktionieren.

Gibt es in IPv6 noch andere Loopback-Adressen? Gibt es eine Möglichkeit, mehrere eindeutige Loopback-Adressen zu haben?


1
Ich würde empfehlen :: ffff: 7f00: 1, :: ffff: 7f00: 2 und so weiter, aber ohne Zweifel würde jemand faule Früchte auf mich werfen.
womble

Sie können etwas im Bereich IPv6-Schnittstelle-Lokales Multicast ausprobieren. Dadurch gelangen Sie zurück zu Ihrem Host, und die Reichweite ist enorm. Ob es für Sie funktioniert oder nicht, hängt davon ab, was Sie tun möchten.
Ron Maupin

Antworten:


13

Technisch sind :: 2, :: 3 usw. Teil von :: 0.0.0.0/96, dem "ipv4-kompatiblen ipv6-Adressbereich". Es ist veraltet, aber Sie möchten diesen Bereich wahrscheinlich nicht verwenden.

Verwenden Sie für eine Laborumgebung eine eindeutige lokale Adressierung. Gehen Sie zu https://www.ultratools.com/tools/rangeGenerator und erstellen Sie sich ein Präfix. Anschließend können Sie die gewünschten Adressen aus diesem Präfix auswählen und sie der Loopback-Schnittstelle zuweisen.


Warum nicht :: 127.0.0.0/96?
Todd

9

Ihre Loopback-Adresse lautet :: 1/128. Beachten Sie die Breite des Subnetzes, die es auf nur einen Host beschränkt. Ändern Sie die Subnetzmaske in eine breitere und überprüfen Sie Ihre Routing-Tabelle. Oder verwenden Sie linklokale Adressen.


1
Diese Antwort ist besser, wenn Sie Windows oder Linux oder beide Betriebssysteme hinzufügen, um zusätzliche IPv6-Adressen an die Loopback-Schnittstelle zu binden. In IPv4 erhalten Sie 127.0.0.1/8 und in IPv6 erhalten Sie :: 1/128. Gibt es also eine Möglichkeit, für IPv6 etwas mehr hinzuzufügen?
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

from Kann ich einen (großen) Adressblock an eine Schnittstelle binden?

Es ist das einzige, was für mich funktioniert hat. Natürlich Linux-spezifisch.

nota bene : weil dieser mit 0.0.0.0/8 Adressen zu einem bestimmten Zeitpunkt in der Zukunft in Konflikt stehen könnte, ::127.0.0.0/104wäre wahrscheinlich eine bessere Wahl sein.


Dadurch wird die Routingtabelle effektiv auf den Bereich erweitert, der für die IPv4-Kompatibilität reserviert ist, wie von Ben Jencks beschrieben.
Korkman

das geht mich überhaupt nichts an. es ist zu Testzwecken; Es befindet sich auf meinem lokalen Computer. es betrifft niemanden außer mich.
jcomeau_ictx

1
@jcomeau_ictx Unabhängig davon , ob es sich um Sie, es könnte jemand betreffen , die Ihre Antwort verwenden, weil es dann bewirken wird sie .
mtraceur

es könnte, aber wohl erst, wenn der IPv4-Bereich 0/8 zugewiesen wird. Trotzdem werde ich meine Antwort korrigieren.
jcomeau_ictx

Es wäre schlecht gewesen, wenn ich / 96 verwendet hätte, aber ich habe / 104 verwendet. Trotzdem habe ich die Antwort bearbeitet, um :: 127.0.0.0/104, den Loopback-Bereich, zu verwenden.
jcomeau_ictx

2

Ich empfehle hierfür die Verwendung von RFC 4193- Adressen. Mit RFC 4193 können Sie Ihr eigenes / 48 für die lokale Verwendung erstellen, indem Sie den Bytewert fdgefolgt von 5 zufälligen Bytes verwenden. Sie dürfen nach den ersten 48 Bit alles setzen, was Sie für richtig halten. Wenn Sie also ein / 64-Zeichen wollen, können Sie fd7 zufällige Bytes verwenden, wie in diesem Beispiel für Linux-Systeme:

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

Die Verwendung von RFC 4193 hat gegenüber früheren Antworten den Vorteil, dass Sie dabei keine RFCs verletzen und die Adressen ohne Interface-ID verwendet werden können.

Jeder der in früheren Antworten erwähnten Bereiche verwendet entweder Bereiche, die für unterschiedliche Zwecke reserviert sind, oder verbindungslokale Adressen, für die bei jeder Verwendung eine Schnittstellenkennung erforderlich ist.

Es gibt einen abgelaufenen Entwurf, der vorschlägt, dass der Bereich 1::/32für zusätzliche Loopback-Adressen reserviert wird, nach denen Sie fragen. Da dieser Entwurf jedoch vor Jahren abgelaufen ist und nie eine solche Zuordnung vorgenommen wurde, können Sie ihn nicht verwenden 1::/32.


Ich habe jetzt ein kleines Befehlszeilentool geschrieben, um RFC 4193-kompatible Präfixe zu generieren: v6tools.kasperd.dk/rfc4193
kasperd

0

Die Verwendung der verbindungslokalen Adressierung scheint die einzig gültige Option zu sein. Was die meisten Vorschläge hier ignorieren, ist die Tatsache, dass das IPv6-Präfix den Geltungsbereich deklariert , und ich möchte nicht, dass meine vermutlich private Adressierung im globalen Geltungsbereich liegt.

Also für 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

Und geben Sie die Schnittstelle an, wenn Sie auf solche Adressen verweisen. Testen mit netcat:

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

Überprüfen des korrekten Bereichs:

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

Dennoch scheint es nicht sehr elegant zu sein, jede einzelne IP zu addieren, um sich daran binden zu können. Mit 127.0.0.0/8 können Sie eine Bindung an eine beliebige Adresse herstellen, ohne diese zuvor zuzuweisen.


Nein, ULA ist eine gültige Methode zur Adressierung vor Ort. Es wird nicht standardmäßig im Internet weitergeleitet. Sie können es jedoch lokal routen. Jedes Subnetz an einem Standort kann unabhängig vom Internetdienstanbieter ein relativ global eindeutiges privates Präfix haben.
John Mahowald

Und site local ist NICHT host local. Das ist mein Punkt :-)
Korkman

0

Es gibt ein RFC-Proporsal namens A Larger Loopback Prefix für IPv6 , das die Verwendung 1::/32als lokales Hostnetzwerk vorschlägt . Der Vorschlag wurde jedoch nicht gebilligt und lief bereits 2013 aus.


Dies wurde bereits in der Antwort erwähnt, die ich letztes Jahr zu genau dieser Frage geschrieben habe.
Kasperd

@kaspered Oh ja du hast recht, sorry habe es nicht bemerkt, da die Antwort in der Tat zwei Antworten enthält und mit der anderen beginnt.
F.Raab

Ich habe den abgelaufenen Entwurf nicht wirklich als Antwort angesehen, da er nie zum Standard wurde. Ich habe es unter meiner Antwort vermerkt, weil es relevante Hintergrundinformationen sind und einen Kontext darüber liefert, welcher Versuch unternommen wurde, einen Bereich für diesen bestimmten Zweck zu standardisieren.
Kasperd
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.