Ich verstehe, dass IPv6 das Präfix fe80 :: / 10 für lokale Linkadressen reserviert und dass Hosts eine Adresse mit dem Präfix / 64 auswählen.
Warum ist der reservierte Speicherplatz so viel größer als der tatsächlich für den lokalen Link verwendete?
Antwort
Ich denke Der verbindungslokale Bereich wurde auf / 10 gesetzt, um einfach besser in die anderen Bereiche zu „passen“, z site-local (bevor es durch ein eindeutiges local ersetzt wurde).
Anfangs hatte ich gedacht, es könnte die Verwendung vieler verbindungslokaler Netzwerke auf derselben Verbindung ermöglichen, aber RFC 4291 gibt ausdrücklich an , dass nur fe80 :: / 64 verwendet werden darf.
Kommentare
- Gibt es welche? Bedeutung in Bezug auf die SLAAC-Implementierung? … ist SLAAC " Präfix agnostisch "?
- SLAAC erfordert eine / 64, ist es aber nicht wirklich Dies ist hier relevant, da linklokale Adressen nicht ' von SLAAC zugewiesen werden. Tatsächlich ist SLAAC darauf angewiesen, bereits eine linklokale Adresse zu haben.
Antwort
Weißt du, ich habe das nie in Betracht gezogen.
Ich würde annehmen, dass fe80 :: / 64 verwendet wird, weil Die Systeme führen dann die SLAAC (Stateless Address Autoconfiguration) in diesem / 64 aus. Der Rest des / 10 bleibt für statisch zugewiesene verbindungslokale Adressen und Netblocks verfügbar. Es fällt mir schwer, wichtige Anwendungsfälle für statische verbindungslokale Adressen zu finden Zuweisungen, aber ich nehme an, es gibt Gründe, warum die Leute dies am Ende wollen.
Kommentare
- Was ' ist die Bedeutung von SLAAC und / 64? … hat SLAAC etwas mit dem Präfix / 64 zu tun?
- Manchmal machen statisch zugewiesene lokale Linkadressen es einfach zu erkennen, welcher Knoten beim dynamischen Routing der nächste Hop ist, dh R1 ist fe80 :: 1 / 64, R2 ist fe80 :: 2/64 usw. Funktioniert gut im Labor, in der Praxis vielleicht weniger.
- @CraigConstantine – Ja, bei SLAAC ist die / 64-Grenze im Protokoll fest codiert. Aus diesem Grund können Sie in IPv6 keine Subnetze erstellen, die kleiner als a / 64 sind, mit Ausnahme von Subnetzen, die zum Weiterleiten von Verbindungen verwendet werden (d. H. Für eine Punkt-zu-Punkt-Verbindung sollten Sie eine / 127 verwenden). Es gibt tatsächlich andere Protokolle, in die auch die Grenze / 64 eingebrannt ist.
- Wir haben einen Anwendungsfall. Ein Prozessisolationssystem, das die Isolationsumgebung mit einer bekannten verbindungslokalen Adresse für die IPv6-basierte Identifizierung aufrufen muss. Und wir können ' nicht auf DAD warten, da die Umgebung in Mikrosekunden oder Millisekunden bereit sein muss.
Antwort
Die Designphilosophie hinter IPv6 ist, dass ein angemessen strukturierter Adressraum wichtiger ist als das Speichern von Adressen. IPv4 wurde übrigens mit der gleichen Idee konzipiert (weshalb jedes Gerät 16 Millionen Loopback-Adressen hat, aber immer nur die Adresse 127.0.0.1 verwendet und die meisten Adressen der Klassen D und E nicht verwendet werden).
Link-lokale Adressen verschwenden theoretisch Unmengen von IP-Adressen, aber dies wird nicht als Problem angesehen. Ebenso ist es technisch sehr verschwenderisch, jedem Kunden eine volle / 56 oder sogar / 48 zu geben, aber kein wirkliches Problem.
Dieser Ansatz hat eine Schattenseite: Die Behauptung, dass IPv6 jedem Sandkorn auf der Welt (oder einer solchen) eine IP-Adresse geben kann, ist Unsinn, genau wie die Behauptung, dass IPv4 4 Milliarden Geräte unterstützen kann Wenn Sie die gesamte Verschwendung in IPv6 addieren, werden Sie feststellen, dass die Grenzwerte viel enger sind (immer noch größer als IPv4).
Antwort
Ich denke, dass es auf zwei Dinge ankommt. Erstens kann ein Link-Local nicht weitergeleitet werden, sodass keine Subnetz-ID erforderlich ist. Es wird angenommen, dass, da nicht geroutet werden kann, dass alles, was dem Präfix bis zu den letzten 64-Bit folgt, Null ist. Zweitens ist das Präfix wie bei anderen ähnlichen IPv6-Präfixen alles bis zum letzten „1“ -Bit. Dies bleibt erhalten Konsistenz.
Kommentare
- Wenn es so funktioniert hätte, wäre es ein
/9
gewesen a/10
.