
Von The Cable Guy
Alle auf Deutsch verfügbaren Cable Guy-Kolumnen finden Sie unter http://search.microsoft.com/search/results.aspx?st=b&View=de-de&s=3&c=0&qu=the%20cable%20guy.
| Einleitung | |
| Der Algorithmus zur Auswahl der Quelladresse | |
| Der Algorithmus zur Auswahl der Zieladresse | |
| Ein Beispiel zur Auswahl von Adressen | |
| Zusätzliche Informationen |
Im Gegensatz zu IPv4-Hosts können IPv6-Hosts über mehrere Adressen pro LAN- oder VPN-Schnittstelle verfügen. Diese können für verschiedene Einsatzzwecke genutzt werden:
| • | Unterschiedliche Bereiche: Eine LAN-Schnittstelle eines IPv6-Hosts kann zum Beispiel über eine Adresse für das lokale Subnetz und zusätzlich entweder über eine globale Adresse (für das gesamte Internet) oder eine Adresse für den gesamten Standort der Organisation (standortlokal) verfügen. In einigen Fällen kann es sogar möglich sein, dass die LAN-Schnittstelle alle drei Adressarten gleichzeitig nutzt. |
| • | Unterschiedliche Stati: Automatisch konfigurierte Adressen können "nicht ausgeschlossen" oder "ausgeschlossen" sein. |
| • | Unterschiedliche Einsatzzwecke: Bei globalen Adressprefixen ist es möglich, temporäre (mit einer zufällig festgelegten Schnittstellen-ID) und öffentliche Adressen (mit einer Schnittstellen-ID, die auf der IEEE 802-Adresse des LAN-Adapters basiert) zu verwenden. Mobile IPv6-Knoten können eine Home-Adresse und eine andere mobile Adresse haben. |
Zusätzlich verfügt ein IPv6/IPv4-Host über eine oder mehrere Tunnelschnittstellen, die ebenfalls lokale, globale oder standortlokale Adressen haben können.
Der typische IPv4-Host hat eine Schnittstelle, der eine IPv4-Adresse zugewiesen ist. Er löst Namen über DNS auf, und beim Aufbau der Kommunikation ist recht einfach festzustellen, welche Adresse Quelle und welche Ziel ist. Die Quelladresse ist die, die der Schnittstelle des Hosts zugewiesen ist. Die Zieladresse ist die vom DNS zurückgegebene IP-Adresse.
Ein typischer IPv6-Host hat mehrere Schnittstellen mit mehreren IPv6-Adressen, und der DNS-Server gibt mehrere IPv6-Adressen zurück. Das Festlegen der Quell- und Zieladresse ist somit etwas komplexer. Die beiden Adressen hängen von Zweck und Umfang der Verbindung ab. Wenn er mit einer globalen Adresse kommuniziert, sollte der IPv6-Host zum Beispiel keine lokale Adresse als Quelladresse wählen. Außerdem müssen die möglichen Zieladressen nach Relevanz sortiert werden.
Um die Auswahl der Quell- und Zieladresse zu standardisieren, wurden in RFC 3484 (englischsprachig) die folgenden Algorithmen definiert:
| • | Ein Algorithmus zur Auswahl von Quelladressen, der die beste Quelladresse für die Kommunikation mit einer gegebenen Zieladresse sucht. |
| • | Ein Algorithmus, der eine Liste der möglichen Zieladressen nach deren Relevanz sortiert. |
Diese beiden Funktionen brauchen also nicht mehr durch die jeweilige IPv6-Anwendung selbst implementiert werden.
Wenn die Anwendung selbst eine Quelladresse angibt, wird der Quell-Algorithmus nicht genutzt. Wenn die Anwendung statt eines Namens eine Zieladresse angibt, wird auch der Zielalgorithmus nicht verwendet. Außerdem kann die Anwendung die Reihenfolge der vom Zielalgorithmus definierten Reihenfolge der Zieladressen ignorieren.
Damit Sie eine administrative Kontrolle über die Auswahl der Quell- und Zieladressen durch die Algorithmen haben, wurde in RFC 3484 zusätzlich eine lokale Richtlinientabelle definiert. In dieser Tabelle finden sich Einträge mit den folgenden Informationen:
| • | Ein Adressprefix: Mit ihm wird der beste Eintrag der Tabelle für eine Quell- oder Zieladresse bestimmt. Dieses Verfahren entspricht dem IPv6-Prozess der Routenerkennung - der beste Eintrag ist einfach der mit der größtmöglichen Prefix-Übereinstimmung. |
| • | Ein Prioritätswert: Mit diesem Wert kann eine Zieladresse gegenüber einer anderen bevorzugt werden. Wenn zum Beispiel zwei Zieladressen (D1 und D2) verglichen werden und die Priorität von D1 größer ist als die von D2, dann wird D1 gegenüber D2 bevorzugt. |
| • | Ein Label: Mit diesem Wert werden Quelladressen bevorzugt, wenn ihr Label dem der Zieladresse entspricht. Wenn zum Beispiel zwei Quelladressen zur Auswahl stehen (S1 und S2) - und das Label von S1 dem der Zieladresse (D) entspricht, das Label von S2 jedoch nicht - dann wird S1 verwendet. |
Unter Windows XP Service Pack 2, Windows XP Service Pack 1, Windows Server 2003, Windows Vista oder Windows Server "Longhorn" können Sie sich die Richtlinientabelle mit dem Befehl netsh interface ipv6 show prefixpolicy anzeigen lassen. Die Ausgabe sieht zum Beispiel so aus:
Precedence Label Prefix
---------- ----- --------------------------------
5 5 3ffe:831f::/32
10 4 ::ffff:0:0/96
20 3 ::/96
30 2 2002::/16
40 1 ::/0
50 0 ::1/128Mit den Befehlen netsh interface ipv6 add prefixpolicy, netsh interface ipv6 set prefixpolicy und netsh interface ipv6 delete prefixpolicy können Sie die Tabelle verwalten.
In den folgenden Abschnitten finden Sie eine genauere Beschreibung der Algorithmen zur Auswahl der Quell- und Zieladresse. Außerdem gebe ich ein Beispiel für ihre Anwendung.
Zweck dieses Algorithmus ist es, aus allen verfügbaren Quelladressen die mit der größtmöglichen Relevanz auszuwählen. Bei Hosts besteht die Liste der möglichen Kandidaten aus den Unicast-Adressen, die der Schnittstelle zugewiesen sind, die dem Ziel am nächsten ist. Bei Routern können diese Adressen jeder Schnittstelle des Routers sein.
Der Algorithmus vergleicht zwei Quelladressen mit der Zieladresse und stellt fest, welche von beiden die höhere Relevanz hat. Durch das interaktive Vergleichen der Liste aller Kandidaten wird so die Adresse mit der höchsten Relevanz ermittelt.
Beim Vergleich von zwei Quelladressen (S1 und S2) mit einer Zieladresse (D) wird die folgende Analyse durchgeführt:
1. | Es wird die Quelladresse bevorzugt, die der Zieladresse entspricht. Wenn S1 = D dann S1. |
2. | Es wird die Quelladresse bevorzugt, die denselben Bereich wie die Zieladresse hat. Wenn der Bereich von S1 kleiner ist als der von S2, wird S2 bevorzugt - andernfalls S1. |
3. | Es wird die Adresse bevorzugt, die nicht ausgeschlossen ist. Wenn S2 ausgeschlossen ist und S1 nicht, dann wird S1 bevorzugt. |
4. | Bei mobilen Knoten wird die Home-Adresse bevorzugt. Wenn S1 die Home-Adresse und mobile Adresse ist und S2 nicht, dann wird S1 bevorzugt. Weitere Informationen zu Home-Adressen und mobilen Adressen finden Sie im Cable Guy-Artikel Eine Einführung zu Mobile IPv6. |
5. | Bei Routern wird die Adresse der Schnittstelle bevorzugt, die dem Ziel am nächsten ist. Wenn S1 einer Schnittstelle zuwiesen ist, über die Pakete an D gesendet werden, dann wird S1 bevorzugt.
|
6. | Es wird die Quelladresse bevorzugt, die das gleiche Label wie die Zieladresse hat. Wenn das Label von S1 dem von D entspricht und das von S2 nicht, dann wird S1 bevorzugt.
|
7. | Es werden öffentliche Quelladressen gegenüber temporären Adressen bevorzugt. Wenn S1 eine öffentliche Adresse ist und S2 nicht, dann wird S1 bevorzugt.
|
8. | Es wird die Adresse mit der längsten Übereinstimmung im Prefix bevorzugt. Wenn die Übereinstimmung im Prefix mit D bei S1 größer ist als S2, dann wird S1 bevorzugt.
|
Zweck dieses Algorithmus ist es, die Liste der möglichen IPv4- und IPv6-Adressen von der höchsten bis zur geringsten Relevanz zu sortieren. IPv4-Zieladressen werden als Mapped-Adressen behandelt (::ffff: w.x.y.z) und ihr Bereich bei öffentlichen IPv4-Adressen als global, bei privaten IPv4-Adressen als standortlokal und bei APIPA-Adressen als lokal behandelt.
Der Algorithmus vergleicht zwei Zieladressen und stellt fest, welche von beiden die größere Relevanz hat. Er sortiert die Liste, indem er iterativ alle Adressen durchläuft.
Bei Vergleich von zwei Zieladressen (D1 und D2) wird die folgende Analyse durchgeführt:
1. | Es wird die Adresse bevorzugt, die erreichbar ist. Wenn D2 als nicht erreichbar bekannt ist oder wenn die Quelladresse für D2 nicht definiert ist, dann wird D1 bevorzugt.
|
2. | Es wird die Adresse bevorzugt, deren Bereich dem der Quelladresse entspricht. Wenn der Bereich von D1 dem der Quelladresse entspricht und der von D2 nicht, dann wird D1 bevorzugt.
|
3. | Es wird die Adresse bevorzugt, die nicht ausgeschlossen ist. Wenn D2 ausgeschlossen ist und D1 nicht, dann wird D1 bevorzugt.
|
4. | Bei mobilen Knoten wird die Home-Adresse bevorzugt. Wenn D1 eine Home-Adresse und eine mobile Adresse ist und D2 nicht, dann wird D1 bevorzugt.
|
5. | Es wird die Adresse bevorzugt, die das gleiche Label wie die Quelladresse hat. Wenn das Label von D1 dem der Quelladresse entspricht und das von D2 nicht, dann wird D1 bevorzugt.
|
6. | Es wird die Adresse bevorzugt, die in der Richtlinientabelle die höhere Priorität hat. Wenn die Priorität von D1 höher ist als die von D2, dann wird D1 bevorzugt. |
7. | Es wird eine native IPv6 Zieladresse gegenüber einer IPv6-Transition-Adresse bevorzugt. Wenn D2 über eine IPv6-Transition-Technologie erreicht wird und D1 nicht, dann wird D1 bevorzugt.
IPv6-Transition-Technologien sind zum Beispiel ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) und 6to4. Weitere Informationen finden Sie im Artikel IPv6 Transition Technologies (englischsprachig). |
8. | Es wird die Adresse bevorzugt, die den kleinsten Bereich hat. Wenn der Bereich von D1 kleiner ist als der von D2, wird D2 bevorzugt - andernfalls D1.
|
9. | Es wird die Adresse mit der längsten Übereinstimmung im Prefix bevorzugt. Wenn die Übereinstimmung im Prefix mit der Quelladresse bei D1 größer ist als D2, dann wird D1 bevorzugt.
|
10. | Die Reihenfolge der Zieladressen wird nicht geändert. |
Host A ist ein IPv6/IPv4-Host, der mehrere Schnittstellen und mehrere Adressen pro Schnittstelle hat. Host A erstellt und versendet eine DNS-Namensauflösungsanfrage für alle Ressourceneinträge des Namens web.example.com. In der DNS-Antwort sind eine IPv4-Adresse und mehrere IPv6-Adressen enthalten.
IPv6 geht nun auf Host A folgendermaßen vor:
1. | Er legt mit dem Algorithmus zur Auswahl der Quelladresse die Quelladresse mit der höchsten Relevanz fest. |
2. | Er legt mit dem Algorithmus zur Auswahl der Zieladresse eine Reihenfolge für die IPv4- und IPv6-Zieladressen fest. |
Die sortierte Liste mit Zieladressen wird dann der Anwendung zur Verfügung gestellt. Diese kann mit jeder der Zieladressen in der Liste einen Verbindungsversuch starten.
Host A könnte zum Beispiel mit den folgenden Adressen konfiguriert sein:
| • | LAN-Schnittstelle:
| ||||||||||||
| • | Tunnelingschnittstelle:
|
Die DNS-Anfrage für web.example.com gibt die folgenden Adressen zurück:
| • | 207.73.118.98 (öffentliche IPv4-Adresse [globaler Bereich]) |
| • | 3ffe:ffff:21a5:a4ca:2aa:ff:fe35:2c1a (globale Adresse) |
| • | 3ffe:ffff:21a5:a499::5efe:207.73.118.98 (globale ISATAP-Adresse) |
| • | fec0:3a4f:2a34:1aa7:2aa:ff:fe35:2c1a (standortlokale Adresse) |
Das Ergebnis des Algorithmus zur Auswahl der Quelladresse sieht so aus:
| • | Für Zieladresse 3ffe:ffff:21a5:a4ca:2aa:ff:fe35:2c1a ist die bevorzugte Quelladresse 3ffe:ffff:21a5:a454:2aa:ff:fe21:5c2f (globale Adresse, nicht ausgeschlossen, öffentlich). Der Bereich stimmt überein, es handelt sich um eine öffentliche Adresse, und sie verfügt über die längste Prefix-Übereinstimmung mit dem Ziel. |
| • | Für Zieladresse 3ffe:ffff:21a5:a499::5efe:207.73.118.98 ist die bevorzugte Quelladresse 3ffe:ffff:21a5:a499::5efe:157.60.17.211 (globale ISATAP-Adresse, nicht ausgeschlossen). Der Bereich stimmt überein, und sie verfügt über die längste Prefix-Übereinstimmung mit dem Ziel. |
| • | Für Zieladresse fec0:3a4f:2a34:1aa7:2aa:ff:fe35:2c1a ist die bevorzugte Quelladresse fec0:3a4f:78ea:a454:2aa:ff:fe21:5c2f (standortlokal, nicht ausgeschlossen). Der Bereich stimmt überein, und sie verfügt über die längste Prefix-Übereinstimmung mit dem Ziel. |
Das Ergebnis des Algorithmus zur Sortierung der Zieladressen sieht so aus:
| • | fec0:3a4f:2a34:1aa7:2aa:ff:fe35:2c1a (kleinster Bereich) |
| • | 3ffe:ffff:21a5:a4ca:2aa:ff:fe35:2c1a (native Adressen werden gegenüber ISATAP-Adressen bevorzugt) |
| • | 3ffe:ffff:21a5:a499::5efe:207.73.118.98 (ISATAP-Adressen werden gegenüber IPv4-Adressen bevorzugt) |
| • | 207.73.118.98 |
Host A versucht also mit den folgenden Quell- und Zieladressen eine Verbindung zu web.example.com aufzubauen:
| • | Quelladresse fec0:3a4f:78ea:a454:2aa:ff:fe21:5c2f, Zieladresse fec0:3a4f:2a34:1aa7:2aa:ff:fe35:2c1a |
| • | Quelladresse 3ffe:ffff:21a5:a454:2aa:ff:fe21:5c2f, Zieladresse 3ffe:ffff:21a5:a4ca:2aa:ff:fe35:2c1a |
| • | Quelladresse 3ffe:ffff:21a5:a499::5efe:157.60.17.211, Zieladresse 3ffe:ffff:21a5:a499::5efe:207.73.118.98 |
| • | Quelladresse 157.60.17.211, Zieladresse 207.73.118.98 |
IPv6-Adressen werden gegenüber IPv4-Adressen bevorzugt, weil der Eintrag für IPv4-Adressen in der Richtlinientabelle (Adressprefix ::ffff:0:0/96) einen geringeren Prioritätswert hat.
Anmerkung: Eine Anwendung wie Ping.exe kann die Adressliste ignorieren und stattdessen die von der DNS-Abfrage zurückgegebenen Adressen verwenden.
Weitere Informationen zum Thema finden Sie unter den folgenden Quellen:
| • | Internet Protocol Version 6-Webseite (englischspachig) |
| • | Whitepaper: Introduction to IP Version 6 (englischspachig) |