6. Zone Indices (Zonenindizes)
6. Zone Indices (Zonenindizes)
Da die gleiche nicht-globale Adresse in mehr als einer Zone des gleichen Bereichs in Verwendung sein kann (zum Beispiel die Verwendung der Link-lokalen Adresse fe80::1 in zwei separaten physischen Links) und ein Knoten Schnittstellen an verschiedene Zonen des gleichen Bereichs angebunden haben kann (zum Beispiel hat ein Router normalerweise mehrere Schnittstellen an verschiedene Links angebunden), benötigt ein Knoten ein internes Mittel, um zu identifizieren, zu welcher Zone eine nicht-globale Adresse gehört. Dies wird erreicht, indem jedem Bereich von Zonen, an die dieser Knoten angebunden ist, ein eindeutiger "Zonenindex" zugewiesen wird, und indem alle internen Verwendungen einer Adresse durch einen Zonenindex qualifiziert werden.
Die Zuweisung von Zonenindizes wird in dem folgenden Beispiel in der Abbildung dargestellt:
---------------------------------------------------------------
| a node |
| |
| |
| |
| |
| |
| |
| /--link1--\ /--------link2--------\ /--link3--\ /--link4--\ |
| |
| /--intf1--\ /--intf2--\ /--intf3--\ /--intf4--\ /--intf5--\ |
---------------------------------------------------------------
: | | | |
: | | | |
: | | | |
(imaginary ================= a point- a
loopback an Ethernet to-point tunnel
link) link)
Abbildung 1: Zonenindizes Beispiel
Dieser Beispielknoten hat fünf Schnittstellen:
-
Eine Loopback-Schnittstelle zur imaginären Loopback-Link (ein Phantom-Link, der nirgendwo hinführt).
-
Zwei Schnittstellen zur gleichen Ethernet-Link.
-
Eine Schnittstelle zu einer Punkt-zu-Punkt-Link.
-
Eine Tunnel-Schnittstelle (z.B. der abstrakte Endpunkt eines IPv6-über-IPv6-Tunnels [8], vermutlich über entweder die Ethernet- oder die Punkt-zu-Punkt-Link etabliert).
Somit ist es an fünf Interface-lokale Zonen angebunden, identifiziert durch die Interface-Indizes 1 bis 5.
Da die beiden Ethernet-Schnittstellen an die gleiche Link angebunden sind, ist der Knoten an vier Link-lokale Zonen angebunden, identifiziert durch Link-Indizes 1 bis 4. Beachten Sie auch, dass selbst wenn die Tunnel-Schnittstelle über die Ethernet etabliert ist, die Tunnel-Link ihren eigenen Link-Index erhält, der sich vom Index der Ethernet-Link-Zone unterscheidet.
Jeder Zonenindex eines bestimmten Bereichs SOLLTE genug Information enthalten, um den Bereich anzuzeigen, so dass alle Indizes aller Bereiche eindeutig innerhalb des Knotens sind und Zonenindizes selbst für einen dedizierten Zweck verwendet werden können. Die Verwendung des Index zur Identifikation eines Eintrags in der Management Information Base (MIB) ist ein Beispiel für den dedizierten Zweck. Die tatsächliche Darstellung zur Codierung des Bereichs ist implementierungsabhängig und außerhalb des Anwendungsbereichs dieses Dokuments. Innerhalb dieses Dokuments werden Indizes einfach in einem Format wie "Link-Index 2" der Lesbarkeit halber dargestellt.
Die Zonenindizes sind streng lokal zum Knoten. Zum Beispiel kann der Knoten am anderen Ende der Punkt-zu-Punkt-Link vollständig unterschiedliche Interface- und Link-Index-Werte für diese Link verwenden.
Eine Implementierung SOLLTE auch das Konzept einer "Standard"-Zone für jeden Bereich unterstützen. Und wenn unterstützt, SOLLTE der Index-Wert Null bei jedem Bereich reserviert werden, um "Standard-Zone verwenden" zu bedeuten. Im Gegensatz zu anderen Zonenindizes enthält der Standard-Index keinen Bereich, und der Bereich wird durch die Adresse bestimmt, die der Standard-Index begleitet. Eine Implementierung kann zusätzlich eine separate Standard-Zone für jeden Bereich definieren. Diese Standard-Indizes können auch als Zonenqualifizierer für eine Adresse verwendet werden, für die der Knoten an nur eine Zone angebunden ist, z.B. bei Verwendung von globalen Adressen.
Derzeit gibt es keine Möglichkeit für einen Knoten, automatisch zu bestimmen, welche seiner Schnittstellen zu den gleichen Zonen gehören, z.B. die gleiche Link oder die gleiche Multicast-Bereichszone größer als Interface. In Zukunft könnten Protokolle entwickelt werden, um diese Information zu bestimmen. In Abwesenheit solcher Protokolle MUSS eine Implementierung ein Mittel für manuelle Zuweisung und/oder Neuzuweisung von Zonenindizes vorsehen. Darüber hinaus SOLLTE eine Implementierung, um die manuelle Konfiguration in den meisten Fällen zu vermeiden, standardmäßig, Zonenindizes zunächst wie folgt zuweisen:
-
Einen eindeutigen Interface-Index für jede Schnittstelle.
-
Einen eindeutigen Link-Index für jede Schnittstelle.
Dann wäre manuelle Konfiguration nur für die weniger häufigen Fälle von Knoten mit mehreren Schnittstellen zu einer einzelnen Link oder von denen mit Schnittstellen zu Zonen verschiedener (nur Multicast-)Bereiche notwendig.
Somit wären die Standard-Zonenindex-Zuweisungen für den Beispielknoten aus Abbildung 1 wie in Abbildung 2 unten dargestellt. Manuelle Konfiguration wäre dann erforderlich, um zum Beispiel denselben Link-Index den beiden Ethernet-Schnittstellen zuzuweisen, wie in Abbildung 1 dargestellt.
---------------------------------------------------------------
| a node |
| |
| |
| |
| |
| |
| /--link1--\ /--link2--\ /--link3--\ /--link4--\ /--link5--\ |
| |
| /--intf1--\ /--intf2--\ /--intf3--\ /--intf4--\ /--intf5--\ |
---------------------------------------------------------------
: | | | |
: | | | |
: | | | |
(imaginary ================= a point- a
loopback an Ethernet to-point tunnel
link) link)
Abbildung 2: Beispiel der Standard-Zonenindizes
Zusätzlich zur Erstzuweisung von Zonenindizes wie oben angegeben, SOLLTE eine Implementierung automatisch eine Standard-Zone für jeden Bereich auswählen, für den mehr als eine Auswahl vorhanden ist, die verwendet wird, wenn eine Adresse ohne Zonenindex (oder mit einem Zonenindex von Null) angegeben wird. Zum Beispiel könnte die Implementierung in dem in Abbildung 2 dargestellten Beispiel automatisch intf2 und link2 als die Standard-Zonen für jeden dieser beiden Bereiche auswählen. (Ein möglicher Auswahlalgorithmus besteht darin, die erste Zone auszuwählen, die eine Schnittstelle außer der Loopback-Schnittstelle als Standard für jeden Bereich einschließt.) Ein Mittel MUSS auch vorsehen, die Standard-Zone für einen Bereich manuell zuzuweisen und jede automatische Zuweisung zu überschreiben.
Die Unicast-Loopback-Adresse ::1 darf keiner anderen Schnittstelle als der Loopback-Schnittstelle zugewiesen werden. Daher wird empfohlen, dass, wann immer ::1 ohne Zonenindex oder mit dem Standard-Zonenindex angegeben wird, es als zur Link-lokalen Zone der Loopback-Link gehörig interpretiert wird, unabhängig davon, welche Link-lokale Zone als Standard ausgewählt wurde. Wenn dies getan wird, dann für Knoten mit nur einer einzelnen Nicht-Loopback-Schnittstelle (z.B. eine einzelne Ethernet-Schnittstelle), dem häufigen Fall, müssen Link-lokale Adressen nicht mit einem Zonenindex qualifiziert werden. Die nicht qualifizierte Adresse ::1 würde immer auf die Link-lokale Zone verweisen, die die Loopback-Schnittstelle enthält. Alle anderen nicht qualifizierten Link-lokalen Adressen würden auf die Link-lokale Zone verweisen, die die Nicht-Loopback-Schnittstelle enthält (solange die Standard-Link-lokale Zone auf die Zone gesetzt wurde, die die Nicht-Loopback-Schnittstelle enthält).
Wegen der Anforderung, dass eine Zone eines bestimmten Bereichs vollständig in Zonen größerer Bereiche fallen (siehe Abschnitt 5 oben), MÜSSEN zwei Schnittstellen, denen verschiedene Zonen des Bereichs S zugewiesen sind, auch verschiedenen Zonen aller Bereiche kleiner als S zugewiesen werden. Somit kann die manuelle Zuweisung von unterschiedlichen Zonenindizes für einen Bereich die automatische Zuweisung von unterschiedlichen Zonenindizes für kleinere Bereiche erfordern. Zum Beispiel, angenommen, dass unterschiedliche Multicast-Standort-lokale Indizes 1 und 2 in Abbildung 1 manuell zugewiesen werden und dass Standort 1 Links 1, 2 und 3 enthält, aber Standort 2 nur Link 4 enthält. Diese Konfiguration würde die automatische Erstellung entsprechender Admin-lokaler (das heißt, Multicast "scop" Wert 4) Indizes 1 und 2 bewirken, weil Admin-lokaler Bereich kleiner als Standort-lokaler Bereich ist.
Mit den oben genannten Überlegungen ist der vollständige Satz von Zonenindizes für unseren Beispielknoten aus Abbildung 1 mit der zusätzlichen Konfiguration hier in Abbildung 3 unten dargestellt.
---------------------------------------------------------------
| a node |
| |
| |
| |
| |
| |
| /--------------------site1--------------------\ /--site2--\ |
| |
| /-------------------admin1--------------------\ /-admin2--\ |
| |
| /--link1--\ /--------link2--------\ /--link3--\ /--link4--\ |
| |
| /--intf1--\ /--intf2--\ /--intf3--\ /--intf4--\ /--intf5--\ |
---------------------------------------------------------------
: | | | |
: | | | |
: | | | |
(imaginary ================= a point- a
loopback an Ethernet to-point tunnel
link) link)
Abbildung 3: Vollständiges Zonenindizes Beispiel
Obwohl die obigen Beispiele zeigen, dass Zonen Index-Werte sequenziell für jeden Bereich zugewiesen werden, beginnend bei eins, sind die Zonenindex-Werte willkürlich. Eine Implementierung kann eine Zone mit einem beliebigen Wert beschriften, den sie wählt, solange der Index-Wert jeder Zone aller Bereiche eindeutig innerhalb des Knotens ist. Null SOLLTE reserviert werden, um die Standard-Zone darzustellen. Implementierungen, die sich für die empfohlene Basis-API [10] entscheiden, werden ihre Index-Werte auf diejenigen beschränken wollen, die durch das sin6_scope_id-Feld der sockaddr_in6-Struktur dargestellt werden können.