IPv6/Windows/Grundkonfiguration

Aus Foxwiki

IPv6-Grundkonfiguration für Windows

Seit Windows XP ist IPv6 in Windows integriert, bei XP noch optional als installierbare Komponente. Mit Windows Vista wurde der IP-Stack von Windows komplett überarbeitet. Seitdem ist IPv6 fester Bestandteil der Windows-Netzwerk-Komponenten und kann zwar deaktiviert, aber nicht mehr deinstalliert werden. In diesem Beitrag wird die Grundkonfiguration von Windows-Systemen für IPv6 mit Hilfe der Netshell beschrieben.

Die IPv4-Konfiguration erfolgt bei Windows in aller Regel über die grafische Oberfläche. Über das Netzwerk- und Freigabecenter können die Adaptereinstellungen geändert werden.

"adaptereigenschaften"

Abbildung 1: Die Adaptereigenschaften aufrufen

In den Eigenschaften von Internetprotokoll Version 6 (TCP/IPv6) finden wir eine ganz ähnliche Dialogmaske, in der die wichtigsten IPv6-Informationen eingegeben werden können:* IPv6-Adresse

  • Präfix
  • Standardgateway
  • DNS-Server
  • verbindungsspezifisches DNS-Suffix (unter Erweitert…)

"ipv6-konfig"

Abbildung 2: Die IPv6-Konfigurationsmaske

Diese Grundeinstellungen sind dann auch über die Eingabeaufforderung (cmd) mittels ipconfig /all zu sehen:

"ipconfig1"

Abbildung 3: Ausgabe von ipconfig /all

Die Ausgabe von ipconfig /all zeigt die komplette IP/IPv6-Konfiguration. Es werden sowohl IPv4- als auch IPv6-Informationen direkt untereinander angezeigt. Hier sehen wir auch, dass die Link-Local-Adresse mit %11 endet. Dies ist die so genannte Zone ID. Diese ID ist notwendig, um die Link-Local-Adresse einer Schnittstelle eindeutig zuzuordnen.

Das Problem ist, dass Link-Local-Adressen für jedes Interface gebildet werden, aber immer dasselbe Präfix FE80::/64 nutzen. Damit sind sie nicht mehr eindeutig einem Link zuzuordnen. Um für dieses Problem Abhilfe zu schaffen, wird die Zone ID genutzt. Sie identifiziert die zur Adresse zugehörige Schnittstelle eindeutig, in dem sie die interne Schnittstellen-ID angibt.

Obwohl die Ausgabe von ipconfig /all bereits recht komplex wirkt, sind hier doch bei weitem nicht alle Informationen ersichtlich. Wollen wir hinter die Kulissen der IPv6-Konfiguration schauen oder andere Aspekte konfigurieren, müssen wir einen anderen Weg gehen. Neben der Powershell ist die alterwürdige Netshell das geeignete Tool, um IPv6 zu tunen und weitergehende Informationen zur IPv6-Konfiguration zu erhalten.

Die Netshell kann über die Eingabeaufforderung aufgerufen werden und entweder als kompletter, einzeiliger Befehl oder interaktiv eingesetzt werden. Der interaktive Modus hat den Vorteil der einfacheren Hilfestellung und geringeren Schreibarbeit bei umfangreicheren Arbeiten.

Der interaktive Modus wird über den Befehl netsh aufgerufen. Im Anschluss wird die Netshell geöffnet und zeigt einen Prompt an. Die Netshell ist in Kontexte unterteilt. In den IPv6-Kontext wechseln Sie durch die Eingabe von interface ipv6. Durch Eingabe von Fragezeichen (?) kann jederzeit die Kontexthilfe aufgerufen werden. Sie enthält zum Teil auch Beispiele, wie der jeweilige Befehl eingesetzt werden kann. Beachten Sie, dass jeder Befehl nur soweit geschrieben werden muss, bis er eindeutig ist. So ist der Befehl netsh interface ipv6 show addresses durch die Kurzform netsh in ipv6 sh a ersetzbar.

In erster Linie sind im Kontext netsh int ipv6 die folgenden drei Befehle nützlich:

  • show – zeigt alle relevanten Informationen an
  • set – ermöglicht die Festlegung diverser Konfigurationsparameter
  • add – fügt einer Tabelle weitere Einträge hinzu. Tabellen beziehen sich auf Interfaces, Neighbor Discovery, Gateways, etc.

Diese Befehle müssen durch Parameter ergänzt werden. Beginnen wir mit dem Befehl show:

netsh interface ipv6 show interfaces

zeigt eine Übersicht über alle vorhandenen Interfaces. hier geht aus der ersten Spalte auch der Interface-Index hervor, der die Zone ID bildet (siehe Link-Local-Adressen oben).

"show_int"

Abbildung 4: Die Interface-Übersicht

Ein weiterer wichtiger Befehl ist der folgende:

netsh interface ipv6 show addresses

Hiermit erhalten Sie eine Übersicht über alle zugewiesenen Adressen – einschließlich des Adresstyps:

"show_add"

Abbildung 5: Ausgabe von netsh interface ipv6 show addresses

Sie finden hier diverse Informationen wie z.B. den Adresstyp (hier wird in der Tabelle zwischen normalen Unicast-Adressen und Anycast-Adressen unterschieden!), den Status und die Gültigkeit der jweiligen Adresse, die bei der Autoconfiguration eine Rolle spielt.

Da ARP bei IPv6 nicht mehr existiert und demnach auch der ARP-Cache nicht mehr vorhanden ist, wird bei IPv6 der so genannte Neighbor-Cache genutzt. Er wird durch folgenden Befehl angezeigt:

netsh interface ipv6 show neighbor

In dieser Ausgabe sehen Sie neben der Link-Layer-Adresse (MAC-Adresse) und der dazugehörigen IPv6-Adresse – aufgeteilt nach Interfaces – auch den aktuellen Status des Eintrags, der durch die Neighbor Unreachability Detection (NUD) ermittelt und festgelegt wird.

"show_neigh"

Abbildung 6: der Neighbor Cache

Zum Thema NUD existiert ein eigener Beitrag. Andererseits ist zu sehen, dass der Neighbor Cache prinzipiell analog zum ARP-Cache aufgebaut ist. Auch bei IPv6 kommunizieren die Systeme am lokalen Link auf dem Data Link-Layer über ihre Hardware-Adressen (bei IPv6 Link-Layer-Adressen genannt).

Ob die Bildung von Adressen via Autoconfiguration mittels Privacy Extensions oder mittels EUI-64 geschieht, sehen Sie über die Ausgabe des folgenden Befehls:

netsh interface ipv6 show privacy

Er zeigt alle relevante Informationen zur Konfiguration der Autoconfiguration aus Sicht eines Endknotens:

"show_priv2"

Abbildung 7: Ausgabe von show privacy

In erster Linie sehen wir in der ersten Zeile, ob die Privacy Extensions aktiviert sind oder nicht. Wenn hier der Wert disabled steht, wird die Adresse mittels EUI-64-Format (unter Nutzung der MAC-Adresse) gebildet.

Darüber hinaus werden Grenzwerte angezeigt, die der Knoten zu akzeptieren bereit ist. Die konkreten Werte gibt weitgehend der Router in seinem Router Advertisement vor. Das Thema Autoconfiguration wird in einem eigenen Beitrag behandelt.

Wollen Sie die IPv6-Konfiguration anpassen, nutzen Sie die Befehle add und set. So lassen sich z.B. IPv6-Adressen folgendermaßen erstellen:

netsh interface ipv6 add address "<Schnittstelle>" <IPv6-Adresse>/<Präfix> <Optionen>

Nachfolgend ein Beispiel für das Setzen der IPv6-Adresse 2001:db8:cafe::1/64 für die Schnittstelle LAN-Verbindung:

"add_address"

Abbildung 8: Definieren einer zusätzlichen IPv6-Adresse

Zeigt die Netshell nach der Eingabe eines Befehls keine Antwort, ist dies eine stillschweigende Bestätigung des Befehls. Dass die Adresse zusätzlich (!) übernommen wurde, zeigt die Ausgabe von ipconfig oder netsh interface ipv6 show addresses:

"ipconfig2"

Abbildung 9: Die zusätzliche Adresse wird angezeigt

Soll die Adresse auch nach einem Neustart verfügbar sein, können Sie an den Befehl die Option store=persistent anfügen – diese ist allerdings auch der Default-Wert. Soll die Konfiguration nur für die aktuelle Session gelten, fügen Sie store=active an. Soll eine Anycast-Adresse festgelegt werden, geht dies durch den folgenden Befehl:

netsh interface ipv6 add address 11 2001:db8:beef::1/64 anycast

In diesem Fall steht die 11 für das gewünschte Interface und kann alternativ zum Namen der Schnittstelle angegeben werden. der Zusatz anycast kann auch als type anycast angegeben werden. Die Ausgabe von netsh interface ipv6 show addresses zeigt nun die hinzugekommene Adresse:

"show_add2"

Abbildung 10: Die neue Anycast-Adresse wird angezeigt

Möchten Sie das Standardgateway oder eine statische Route setzen, nutzen Sie add route. Das folgende Beispiel zeigt das Setzen des Standardgatways:

netsh interface ipv6 add route ::/0 "LAN-Verbindung" 2001:db8:affe::1

Hierbei ist zu bemerken, dass ::/0 die Standardroute definiert und die Angabe einer Global-Unicast-Adresse für das Standardgateway zwar funktioniert, eleganter jedoch die Angabe der Link-Local-Adresse des Standardgateways wäre. Analog zum Beispiel oben geschieht das Setzen von statischen Routen.

Ein weiterer wichtiger Paramter ist die Angabe des oder der DNS-Server. Einen (zusätzlichen) DNS-Server geben Sie durch den folgenden Befehl ein:

netsh interface ipv6 add dnsserver <Schnittstelle> <DNS-Server>

Das folgende Beispiel zeigt das Setzen eines DNS-Servers:

"dnssevers"

Abbildung 11: Definieren eines DNS-Servers

Das Beispiel zeigt, dass der festgelegte DNS-Server auch gleich überprüft wird. Ist er nicht erreichbar, wird eine Fehlermeldung ausgegeben, der Eintrag wird dennoch erzeugt, wie der anschließende Befehl netsh interface ipv6 show dnsserver zeigt.

Für eine Grundkonfiguration reichen meistens die hier vorgestellten Befehle. In der Netshell sind auch so ziemlich alle anderen Parameter, die mit IPv6 zusammenhängen, konfigurierbar. In den entsprechenden Beiträgen (z.B. zum Thema Neighbor Discovery oder Autoconfiguration) werden die passenden Netshell-Kommandos gezeigt und erläutert.

Quelle: http://www.ipv6-akademie.de/ipv6-grundkonfiguration-fur-windows/