IPv6/Windows

Aus Foxwiki
Version vom 3. November 2023, 12:56 Uhr von Dirkwagner (Diskussion | Beiträge) (Textersetzung - „IPv6/windows“ durch „IPv6/Windows“)

TMP

Netzwerk-Grundlagen- IPv6 unter Windows

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/

IPv6 im Windows-Netz

Mit 15 Jahren ist IPv6 immer noch das ungeliebte Kind der IT. Und gemessen an den Konfigurationsbeispielen im Web scheint es bestenfalls von Linux-Anwendern umsorgt zu werden. Administratoren sollten IPv6 jedoch schon aus Sicherheitsgründen auch in einem Windows-Netz ihr Augenmerk widmen.

IPv6 hat 15 Jahre nach seiner Standardisierung die IT-Welt immer noch nicht erobert, obwohl die Kinderkrankheiten des aus damaliger Sicht wegweisenden Internetprotokolls überwunden sind.

Trotzdem gibt es auf die Dauer keine Alternative. Im eigenen Windows-Netz besteht Handlungsbedarf, selbst wenn man IPv6 immer noch nicht aktiv nutzen will. Microsofts Empfehlung lautete einst, es einfach auszuschalten. Seit Server 2008 R2 hat sich das grundlegend geändert (siehe „Alle Links“, [a, b]).

Immer mehr Programme von Microsoft nutzen IPv6 auch für die interne Kommunikation. Seit Windows Vista ist es standardmäßig aktiviert. Es lohnt sich also auf jeden Fall, sich mit IPv6 auseinanderzusetzen. Einen Einstieg und Überblick bietet unter anderem der IPv6-Leitfaden der iX [1].

Ähnlich wie bei IPv4 generiert Windows automatisch eine Link-Local-Adresse, wenn es keinen DHCP-Server findet. Aber während mittels IPv4 trotzdem keine Verbindung zu anderen Systemen zustande kommt, können IPv6-fähige Geräte direkt miteinander kommunizieren.

Eigentlich eine praktische Sache, die aber zu unerwünschten Effekten führen kann, wenn sich die Systeme eigentlich in voneinander getrennten Netzsegmenten befinden sollen. Selbst in einfachen Netzen sollte IPv6 nicht unkonfiguriert bleiben: Mittels Router Advertisement kann ein Angreifer andernfalls leicht die Kontrolle über das gesamte Netz erlangen [c].

Neben den Windows-Clients gilt daher der Sicherheitsausrüstung im Netz besonderes Augenmerk. Wer eine IPv6-fähige Firewall wie die Sophos UTM nutzt, kann das „Prefix Advertisement“ übernehmen, sofern IPv6 dort aktiviert ist.

Die Clients erhalten dann ähnlich wie bei DHCP ein Präfix, mit dem sie die eigenen IPv6-Adressen bilden. Sodann benötigen die Server statische IPv6-Adressen – etwa Präfix+::1. In diesem Szenario sollten die Firewall-Regeln für IPv6 entsprechend eingerichtet sein, da ja jedes Gerät im Netz eine prinzipiell routbare IP-Adresse hat, wenn IPv6-Datenverkehr entweder nativ oder via Tunnelbroker internetseitig zur Firewall gelangt.

Knackpunkt Gateway

Wenn die Firewall jedoch nur IPv4 beherrscht, bietet es sich an, einen DHCPv6-Server einzurichten. Sollte es kein Gateway für IPv6 geben, bleibt das Feld „Standardgateway“ leer – anders als IPv4 ist IPv6 in dieser Hinsicht recht zimperlich. Der Server hingegen muss als „Next Hop“ bekannt sein und auch via IPv6 gestellte Anfragen weiterleiten, was sich per Kommandozeile wie folgt konfigurieren lässt:

Netsh interface ipv6 set interface 12 ⤦

forwarding=ENABLED

In diesem Fall dient die 12 als Interface-Index, an den IPv6 gebunden ist. Er lässt sich bei Bedarf mit dem PowerShell-Befehl Get-NetIPAddress -AddressFamily IPv6 ermitteln. Intern verwendet man wie unter IPv4 private, nicht im Internet routbare Adressbereiche, sogenannte Unique Local Addresses [d] aus dem Bereich fc00:/7.

Über Services wie den von Simple DNS Plus [e] kann man sich eine einmalige ULA generieren lassen, in diesem Fall die folgende, die hier anstelle der sonst üblichen, nicht praxistauglichen Beispieladressen herhalten soll:

Prefix/L: fd Global ID: fe4a8d628d Subnet ID: 0079 Combined/CID: fdfe:4a8d:628d:0079::/64 IPv6 addresses: fdfe:4a8d:628d: ⤦

0079:xxxx:xxxx:xxxx:xxxx

Die folgende Anleitung nutzt die so generierten Daten, um die Einrichtung von IPv6 auf einem Server 2012 (R2) zu demonstrieren. Dabei sei vorausgesetzt, dass der DHCP-Dienst für IPv4 bereits läuft.

Wie bei IPv4 erhält der Domaincontroller eine statische IP-Adresse, im Beispiel die fdfe:4a8d:628d:0079::1.

Datei:Bild11.png

Der Bereichserstellungs-Assistent legt hier Wert auf je einen Doppelpunkt vor den gewünschten Adress-Eingaben (Abb. 1).

Sodann gilt es im DHCP einen neuen Bereich anzulegen. Dafür steht ein Assistent zur Verfügung (siehe Abbildung 1). Es folgen das Präfix fdfe:4a8d:628d:0079: sowie die Ausnahmen von der automatisierten Adressenverteilung, hier der Bereich von 1 bis 256, etwa für die festen IP-Adressen der Server.

Im nächsten Schritt gibt der Administrator die Lease-Dauer an. Schließlich fasst der Assistent die gewünschten Parameter zusammen.

Datei:Bild12.png

Eine ping-Anfrage erhält nur dann eine Antwort, wenn die Firewall dies zulässt (Abb. 2).

Analog zu IPv4 sind nun verschiedene Server-Optionen einzustellen. Zu den wichtigsten Informationen zählt die IPv6-Adressliste für DNS-Server zum Zweck der rekursiven Namensauflösung unter Angabe des Domaincontrollers.

Hinzu kommt der Domainname für die Domain-Suchliste. Damit sich die IPv6-Verbindung mittels ping überprüfen lässt, muss die entsprechende Firewall-Regel greifen (Abb. 2). Damit ist die Konfiguration serverseitig abgeschlossen.

Listing : IPv6 mittels PowerShell konfigurieren

# Konfiguration der Netzwerkkarte New-NetIPAddress -InterfaceAlias "Ethernet" -IPv6Address fdfe:4a8d:628d:0079::1 -PrefixLength 64 Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses fdfe:4a8d:628d:0079::1 New-NetRoute -DestinationPrefix fdfe:4a8d:628d:0079::/64 -InterfaceAlias "Ethernet" -NextHop fdfe:4a8d:628d:0079::254 -AddressFamily IPv6 # Definition des DHCPv6-Bereichs Add-DhcpServerv6Scope -Name "IPv6 Bereich" -Description "Default IPv6 Bereich" -Prefix fdfe:4a8d:628d:0079:: -PreferredLifeTime 8.00:00:00 -ValidLifeTime 12.00:00:00 -State Active Add-DhcpServerv6ExclusionRange -Prefix fdfe:4a8d:628d:0079:: -StartRange fdfe:4a8d:628d:0079::1 -EndRange fdfe:4a8d:628d:0079::256 # Setzen der DHCPv6-Optionen set-DhcpServerv6OptionValue -DomainSearchList "sbsrv.lan" set-DhcpServerv6OptionValue -DnsServer ::1,fdfe:4a8d:628d:0079::1 # Konfiguration der Firewall Set-NetFirewallRule -DisplayName "Datei- und Druckerfreigabe (Echoanforderung - ICMPv6 eingehend)" -Enabled True -Direction Inbound -Action Allow

Wer die Kommandozeile gegenüber dem GUI-Assistenten bevorzugt, kann alternativ die PowerShell einsetzen. Die bereits anhand des Assistenten beschriebenen Schritte lassen sich – mit Administrator-Rechten angemeldet – per Befehlszeile erledigen (siehe Listing).

Jetzt sollte der Systemverwalter die weiteren Server entweder ebenfalls mit festen IPv6-Adressen ausstatten oder eine entsprechende Reservierung im DHCPv6-Bereich vornehmen.

Clientseitige Konfiguration

Die Clients erhalten nun ihre IPv6-Adressen vom Server. Endlich lassen sich alle Übergangsverfahren abschalten, beim Windows-8-Client respektive Server 2012 (R2) ebenfalls mithilfe der PowerShell:

Set-Net6to4Configuration -State disabled Set-NetTeredoConfiguration -Type disabled Set-NetIsatapConfiguration -State disabled

Unter Windows 7 und Server 2008 (R2) kommen die netsh-Befehle zum Einsatz, ebenfalls mit Administratorrechten auszuführen [f]:

netsh interface 6to4 set state disabled netsh interface teredo set state disabled netsh interface isatap set state disabled

Selbst beim Einsatz von DirectAccess sollte man prüfen, welches Protokoll aktiv ist. Das seit Server 2012 bevorzugte „IPHTTPS“ wird hier nicht deaktiviert.

IPv4 den Vorzug geben

Wer die Konfiguration nicht bei jedem Client einzeln vornehmen möchte, kann eine entsprechende Gruppenrichtlinie anlegen – in der folgenden Verschachtelungsebene: Computerkonfiguration/Richtlinien/Administrative Vorlagen/Netzwerk/TCP/IP-Einstellungen/IPv6-Übergangstechnologien.

Hier gilt es IP6-zu-IP4, ISATAP und Teredo zu deaktivieren. Und nicht vergessen, anschließend die Gruppenrichtlinie mit der gewünschten Gruppe zu verknüpfen. Nach diesen Änderungen ist die Ausgabe von ipconfig /all wieder deutlich übersichtlicher.

Sobald IPv6 im Netz verfügbar ist, meldet sich bei ping die noch ungewohnte IPv6- statt der altbekannten IPv4-Adresse. Zwar kann man ping über den Parameter -4 oder -6 das gewünschte Verhalten vorgeben. In der Grundeinstellung hat IPv6 jedoch Vorrang vor IPv4. Wer lieber die gewohnten IPv4-Adressen sehen will, kann das Verhalten über den Registry-Eintrag DisabledComponents unter HKEY_LOCAL:MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\ ändern, indem er den Wert 20 (hexadezimal) einträgt. Sollte der Eintrag fehlen, ist er als DWORD-Wert (32 Bit) anzulegen. Das Ganze funktioniert auch mit dem PowerShell-Befehl New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\ -name DisabledComponents -Value 0x20 -PropertyType dword. Nun hat IPv4 Priorität vor IPv6.

Kommt im Netz auch DirectAccess zum Einsatz, muss das entsprechende Gateway als Standard-Gateway auf den IPv6-fähigen Servern eingetragen sein, die über DirectAccess erreichbar sein sollen, sofern es kein anderes IPv6-fähiges Gateway gibt. Richtet man erst DirectAccess und dann IPv6 ein, sind die folgenden Befehle auf dem Server mit der DirectAccess-Rolle auszuführen – anderenfalls findet die Konfiguration automatisch statt:

netsh interface ipv6 add route fdfe:4a8d: ⤦

628d:0079::/48 publish=yes ⤦
interface = Ethernet

legt die Route für das gesamte Präfix inklusive der DirectAccess-Adressbereiche fest,

netsh interface ipv6 set interface ⤦

12 forwarding=ENABLED

bewirkt das Weiterleiten von IPv6-Requests.

Fazit

IPv6 lässt sich in kleinen Netzen recht schnell konfigurieren, wenn man die Feinheiten beachtet. Gerade PowerShell kann viel Tipparbeit ersetzen. Im Dual-Stack-Betrieb dürfte die sonstige Hardware kaum Schwierigkeiten bereiten; sie lässt sich ja weiterhin per IPv4 ansprechen. In komplexeren Netzen liegt der wesentliche Aufwand meist im Entwerfen der neuen Netzwerkstruktur.

Die Verantwortlichen sollten es sich jedenfalls verkneifen, einfach bestehende Konzepte unhinterfragt abzubilden. Die Einführung von IPv6 bietet oftmals eine Gelegenheit, alte Sünden im Netzdesign zu beheben.

Literatur

  • IPv6-Leitfaden: Die Internet-Umgestaltung; iX Kompakt 4/2013

Quelle

Onlinequellen

[a] The Cable Guy; Support for IPv6 in Windows Server 2008 R2 and Windows 7 http://technet.microsoft.com/en-us/magazine/2009.07.cableguy.aspx

[b] Ask Premier Field Engineering (PFE) Platforms; IPv6 for the Windows Administrator: Why you need to care about IPv6 http://blogs.technet.com/b/askpfeplat/archive/2013/06/17/ipv6-for-the-windows-administrator-why-you-need-to-care-about-ipv6.aspx

[c] Keeping it Classless; IPv6 Hacking – „thc-ipv6“ [Part 2] http://keepingitclassless.net/2011/09/ipv6-hacking-thc-ipv6-part-2/

[d] Wikipedia; IPv6 http://de.wikipedia.org/wiki/IPv6

[e] JH Software; Unique Private IPv6 Address Range Generator http://www.simpledns.com/private-ipv6.aspx

[f] Richard Hicks; Disabling Unused IPv6 Transition Technologies for DirectAccess Clients http://directaccess.richardhicks.com/2013/08/27/disabling-unused-ipv6-transition-technologies-for-directaccess-clients/

IPv6 unter Windows

Befehle

Befehl Beschreibung
netsh ? Hilfe zum Befehl
netsh int ipv6 show ? Hilfe zum Befehl
Ethernet Schnittstelle anzeigen
netsh interface ipv6 show interfaces Name und Schnittstellenindex der Netzwerkkarten ausgeben
netsh interface ipv6 show ipstats Zeigt IP-Statistiken an
Ethernet Schnittstelle konfigurieren / anzeigen
Get-NetIPInterface Ethernet -AddressFamily IPv6 | fl (PS) Eigenschaften der Schnittstelle anzeigen
Get-NetIPv6Protocol (PS) Eigenschaften der Schnittstelle anzeigen
netsh int ipv6 show int level=verbose ausführliche Infos aller Schnittstellen anzeigen
netsh int ipv6 show int ethernet v ausführliche Infos der angegebenen Schnittstellen anzeigen
IPv6 Einstellungen konfigurieren / anzeigen
ipconfig /release6 IPv6 DHCP Adresse freigeben
ipconfig /renew6 IPv6 DHCP Adresse neu zuteilen lassen
netsh interface ipv6 show addresses aktuellen IP-Adressen anzeigen
netsh int ipv6 show addr ethernet v IP-Adresse der Ethernet Schnittstelle anzeigen ausführlich
netsh interface ipv6 show dnsservers DNS ServerAdressen anzeigen
netsh int ipv6 show int <IndexID oder Name des Interface> Einstellungen der angegebenen Schnittstelle anzeigen mit IndexID
Get-NetIPInterface <Name des Schnittstelle> -AddressFamily IPv6 | fl (PS) Einstellungen der angegebenen Schnittstelle anzeigen mit IndexID
Get-NetIPAddress -AddressFamily IPv6 (PS) IPv6 Adressen anzeigen
netsh int ipv6 set addr eth FD37:83EF:3822:FF54::24/64 IP-Adresse der Ethernet Schnittstelle zuweisen
netsh int ipv6 delete addr eth FD37:83EF:3822:FF54::24 IP-Adresse der Ethernet Schnittstelle löschen
   
Route konfigurieren / anzeigen
netsh int ipv6 show route Route anzeigen
route -6 print Route anzeigen
netsh interface ipv6 add route FD37:83EF:3822::/48 publish=yes interface = Ethernet Route neu anlegen
netsh interface ipv6 set route FD37:83EF:3822:FF54::/64 publish=yes interface = Ethernet bestehende Route ändern
netsh interface ipv6 delete route FD37:83EF:3822:FF54::/48 interface = Ethernet bestehende Route löschen
   
Neighbor Discovery
netsh interface ipv6 show neighbors Neighbor-Cache Einträge anzeigen
netsh int ipv6 set neighbors "Ethernet" "FD37:83EF:3822:FF54::254" "12-34-56-78-9a-bc" Eintrag zum Neighbor-Cache hinzufügen, der Eintrag ist bis zum nächsten Neustart gültig, mit dem Parameter store=persistent wird er fest hinterlegt
netsh int ipv6 delete neighbors "Ethernet" "FD37:83EF:3822:FF54::254" Eintrag im Neighbor-Cache löschen
   
Konfiguration testen
ping -6 <hostname oder IPv6>  
tracert -6 <hostname oder IPv6>  
pathping -6 <hostname oder IPv6>  
   
sonstiges
   
netsh interface ipv6 show destinationcache Zielcacheeinträge anzeigen
netsh interface ipv6 show prefixpolicies Präfix-Richtlinieneinträge anzeigen
netsh interface ipv6 reset IPv6 Schnittstelle Einstellungen zurücksetzen, danach wird ein Neustart nötig
netsh int ipv6 set addr eth FD37:83EF:3822:FF54::24/64 IP-Adresse der Netzwerkkarte zuweisen
   

IPv6 auf allen Schnittstellen deaktivieren

MS KB929852 Artikel gültig für Windows 7 SP1 / Windows Server 2008 R2

- durch das Hinzufügen des Wertes DisabledComponents DWORD 0xff (Decimal 255) wird IPv6 auf allen Schnittstellen deaktiviert

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents /t REG_DWORD /d 255 /f

!!! Den Wert nicht auf HEX 0xffffffff Dezimal 4294967295 setzen, wie in einigen Hinweisen zu sehen setzen, das kann die Bootzeit verlängern !!!

Wert in Dezimal Wert in Hex Beschreibung Reihenfolge
0 0x0 (Defaulteinstellung) IPv6 voll aktiviert IPv6 vor IPv4
1 0x1 IPv6 für alle Tunnel-Interfaces deaktiviert IPv6 vor IPv4
2 0x2 6to4 deaktiviert IPv6 vor IPv4
4 0x4 ISATAP deaktiviert IPv6 vor IPv4
8 0x8 Teredo deaktiviert IPv6 vor IPv4
16 0x10 Deaktiviert IPv6 auf allen nicht Tunnel Schnittstellen (LAN und PPP) mit Ausnahme der IPv6-Loopback-Schnittstelle IPv6 vor IPv4
17 0x11 Deaktiviert alle IPv6-Schnittstellen mit Ausnahme der IPv6-Loopback-Schnittstelle IPv6 vor IPv4
32 0x20 IPv4 gegenüber IPv6 bevorzugen IPv4 vor IPv6
255 0xFF IPv6 komplett deaktiviert IPv4

- aktuell gesetzten Wert anzeigen

reg query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents

- Parameter löschen, IPv6 Einstellungen wird auf Windows Standard gesetzt

reg delete HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents

- IPv6 nur auf bestimmten Schnittstellen deaktiveren

Systemsteuerung | Netzwerk- und Freigabecenter | Adaptereinstellungen ändern | Netzwerk Schnittstelle | Eigenschaften

Internetprotokoll Version 6 (TCP/IPv6): deaktiviern

- testen welches Protokoll bevorzugt wird

ping localhost ping <PCimSubnetz>

IPv6 Parameter setzen

- IDs zufällig anordnen, IPv6-Adresse wird nicht aus der MAC-Adresse der Netzwerk Schnittstelle gebildet. (Windows Standardeinstellung)

netsh interface ipv6 set global randomizeidentifiers=enabled

- Temporäre Adresse verwenden (EUI-64 Standard) (Windows Standardeinstellung)

netsh interface ipv6 set privacy state=enabled

- aktuelle Einstellungen der Parameter anzeigen

netsh interface ipv6 show global netsh interface ipv6 show privacy

- Maximale bevorzugte Gültigkeitsdauer, legt Zeit fest, nach welcher Zeit der Rechner eine neue temporäre Adresse erzeugt und für ausgehende Pakete auch einsetzt. (Windows Standardeinstellung)

netsh interface ipv6 set privacy maxpreferredlifetime=1d

- Maximale Gültigkeitsdauer, legt Zeit fest, in der der Rechner eingehende Verbindungen auf einer temporäre Adresse akzeptiert.

netsh interface ipv6 set privacy maxvalidlifetime=7d

Tagen (d), Stunden (h), Minuten (m)

Standard

Maximale Gültigkeitsdauer - maxvalidlifetime=7d

Maximale bevorzugte Gültigkeitsdauer - maxpreferredlifetime=1d

Das bedeutet also, nach einem Tag wird eine neue temporäre Adresse für ausgehende Verbindungen erzeugt, aber eingehende Pakete für die Verbindungen dieser temporäre Adresse werden 7 Tage angenommen.

- IDs zufällig anordnen und Temporäre Adresse verwenden deaktivieren

netsh interface ipv6 set global randomizeidentifiers=disabled netsh interface ipv6 set privacy state=disabled

- Gültigkeit der Parameter setzen, bis zum Neustart oder permanent.

store=active - Einstellung bis zum nächsten Neustart gültig

store=persistent (Windows Standard) - Einstellung für immer gültig

netsh interface ipv6 set privacy state=disabled store=active

- Powershell ab Win8 - Temporäre Adresse verwenden aktivieren (Windows Standardeinstellung)

Set-NetIPv6Protocol -UseTemporaryAddresses Enabled

- Powershell ab Win8 - Eigenschaften der Schnittstelle anzeigen

Get-NetIPv6Protocol

Route konfigurieren / anzeigen per Powershell

- Route erstellen

New-NetRoute -DestinationPrefix FD37:83EF:3822:FF54::/64 -InterfaceAlias "Ethernet" ` -NextHop FD37:83EF:3822:FF54::254 ` -AddressFamily IPv6

- Route ändern

Set-NetRoute -DestinationPrefix FD37:83EF:3822:FF54::/64 -InterfaceAlias "Ethernet" ` -AddressFamily IPv6 ` -Publish Yes

- Route anzeigen

alle IPv6 Routen anzeigen

Get-NetRoute -AddressFamily IPv6

Einstellungen der angegebenen IPv6 Route anzeigen

Get-NetRoute -DestinationPrefix FD37:83EF:3822:FF54::/64 |fl

- Route löschen

Remove-NetRoute -DestinationPrefix FD37:83EF:3822:FF54::/64

Get-NetRoute | ?{ $_.NextHop -eq "FD37:83EF:3822:FF54::254" } | Remove-NetRoute

Windows als IPv6 Router

- den Router eine Adresse zuweisen

netsh interface ipv6 set address "LAN-Verbindung" 2001:db8::1

- Route für den Präfix einrichten

netsh interface ipv6 add route 2001:db8::/64 "LAN-Verbindung" publish=yes

- Advertisement einrichten, auf dieser Schnittstelle verteilt Windows dann im Netzwerk den LAN-Präfix.

netsh interface ipv6 set interface "LAN-Verbindung" advertise=enable

- mit dem Zusatz forwarding=enable leitet Windows dann tatsächlich IPv6 Pakete weiter.

netsh interface ipv6 set interface "LAN-Verbindung" advertise=enable forwarding=enable

IPv6 Tunneltechnik deaktivieren/aktivieren

- alle IPv6 Tunneltechniken deaktivieren (Powershell Win8/8.1/2012/2012R2)

Set-Net6to4Configuration -State disable Set-NetTeredoConfiguration -Type disable Set-NetIsatapConfiguration -State disable

- alle IPv6 Tunneltechniken aktivieren (Powershell Win8/8.1/2012/2012R2)

Set-Net6to4Configuration -State Default Set-NetTeredoConfiguration -Type Enabled Set-NetIsatapConfiguration -State Default

- alle IPv6 Tunneltechniken deaktivieren (Eingabeaufforderung Win7/2008R2)

netsh interface 6to4 set state disabled netsh interface teredo set state disabled netsh interface isatap set state disabled

- alle IPv6 Tunneltechniken aktivieren (Eingabeaufforderung Win7/2008R2)

netsh interface 6to4 set state default netsh interface teredo set state client netsh interface isatap set state default

Unique Local Addresses (ULA) und DHCPv6

ULA IPv6 Adressen sind für private Netzwerke reserviert und werden nicht ins Internet geroutet.* FD - Präfix der ULA

  • 37:83EF:3822 - zufälliger (einmaliger) 40-Bit-Wert
  • FF54 - gewählte Subnet ID
  • - DHCPv6 Server mit fester IPv6 einrichten, im Beispiel FD37:83EF:3822:FF54::1/64
Einstellungen im DHCP-Server unter IPv6

Präfix - FD37:83EF:3822:FF54:: Präferenz - 255 Clients suchen den DHCP Server mit dem höchsten Präferenzwerten im LAN, um die Konfigurationsparameter zu beziehen. Die Werte reichen von 0 (niedrigste Präferenz) bis 255 (höchste Präferenz) DHCP Ausschluss Start-IPv6 :1 End-IPv6 :49 Start-IPv6 :100 End-IPv6 :FFFF:FFFF:FFFF:FFFF

im Beispiel wird der Bereich von 1 - 256 nicht vergeben und ist Reserviert für Server u.a. Geräte die eine feste IPv6 Adresse bekommen.* wenn kein IPv6 Gateway vorhanden ist, den Eintrag für Standardgateway leer lassen, aber den Server als "Next Hop" bekannt machen, durch das aktivieren der Weiterleitung. forwarding=ENABLED.

  • Name und InterfaceIndex der Netzwerk-Schnittstelle ermitteln

(Powershell ab Windows 8/2012)

Get-NetIPAddress -AddressFamily IPv6

(Eingabeaufforderung Windows 7/2008)

netsh interface ipv6 show interface

- auf dem DHCPv6 Server folgende Befehle ausführen (Eingabeaufforderung)

netsh interface ipv6 set int ethernet forwarding=ENABLED netsh interface ipv6 set int ethernet advertise=enable

advertise=enable - Routerankündigungen über die Schnittstelle

routerdiscovery=enable - Routersuche (Standardeinstellung von Win2012R2)

managed=disable - Verwaltete Adresskonfiguration (Standardeinstellung von Win2012R2) Stateless Mode, IPv6 Adresskonfiguration erfolgt ohne DHCPv6 Server per Autoconfiguration.

managed=enabled - Stateful Mode, wenn der Client die IPv6 von einem DHCPv6 bezieht.

(PowerShell)

Set-NetIPInterface Ethernet -AddressFamily IPv6 `

-Advertising Enabled `
-Forwarding Enabled `
-RouterDiscovery Enabled `
-ManagedAddressConfiguration Disabled

- aktuelle Konfiguration der Schnittstelle mit Namen Ethernet anzeigen

Get-NetIPInterface Ethernet -AddressFamily IPv6 | fl

- auf dem Windows DHCPv6 Server, das beziehen von DHCPv6 Adressen für die angegebene Schnittstelle des Servers deaktivieren

Set-NetIPInterface <Interface Name> -AddressFamily IPv6 -Dhcp Disabled Set-NetIPInterface Ethernet -AddressFamily IPv6 -Dhcp Disabled

- die bestehende Route ändern und auf Veröffentlichen setzen, Route wird beim vergeben der festen IPv6 auf dem Server automatisch angelegt. Es handelt sich dabei um die Route ins Subnet.

netsh interface ipv6 set route FD37:83EF:3822:FF54::/64 publish=yes int = Ethernet

Durch das veröffentlichen der Route und dem Router Advertisements (Parameter advertise=enable) ist dem Host der Präfix des Netzwerkes bekannt. Der Host kann sich jetzt eine Adresse aus dem Subnetz zuteilen Stateless Address Autoconfiguration.

DHCPv6 Server per Powershell einrichten

- Konfiguration der Netzwerkkarte

IPv6-Adresse setzen

New-NetIPAddress -InterfaceAlias "Ethernet" -AddressFamily IPv6 ` -IPAddress FD37:83EF:3822:FF54::1 ` -PrefixLength 64

DNS Server eintragen

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" ` -ServerAddresses FD37:83EF:3822:FF54::1

Route des Subnet auf Veröffentlichen setzen

Set-NetRoute -DestinationPrefix FD37:83EF:3822:FF54::/64 -InterfaceAlias "Ethernet" ` -AddressFamily IPv6 ` -Publish Yes

Routerankündigungen aktivieren

Set-NetIPInterface Ethernet -AddressFamily IPv6 ` -Advertising Enabled

- DHCP und DNS Server installieren

Import-Module ServerManager Add-WindowsFeature DHCP, DNS, RSAT-DHCP, RSAT-DNS-Server

- Definition des DHCPv6-Bereichs

DHCP Bereich und Lifetime von 8 Stunden, max. 15 Stunden setzen

Add-DhcpServerv6Scope -Name "IPv6 Bereich" ` -Description "Default IPv6 Bereich" ` -Prefix FD37:83EF:3822:FF54:: ` -PreferredLifeTime 0.08:00:00 ` -ValidLifeTime 0.15:00:00 -State Active

Ausschlussbereich definieren

Add-DhcpServerv6ExclusionRange -Prefix FD37:83EF:3822:FF54:: ` -StartRange FD37:83EF:3822:FF54::1 ` -EndRange FD37:83EF:3822:FF54::256

- Setzen der DHCPv6-Optionen

DNS Server und Domainnamen setzen

set-DhcpServerv6OptionValue -DomainSearchList "domain.tld" set-DhcpServerv6OptionValue -DnsServer FD37:83EF:3822:FF54::1,::1

- Konfiguration der Firewall

Set-NetFirewallRule -DisplayName "Datei- und Druckerfreigabe (Echoanforderung - ICMPv6 eingehend)" ` -Enabled True -Direction Inbound ` -Action Allow

Quelle

http://www.su4me.de/win_ipv6.html

DHCP mit IPv6

Schön langsam sollte man sich ernsthaft mit dem Thema IPv6 auseinandersetzen. Hier eine Anleitung, wie man Microsofts DHCP Server mit IPv6 konfiguriert.

Eines gleich vorweg - ganz sauber gehts noch nicht. Aber, ich will nicht gleich alles verraten - legen wir los.

Beginnen wir mit den Serveroptionen, um ganz sauber vorzugehen.

Die Option 23 gibt den DNS Server an. Die IPv6 Adresse des DNS Servers eintippen und Hinzufügen klicken. Windows prüft, ob es sich bei der eingegebenen Adresse um einen DNS Server handelt. Trifft dies zu, wird er unten in die Liste eingetragen.

Jetzt aber legen wir einen neuen IPv6-Bereich an.

"neuer IPv6-Bereich"

Der Bereichserstellungsassistent startet und führt durch die Erstellung. Zuerst der Name und die Beschreeibung. Wie an der Beschreibung zu erkennen ist, soll der IPv6-Bereich aus "nur" 256 Adressen bestehen, genau wie der IPv4-Bereich.

"Bereichsname"

Jetzt kommt der Teil, den ich bekritteln muss, da hier ausschliesslich /64 verwendet werden kann. Mein um ein vielfaches kleinerer IPv6-Raum lässt sich hier nicht abbilden.

"Bereichspräfix"

Also muss ich mit Ausschlüssen tricksen. Solange es keinen weiteren IPv6-Bereich innerhalb von fd00::100 bis fd00::ffff:ffff:ffff:ffff gibt, kann man so tricksen. Optimal ist aber doch was anderes...

"DHCP Ausschlüsse"

Den Bereichslease an die Unternehmensvorgaben anpassen.

"Bereichslease"

Und schon ist der Assistent auch wieder fertig. Den Bereich kann man sofort aktiviern.

"Assistent fertig"

In den Bereichsoptionen kann man kontrollieren, ob die Einstellungen aus den Serveroptionen übernommen wurden, ansonsten kann man den selben Eintrag setzen.

"IP Einstellungen beim Client"

Mit

ipconfig /all

kann man überprüfen, ob die IPv6-Adresse über DHCP bezogen wurde. Die beiden Einträge DHCPv6-IAID und DHCPv6-Client-DUID werden benötigt, wenn man eine Reservierung unter IPv6 für diesen Rechner vornehmen möchte.

"neue Reservierung"

"Client reservieren"

Somit ist die IP Adresse fd00::2c für den Rechner reserviert.

Quelle

http://www.hoenninger-it.net/windows-server-os-reader/items/dhcp-mit-ipv6.html

Windows Server 2012 - DHCP with IPv6

This is my second post on IPv6 in Windows 2012 (some concepts may very well apply to Windows 2008/R2) and what could be considered my 7th post on DHCP, since the subject is "DHCP with IPv6".

Some preliminary comments...

But first, I want to mention something I noticed from my first post.

I'll usually exclude the first 10 or 20 addresses for static IP assignments (reservations being the other option).

In this present scenario, the IP of the server ends in "10" and the IP of the client in "15".

This is to make the example clear and simple.

But I do want to point out that since we are counting in hexdecimal, there are not 10 numbers before 10 (0-9) but rather 16 (0-f):

0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

We'll see this again when we exclude addresses from the scope.

Here are two other examples that can be confusing:

18,19,1a,1b,1c,1d,1e,1f,20,21

99,9a,9b,9c,9d,9e,9f,af,bf,cf,df,ef,ff,100,101,102

Second, I thought I might configure what I believe would be NAT64 on my Cisco ASA device so I could access the Internet on a client machine running only IPv6 from an IPv6 only LAN. This may require more research than I had thought so, for the time being at least, I'll put that project "on hold" and concentrate on Windows Server 2012.

Configuration of an IPv6 scope in DHCP

I have already installed the DHCP role and configured some basic elements for the DHCP server. First and foremost, I have authorized it in Active Directory.

So let's go ahead and configure an IPv6 scope.

We'll start in the DHCP Manager.

Click on IPv6 and select "New Scope":

Datei:Bild1.png

Click "Next" and then provide a name for the scope:

Datei:Bild2.png

Indicate the scope prefix. For this exercise, I'm simply using fd00:0000:0000:0000

Datei:Bild3.png

I can leave the preference at 0. We could adjust preferences if there were multiple scopes.

I'll exclude a range of IP addresses for static addressing. 0000 to 00ff is more than enough. And more than 100 - please see my first preliminary comment.

Datei:Bild4.png

I'll leave the scope lease as is. 8 days would be fine for wired clients in most cases. 8 hours might be more appropriate for wireless clients, especially if they only connect for several hours at a time.

Datei:Bild5.png

Of course, with DHCPv6, we do not have to worry about IP address exhaustion, having trillons (and even more) to "play with".

IPv6 dynamic address allocation

I was about to remove the static IPv6 address on the Windows 7 client used to test DHCP in this exercise so the client could obtain a DHCPv6 assigned address.

I first looked at the ipconfig /all output, thinking I could present an interesting "before and after" comparison.

Surprise!

Just as a client can have a static "Unique Local" IPv6 address (ULA) and a local link address, it can also have a DHCPv6 assigned address as well.

As shown below, it is possible for a single network interface to have not only 2 but 3 IPv6 addresses:

DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IPv6 Address. . . . . . . . . . . : fd00::15(Preferred) IPv6 Address. . . . . . . . . . . : fd00::520b:b2ef:36d2:a9d3(Preferred) Lease Obtained. . . . . . . . . . : Tuesday, November 05, 2013 8:26:46 PM Lease Expires . . . . . . . . . . : Sunday, November 17, 2013 8:26:45 PM Link-local IPv6 Address . . . . . : fe80::e07e:50de:a86e:edc7%11(Preferred)

Of course, we are not even considering (here) any IPv4 addresses.

So, unlike with IPv4, where a single network interface most often has only one (1) address, several IPv6 addresses can be assigned to a single interface by a combination of methods:* Static assignement

  • DHCP
  • Link local automatic configuration.

After some research on the Internet, I see that RFC 4291 defines this feature (multiple IPv6 addresses for a single interface).

That's the client side.

I wanted to look at the server side and I was surprised again.

The DHCPv6 server not only allocated an IPv6 address to a client already configured with a static IPv6 address... but also configured *itself* with an dynamically assigned IPv6 address:

Datei:Bild6.png

Now my curiosity inspires some questions...

A. Will the client respond to a ping on all addresses (why not?)?

Yes (we do have to remove any percent symbols and the numbers that follow them - see examples below).

Note: I disabled Windows Firewall for the pings (no risk on my usually closed test network).

PS C:\> ping fd00::15 Pinging fd00::15 with 32 bytes of data: Reply from fd00::15: time=3ms Reply from fd00::15: time<1ms Reply from fd00::15: time=1ms Reply from fd00::15: time<1ms [...] PS C:\> ping fd00::520b:b2ef:36d2:a9d3 Pinging fd00::520b:b2ef:36d2:a9d3 with 32 bytes of data: Reply from fd00::520b:b2ef:36d2:a9d3: time=1ms Reply from fd00::520b:b2ef:36d2:a9d3: time<1ms Reply from fd00::520b:b2ef:36d2:a9d3: time<1ms Reply from fd00::520b:b2ef:36d2:a9d3: time=1ms [...]

Here we have to remove the " %11 ":

PS C:\> ping fe80::e07e:50de:a86e:edc7%11 Pinging fe80::e07e:50de:a86e:edc7%11 with 32 bytes of data: PING: transmit failed. General failure. PING: transmit failed. General failure. PING: transmit failed. General failure. PING: transmit failed. General failure. [...] PS C:\> ping fe80::e07e:50de:a86e:edc7 Pinging fe80::e07e:50de:a86e:edc7 with 32 bytes of data: Reply from fe80::e07e:50de:a86e:edc7: time=3ms Reply from fe80::e07e:50de:a86e:edc7: time<1ms Reply from fe80::e07e:50de:a86e:edc7: time<1ms Reply from fe80::e07e:50de:a86e:edc7: time=2ms

B. What IP address will be registered in DNS?

The static ULA address and the DHCPv6 assigned address:

Datei:Bild7.png

C. If we ping by FQDN, to what IP address will the name resolve?

I'll enter the following command on the DNS server (DC-001) for a fresh start:

dnscmd /clearcache

And let's clear the client cache on the server as well:

ipconfig /flushdns

The first time I try this, it's the DHCP assigned address:

PS C:\> ping PC1 Pinging PC1.machlinkit.biz [fd00::520b:b2ef:36d2:a9d3] with 32 bytes of data: Reply from fd00::520b:b2ef:36d2:a9d3: time=2ms Reply from fd00::520b:b2ef:36d2:a9d3: time<1ms Reply from fd00::520b:b2ef:36d2:a9d3: time<1ms Reply from fd00::520b:b2ef:36d2:a9d3: time<1ms

But the second time, it's the static address:

PS C:\> ping PC1 Pinging PC1.machlinkit.biz [fd00::15] with 32 bytes of data: Reply from fd00::15: time=3ms Reply from fd00::15: time<1ms Reply from fd00::15: time=1ms Reply from fd00::15: time<1ms

The third time, it's the DHCP assigned address, and the fourth time, the static address (again).

Note: I cleared the DNS cache after each attempt.

Logically, the link local address will never participate in DNS since it does not register itself in the first place.

So it seems that DNS alternates among the available IP addresses.

Quelle

http://davidmtechblog.blogspot.de/2013/11/windows-server-2012-dhcp-with-ipv6.html

Support für IPv6 in Windows Server 2008 R2 und Windows 7

Mit Windows Server 2008 R2 und Windows 7 (zurzeit im Betatest) setzt Microsoft die plattformweite Unterstützung für IPv6 mit einem Protokollstack fort, der Branchenstandards sowie integrierte Anwendungen und Dienste unterstützt.

Wie im Fall von Windows Vista und Windows Server 2008 ist IPv6 in Windows Server 2008 R2 und Windows 7 installiert und standardmäßig aktiviert. (Siehe Randleiste „Argumente gegen die Deaktivierung von IPv6“)

In diesem Beitrag betrachten wir die Features in Windows 7 und Windows Server 2008 R2, die IPv6 nutzen. Wir werden sehen, wie IPv6 genutzt werden kann, um neue und innovative Produktivitäts- und Konnektivitätslösungen zu entwickeln.

HomeGroup

HomeGroup in Windows 7 ist eine neue Möglichkeit für die Verbindung von Computern in Heimnetzwerken, sodass Familienmitglieder Dokumente, Bilder, Musik, Videos und Drucker gemeinsam verwenden können. HomeGroup basiert auf IPv6-Konnektivität und die Windows-Peer-zu-Peer-Netzwerkplattform auf Computern mit Windows 7 in einem Heimnetzwerk mit einem einzigen Subnetz.

Weitere Informationen finden Sie unter Zuhause mit HomeGroup in Windows 7 (möglicherweise nur auf Englisch verfügbar). Schauen Sie sich auch das Video an (möglicherweise nur auf Englisch verfügbar).

Argumente gegen die Deaktivierung von IPv6

Leider deaktivieren einige Unternehmen IPv6 auf Computern mit Windows Vista oder Windows Server 2008, auf denen es standardmäßig installiert und aktiviert ist.

IPv6 wird häufig aufgrund der Annahme deaktiviert, dass keine Anwendungen oder Dienste ausgeführt werden, die es verwenden. Häufig wird auch fälschlicherweise angenommen, dass die Aktivierung sowohl von IPv4 als auch IPv6 den DNS- und Webverkehr verdoppelt. Das ist jedoch nicht der Fall.

Aus der Sicht von Microsoft ist IPv6 ein unverzichtbarer Bestandteil des Windows-Betriebssystems und in standardmäßigen Tests von Windows-Diensten und -Anwendungen während der Entwicklung des Betriebssystems enthalten.

Da die Aktivierung von IPv6 für Windows vorgesehen ist, führt Microsoft keine Tests zu den Auswirkungen der Deaktivierung von IPv6 durch. Wenn IPv6 in Windows Vista, Windows Server 2008 oder höheren Versionen deaktiviert wird, funktionieren einige Komponenten nicht.

Außerdem könnten Anwendungen, von denen Sie annehmen, dass sie IPv6 nicht verwenden – wie Remote Assistance, HomeGroup, DirectAccess und Windows Mail – IPv6 doch verwenden.

Daher empfiehlt Microsoft, IPv6 aktiviert zu lassen, auch wenn Sie nicht über ein IPv6-fähiges Netzwerk verfügen, systemeigen oder getunnelt.

Wenn Sie IPv6 nicht deaktivieren, deaktivieren Sie auch keine IPv6-Anwendungen und -Dienste (z. B. funktionieren HomeGroup in Windows 7, DirectAccess in Windows 7 und Windows Server 2008 R2 nur mit aktiviertem IPv6), und Ihre Hosts können die durch IPv6 optimierte Konnektivität nutzen.

DirectAccess

DirectAccess ist ein Schlüsselfeature in Windows 7 und Windows Server 2008 R2, das DirectAccess-Remoteclients über eine IPsec-geschützte Verbindung mit einem DirectAccess-Server einen bidirektionalen Zugriff auf Intranetressourcen bereitstellt.

DirectAccess nutzt die globale End-to-End-IPv6-Adressierung und -Konnektivität für die transparente Verbindung von Remotecomputern mit Intranets, als ob sie über ein Ethernetkabel angeschlossen wären.

DirectAccess-Clients, auf denen Windows 7 oder Windows Server 2008 R2 ausgeführt werden, erstellen automatisch eine geschützte und getunnelte IPv6-Verbindung mit einem DirectAccess-Server, auf dem Windows Server 2008 R2 ausgeführt wird, wenn ein Client feststellt, dass er im Internet ist.

Weitere Informationen über DirectAccess finden Sie unter DirectAccess und das Thin-Edge-Netzwerk (möglicherweise nur auf Englisch verfügbar) und in den Ressourcen auf microsoft.com/directaccess (möglicherweise nur auf Englisch verfügbar).

IP-HTTPS

IP6-zu-IP4 und Teredo sind zwei Übergangstechnologien, die einem IPv6-Host das Tunneln von IPv6-Datenverkehr über ein IPv4-Internet ermöglichen. Webproxyserver und einige Firewalls blockieren jedoch möglicherweise den eingekapselten IPv6-Datenverkehr.

IP-HTTPS ist ein neues Protokoll für Windows 7 und Windows Server 2008 R2, mit Hosts Konnektivität über einen Webproxy oder eine Firewall herstellen können, indem IPv6-Pakete innerhalb einer IPv4-basierten sicheren HTTPS-Sitzung getunnelt werden.

IP-HTTPS wird nur verwendet, wenn der Client keine Verbindung über eines der anderen standardmäßigen IPv6-Konnektivitätsprotokolle herstellen kann – systemeigenes IPv6, Teredo oder IP6-zu-IP4.

Sie können das Verhalten von IP-HTTPS mittels des Befehlszeilentools Netsh.exe im netsh interface httpstunnel-Kontext oder mittels der neuen IP-HTTPS-Status-Gruppenrichtlinieneinstellung konfigurieren, die später in diesem Artikel beschrieben wird.

Teredo-Server und -Relay

Windows Server 2008 R2 enthält Unterstützung für die Teredo-Server und -Relayfunktionalität. Frühere Versionen von Windows unterstützten lediglich einen Teredo-Client und ein hostspezifisches Teredo-Relay. Um zu verstehen, was dies bedeutet, betrachten wir den Hintergrund von Teredo.

Teredo ist eine IPv6-Übergangstechnologie, die in RFC 4380 definiert wird und Unicast-IPv6-Konnektivität über das IPv4-Internet für Hosts bereitstellt, die durch ein Network Address Translation (NAT)-Gerät, das keine IP6-zu-IP4- oder systemeigene IPv6-Adressierung unterstützt, vom Internet getrennt sind. Abbildung 1 zeigt die Komponenten einer Teredo-Infrastruktur.

"fig01.gif"

Abbildung 1Komponenten einer Teredo-Infrastruktur

Ein Teredo-Client tunnelt IPv6-Pakete entweder an andere Teredo-Clients oder an Knoten in einem IPv6-Netzwerk wie das IPv6-Internet über ein Teredo-Relay oder ein hostspezifisches Teredo-Relay. Ein Teredo-Client kommuniziert mit einem Teredo-Server, um eine Teredo-basierte IPv6-Adresse zu konfigurieren oder um die Initiierung von Kommunikation mit anderen Teredo-Clients oder -Hosts im IPv6-Internet zu unterstützen.

Ein Teredo-Relay ist ein Router, der Pakete zwischen Teredo-Clients im IPv4-Internet und IPv6-Hosts weiterleitet. Ein hostspezifisches Teredo-Relay ist ein IPv6/IPv4-Knoten mit einer Schnittstelle und Verbindung sowohl zum IPv4-Internet als auch zum IPv6-Internet, der über das IPv4-Internet ohne zwischengeschaltetes Teredo-Relay direkt mit Teredo-Clients kommunizieren kann.

Vor Windows Server 2008 R2 stellte Microsoft Teredo-Server und -Relays im Internet bereit, die standardmäßig von Windows-basierten Teredo-Clients verwendet werden, und überließ es Internetdienstanbietern, weitere Teredo-Server und -Relays für ihre Kunden bereitzustellen.

Konfigurieren eines Teredo-Servers

Der Assistent für die Einrichtung von DirectAccess konfiguriert automatisch die Teredo-Serverfunktionalität auf dem DirectAccess-Server und konfiguriert DirectAccess-Clients für die Verwendung dieses DirectAccess-Servers als Teredo-Server.

Um einen Computer mit Windows Server 2008 R2 manuell als Teredo-Server einzurichten, verbinden Sie den Computer mit dem IPv4-Internet und konfigurieren an der Internetschnittstelle zwei konsekutive, öffentliche und statische IPv4-Adressen.

Konfigurieren Sie z. B. die Internetschnittstelle mit den IPv4-Adressen 131.107.41.171 und 131.107.41.172. Führen Sie dann an der Eingabeaufforderung den Befehl „netsh interface teredo set state server FirstIPAddress“ aus.

Standardmäßig lösen Windows-basierte Teredo-Clients den Namen teredo.ipv6.microsoft.com auf, um die IPv4-Adresse des Microsoft-Teredo-Servers im Internet zu ermitteln. Wenn Sie einen eigenen Teredo-Server bereitstellen, müssen Sie die Clientcomputer entweder mit der ersten IPv4-Adresse Ihres Teredo-Servers oder einem DNS-Namen konfigurieren, der zu dieser IPv4-Adresse aufgelöst wird.

Sie können den Befehl „netsh interface teredo set state server=NameOrFirstIPv4Address“ verwenden, um die Hosts mit dem Teredo-Server zu konfigurieren. Sie können für Computer, auf denen Windows 7 und Windows Server 2008 R2 ausgeführt wird, auch die Teredo-Servernamen-Gruppenrichtlinieneinstellung verwenden, die in diesem Artikel beschrieben wird.

Konfigurieren eines Teredo-Relays

Die hostspezifische Teredo-Relayfunktionalität ist standardmäßig aktiviert, der Host agiert jedoch als Endpunkt und nicht als Router. Im Gegensatz dazu leitet ein Teredo-Relay IPv6-Pakete zwischen Schnittstellen weiter, die dem IPv4-Internet und einem IPv6-Netzwerk, das ein Intranet oder ein IPv6-Internet sein kann, entsprechen.

Um die Relayfunktionalität zu aktivieren, müssen Sie die Weiterleitung an der Teredo-Schnittstelle und an den Schnittstellen aktivieren, die die Verbindung mit Ihrem IPv6-Netzwerk herstellen. Beispiele für solche Schnittstellen sind eine Ethernet-Schnittstelle für ein systemeigenes IPv6-Intranet oder Ihre Intra-Site Automatic Tunnel Addressing Protocol-Schnittstelle, wenn Sie ISATAP für IPv6-Konnektivität in Ihrem Intranet verwenden.

Verwenden Sie den Befehl „netsh interface ipv6 set interface interface=InterfaceNameOrIndex forwarding=enabled“, um die Weiterleitung an den entsprechenden Schnittstellen zu aktivieren.

Gruppenrichtlinieneinstellungen für Übergangstechnologien

Sie können auf Computern mit Windows 7 oder Windows Server 2008 R2 die Einstellungen für IP-HTTPS, Teredo, IP6-zu-IP4 und ISATAP zentral über eine Gruppenrichtlinie konfigurieren. In früheren Versionen von Windows mussten Sie die entsprechenden Einstellungen über Netsh.exe-Befehle konfigurieren.

Sie finden diese Einstellungen im Snap-In Gruppenrichtlinienverwaltungs-Editor unter Konfiguration|Richtlinien|Administrative Vorlagen|Netzwerk|TCP/IP-Einstellungen|IPv6-Übergangstechnologien. Abbildung 2 zeigt die neuen Gruppenrichtlinieneinstellungen.

Name der Einstellung Beschreibung Entsprechender Netsh.exe-Befehl
6to4 Relay Name (IP6-zu-IP4-Relayname) Ermöglicht Ihnen die Angabe eines IP6-zu-IP4-Relaynamens für einen IP6-zu-IP4-Host. Ein IP6-zu-IP4-Relay wird als Standardgateway für IPv6-Netzwerkverkehr verwendet, der durch den IP6-zu-IP4-Host gesendet wird. netsh interface 6to4 set relay name=
6to4 Relay Name Resolution Interval (IP6-zu-IP4-Relaynamen-Auflösungsintervall) Ermöglicht Ihnen die Angabe eines Intervalls, mit dem der IP6-zu-IP4-Relayname aufgelöst wird. netsh interface 6to4 set relay interval=
6to4 State (IP6-zu-IP4-Status) Ermöglicht Ihnen die Konfiguration des Status des IP6-zu-IP4-Clients. netsh interface 6to4 set state=
IP-HTTPS State (IP-HTTPS-Status) Ermöglicht Ihnen die Konfiguration des Status des IP-HTTPS-Clients. netsh interface httpstunnel set interface state=
ISATAP Router Name (ISATAP-Routername) Ermöglicht Ihnen die Angabe eines Routernamens oder einer IPv4-Adresse für einen ISATAP-Router. netsh interface ipv6 isatap set router name=
ISATAP State (ISATAP-Status) Ermöglicht Ihnen die Konfiguration des Status des ISATAP-Hosts. netsh interface ipv6 isatap set state=
Teredo Client Port (Teredo-Clientport) Ermöglicht Ihnen die Angabe des UDP-Ports, den der Teredo-Client zum Senden von Paketen verwenden soll. netsh interface teredo set state clientport=
Teredo Default Qualified (Teredo – Standard – Qualifiziert) Ermöglicht Ihnen, Teredo für die Kommunikation vorzubereiten. Standardmäßig ist Teredo inaktiv, wenn es nicht verwendet wird. Durch die Qualifizierung wird Teredo aktiv. Nicht verfügbar
Teredo Refresh Rate (Teredo-Aktualisierungsrate) Ermöglicht Ihnen die Konfiguration der Geschwindigkeit, mit der Teredo-Clients die NAT-Übersetzungstabelle aktualisieren. netsh interface teredo set state refreshinterval=
Teredo Server Name (Teredo-Servername) Ermöglicht Ihnen die Angabe des Namens des Teredo-Servers. netsh interface teredo set state servername=
Teredo State (Teredo-Status) Ermöglicht Ihnen die Angabe des Status des Teredo-Diensts. netsh interface teredo set state type=

Der Assistent für die Einrichtung von DirectAccess verwendet diese Gruppenrichtlinieneinstellungen für die Konfiguration von DirectAccess-Clients mit diesem DirectAccess-Server als Teredo-Server und ISATAP-Router. Sie können diese auch unabhängig von DirectAccess verwenden, um ISATAP in Ihrem Intranet bereitzustellen oder um IP6-zu-IP4-, Teredo- und IP-HTTPS-Einstellungen zentral für Ihre Hosts zu konfigurieren.

Quelle

IPv6 Subnetz – Was ist das Richtige für mich?

Nachdem die ganze öffentliche Vergabe von IPv6 Adressen noch sehr schleppend ist, lohnt der Aufbau vorher eigentlich nicht. Die Telekom will bis Ende 2011 auch Endanwendern IPv6 anbieten. Wer aber schon gewappnet sein will, wenn's dann doch soweit ist, kann sich schon mal mit dem Thema vertraut machen.

Es gibt einen Standard-IPv6-Bereich, der vergleichbar mit dem private Class A / B / C Netzen von IPv4 ist, eine sog. Site local address. Übrigens, die Link local address (fe80::/64) ist mit der 169.254.0.0/16 bei IPv4 vergleichbar. Wenn man also noch keine offizielle, von der IETF oder dem ISP zugewiesene IPv6 hat, sollte auch nicht auf die Idee kommen irgendeine zu verwenden. Das macht früher oder später nur Probleme und man muss erneut umstellen. Folgende Site local Adresse ist frei verfügbar:

Site local: fec0::

Subnetz prefix length: 64

Gleiches Netz, andere Schreibweise:

Address prefix: fec0::/64

Man könnte auch ein anderes Subnetz innerhalb von fec0 verwenden, allerdings bevorzuge ich kurze Schreibweisen. Beispiel für ein Subnetz wäre: fec0:0:0:1::

Die Übersicht über alle Adressen gibt's hier: http://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xml

Testumgebung

  • Server A:
    • Windows 2008 R2
    • AD, DNS
    • IPv6: fec0::3
  • Server B:
    • Windows 2008 R2
    • DHCP
    • IPv6: fec0::2
  • Client:
    • Windows 7
    • IPv6: DHCP (z.B. fec0::aaaa)

In dieser Umgebung gibt es keinen IPv6 fähigen Router und damit auch kein Gerät was per Router Discovery gefunden wird.

Statische IPv6 vergeben

Nachdem IPv6 mittlerweile standardmäßig aktiv ist, muss man in den Protokolleigenschaften lediglich eine statische IP-Adresse eintragen, hier am Server B:

"image"

Server A erhält die IP fec0::3.     

Über ping -6 fec0::3 kann man die IPv6 Konnektivität von A nach B überprüfen (wenn ich den Parameter -6 nicht angebe, versucht Windows es zuerst über IPv6. Mit dem Parameter erzwingt man das Ganze):

"image"

Konfiguration DHCP-Server

Während der Installation der DHCP-Server Rolle, wird man gefragt, ob man den DHCP im Stateless oder Stateful Modus betreiben möchte, für diesen Verwendungszweck ist Stateful die richtige Wahl.

DHCP-Bereich: fec0:: /64

Ausnahmen: * fec0::ffff bis fec0::ffff:ffff:ffff:ffff (ich möchte dass meine Clients möglichst kurze Adressen bekommen, und 65.000 IP's reichen mir)

  • fec0::1 bis fec0::20 (meine statischen IPv6 Adressen sind im Bereich 1-20, deshalb soll dieser nicht per DHCP vergeben werden)

Server Options: * 00023 DNS Recursive Name Server IPv6 Addresss: fec0::3

Wenn ich jetzt am Client meine IPv6 Adresse per ipconfig /renew6 erneuere, bekomme ich z.B. fec0::aaaa

Starte ich einen ping vom Client zum Server (ping -6 fec0::3) kann es passieren, dass ich nur PING: transmit failed. General failure. Bekomme. Als nächstes sollte man den ping über link local Adresse (fe80::/64) versuchen, das sollte klappen. In diesem Fall hilft der nächste Schritt.

Zusätzliche Konfiguration am DHCP-Server

An dieser Stelle scheitert man ganz gerne. IPv6 ist auf das sog. Router Advertisement angewiesen, damit ein Routing im Netzwerk möglich ist. Nun steht uns aber kein IPv6 fähiger Router zur Verfügung, d.h. der DHCP-Server soll diese Aufgabe übernehmen. Dazu sind ein paar Kniffe über netsh notwendig. Ohne das Router Advertisement bekommt der Client auch keine Route ins eigene Netz zugewiesen. Über den folgenden Befehl kann man sich die Routen anzeigen lassen:

netsh int ipv6 show route

Hier fehlt fec0:: - unser neues Netz.

Damit es als Route hinzugefügt wird, muss man am DHCP-Server folgendes konfigurieren: # Auf der Netzwerkkarte Advertise=enabled setzen

  1. Für die entsprechende Route, also fec0::, die Eigenschaft publish=enabled setzen

Schritt 1:

Man muss die ID der betroffenen Netzwerkkarte herausfinden: netsh int ipv6 show int

Anschließend muss Advertise=enabled gesetzt werden: netsh int ipv6 set int <ID> advertise=enabled   // optional noch: rou=en (das sollte schon enabled sein)

Schritt 2:

Anschließend die Route hinzufügen: netsh int ipv6 add route fec0::/64 publish=enabled

Falls es die schon gibt, kann man die Eigenschaft publish wie folgt ändern: netsh int ipv6 set route fec0::/64 publish=enabled

Update, mit einem Service Pack hat sich scheinbar der Syntax geändert, z.B.: netsh int ipv6 set route fec0::/64 "LAN" publish=yes

"image"

Anschließend sollte ein ping vom Client zu Server A & B möglich sein. Alle weiteren IPv6 fähigen Clients können dann ohne zusätzliche Konfiguration über IPv6 kommunizieren.

Troubleshooting Tools

Wertvolle Helfer auf der Kommandozeile, die speziell auf IPv6 losgehen: * ping –6 <hostname>

  • tracert –6 <hostname>
  • ipconfig /release6
  • ipconfig /renew6
  • netsh int ipv6 show int
  • netsh int ipv6 show int <ID>
  • netsh int ipv6 show route

Quelle

http://www.hobmaier.net/2012/12/stateful-ipv6-autoconfiguration-mit.html

IPv6 Allgemein

Beachten Sie dazu auch die Seite IPv6 im LAN über eine exemplarische Einführung von IPv6 im internen LAN.* IPV6-Day und Testseiten

Bis IPv6 in den lokalen Netzwerken aktiv Einzug erhält, vergehen nach meiner Einschätzung noch einige Jahre. Das hindert aber Hersteller natürlich nicht daran, IPv6 schon heute in ihre Systeme einzubauen, da die Lebensdauer von Servern aber auch Druckern etc. oft mehrere Jahre beträgt. Ich kann mich noch gut daran erinnern, wie früher viele Druckerserver ausschließlich das damals dominierende Serversystem "NetWare" bedient haben und die ersten Server mit TCPIP und LPR-Unterstützung noch sehr teuer waren. Fakt ist, dass Windows Vista und Windows 2008 IPv6 per Default enthalten und gar nicht deinstalliert werden kann, da IPv4 und IP6 den gleichen Code verwenden und Exchange 2007 mit SP1 auch schon IPv6 unterstützt.

Generell "stört" IPV6 nicht und die weiter unten aufgezeigten Wege IPV6 zu deaktivieren, sind meist nicht erforderlich.

Hinderlich ist es aber, wenn wenn die verschiedenen Clients IPV6 im DNS eintragen aber die Router dazwischen IPV6 nicht vermitteln. Der Fallback dauert etwas Zeit. Dann ist es aber eine Option, einfach IPV4 vorzuziehen, so dass IPV6 weiter verfügbar ist aber IPV4 zuerst genutzt wird.

The Argument against Disabling IPv6 It is unfortunate that some organizations disable IPv6 on their computers running Windows Vista or Windows Server 2008, where it is installed and enabled by default. Many disable IPv6-based on the assumption that they are not running any applications or services that use it. Others might disable it because of a misperception that having both IPv4 and IPv6 enabled effectively doubles their DNS and Web traffic. This is not true. From Microsoft's perspective, IPv6 is a mandatory part of the Windows operating system and it is enabled and included in standard Windows service and application testing during the operating system development process. Because Windows was designed specifically with IPv6 present, Microsoft does not perform any testing to determine the effects of disabling IPv6. If IPv6 is disabled on Windows Vista, Windows Server 2008, or later versions, some components will not function. Moreover, applications that you might not think are using IPv6—such as Remote Assistance, HomeGroup, Direct Access, and Windows Mail—could be. Therefore, Microsoft recommends that you leave IPv6 enabled, even if you do not have an IPv6-enabled network, either native or tunnelled. By leaving IPv6 enabled, you do not disable IPv6-only applications and services (for example, HomeGroup in Windows 7 and Direct Access in Windows 7 and Windows Server 2008 R2 are IPv6-only) and your hosts can take advantage of IPv6-enhanced connectivity.

Quelle: http://technet.microsoft.com/en-us/magazine/2009.07.cableguy.aspx

Achtung:

Die Bedeutung von IPV6 wird zunehmen und ich erwarte, dass in kurzer Zeit alle Firmen intern zusätzlich auch IPV6 betreiben werden. Für viele neue Dienste (z.B.: Windows Direct Fileaccess) ist dies sogar erforderlich.* Issues After Disabling IPv6 on Your NIC on SBS 2008

Microsoft zu IPV6

Nach allem, was ich so vernommen habe, ist Microsoft zu 100% auf IPV6 eingestellt. Das bedeutet nicht nur, dass Intern selbst IPV6 eingesetzt wird, sondern das es klare Aussagen gibt wie z.B.

IPv6 solves numerous connectivity issues and issues that are associated with IPv4 address depletion. All Microsoft server products are required to support both IPv6 and IPv4. In addition, all server products are required to be configurable to run in dual-stack (IPv4 and IPv6) or IPv6-only modes.

http://www.microsoft.com/cec/en/us/cec-overview.aspx#data-ipv6

It’s a common misconception that UNChecking IPv6 disables the protocol when in fact all it does is introdUCE transient errors. Windows Vista and later operating systems heavily rely upon IPv6 for internal operation, which means the protocol cannot be disabled or uninstalled entirely. UNChecking IPv6 on the adapter settings only unbinds the protocol from the NIC and the OS can still attempt to send remote traffic to the NIC where it never hits the wire.

Quelle: Ask the Directory Services Team : DFS Referrals and IPv6: Outta site!] http://blogs.technet.com/askds/archive/2009/10/28/dfs-referrals-and-ipv6-outta-site.aspx

Exchange 2010 hat z.B. in der Tabelle dazu ein "G"

Datei:Bild39.png

Sondern wenn ich es richtig interpretiere, dann betreibt Microsoft seine eigenen Server alle mit IPV4 und IPV6 aktiviert. Zwar unterstützt Microsoft auch Installationen, bei denen z.B. per Regedit der IPV6 Support beschränkt wurde, aber empfohlen wird dies nicht. Einzig das Deaktivieren von IPV6 auf allen Netzwerkkarten bringt Probleme. Tun Sie dies daher besser nicht.

IPv6 Argumente

Da stellt sich die Frage, für wen IPv6 interessant ist und warum ?. Ohne nun die Whitepapers von Bücher und Wikis zu wiederholen, sind ein paar Faktoren einfach zu erläutern:* IP-Adressen (128 Bit)

  • Analog zu den ölvorkommen wird auch ein Ende der verfügbaren IP-Adressen schon länger vorhergesagt. Während man beim öl vielleicht noch das ein oder andere Vorkommen fördern kann (auch wenn das Ende da auch nicht mehr allzu fern liegt), ist die Anzahl der nutzbaren Adressen zwischen 0.0.0.0 bis 255.255.255.255 klar umschrieben und wird nicht ausreichen, wenn neben den PCs auch noch Mobiltelefone, Fernseher, Schalter und andere Geräte miteinander vernetzt werden sollen. Sicher helfen NAT und Proxies, um intern "private Adressen" zu verwenden aber IPv6 ist sicher der Weg, um eine Knappheit zu umgehen.
  • "2 hoch 128" Adressen sind rund 340.000.000.000.000.000.000.000.000.000.000.000.000 verschiedene Adressen dar. Mehr als Sandkörner auf der Erde und sicher auch dann lange genug Adressen, wenn man nur Bruchteile davon verwendet.
  • Schnelle Konfiguration
  • Aber auch für die Firma selbst kann IPv6 echte Vorteile haben. Die Konfiguration kann ohne DHCP auskommen und sehr schnell passieren (weniger als eine Sekunde) Sicher wird es noch etwas dauern, bis Staplerfahrer mit Tempo 200 durch mehrere WiFi-Zonen flitzen und dabei immer neue IP-Adressen bekommen sollen, aber sie brauchen Sie keine Gedanken mehr über IP-Adressen machen, da die MAC-Adresse mit eingeht und der PC quasi seine Adresse kennt, sobald er ein Paket im Subnetz empfangen hat, aus dem er sich die Netzwerkadresse holt.
  • Sicherheit
  • Aber auch bei der Authentifizierung und Verschlüsselung hat sich natürlich etwas getan. So sind die Funktionen von IPSec nun Bestandteil des Protokolls und kein Aufsatz mehr.
  • Performance und Leitwege
  • Auch für die Internet Router verbessert sich das Verhalten, da nun sehr viele Netzwerkblöcke gruppiert werden können und so die Routingtabellen überschaubarer werden. Hinzu kommt, dass auch die Felder eine fixe Größe haben und damit die Software effektiver arbeiten kann. Solche Probleme sind dem normalen Anwender und Admin eigentlich nicht geläufig aber bei Internet Providern aktuelles Gesprächsthema. Daher ist anzunehmen, dass die Backbones des Internets oder große Firmen doch den parallelen Weg von IPv6 gehen werden.

Das sind bei weitem nicht alle Argumente, aber soll ihnen einen ersten Eindruck geben, ob IPv6 in ihrer Umgebung erforderlich ist. Aber auch wenn Sie eigentlich kein IPv6 verwenden wollen oder ihre Router IPv6 noch nicht unterstützen, dann haben die meisten Firmen unabsichtlich schon IPv6 im Netzwerk, weil es per Default bei Windows 2008 oder Vista aktiv ist

IPv6 im Betriebssystem

Folgende IPv6 Konfigurationen sind bei Windows

Betriebssystem Installation
Windows 95/98NT4 Offiziell nicht verfügbar

Frühere Module auf http://research.microsoft.com/msripv6/

Dritthersteller z.B. www.trumpet.com.au/products.html

Windows 2000 Offiziell nicht verfügbar

Frühere Module auf http://research.microsoft.com/msripv6/

Windows XP RTM Nicht verfügbar
Windows XP SP1 Hinzufügen und Entfernen als Netzwerkprotokoll. Bezeichnung lautet aber "Microsoft IPv6 Developer Edition". Ist aber produktiv nutzbar.
Windows XP (SP2+) Hinzufügen und Entfernen als Netzwerkprotokoll.
Windows XP Embedded SP1 Unterstützt
Windows 2003 Hinzufügen und Entfernen als eigenes Netzwerkprotokoll
Windows Vista Aktiv per Default, kann nicht deinstalliert werden, da IP-Stack sowohl V4 und V6 beinhaltet
Windows 2008 Aktiv per Default, kann nicht deinstalliert werden, da IP-Stack sowohl V4 und V6 beinhaltet
Windows 2012 Aktiv per Default, kann nicht deinstalliert werden, da IP-Stack sowohl V4 und V6 beinhaltet

Die unterstützung in Windows bedeutet nur, dass die Plattform die entsprechenden APIs bereit stellt. Damit ist gesagt, dass die entsprechenden Anwendungen auch nutzen.* 929852 How to disable IPv6 or its components in Windows

IPv6 und Exchange

Exchange unterstützt erst mit Exchange 2007 SP1 auch IPv6. Alle vorherigen Versionen können IPv6 nicht nutzen, aber stören sich auch nicht daran, solange IPv4 noch parallel aktiv ist. Aber auch Exchange 2007 SP1 benötigt weiterhin IPv4,da nicht alle Funktionen IPv6-tauglich sind.

Version IPv6-Tauglichkeit
Exchange 5.5 Nein
Exchange 2000 Nein, Nutzt kein IPv6

Kann aber parallel zu IPv4 installiert sein

Exchange 2003 Nein, Nutzt kein IPv6

Kann aber parallel zu IPv4 installiert sein

Exchange 2007 Nein, Nutzt kein IPv6

Kann aber parallel zu IPv4 installiert sein

Exchange 2007 SP1 Nutzt IPv6 und IPv4

IPv4 muss zwingend aktiv sein. IPv6 ist optional. Nicht alle Dienste nutzen IPv6

Exchange 2010 Vollständig IPV6, Theoretisch sogar IPV6 Only Mode (Ausnahme uM-Rolle)

Aber es gibt Windows Dienst, auf denen Exchange aufsetzt, die noch IPV4 benötigen, so dass eine IPv6Only-Umgebung nicht möglich ist.

Exchange 2013 Vollständig IPV6.

Aktuell scheint bei Exchange 2010 nur noch Exchange Unified Messaging auf IPv4 aufzubauen. Das ist aber auch schon daher klar, weil die Anzahl der VoIP-Gateways mit IPv6 Support noch sehr gering ist.

Auch wenn Exchange 2007 SP1 mit der IPv6-tauglichkeit wirbt, so ist diese nur partiell gegeben. Auf IPv4 kann auf keinen Fall verzichtet werden und selbst im Bereich IPv6 sind nur einige Komponenten nutzbar. So unterstützt die unified Communication Rolle noch kein IPV6 und selbst der Transport erlaubt über IPv6 noch keine RBL-Listen oder SenderID-Filterung, was aber erst wichtig wird, wenn der Server auch per IPv6 installiert wird.* IPv6-Unterstützung in Exchange 2007 SP1 und SP2

IPv6 und Lync

Erst mit Lync 2013 ist der vollständige IPv6 Support verfügbar. Da allerdings noch viele VoIP Gateways und Gegenstelle (Stichwort, Edge, ICE und Kandidaten) noch nicht IPv6 komplette durchgängig unterstützen, ist ein Parallelbetrieb von IPv4 aus meiner Sicht anzuraten.* IPv6 Support in Microsoft Products and Services

IPv6 und DNS

Den ein oder anderen Support Case haben wir auch schon bezüglich IPv6 gehabt. Häufig sind es nämlich die DNS-Server, die sich nicht immer kooperativ verhalten. Es ist dabei nicht relevant, ob der DNS-Server selbst schon eine IPV6-Adresse hat oder nicht, sondern eher, wie er z.B. auf Anfragen nach "AAAA"-Adressen reagiert.

Wenn ein Exchange Server z.B. den MX-Record abfragen möchte, dann tut er dies, indem er einen entsprechenden DNS-Query erstellt. Die meisten DNS-Server liefern ihm dann nicht nur den Namen des MX-Records zurück, sondern auch gleich die IPV4-Adresse, so diese bekannt ist. So erspart man dem Client eine zweite Anfrage. Die IPV6-Adresse wird nicht zurück gegeben, damit alte Clients nicht verwirrt werden.

dnscmd /config /EnableIPv6 1

Unterstützt das Betriebssystem selbst IPV6, dann muss es nun noch mal gezielt nach dem Hostnamen und "AAAA" fragen. Ein DNS-Server sollte dann darauf mit einem leeren Eintrag antworten. Es gibt einige DNS-Server, die mit einem "Fehler" antworten, worauf das Betriebssystem dann von einem Fehler ausgeht und die Mails nicht mehr versendet.

Es gibt noch einige andere unschöne Fehlverhalten von DNS-Servern in Verbindung mit IPV6.* RFC4074 Common Misbehavior Against DNS Queries for IPv6 Addresses

IPv6 deaktivieren

Achtung

Führen Sie die folgenden Schritte nicht ohne Not durch. Normalerweise "stört" IPV6 nicht und sie sollten sich schon mal an die neuen Adressen gewöhnen, da Sie für viele neue Dienste (z.B.: Windows Direct Fileaccess) erforderlich sind.

Ich würde aus heutiger Sicht IPv6 nicht mehr deaktiveren. Es gibt mehr Probleme und mittelfristig werden Sie es doch wieder aktivieren müssen. Dann ist es besser schon heute sich langsam mit der Technik zu beschäftigen. Ich sehe schon die "großen Probleme, wenn der erste Geschäftsprozess zwingend IPv6 benötigt und dann in so einem Netzwerk IPv6 aktiviert werden muss.

Auch wenn man IPv6 nicht komplett deinstallieren kann, so stören den ein oder anderen schon die vielen virtuellen Netzwerkkarten beim "ipconfig /all" und die umleitung von einen Ping auf localhost auf "::1:". Problematisch kann dies sein, wen ein IPv6-tauglicher Dienst (wie z.. RPC Proxy) über localhost auf einen nicht IPV6-Dienst zugreifen will. Wenn Sie also auch auf Windows 2008 und Vista alle IPV6 Funktionen deaktivieren wollen, dann können Sie folgende Einträge in der Registrierung machen

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters] "DisabledComponents"=dword:0xffffffff

Regdatei zum Import

ipv6disable.reg

Firmen werden die Einstellungen sicher über eine Gruppenrichtlinie durchführen wollen.

Die Einstellung kann folgende Werte annehmen:

Wert Loopback Tunnel Native Reihenfolge
0x0 (default) enabled enabled enabled IPv6 vor IPv4
0xffffffff enabled disabled disabled IPv4 vor IPv6
0x20 enabled enabled enabled IPv4 vor IPv6
0x10 enabled enabled disabled IPv6 vor IPv4
0x01 enabled disabled enabled IPv6 vor IPv4
0x11 enabled disabled disabled IPv6 vor IPv4

Die Änderungen werden erst nach einem Neustart aktiv. Anscheinend kann das "Loopback"-Interface selbst nicht deaktiviert werden. Allerdings hilft die Reihenfolge dabei, dass man IPv4 vorziehen kann.* 929852 How to disable certain Internet Protocol version 6 (IPv6) components in Windows Vista, Windows 7 and Windows Server 2008

  • Mit entsprechenden "FixIt"-Programmen, welche die Änderungen sehr einfach vornehmen.

Weitere Links

Quelle

http://www.msxfaq.de/konzepte/ipv6.htm

IPv6-Labor / Pilot

Nicht erst seit der Einführung von Direct Access und der Verknappung von IPv4-Adressen steigt das Interesse an IPv6. Auf der Seite IPV6 habe ich generell erst den Microsoft Standpunkt zu IPv6 beschrieben. Nun möchten Sie aber vielleicht ihre ersten Schritte mit IPv6 gehen und wissen erst mal gar nicht, wo sie anfangen sollen. Diese Seite beschreibt die IPv6 Einführung bei Net at Work "intern" und die Hintergründe, wie wir IPv6 produktiv umgesetzt haben.

Aktuell fahren wir natürlich "noch" IPv4 parallel, weil es sehr viele Dienste gibt (z.B. Exchange 2010 uM, VoIP-Gateway), die noch nicht mit IPv6 umgehen können. Aber soweit möglich ist IPv6 präferiertes Protokoll.

Zudem ist es für den Einsatz von Direct Access ohne uAG erforderlich.

Wenn Sie nur ein Subnetz haben und eine IPv6-Verbindung zum Internet nutzen, dann können Sie problemlos mit der "Autokonfiguration" (APIPA) weiter arbeiten und sollten nicht durch eine vorschnelle Konfiguration ihr System vielleicht sogar verschlechtern* IPv6-Migrationsleitfaden für öffentliche Verwaltungen.

Bitte missverstehen Sie diese kurze Beschreibung nicht als universelle Anleitung für den Entwurf, die Planung und Einführung von IPv6 in ihrer Umgebung. Jede Firma hat auch bezüglich ihrer Größe besondere Anforderungen und ich bin wahrlich kein IPv6 Experte und kann mich irren. Feedback ist daher immer willkommen

Grundüberlegungen

IPv6 hat viel mehr Adressen (genau genommen 2 hoch 128), die aber so nicht komplett verwendbar sind. Um z.B. die Leitwege in Routern zu optimieren, werden sehr große Blöcke an Provider gegeben, die ihrerseits wieder gro0e Blöcke an Kunden geben können (z.B. 65536 Subnetze a 2^64 Hosts). Analog zu IPv4 gibt es auch bei IPv6 neben den "offiziellen" Adressen auch weiterhin private Adressen.

IPv4 * 10.0.0.0 - 10.255.255.255
  • 169.254.0.0 - 169.254.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255
IPv6 * fc00:0000:000:000:0000:0000:0000:0000 - fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Der Einsatz von privaten Adressen hat vor allem den Vorteil, dass man auch zukünftig recht sicher sein kann, dass man immer aktiv "umsetzen" muss, damit interne Systeme mit externen Systemen kommunizieren können. Ohne Proxy oder NAT ist keine Durchgängigkeit gegeben. So kann man die Investition in IPv6-Firewalls vielleicht noch etwas verzögern. Zudem hindert mich niemand daran, zukünftig auch offizielle Adresse parallel zu betreiben. Schon unter IPv6 hat ein Host ja mehrere IPv6 Adressen. Dann wird aber sich auch IPSec, welches quasi einfach mit "drin" ist, interessanter werden, um eine gegenseitige Authentifizierung der Endsysteme zu erzwingen Zudem müssen Sie sich dann nicht schon heute IPv6-Adressen von einem Provider besorgen.

Auf der anderen Seite wollten wir aber nicht mit ISATAP ein "virtuellen IPv6-LAN" über alle IPv4-Netze überspannen, so dass wir schon IPv6 auch durchgängig nutzen wollen.* RFC 4193: unique Local IPv6 unicast Addresses

Wahl der IPv6 Adressen

Damit wir nun die "richtigen" Adressen verwenden können, müssen wir uns erst mal mit den Adressen beschäftigen:

Wenn Sie IPv4 kennen, dann ist ihnen die Schreibweise der IP-Adressen xxx.xxx.xxx.xxx geläufig. IPv6 bedeutet nun nicht, dass die IP-Adresse plötzlich aus sechs stellen besteht. 111.222.333.444.555.666 ist keine gültige IPv6-Adresse. Die IPv6-Adressen besteht aus 8 Blöcken a 4 Hexadezimalzahlen:

XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX

Dabei gibt es mehrere Abkürzungen der Schreibeweise, die aber auf www.wikipedia.com/wiki/Ipv6 sehr gut beschrieben sind. Bei IPv4-Adressen kann man anhand der ersten Nummern in den meisten Fällen auf die Subnet-Mask schließen, also die Definition, welcher Anteil das Netzwerk angibt und welcher Teil die Adresse in diesem Netzwerk beschreibt. Abweichungen können über die Subnet-Mask (Supernetting/Subnetting) definiert sind.

Bei IPv6 ist das alles etwas einfacher, da die hinteren 64bit einfach die MAC-Adresse der Ethernet-Karte sind und der vordere Teil das Netzwerk darstellt. Natürlich gibt es auch hier im Hostbereich unicast, Multicast und Broadcast Adressen und im Netzwerkbereich besondere Netzwerke.

Interessant ist hier auch , dass DNS-Server z.B. immer eine feste Adresse haben können, die zugleich eine Multicast-Adresse ist. Ein Client muss also nicht mehr nacheinander die verschiedenen DNS-Server fragen, die bislang zudem manuell oder per DHCP zu konfigurieren waren, sondern sendet eine Anfrage an das "Netz" und alle DNS-Server im LAN bekommen die Anfrage und antworten.

Auch die 127.0.0.1 hat eine Wandlung erfahren: 

"ipv6 Ping auf Localhost"

Schauen wir uns die IPv6 Adressen mal etwas genauer an. Wesentlicher sichtbarer unterschied sind natürlich die neuen Adressen, welche aus 128 Bit bestehen, die sich in folgende Funktionen aufteilen.

+--------+-+------------+-----------+----------------------------+ | 7 bits |1| 40 bits | 16 bits | 64 bits | +--------+-+------------+-----------+----------------------------+ | Prefix |L| Global ID | Subnet ID | Interface ID | +--------+-+------------+-----------+----------------------------+

Sie sehen also zuerst, dass es zwei mal 64bit sind, von denen die letzten 64 bit quasi den Endpunkt im "lokalen Subnetz" identifiziert. Also 2^64 Rechner in einem Subnetz.

Das klingt nach Verschwendung, speziell im Internet, weil Administratoren aus der IPv4-Welt ja schon Subnetting und Supernetting nutzen. Das wird bei IPv6 eigentlich nicht mehr verwendet. Der vordere Teil beschreibt das Netzwerk, wobei die ersten 7 Bit als Präfix folgende Funktion haben.

Präfix Pattern-Schreibweise Scope   Benennung
::/128 0000:0000:0000:0000:0000:0000:0000:0000 entfällt   Ungültige bzw. fehlende Adresse Vergleichbar zu 0.0.0.0
::1/128 0000:0000:0000:0000:0000:0000:0000:0001 Loopback Loopback Vergleichbar zu 127.0.0.1
fe80:/10 fe80:0000:0000:0000:0000:0000:0000:0000

febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Lokal Unicast Link Local unicast

Vergleichbar zu 169.254.x.x

fec0:/10 fec0:0000:0000:0000:0000:0000:0000:0000

fecf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Lokal Unicast Site Local unicast (veraltet)
fc00::/7 fc00:0000:0000:0000:0000:0000:0000:0000

fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Global Unicast Unique Local unicast

Vergleichbar zu den privaten IPv4-Adressen 10.x.x.x, 172.16.x.x.x und 192.168.x.x

ff00::/8 ff00::/8   Multicast  
ff01::1

ff02::1

ff01::1

ff02::1

  Broadcast All Nodes
ff01::2

ff02::2

ff05::2

ff01::2

ff02::2

ff05::2

    All Routers
2000::/3   Global Unicast globalen unicast-Adressen, also routbare und weltweit einzigartige Adressen
2001::/32 2001:0000:0000:0000:0000:0000:0000:0000

2001:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Global Unicast Laut Wikipedia nicht genutzt (?)
2001:0000::/32   Global Unicast Teredo ?
2001:db8::/32   Global Unicast Laut Wikipedia für Beispiele (analog zur Domäne "example.com" und Dokumentationen zu nutzen
2002::/16   Global Unicast 6to4 Tunnel-Adressen.

Jedes "öffentliche" IPv4 Subnetz wird so auf IPv6 abgebildet

http://en.wikipedia.org/wiki/6to4

64:ff9b::/96 0064:ff9b:0000:0000:0000:0000:0000:0000

0064:ff9b:0000:0000:0000:0000:FFFF:FFFF

Global Unicast NAT64. Die letzten 4 Byte (FFFF:FFFF) entsprechen der umgesetzten IPv4-Adresse
::/96       IPv4 Kompatibilitätsadressen. Laut RFC4291 veraltet

Die nächsten 40 Bit kennzeichnen den Netzwerkblock, der über die 16 Subnet-ID weitere 65536 Subnetze zulässt. Laut RFC 4193 hat man die erwartete Bevölkerung im Jahr 2050 mit 9,3 Billionen angenommen und bei einer Teilung mit 40 Bits (also 2,199,023,255,552 Netze) pro Person 236 Prefixe zuteilen kann.

Die Anzahl ist sogar noch so groß, dass selbst eine zufällige Bestimmung dieser privaten Adressen es trotzdem recht unwahrscheinlich erscheinen lässt, dass die Adresse in einer anderen Firma genutzt wird. Und selbst wenn dies der Fall ist, gibt es ja immer noch weitere 16bit Subnetze, so dass eine doppelte Verwendung sehr unwahrscheinlich ist. Vorbei also, dass zwei Firmen beide ein 10er Subnetz haben und eine private Kopplung daran scheitert oder doppelt mit NAT gearbeitet werden muss.

Wenn Sie das Thema "Zufall" nicht selbst bedienen möchten, können Sie auf http://www.simpledns.com/private-ipv6.aspx einfach ein Netz ermitteln lassen.

Andere nehmen einfach eine MAC-Adresse ihres Servers (da MAC-Adressen auch eindeutig sind) und nutzen diese als Netzmaske

Ich habe auch schon die E.164-Telefonnummer (z.B. fd49:5251:0304: verwendet)

So könnte eine interne IPv6 Adresse nach folgendem Schema aufgebaut sein:

Datei:Bild28.png

FD ist das Präfix für private Adressen, die dann von der Länderkennung (49 = DE), dem Ortsnetz (5251 = Paderborn) und der Trunkleitung (304) gefolgt wird. Als "Subnet" nutzen wir einfach die gleiche Nummer, die wir auch dem VLAN auf den Switches vergeben haben.

Natürlich gibt es z.B. für Direct Access ein eigenes Subnetz, welches keinem physikalischen VLAN zugewiesen sind.* IPv6

Offizielle IP-Adressen ?

Vielleicht haben Sie sich gefragt, warum ich "FD"-Adressen verwende, also private Adressen, welche so im Internet eigentlich nie geroutet werden dürften.

Das hat erst einmal den Schutzgedanken. Würde ich offizielle Adressen verwenden und die Verbindung zwischen Internet und internem Netzwerk wäre vielleicht nicht optimal gesichert, dann wären die Systeme theoretisch erreichbar. Und es kann ja immer mal sein, dass ein update, eine KonfigurationsÄnderung oder eine

"Debug-Session" zur Fehlersuche die Filter außer Kraft setzt. Nein da bin ich konservativ und vertraue auf zusätzliche Hilfe in Form von Proxy-Servern, Relays etc., die aktiv meine Pakete über die Hürde tragen müssen und das Risiko deutlich gemindert ist.

Das zweite Problem könnte wie bei IPv4 könnte die Zuteilung einer Adresse sein. Zwar gibt es bei IPv6 deutlich mehr IP-Adressen und Subnetze aber ein wesentliches Ziel von IPv6 war die Vereinfachung der Leitwege im Internet, um die Router effektiver arbeiten zu lassen.

Und aufgrund der immensen Zahl von Subnetzen muss man nicht mehr wie am Ende der IPv4-Verfabe "einzelne Class-C"-Adressen an Provider vergeben, die dann in Leitwegen addiert werden mussten. Das sollte mit IPv6 anders gelöst werden.

Natürlich kann man auch bei IPv6 mit Subnetzen arbeiten, aber dies passiert nur noch auf den Leitwegen. In den Netzwerken selbst wird quasi immer ein 64er Subnetz angenommen.

Datei:Bild29.png

Damit hat man zwar "sehr viele" Adressen in jedem einzelnen Netzwerk (2 hoch 64 = 18.446.744.073.709.551.616) aber die gleiche Anzahl ist ja noch mal an Netzwerken da. Wobei die ersten Stellen ja für eine Kennzeichnung des Netzwerks verwendet werden , so das hier ein paar Bit abgeknabbert werden. Da ein Kunde aber ja mehrere öffentliche Subnetze haben kann (z.B. auch intern eingesetzt) hat man das hinterste Feld des Netzwerks für Kundennetzwerke vorgesehen.

Datei:Bild30.png

Das bleibt natürlich auch dem Provider überlassen. er bekommt von der Registry einen Block mit 64bit, wobei die ersten 16 Bits in der Regel eine 2001 sind.

Über den zweiten Block könnte man eine weitere unterteilung (65535) an Provider vergeben, die ihrerseits bis zu 65535 Subnetze an die Kunden geben können. Jeder Kunde hat dann weitere 65535 öffentliche Subnetze für die eigene Verwendung zur Verfügung.

Im Bezug auf das Routing müssten auf oberster Ebene eben nur max. 65535 Leitweger der Provider untereinander verwaltet werden und der Provider muss den Weg zu seinen "Kunden"-Zugängen routen, die ihrerseits mit 65535 Netzen viel Luft haben. Und wenn viele Kombinationen an der ersten Stellen sind noch gar nicht vergeben.

Sie sehen aber auch, dass für ein effektives Routing auch hier Subnetze üblicherweise vom Provider an Kunden vergeben werden. Eine "Freizügigkeit" ist natürlich auch denkbar, was aber wieder das einfache Routing aufweicht.

Daher werden die meisten Firmen doch wieder vom aktuellen Provider einen Netzbereich bekommen, der aber natürlich nur bedingt "freizügig" ist.

Um all das umgehen, sind private Adressen für intern aus meiner Sicht eine sehr gute Lösung.

IP-Adressvergabe: Autokonfiguration und DHCP

Mit dem Wissen über die verschiedenen Adressen sollte es ihnen nun einfach möglich sein, über ihre IPv4-Subnetze vergleichbar auch IPv6 Subnetze zu legen.

Wenn Sie nur genau ein Subnetz haben, dann müssen sie gar nichts machen, weil alle Clients immer auch eine "Link Local" Adresse mit dem Prefix fe80 haben und damit schon kommunizieren können.

Mit mehreren Subnetzen sollten Sie aber schon jedem Subnetz eine Adresse verpassen und diese natürlich an dem IPv6-Router konfigurieren. Der Router hat dann die besondere Funktion, regelmäßig eine sogenannte RA Messages (Router Announcement) zu versenden.

Wenn Sie in ihrem Netzwerk IPv6 mit "Unique Local IPv6 unicast Addresses" verwenden wollen, dann müssen Sie automatisch konfigurierten Clients die Adressen per DHCPv6 oder über die Auto-Konfiguration zuweisen.

Dazu muss aber ein System zumindest ein "Advertising" machen. Das entfällt natürlich bei komplett statisch vergebenen Adressen. Wie das geht, habe ich weiter unten bei "Router" beschrieben.

Die Clients "sehen" diese Meldung und mit einer generierten Hostadresse sind Sie dann schon im Netzwerken. Ein Client kann beim Hochfahren natürlich auch eine "Router Solicitation" Message senden, auf die alle Router in dem Subnetz umgehend antworten sollten.

Dann muss er nicht warten.

However, the advertisement frequency, which is usually about ten seconds or more, may seem too long for the end user. In order to redUCE this potential wait time, nodes can send Router Solicitation (RS) messages to all the routers on the link. Nodes that have not configured an address yet use the unspecified address "::". In response, the routers must answer immediately with a RA message containing a global prefix. This router solicitation corresponds to ICMPv6 messages of type RS, sent to the all-router multicast group: ff02::2. All routers on the link must join this group.

Quelle: IPv6 Autoconfiguration : http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_7-2/ipv6_autoconfig.html

Der passende Netmon filter wäre:

ICMPv6.MessageType == 0x85 oder ICMPv6.RouterSolicitation

Damit kennt der Client die vorderen 64bit und darf sich nun eine Adresse für den Hostteil aussuchen. Meist wird er aus der MAC-Adresse gebildet. Bei aktivierte "Privacy"-Option ändert sich der Wert immer mal wieder, damit eben ein Webserver den Client nicht wiedererkennen kann.

Sie können natürlich auch einen DHCPv6 Server einsetzen, um den Client zu konfigurieren. In dem Beispiel wird z.B. der DNS-Server und der DNS-Domänenname per DHCPv6 verteilt. Alles andere erfolgt per Autokonfiguration.

Wenn Sie verhindern möchten, dass andere fremde Clients als DHCPv6-Server in ihrem Netzwerk stören, dann sollten Sie Pakete auf die UDP/TCP-Ports 546 und 547 auf den Ports in die passende Richtung sperren.

Allerdings müssen Sie eventuell auf der Netzwerkkarte des Client noch Optionen anpassen, damit "Additionales DHCPv6" möglich ist* Sollen nur zusätzliche Optionen (DNS, DNS-Namensbereich) bezogen werden, so genügt diese Konfiguration:

  • netsh int ipv6 set int "LAN-Verbindung" otherstateful=enabled
  • Möchte man auch die IP-Adresse via DHCPv6 managen lassen (Default bei Windows)
  • netsh int ipv6 set int "LAN-Verbindung" managedaddress=enabled

In der Regel passen aber die Standardwerte.* IPv6-Konfigurationsmethoden

NDP - Neighbour Discovery Protocol

Nun hat ein Client also eine IP-Adresse und möchte natürlich auch seine Kollegen im gleichen Subnetz oder einen Router in ein anderes Subnetz erreichen. Auch wenn IPv6-Adressen länger sind, so ist darunter in den meisten Fällen immer noch Ethernet (oder WiFi) und dort zählen erst mal nur MAC-Adressen, von denen es drei Arten gibt* Unicast xx-xx-xx-xx-xx-xx

  • Multicast (Ungerade Adresse)
  • Broadcast FF-FF-FF-FF-FF-FF

IPv6 reduziert die Anzahl der Broadcasts extrem, da es intensiv mit Multicasts arbeitet, die dann immer nur eine Gruppen von Computern erreicht.

Wenn aber zwei Partner im gleichen Subnetz direkt miteinander kommunizieren wollen, dann nutzen sie natürlich unicast. Also muss es wie bei IPv4 eine Tabelle geben, welche IP-Adresse nun welche MAC-Adresse hat. Bei IPv4 sendet der Client einen ARP-Request als Broadcast, auf den der andere Server antwortet.

Bei IPv6 dienen dazu "Neighbor Solicitation"-Multicasts., die dann mit einem "Neighbor Advertisement" beantwortet werden. Aus den Antworten erstellt sich der Client selbst eine Liste der Nachbarn, die Sie mit "NETSH int ipv6 sh nei" abfragen können:

netsh interface ipv6 show nei Schnittstelle 10: 192.168.100.20 Internetadresse Physische Adresse Typ -------------------------------------------- ----------------- ----------- fd49:5251:304:1:192:168:100:10 00-15-5d-64-47-00 Abgelaufen fd49:5251:304:1:192:168:100:11 00-15-5d-66-4e-02 Erreichbar fd49:5251:304:1:192:168:100:30 00-15-5d-67-26-33 Abgelaufen (Router) fd49:5251:304:1:192:168:100:31 00-0a-e4-0b-c1-8c Test fe80::e8a9:5dd2:907:8c14 00-15-5d-67-26-33 Abgelaufen (Router) ff02::2 33-33-00-00-00-02 Permanent ff02::c 33-33-00-00-00-0c Permanent ff02::16 33-33-00-00-00-16 Permanent ff02::fb 33-33-00-00-00-fb Permanent ff02::1:2 33-33-00-01-00-02 Permanent ff02::1:3 33-33-00-01-00-03 Permanent

Neben den echten Hosts finden Sie hier auch jede Menge "Multicast"-Adressen, die eben IPv6 zur Selbstverwaltung nutzt.* Nachbarsuche (Neighbor Discovery, ND)

Namensauflösung mit LLMNR und DNS-Server

Hinweis:

Im gleichen Subnetz nutzt IPv6 das Protokoll LLMNR (Link-Local Multicast Name Resolution http://technet.microsoft.com/en-us/library/bb878128.aspx) und kann so fast wie NetBIOS Broadcasts nach "kurzen" Rechnernamen suchen.

Vielleicht haben Sie sich schon mal die Karteikarte der IPv6 Konfiguration angeschaut. Hier gibt es im Vergleich zu IPv4 nun definitiv keinen WINS-Reiter mehr

Datei:Bild31.pngDatei:Bild32.png

Auch für die Namensauflösung haben sich die IPv6 Planer was nettes einfallen lassen. Da es ja "genug" freie Adresse gibt und Multicast zum guten Ton gehört, hat IPv6 einfach drei IP-Adressen (Multicast) für DNS vorgesehen, die sie an ihre DNS-Server vergeben sollte. Das geht bei Windows nicht über die GUI sondern nur per NETSH.

Zuweisen zusätzlicher IPv6 Adressen für DNS-Server

netsh interface ipv6 add address <Kartenname> FEC0:0:0:FFFF::1
netsh interface ipv6 add address <Kartenname> FEC0:0:0:FFFF::2
netsh interface ipv6 add address <Kartenname> FEC0:0:0:FFFF::3

Wenn Sie bei den Clients also keine abweichenden DNS-Server eintragen oder per DHCP vergeben, dann sollten Sie einfach ihren DNS-Servers diese Adresse zusätzlich geben. Wenn in dem lokalen Netz kein DNS-Server ist, dann sollten sie auf dem Router in dem Netz einen Leitweg zu einem DNS-Server addieren, der auf diese Adressen lauscht.

Im gleichen Zuge sollten Sie die "GlobalQueryBlocklist" eventuell anpassen, damit dort ISATAP zugelassen wird. Der Windows DNS-Server blockiert Anfrage an Namen in der Liste und liefert keine Antwort zurück. So wird z.B.: verhindert, dass ich ein Client den Namen ISATAP oder WPAD per dynamischen DNS registriert und Pakete von Client damit über sich leiten kann (Man in the middle)

Dies ist aber nur erforderlich, wenn Sie ISATAP auch verwenden möchten.

Datei:Bild33.png

Bei Windows 2008 ist IPv6 für DNS scheinbar per Default aktiv. Bei Windows 2003 könnte es sein, dass Sie IPv6 Support erst noch aktivieren müssen.

REM Optional DNS-Server für IPv6 aktivieren

dnscmd /config /EnableIPv6 1

Wenn Sie schon beim DNS sind, dann können sie auch eine "Reverse Lookup"-Zone für ihr Subnetz anzulegen. Nur für den Fall dass Sie mal bei einem TraceRoute oder anderen Programmen zu einer IPv6-Adresse den Hostnamen suchen.

Integrating PTR resource record support into your DNS infrastructure is not recommended.

Quelle: http://technet.microsoft.com/en-us/library/cc738372(WS.10).aspx* IPv6-Konfigurationselemente

Gateway und Routing

Sie können bei der festen Vergabe einer IPv6-Adresse natürlich auch einen "Default Router" hinterlegen. Wenn der Client seine IPv6-Adresse aber anhand einer RA-Message selbst ermittelt, dann muss er irgendwie ja auch einen Weg in andere Subnetze kennen. Aber auch die Router untereinander wüssten gerne, welche Routen ein anderer Router kennt.

IPv6 hat dazu ein recht einfaches und pfiffiges System, indem die Router sich im "Netz" regelmäßig bekannt geben. Dies muss aber bei Windows erst aktiviert werden. Dazu sind zwei Schritte erforderlich:* Aktivierung der Funktion "Advertise" auf dem Interface

  • Die ist eine Einstellung, die sie per netsh einstellen müssen. Advertising funktioniert nur, wenn auf der Schnittstelle auch für Routing aktiviert ist

REM Ausgeben der Liste von Schnittstellen zur Verwendung

netsh int ipv6 show interface REM IPv6 Router Advertising einschalten netsh int ipv6 set int <interfacenummer> adv=e rou=e REM IPv6 Router Advertising abschalten netsh int ipv6 set int <interfacenummer> adv=d rou=d* Advertising pro Route einrichten

  • In der IPv6-Routingtabelle muss pro Route aktiviert werden, ob diese auch nach extern publiziert wird. Auch hier ist NETSH das Mittel zur Wahl
  • Datei:Bild34.png

REM Advertising für die Default Route ausschalten

netsh int ipv6 set route prefix="::/0" Interface="15" publish=no store=persistent
REM Advertising für die Default Route einschalten
netsh int ipv6 set route prefix="::/0" Interface="15" publish=yes store=persistent

ACHTUNG

Wenn Sie einen Default-Leitweg für IPv6 anlegen, dann lernen das die Clients quasi "sofort" und wenn dann noch DNS eine IPv6-Adresse liefern kann, wird der Client diesen Weg auch versuchen. Wenn also Webseiten einige Sekunden brauchen, weil der Browser erst IPv6 versucht und nach einem Timeout dann auf IPv4 zurück fällt, dann haben Sie hier die ursache.

Erst dann wird der Router auf den aktivieren Schnittstellen die freigegeben Routen auch bekannt geben. Die Funktion lässt sich am besten wieder per NETMON betrachten:

ICMPv6.MessageType == 0x86

oder
icmpv6.RouterAdvertisement

Etwas unschön bei IPv6 ist, dass die "link lokal" Adresse (Prefix:fe80) nicht einfach deaktiviert werden können und eine Router in ein entferntes Netz nicht zwingend dessen lokale unicast Adresse verwendet sondern eventuell die LinkLocal als Next Hop.

Datei:Bild35.png

Das ist dann erst mal nicht so hilfreich bei der Ermittlung des nächten Hop. Zum Glück gibt es dann aber noch Tracert:

Datei:Bild36.png

Auf Domaincontrollern ist z.B. das "Advertising" für Routen auch nicht aktiv. In einer Umgebung ohne Router muss man daher selbst Hand anlegen oder gleich auf die privaten Adressen verzichten und mit den dynamischen "fe80"-Adressen arbeiten.* Rogue IPv6 Router Advertisement Problem Statement

IPv6 auf Core

Windows 2008 gibt es auch als "Core-Version", bei der viele Komponenten des normalen Desktops entfallen sind. Das Problem dabei ist einfach, dass damit auch keine GUI zur Verwaltung von IPv6-Adressen vorhanden ist. IPv4-Adressen kann ein Admin vielleicht noch mit sconfig oder coreConfig eintragen, aber bei IPv6 ist die Kommandozeile per SCONFIG gefragt. Hier ein paar Beispiele:

REM Anzeige der aktuelen IPv6 Adressen

netsh interface ipv6 show address
REM addieren einer IPv6 Adresse
netsh interface ipv6 add address "Local Area Connection" fd49:5251:0304:1:192:168:100:10
REM Loeschen einer IPv6 Adresse
netsh interface ipv6 delete address "Local Area Connection" fd49:5251:0304:1:192:168:100:10
REM Host als Default Router publishen. Nethop ist der Server selst
netsh interface ipv6 add route ::/0 "Local Area Connection" nexthop=fd49:5251:0304:1:192:168:100:10 publish=yes
REM Routen "publishen"
netsh interface ipv6 add route fec0:0:0:1::/64 "Local Area Connection" publish=yes
netsh interface ipv6 add route fec0:0:0:2::/64 "Local Area Connection 2" publish=yes

So viel schlechter sind Sie mit einem Windows Core im Vergleich zu einem normalen Windows 2008 Server aber nicht gestellt, da über die GUI eigentlich nur IPv6-Adressen, Default IPv6-Gateway und IPV6-DNS-Server gepflegt werden können. Für alle anderen weiteren Einstellungen ist sowieso NETSH erforderlich.* The Cable Guy - September 2002 Manual Configuration for IPv6

Finales Netz

Wenn Sie all ihre VLANs dann mit entsprechenden IPv6-Subnetzadressen bedacht haben und ihre Router dann auch IPv6 richtig routen und auch die Routen im Netzwerk bekannt geben und auf Anfragen der Clients reagieren, dann sollten Sie ohne Probleme mit IPv6 arbeiten können. Vergessen Sie aber nicht die Dokumentation ihres Netzwerks

Datei:Bild37.png

Dazu gehört natürlich auch eine Übersicht der Subnetze, der Hosts mit festen IP-Adressen und alle anderen manuell gemachten Einstellungen auf ihren Systemen. Wenn Sie dann aber IPv6 durchgängig installiert haben, dann können Sie sehr viel einfacher z.B. Direct Access einsetzen.

IPv6 Server und Client

Nun haben Sie IPv6 auf Servern und Clients etabliert und könnten z.B.: mit Direct Access auch eine sehr nette VPN-Lösung etablieren. Aber noch sind Sie nicht am Ziel. Ein Client, der mit IPv6 den Server erreichen will, muss diese IP-Adresse per DNS auflösen und den Server erreichen. Aber wichtiger ist noch, das die Client Software und die Server Software auch IPv6 verstehen und anbieten. Einen unvollständigen Überblick:

Dienst Beschreibung
Active Directory (LDAP, GC, KDC Funktioniert
Windows DNS/DHCP Funktioniert
Windows Firewall Konfigurierbar
Windows RDP Ja aber beachten Sie, dass Sie die Firewall-Regel auch die IPv6-Adressen enthalten sollten, wenn Sie den Zugriff beschränken
IIS Ja, aber diverse darauf aufsetzende Anwendungen noch nicht bzw. benötigen Anpassungen. Und wer die Bindungen auf bestimmte IP-Adressen konfiguriert, muss auch die IPv6-Adresse als Bindung addieren.
Exchange 2007/2010 Ja, außer Exchange UM
Lync Nutzt IPv4
SMB Ja

Andere Dienste füge ich zu gegebener Zeit hinzu* How to enable Remote Desktop Sharing (RDS/RDP) from corporate machines to Direct Access connected machines

NAT64, DNS64, 6to4

IPv4 wird durch IPv6 sicher nach und nach abgelöst und in ein paar Jahren wird man im Internet vermutlich nur noch IPv6 sprechen. In internen Netzwerken ist der Druck vielleicht noch nicht so hoch, aber Direct Access und andere neue Techniken sprechen auch hier für IPv6. Dennoch wird es über der Koexistenzphase erforderlich sein, dass IPv4 mit IPv6 spricht. Beide Adressierungsschemata werden natürlich parallel und teilweise auch auf dem gleichen Kabel bzw. VLAN existieren.

Entsprechende Gateways werden die Pakete umsetzen müssen. Dabei gibt es beide Richtungen zu betrachten. Die Tabelle ist nur relevant, wenn es keine direkte Verbindung mit dem gleichen Protokoll gibt. Das gilt insbesondere für "Dual-Stack"-Systeme die beide Protokolle fahren können.

Da ist natürlich klar, dass die Verbindung 1:1 erfolgt, zumindest wenn die Dienste auch das jeweilige Protokoll unterstützen.

Wenn aber Client und Server nicht innerhalb der gleichen Version kommunizieren können, dann muss umgesetzt werden

Client Service Namensauflösung IP-Routing
IPv4 IPv6 Der IPv4 Client kann schlimmstenfalls nicht mit einer IPv6 Adresse (AAAA) per DNS anfangen. Dem IPv6-Service muss demnach eine IPv4-Adresse zugeordnet werden. Davon muss der IPv6-Server sogar nicht mal was wissen. Die Zieladresse kann aber nicht direkt zum Service gehen, sondern muss auf einem Zwischensystem landen. Das Zwischensystem nimmt dann die Pakete an die virtuelle IPv4-Adresse an und sendet das Paket seinerseits mit einer IPv6-Quelladresse an die IPv6 Zieladresse.

Der angesprochene Server antwortet an die IPv6-Quelladresse, die ebenfalls über das Gateway geroutet wird und dort wieder auf IPv4 umgesetzt wird.

IPv6 IPv4 DNS64

Hierbei könnte der Client bei einer DNS-Anfrage nur eine IPv4-Adresse erhalten, weil das andere System nicht per IPv6 erreichbar ist. Damit kann der Client nichts anfangen. Daher muss der IPv6-DNS-Server mit einem Gateway Hand in Hand arbeiten und als DNS-Helper die Anfrage des IPv6-Clients annehmen, selbst dann den DNS-Server fragen und die zurückgelieferte IPv4-Adresse durch eine erreichbare IPv6-Adresse ersetzen.

Diese Funktion ist z.B. im uAG enthalten

NAT64

Das Gateway bedient nun alle IPv6-Adressen, die der DNS-Service als Ersatz heraus gibt und routet die IP-Pakete an das IPv4-System weiter.

Da hier das Quellsystem aber nur eine IPv6-Adresse hat, muss das Gateway aus einem lokalen IPv4-Pool schöpfen, an die der IPv4-Server auch wieder antworten kann.

Diese Funktion ist z.B. im uAG enthalten

NETSH Reset

Eine letzte Zeile zum Schluss:

netsh int ipv6 reset

Damit können Sie alle Einstellungen den IPv6-Stack wieder auf "Default" zurück setzen. Allerdings ist nach diversen anderen Artikeln ein Neustart des Systems erforderlich, dass die Einstellungen auch zum Tragen kommen.* Migrating IPv6.exe Commands to Netsh Command

Weitere Links

Quelle

http://www.msxfaq.de/konzepte/ipv6lan.htm

Teredo bohrt IPv6-Tunnel durch Firewalls

Microsofts Tunnelmechanismus Teredo

Tunnelbroker oder den Provider wechseln? Ein IPv6-Zugang einzurichten, erscheint schwierig. Aktuelle Betriebssystem haben jedoch die Tunneltechnik Teredo an Bord, die sie ins IPv6-Netz bringt und die nur noch in Gang geklickt werden muss.

IPv6 nutzt Adressen mit 128 Bit, räumt durch seinen enormen Vorrat mit der Knappheit an Adressen bei IPv4 auf und entsorgt lästige IPv4-Netzwerktricks wie Network Address Translation [1].

Mit IPv6 [2] müsste niemand mehr den DSL-Router aufwendig eine Portweiterleitung beibringen, wenn LAN-Rechner Dateien ins Internet stellen sollen oder man auf Vaters Rechner Treiber-Probleme beheben muss. Doch der Traum von der globalen Erreichbarkeit endet jäh am eigenen DSL-Anschluss, der hierzulande in den meisten Fällen ausschließlich IPv4 spricht und zumeist bei jeder Einwahl die Adresse wechselt.

Die IPv6-freie Zone zwischen dem eigenen Rechner und Servern im Internet lässt sich jedoch mit Hilfe von Netzwerktunneln überbrücken. Vista und Windows XP seit Servicepack 1 haben einen solchen Tunnelmechanismus an Bord, den Microsoft den Namen des Schiffsbohrwurms Teredo navalis [3] verpasste und der im RFC 4380 [4] veröffentlicht wurde.

Teredo [5] nimmt dem Benutzer die Konfiguration weitgehend aus der Hand, in vielen Fällen funktioniert es ohne weitere Eingriffe. Es benötigt lediglich eine per IPv4 erreichbare Server-Adresse – den Rest der Arbeit übernimmt die Software. Andere Tunnelverfahren wie 6to4 funktionieren nur mit einer global-gültigen IPv4-Adresse und arbeiten daher nur im LAN-Router selbst, der per DSL direkt mit dem Internet verbunden ist. Einige Hersteller wie Apple und AVM haben diese Technik bereits in ihre Geräte eingebaut oder bieten diese Funktion über ein Firmware-Update [6] an.

Wie auch andere IPv6-Tunnelverfahren verpackt Teredo die IPv6-Daten in UDP [7]-Pakete und sendet sie per IPv4 an einen Server, der sowohl im IPv4- als auch im IPv6-Netz steht. Teredo tunnelt IPv6-Pakete jedoch aus einem per Network Address Translation (NAT) geschützten IPv4-Netz heraus, was sonst nur zusätzliche Client-Software wie Aiccu [8] oder Hexagos Gateway6 [9] beherrschen.

Trotz oder gar wegen aller Automatiken tauchen bei der Einrichtung und beim Betrieb von Teredo einige Probleme auf, die dem angehenden IPv6-Surfer im Wege stehen können. So argwöhnt mancher Windows-Benutzer Böses, wenn er in der Eingabeaufforderung den Teredo-Adapter sieht.

Derartige Netzwerktunnel setzen sich zudem über die Sicherheitsvorgaben des Netzwerkadministrators hinweg, da sie Daten am NAT-Router und der IPv4-Firewall [10] vorbei ins IPv4-Netzwerk schleusen können. IPv6 hebelt damit das Konzept des per NAT abgeschotteten lokalen Netze aus: IPv6-Rechner sind immer direkt erreichbar, wenn nicht die Firewall den Verbindungsaufbau blockiert.

Als IPv6-Tunnelmechanismus soll Teredo den Übergang von IPv4 auf das Nachfolgeprotokoll IPv6 vereinfachen. Ziel des Protokolls ist es ausdrücklich, Rechnern in lokalen (IPv4-)Netzen eine global gültige IPv6-Adresse zu verpassen.

Einrichtung unter Windows XP

Auf einen Windows XP seit Servicepack 2 benötigt Teredo lediglich den IPv6-Stack, der sich in den Netzwerkeinstellungen über die Eigenschaften der Netzwerkkarte oder als Administrator mit dem Netsh-Kommando netsh interface ipv6 install installieren lässt.

Anschließend sollte der Befehl netsh interface ipv6 show addresses an der Netzwerkkarte link-lokale IPv6-Adresse anzeigen, die sich am Präfix fe80:: erkennen lässt.

Datei:Bild51.png

Der Teredo-Client hat eine Verbindung aufgebaut und kann IPv6-Adressen aufrufen. Anschließend zeigt das Kommando netsh interface ipv6 show teredo unter XP (und Vista) den Teredo-Status an: Meldet der Befehl beim Punkt "Status:" den Wert "qualified", steht der Teredo-Tunnel und der Heise-IPv6-Versuchsserver www.six.heise.de sollte auf ICMPv6-Pakete antworten, die das Kommando ping -6 www.six.heise.de anfordert. Endet das Ping-Kommando mit Fehlermeldungen, kann es sein, dass der Client den Tunnel noch nicht aufgebaut hat.

Rufen Sie das Kommando einfach ein zweites Mal auf, denn das unten beschriebene Auffinden des Teredo-Relays dauert oft etwas länger. Sollte Teredo ein verwaltetes Netzwerk erkennen und sich daher deaktivieren, hilft in einigen Netzen der Teredo-Enterpriseclient, der sich über Netsh anschalten lässt:

netsh interface ipv6 set teredo enterpriseclient

Wenn auch diese Einstellung nicht hilft, steht der Rechner in einem Netz, das wahrschienlich für Teredo nicht taugt. Das Verfahren versagt nämlich in LANs, deren Routern symmetrisches NAT einsetzen oder von einer Firewall geschützt werden, die UDP-Verkehr blockiert.

Auskunft über den Status oder den aktiven Tunnel liefert wiederum der Befehl netsh interface ipv6 show teredo.

Teredo-Parameter --------------------------------------------- Typ : client Servername : default Clientaktual.-intervall : default Clientport : default Status : dormant Typ : Teredo client Netzwerk : managed NAT : none (global connectivity)

Diese Ausgabe zeigt eine "schlafenden" Teredo-Client, der mit hoher Wahrscheinlich keine Tunnel aufbauen kann, denn er erkennt den NAT-Typ nicht und deklariert das LAN als verwaltetes Netz.

Steht jedoch der Teredo-Tunnel, liefern die Kommandos ipconfig /all oder netsh interface ipv6 show address die global gültige Adresse des Teredo-Tunneladapters. Diese Adresse startet immer mit 2001:0:, die mit fe80:: beginnende (link-lokale) Adresse des Adapters gilt nur im aktuellen Netzwerksegment.

Windows XP benötigt keine weiteren Einstellungen, wenn der Rechner über Programme wie Firefox 3, Internet Explorer 7 oder den SSH [11]-Client Putty [12] Internet-Adressen per IPv6 abruft.

Vista Spezial

Microsoft aktiviert Teredo in seiner aktuellen Windows-Version Vista, schaltet es aber automatisch ab, wenn das Betriebssystem merkt, dass das lokale Netz IPv6 spricht, die Vista-Firewall abgeschaltet ist oder das LAN verwaltet wird, was Teredo an einem Active Directory [13] bemerkt.

Besitzt der Vista-Rechner nur link-lokale oder Teredo-IPv6-Adressen [14] an seinen Netzwerkadaptern, erfragt das Betriebssystem die für IPv6 nötigen AAAA-Record nur dann, wenn ein Anwendungsprogramm wie ping sie ausdrücklich anfordert. So ermittelt unter Vista der Befehl ping -6 www.six.heise.de die korrekte IPv6-Adresse zum Heise-IPv6-Testserver, ein Aufruf der Website scheitert hingegen mit einer Fehlermeldung des DNS [15]-Resolvers.

Dieses Manko behebt eine IPv6-Adresse für die Netzwerkkarte, die mit der Zifferfolge 2001: beginnt und den Präfix /48 besitzt. In unseren Versuchen funktionierten beispielsweise die Adressen aus dem für Dokumentationszwecke reservierten IPv6-Bereich [16] 2001:db8, die sich über die Eigenschaften der Netzwerkverbindung in der Systemsteuerung oder per Netsh setzen lassen.

netsh interface ipv6 set address "LAN-Verbindung" 2001:db8::1/48

Besitzt der Rechner mehrere Netzwerkkarten, müssen Sie eventuell die Zeichenfolge "LAN-Verbindung" anpassen: Der Aufruf von ipconfig /all oder route -6 print gibt unter Windows die Namen aller Netzwerkadapter aus.

Dabei zeigt es auch die Nummer des Adapters, die für den letzten Schritt ist – das Setzen einer Route. Hat das Teredo-Interface beispielsweise die Nummer 9, setzt der Befehl

netsh interface ipv6 add route ::/0 9

die nötige Route. Weitere Details zum Routing und zu Teredo finden sich in dem Microsoft-Dokument IPv6 Transsition Technologies [17].

Teredo mit Linux, BSD und OS X

Dank der Veröffentlichung des Teredo-Protokolls im RFC 4380 [18] und der Arbeit des Linux-Kernelentwicklers Rémi Denis-Courmont steht mitterweile die quelloffene Teredo-Implementierung Miredo bereit, die unter Linux und BSD-Unixen läuft und sich als fertiges Paket beispielsweise in den Distributionen Debian, Opensuse und FreeBSD findet.

Für Mac OS X steht unter www.deepdarc.com/miredo-osx [19] ein fertiges Softwarepaket einer Miredo-Testversion bereit, die allerdings bereits gut zwei Jahre alt ist. In einem Subversion-Repository [20] finden sich die passenden Quelltexte.

Datei:Bild24.png

Unter Linux verbindet das Paket Miredo den Rechner per Teredo-Tunnel mit dem IPv6-Internet Unter Debian oder Ubuntu startet Miredo nach der Installtion als Dienst. Der Eintrag "START_MIREDO" in der Datei /etc/default/miredo steuert, ob Miredo während des Systemstart den Tunnel aufbaut.

Details zum Verbindungsaufbau hinterlegt Miredo in der Datei /etc/miredo/miredo.conf:

# Please refer to the miredo.conf(5) man page for details. InterfaceName teredo # Pick a Teredo server: # ServerAddress teredo.ipv6.microsoft.com ServerAddress teredo-debian.remlab.net

ServerAddress legt fest, welchen Teredo-Server der Client anfragen soll – im Beispiel den Teredo-Server des Miredo-Entwicklers. Wie auch der Microsoft-Teredo-Server verrichtet dieser ohne zusätzliche Anmeldung seine Dienste. Mit InterfaceName vergibt die Software den Namen für das Tunnel-Interface. Weitere Einstellungen benötigt der Tunnel nicht und auch die Namensauflösung funktioniert unter Linux klaglos.

Letzte Ausfahrt

Microsoft bezeichnet seine Tunneltechnik selbst als letzten Ausweg: Sie soll nur dort zum Einsatz kommen, wo andere IPv6-Verbindungswege verschlossen sind. Teredo-Verbindungen verursachen im Netzwerk viel Aufwand, sind vergleichsweise uneffektiv und nicht besonders stabil. Der hohe Aufwand kommt besonders dadurch zustande, das Teredo Tunnel-Verbindungen durch NAT-Router bohrt, deren Eigenheiten es beim Tunnelaufbau ermittelt.

Im Allgemeinen unterscheidet man die vier NAT-Varianten [21] Full Cone, Restricted Cone, Port Restricted Cone und Symmetric, die sich allerdings miteinander mischen lassen. Teredo kann mit allen NAT-Arten umgehen. Teredo-Clients unter Windows XP verstehen sich jedoch nicht mit jedem symmetrischen NAT. Für neuere Windows-Versionen steht eine Teredo-Erweiterung [22] bereit, die dieses Problem für viele symmetrische NAT-Router beseitigt. Seit Version 1.1.0 beherrscht die Open-Source-Variante Miredo grundsätzlich diese NAT-Technik.

Teredo nutzt eine eigenes Adressformat: Die ersten 64 Bit einer Teredo-Adresse enthalten den Präfix 2001:0 und die hexadezimale Form der IPv4-Adresse der Teredo-Server. Es folgt ein 16-Bit-Block für Flags, dessen erste vier Bit den NAT-Typ kennzeichnen (Cone-Flag) und der eine 12-Bit lange Zufallszahl enthält, die zur Verbindungssicherung dient.

In den folgenden 16 Bit steht die externe Port-Nummer des NAT-Routers. Die letzten 32 Bit enthalten die externe Adresse des NAT-Routers. Damit ein Router den Port und die Routeradresse nicht versehentlich umschreibt, invertiert Teredo die Angaben zum Router-Port und zur Router-Adresse per XOR-Verfahren.

Das Protokoll baut den IPv6-Tunnel über ein mehrstufiges Verfahren auf: Der Client kontaktiert im ersten Schritt über den UDP-Port 3544 einen Rechner im IPv4-Internet, den Teredo-Server. Die Adresse des Teredo-Servers ist beim Windows-Client mit teredo.ipv6.microsoft.com vorbelegt. Mittels Netsh lässt sie sich jedoch anpassen:

netsh interface ipv6 set teredo client teredo.example.com

Dieser Befehl setzt noch weitere Teredo-Parameter, eine Liste gibt das Kommando netsh interface ipv6 set teredo help aus.

Datei:Bild26.png

Teredo nutzt für den Tunnelaufbau einen Internet-Server, der beim Ausmessen der Verbindung und des NAT-Routers hilft. Der eigentliche IPv6-Verkehr läuft anschließend über einen weiteren Rechner, das Teredo-Relay. Beim ersten Aufruf versucht Teredo herauszufinden, welchen NAT-Typ das lokale Netz nutzt, wie die externe Adresse des Routers lautet und welchen Port es für den Transport der eigentlichen IPv6-Daten nutzen kann.

Dazu sendet der Client eine Router-Solication-Nachricht (RS), deren Cone-Flag besetzt ist. Der Teredo-Server antwortet über eine zweite IPv4-Adresse mit einer Router-Advertisment-Nachricht. Erhält der Client diese Nachricht, arbeitet der Teredo-Client in einem LAN, das per Cone-NAT mit dem Internet verbunden ist.

Kommt nichts zurück, sendet der Client ein zweite RS-Nachricht ohne gesetztes Cone-Flag, die der Server von seiner primären, vom Client als Zieladresse benutzten IP-Adresse beantwortet. Abschließend überprüfen Client und Server, ob das LAN des Clients symmetriches NAT nutzt.

Haben Client und Server diese Parameter ermittelt, sendet der Client in regelmäßigen Abständen Pakete an den Server, sodass der NAT-Router die Einträge in seiner NAT-Tabelle nicht löscht.

Datei:Bild38.png

Sitzt der Client in einem LAN mit Port-restricted NAT, muss der Router erst die Adresse des Relay lernen. Will der Teredo-Client eine IPv6-Rechner ansprechen, erfragt er über den Server für jede IPv6-Gegenstelle einen Relay, der den eigentlichen IPv-Verkehr an den Client transportiert.

Die jeweils passende Relay-Adresse ermittelt der Client über ICMPv6-Anfragen: Er schickt eine ICMP [23]-Echo-Nachricht an die IPv6-Gegenstelle, die er in UDP-Pakete verpackt und an den Teredo-Server sendet.

Der Server packt die Nachricht aus und leitet sie per IPv6 an die Gegenstelle weiter. Der IPv6-Zielrechner antwortet mit einer Echo-Reply-Nachricht, die durch das IPv6-Routing zum nächstliegenden Relay gelangt, denn dieses zeigt sich gegenüber seinen Nachbarn für das Routing zu Teredo-Adressen zuständig. Der Relay verpackt die IPv6-Nachricht in IPv4-UDP-Paket und sendet sie dank der in der Teredo-Adresse gespeichertern Client-Adresse dem Client direkt zu.

Benutzt der Router des Client-LANs eine Port Restricted NAT, ist an dieser Stelle ein zusätzlicher Schritt (Bubble-to-open-Procedure) notwendig:

Der NAT-Router kennt die Adresse des Relay bislang nicht. Ihm fehlt ein entsprechender Eintrag in seiner NAT-Tabelle und somit blockiert er dessen Netzwerkpakete.

Der Relay sendet daher ein IPv6-Paket über den Teredo-Server an den Client, der nun Kontakt mit dem Relay aufnimmt und damit einen Eintrag in der NAT-Tabelle des Routers erzeugt. Anschließend läuft sämtlicher IPv6-Verkehr für dieses Ziel über das ermittelte Relay.

Vor die Wand

Rechner mit aktiven Teredo-Tunneln sind wie alle IPv6-Rechner weltweit erreichbar. IPv6 benötigt schlicht keine Netwerk Address Translation, die im IPv4-Netzwerken eine gewissen Schutz für Angriffen bietet. Teredo umgeht jedoch diese vermeintliche Schutzfunktion [24].

Allerdings bringt beispielweise ein Windows XP von Hause aus keine IPv6-tauglichen Server-Dienste mit und ist von dieser Seite relativ sicher vor Angreifern. Vistas Firewall berücksichtigt auch den eingehenden IPv6-Verkehr, den sie in der Standardeinstellung blockiert.

Läuft die Vista-Firewall nicht, stoppt das Betriebssystem automatisch den Teredo-Tunnel. Betriebssysteme wie Linux benötigen hingegen einen zusätzlichen Paketfilter (ip6tables [25]), der Serverdienste auf dem Rechner schützt oder den Verkehr ins LAN kontrolliert.

Teredo lässt sich unter Windows zudem mit dem Befehl netsh interface ipv6 set teredo disable deaktivieren. Vistas grundsätzliche IPv6-Tauglichkeit bleibt dabei erhalten. Misstrauische Naturen können jedoch IPv6 und damit auch Teredo über die Eigenschaften der Netzwerkkarte vollständig deaktivieren.

Teredo sperren in der Fritz!Box

Teredo auf dem Router zu sperren, ist ganz einfach: Man blockiert den Datenverkehr auf UDP-Port 3544 und unterbindet so die Kommunikation mit dem Teredo-Server. Bei professionellen Firewalls ist das kein Problem, und auch die meisten Heim-Router bieten einen Paketfilter, in dem sich der UDP-Port blockieren lässt. Nicht so die Fritz!Box, die zwar einen Paketfilter enthält, dessen Konfiguration aber nicht über die Web-Oberfläche im Browser anbietet.

Daher ist etwas Fummelei per telnet [26] nötig. Wer sich mit Kommandozeilen und dem Editor vi [27] gar nicht auskennt, sollte unbedingt die Finger davon lassen. Um bei einem Fehler die funktionierende Konfiguration wiederherstellen zu können, sichert man sie zuerst über das Web-Interface in eine Datei (Einstellungen -> System -> Einstellungen sichern).

Dann schaltet man den Telnetserver frei, indem man auf einem an der Fritzbox angeschlossenen Telefon die magische Kombination #96*7* wählt. Die Box quittiert das bei Erfolg mit einem einsekündigen Dauertuten. Auf den freigeschalteten Server greift man dann mit dem Befehl telnet fritz.box zu. Unter Windows Vista muss dazu das telnet-Programm nachinstalliert [28] werden, die anderen Systeme bringen es ohne Weiteres mit.

Auf der Kommanozeile lädt der Befehl nvi /var/flash/ar7.cgf die zentrale Konfigurationsdatei in den vi-ähnlichen Editor. Dort sucht man nach dem Wort "dslifaces". In diesem Bereich gibt es nach ungefähr 30 Zeilen zwei Einträge "accesslist", einen unter "lowinput" und einen unter "highoutput". In beide fügt man als vorletzte Zeile "reject udp any any eq 3544", ein.

Das bedeutet, dass Pakete verworfen werden, und zwar UDP-Pakete von allen Adressen an alle Adressen sofern der Zeilport gleich 3544 ist. Der Sender erhält per ICMP eine Fehlermeldung. Nach dem Speichern der Datei gilt es nun, mit dem Befehl ar7cfgchanged die Konfiguration neu zu laden. Einzelne Meldungen wie "websrv: not found" oder "checkempty: No such file" sind dabei normal. Eine wesentlich längere Liste deutet jedoch auf einen Fehler beim Editieren der Datei hin.

Nun sollte ein Check des Teredo-Status auf einem PC im LAN (netsh interface ipv6 show teredo) zur Meldung

Status : offline Fehler : Sekundäre Serveradresse ist nicht erreichbar

führen. Wenn alles geklappt hat, schaltet man den Telnet-Server mit der Wahl #96*8* wieder ab.

IPv6 Router Advertisements on Windows

From my previous post you know that IPv6 hosts can autoconfigure themselves if they get the network prefix from a router (or server running this service). Windows Server (and Clients) can send Router Advertisement messages without any additional software. This functionality is in-built and can be configure via the netsh command.

Here’s what I did on the Server Core 2012 which functions as the “router” for my test lab.# Visit https://www.sixxs.net/tools/grh/ula/ and get a ULA prefix for myself. This is a /48 block – meaning I have to fill in the remaining 16 bits of subnet ID to make this a /64 block. I can have 2^16 subnets. I got the fdcc:7c4e:3651::/48 prefix, I’ll just use subnet 1 for now, so my network prefix will be fdcc:7c4e:3651:1::/64.

  1. I assigned an IPv6 address “fdcc:7c4e:3651:1::254”, netmask 64, to the server.
  2. Next, I issued the following command on the server to enable router advertisements:
    netsh interface ipv6 set interface "Local Area Connection" advertise=enabled

netsh interface ipv6 set interface "Local Area Connection" advertise=enabledThis enables Router Advertisements. But this doesn’t advertise any prefixes.

Below is a Wireshark capture on that interface from a client:

"RA1"

Notice that Router Advertisement messages are being sent. The messages specify two options – MTU and the link-layer address of the router.

Here is the result of ipconfig for that interface on the client:

"ipconfig1"

The only IPv6 address is the link local address. No gateway is set either.

  1. To specify prefixes the publish, I issued the following command on the server:
    netsh interface ipv6 set route fdcc:7c4e:3651:1:::/64 "Local Area Connection" publish=yes

netsh interface ipv6 set route fdcc:7c4e:3651:1:::/64 "Local Area Connection" publish=yesIn case that command gives an error – maybe you don’t have that route entry already – replace it with the following:

netsh interface ipv6 add route fdcc:7c4e:3651:1:::/64 "Local Area Connection" publish=yesnetsh interface ipv6 add route fdcc:7c4e:3651:1:::/64 "Local Area Connection" publish=yesThis tells the server to publish this prefix on the Router Advertisement messages on that interface. Without publish=yes the command tells the server that the fdcc:7c4e:3651:1:::/64 network is on the “Local Area Connection” interface for routing purposes – that the prefix for devices on this interface is (or will be) fdcc:7c4e:3651:1:::/64. The publish=yes bit tells the server to publish this prefix information in Router Advertisement messages.

Below is a Wireshark capture once prefix publishing is enabled:

"RA2"

Notice the prefix information is now published.

And now ipconfig too shows the automatically generated addresses:

  1. "ipconfig2"
  2. So far the server isn’t functioning as a router (i.e. it is not forwarding packets). If we want the server to function as a router that can be enabled:
    netsh interface ipv6 set interface "Local Area Connection" forwarding=enabled

netsh interface ipv6 set interface "Local Area Connection" forwarding=enabled# Once the server functions as a router we can also tell it to include this information in the Routing Advertisement messages. This way clients can automatically pick up the router as a default gateway!
netsh interface ipv6 set interface "Local Area Connection" advertisedefaultroute=enabled

netsh interface ipv6 set interface "Local Area Connection" advertisedefaultroute=enabledChecking the Wireshark capture will now show a new option in the Router Advertisement messages:

"RA3"

And ipconfig will show a default gateway is automatically set:

"ipconfig3"

Ain’t that cool!

  1. To view the current configuration of that interface on the server, the following command can be used:
    netsh interface ipv6 show interface "Local Area Connection"

netsh interface ipv6 show interface "Local Area Connection"# The neat thing with Router Advertisement messages is that they can work in conjunction with DHCPv6. The Router Advertisement messages can tell clients to also contact DHCP for an IPv6 address and additional options, or contact DHCP not for an IPv6 address but only for additional options.
For the former do this:
netsh interface ipv6 set interface "Local Area Connection" managedaddress=enabled

netsh interface ipv6 set interface "Local Area Connection" managedaddress=enabledFor the latter do this:

netsh interface ipv6 set interface "Local Area Connection" otherstateful=enablednetsh interface ipv6 set interface "Local Area Connection" otherstateful=enabledHere’s the Wireshark output after I enabled managed address. The output is similar to the previous ones except for the flags (it’s 0x80 now in contrast to 0x0 before). So I have expanded it.

"RA4"

The way clients will behave now is thus:## If the client’s interface is set to Managed Address as disabled (i.e it is not looking for DHCPv6 address configuration), since the Router Advertisement now sets it to enabled it will start looking for DHCPv6 address configuration.

    1. If the client’s interface is set to Managed Address as enabled, since the Router Advertisement too sets it as enabled it will behave as before.

In the opposite scenario – suppose Router Advertisement messages were setting Managed Address as disabled (which is the default) clients ignore this and continue working based on what their own Managed Address configuration is.If you don’t want Windows clients to listen for Router Advertisements, do the following on the client:

netsh interface ipv6 set interface "Local Area Connection" routerdiscovery=disabled

netsh interface ipv6 set interface "Local Area Connection" routerdiscovery=disabled

As with the server, to view the interface configuration on the client the following works:

netsh interface ipv6 show interface "Local Area Connection"

netsh interface ipv6 show interface "Local Area Connection"

Lastly, suppose you have enabled prefix publishing on the server, and Wireshark shows the information is being sent but clients aren’t picking it up, the following might be helpful. By default the site prefix is set to /64 but if your network prefix is (say) /48 either by mistake or intentionally, clients will ignore this network prefix.

Correct the prefix setting then, or the network prefix mask if it’s a typo. The first time I played with this I had forgotten to change the mask from /48 to /64 once I added the subnet ID bits, so the server was advertising it with /48 and clients were ignoring it.

Netsh-Befehle für IPv6

Mit den Netsh-Befehlen für Schnittstellen-IPv6 steht Ihnen ein Befehlszeilenprogramm zur Verfügung, mit dessen Hilfe Sie IPv6-Schnittstellen, -Adressen, -Caches und -Routen abfragen und konfigurieren können.

Darüber hinaus verfügt der netsh-Kontext für Schnittstellen-IPv6 über einen Unterkontext für IPv6-zu-IPv4. Sie können die Befehle im netsh interface IPv6 6to4-Kontext verwenden, um die Konfiguration des IPv6-zu-IPv4-Dienstes auf einem IPv6-zu-IPv4-Host oder einem IPv6-zu-IPv4-Router zu konfigurieren oder anzuzeigen.

Sie können diese Befehle an der Eingabeaufforderung der Windows Server™ 2003-Produktfamilie oder an der Eingabeaufforderung für den netsh interface IPv6-Kontext ausführen. Damit diese Befehle an der Eingabeaufforderung der Windows Server™ 2003-Produktfamilie ausgeführt werden können, müssen Sie netsh interface ipv6 eingeben, bevor Sie Befehle und Parameter wie in der unten beschriebenen Syntax eingeben. Die Netsh-Kontextbefehle unter Betriebssystemen der Windows Server™ 2003-Produktfamilie können eine andere Funktionalität aufweisen als unter Windows 2000.

Um an der Eingabeaufforderung Hilfe zu einem Befehl anzuzeigen, geben Sie Befehlsname/? ein, wobei Befehlsname dem Namen des Befehls entspricht.

Weitere Informationen zu netsh finden Sie unter Netsh (Übersicht) und Eingeben eines "netsh"-Kontexts.

IPv6-zu-IPv4

Gibt an, dass der IPv6-zu-IPv4-Kontext von netsh interface IPv6 verwendet wird.

Syntax

IPv6-zu-IPv4

add

add 6over4tunnel

Erstellt eine IPv6-über-IPv4-Schnittstelle unter Verwendung der angegebenen IPv4-Adresse.

Syntax

add 6over4tunnel [[interface=]Zeichenfolge] [localaddress=]IPv4-Adresse [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[ localaddress=]IPv4-Adresse

Erforderlich. Gibt die IPv4-Adresse an, die gekapselt wird.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird unter Verwendung der IPv4-Adresse 10.1.1.1 eine IPv6-über-IPv4-Schnittstelle an der Schnittstelle Privat erstellt.

add 6over4tunnel "Privat" 10.1.1.1

add address

Fügt eine IPv6-Adresse zu einer angegebenen Schnittstelle hinzu. Zeitwerte können in Tagen (d), Stunden (h), Minuten (m) und Sekunden (s) ausgedrückt werden. So steht beispielsweise die Angabe 2d für zwei Tage.

Syntax

add address [[interface=]Zeichenfolge] [address=]IPv6-Adresse [[type=]{unicast | anycast}] [[validlifetime=]{GanzeZahl | infinite}] [[preferredlifetime=]{GanzeZahl | infinite}] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[ address=] IPv6-Adresse

Erforderlich. Gibt die IPv6-Adresse an, die hinzugefügt werden soll.

[[ type=]{unicast | anycast}]

Gibt an, ob eine Unicastadresse (unicast) oder eine Anycastadresse (anycast) hinzugefügt wird. Die Standardeinstellung ist unicast.

[[ validlifetime=]{GanzeZahl | infinite}]

Gibt an, wie lange die Adresse gültig ist. Der Standardwert ist infinite.

[[ preferredlifetime=]{GanzeZahl | infinite}]

Gibt an, wie lange die Adresse bevorzugt wird. Der Standardwert ist infinite.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird die IPv6-Adresse FE80::2 zur Schnittstelle Privat hinzugefügt.

add address "Privat" FE80::2

add dns

Fügt die IP-Adresse eines neuen DNS-Servers zur statisch konfigurierten Liste von DNS-Servern für die angegebene Schnittstelle hinzu.

Syntax

add dns [interface=]Zeichenfolge [address=]IP-Adresse [[index=]GanzeZahl]

Parameter

[ interface=]Zeichenfolge

Erforderlich. Gibt den Namen der Schnittstelle an, zu deren Liste mit DNS-Server-IP-Adressen eine IP-Adresse für einen DNS-Server hinzugefügt wird.

[ address=]IP-Adresse

Erforderlich. Gibt die IPv6-Adresse des DNS-Servers an, der zur Liste hinzugefügt werden soll.

[[ index=]GanzeZahl]

Gibt die Position innerhalb der statisch konfigurierten Liste an, an der die mit address angegebene IP-Adresse des DNS-Servers eingefügt werden soll. Standardmäßig wird die IP-Adresse des DNS-Servers am Ende der Liste hinzugefügt.

Hinweise

Falls ein Index angegeben wurde, wird der DNS-Server an der entsprechenden Position zur Liste hinzugefügt.

Beispiele

Im ersten Beispielbefehl wird ein DNS-Server mit der IPv6-Adresse FEC0:0:0:FFFF::1 zur Liste der DNS-Server-IP-Adressen für die Schnittstelle LAN-Verbindung hinzugefügt. Im zweiten Beispiel wird ein DNS-Server mit der IPv6-Adresse FEC0:0:0:FFFF::2 bei Position 2 als zweiter Server zur Liste der Server für die Schnittstelle LAN-Verbindung hinzugefügt.

add dns "LAN-Verbindung" FEC0:0:0:FFFF::1 add dns "LAN-Verbindung" FEC0:0:0:FFFF::2 index=2

add prefixpolicy

Fügt eine Richtlinie für eine Quell- und Zieladressauswahl für ein angegebenes Präfix hinzu.

Syntax

add prefixpolicy [prefix=]IPv6-Adresse/GanzeZahl[precedence=]GanzeZahl [label=]GanzeZahl[[store=]{active | persistent}]

Parameter

[ prefix=]IPv6-Adresse/GanzeZahl

Erforderlich. Gibt das Präfix an, für das eine Richtlinie in der Richtlinientabelle hinzugefügt wird. GanzeZahl gibt die Präfixlänge an.

[ precedence=]GanzeZahl

Erforderlich. Gibt den Reihenfolgewert an, der zum Sortieren von Zieladressen in der Richtlinientabelle verwendet wird.

[ label=]GanzeZahl

Erforderlich. Gibt den Bezeichnungswert an, der Richtlinien zulässt, die die Verwendung eines bestimmten Quelladresspräfixes zusammen mit einem Zieladresspräfix erfordern.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird eine Präfixrichtlinie für Präfix ::/96 mit dem Reihenfolgewert 3 und dem Bezeichnungswert 4 hinzugefügt.

add prefixpolicy ::/96 3 4

add route

Fügt eine Route für ein angegebenes Präfix hinzu. Zeitwerte können in Tagen (d), Stunden (h), Minuten (m) und Sekunden (s) ausgedrückt werden. So steht beispielsweise die Angabe 2d für zwei Tage.

Syntax

add route [prefix=]IPv6-Adresse/GanzeZahl [[interface=]Zeichenfolge] [[nexthop=]IPv6-Adresse] [[siteprefixlength=]GanzeZahl] [[metric=]GanzeZahl] [[publish=]{no | yes | immortal}] [[validlifetime=]{GanzeZahl | infinite}] [[preferredlifetime=]{GanzeZahl | infinite}] [[store=]{active | persistent}]

Parameter

[ prefix=] IPv6-Adresse/GanzeZahl

Erforderlich. Gibt das Präfix an, für das eine Route hinzugefügt wird. GanzeZahl gibt die Präfixlänge an.

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ nexthop=]IPv6-Adresse]

Gibt die Gatewayadresse an, falls das Präfix kein Verbindungspräfix ist.

[[ siteprefixlength=]GanzeZahl]

Gibt die Präfixlänge für den ganzen Standort an, falls das Präfix kein Verbindungspräfix ist.

[[ metric=]GanzeZahl]

Gibt die Routenmetrik an.

[[ publish=]{no | yes | immortal}]

Gibt an, ob Routen in Routenankündigungen angekündigt (yes), mit unbegrenzter Gültigkeitsdauer angekündigt (immortal) oder gar nicht angekündigt (no) werden. Die Standardeinstellung ist no.

[[ validlifetime=]{GanzeZahl | infinite}]

Gibt die Gültigkeitsdauer für eine Route an. Der Standardwert ist infinite.

[[ preferredlifetime=]{GanzeZahl | infinite}]

Gibt an, wie lange die Route bevorzugt wird. Der Standardwert ist infinite.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird eine Route an der Schnittstelle Internet mit dem Präfix 3FFE:: und einer Präfixlänge von 16 Bit (3FFE::/16) hinzugefügt. Der Wert für nexthop ist FE80::1.

add route 3FFE::/16 "Internet" FE80::1

add v6v4tunnel

Erstellt einen IPv6-in-IPv4-Tunnel.

Syntax

add v6v4tunnel [[interface=]Zeichenfolge] [localaddress=]IPv4-Adresse [remoteaddress=]IPv4-Adresse [[neighbordiscovery=]{enabled | disabled}] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[ localaddress=]IPv4-Adresse

Erforderlich. Gibt die IPv4-Adresse des lokalen Tunnelendpunktes an.

[ remoteaddress=]IPv4-Adresse

Erforderlich. Gibt die IPv4-Adresse des Remotetunnelendpunktes an.

[[ neighbordiscovery=]{enabled | disabled}]

Gibt an, ob die Nachbarsuche an der Schnittstelle aktiviert (enabled) oder deaktiviert (disabled) ist. Die Standardeinstellung ist disabled.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird an der Schnittstelle Privat ein IPv6-in-IPv4-Tunnel zwischen der lokalen Adresse 10.0.0.1 und der Remoteadresse 192.168.1.1 erstellt.

add v6v4tunnel "Privat" 10.0.0.1 192.168.1.1

delete

delete address

Syntax

delete address [[interface=]Zeichenfolge] [address=]IPv6-Adresse [[store=]{active | persistent}]

Löscht eine IPv6-Adresse an einer angegebenen Schnittstelle.

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[ address=] IPv6-Adresse

Erforderlich. Gibt die zu löschende IPv6-Adresse an.

[[ store=]{active | persistent}]

Gibt an, ob die Löschung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird die Adresse FE80::2 von der Schnittstelle Privat gelöscht.

delete address "Privat" FE80::2

delete destinationcache

Leert den Zielcache. Wenn eine Schnittstelle angegeben wird, wird nur der Cache an dieser Schnittstelle geleert. Wenn zudem eine Adresse angegeben wird, wird nur dieser Zielcacheeintrag gelöscht.

Syntax

delete destinationcache [[interface=]Zeichenfolge] [[address=]IPv6-Adresse]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ address=]IPv6-Adresse]

Gibt die Adresse des Ziels an.

Hinweise

Wird kein Parameter angegeben, werden alle Einträge in den Zielcaches aller Schnittstellen gelöscht.

Beispiele

Durch diesen Beispielbefehl wird der Zielcache für die Schnittstelle Privat gelöscht.

delete destinationcache "Privat"

delete dns

Löscht für eine bestimmte Schnittstelle die statisch konfigurierten IPv6-Adressen für DNS-Server.

Syntax

delete dns [interface=]Zeichenfolge [[address=]{IPv6-Adresse | all}]

Parameter

[ interface=]Zeichenfolge

Erforderlich. Gibt den Namen der Schnittstelle an, aus deren Liste der DNS-Server ein DNS-Server entfernt werden soll.

[[ address=]{IPv6-Adresse | all}]

Gibt die IPv6-Adresse des DNS-Servers an, die gelöscht werden soll. Wenn all angegeben wird, werden alle IPv6-Adressen für DNS-Server in der Liste für die Schnittstelle gelöscht.

Beispiele

Im ersten Beispielbefehl wird die IPv6-Adresse FEC0:0:0:FFFF::1 eines DNS-Servers aus der Liste der Adressen für die Verbindung LAN-Verbindung gelöscht. Im zweiten Beispielbefehl werden alle IPv6-Adressen für DNS-Server aus der Liste für die Verbindung LAN-Verbindung gelöscht.

delete dns "LAN-Verbindung" FEC0:0:0:FFFF::1 delete dns "LAN-Verbindung" all

delete interface

Löscht eine angegebene Schnittstelle vom IPv6-Stapel.

Syntax

delete interface [[interface=]Zeichenfolge] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ store=]{active | persistent}]

Gibt an, ob die Löschung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird die Schnittstelle Privat gelöscht.

delete interface "Privat"

delete neighbors

Gibt an, dass alle Einträge im Nachbarcache gelöscht werden. Wenn eine Schnittstelle angegeben wird, wird nur der Cache an dieser Schnittstelle geleert. Wenn zudem eine Adresse angegeben wird, wird nur dieser Nachbarcacheeintrag gelöscht.

Syntax

delete neighbors [[interface=]Zeichenfolge] [[address=]IPv6-Adresse]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ address=]IPv6-Adresse]

Gibt die Adresse des Nachbarn an.

Beispiele

Durch diesen Beispielbefehl werden alle Einträge aus dem Nachbarcache für die Schnittstelle Privat entfernt.

delete neighbors "Privat"

delete prefixpolicy

Löscht die Richtlinie für die Quell- und Zieladressauswahl für ein angegebenes Präfix.

Syntax

delete prefixpolicy [prefix=]IPv6-Adresse/GanzeZahl[[store=]{active | persistent}]

Parameter

[ prefix=] IPv6-Adresse/GanzeZahl

Erforderlich. Gibt das Präfix (IPv6-Adresse) und die Länge des Präfixes (GanzeZahl) an, das aus der Richtlinientabelle gelöscht werden soll.

[[ store=]{active | persistent}]

Gibt an, ob die Löschung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird das Präfix ::/96 aus der Richtlinientabelle gelöscht.

delete prefixpolicy ::/96

delete route

Löscht eine IPv6-Route.

Syntax

delete route [prefix=]IPv6-Adresse/GanzeZahl [[interface=]Zeichenfolge] [[nexthop=]IPv6-Adresse] [[store=]{active | persistent}]

Parameter

[ prefix=] IPv6-Adresse/GanzeZahl

Erforderlich. Gibt das Präfix der Route an, die gelöscht werden soll.

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ nexthop=]IPv6-Adresse]

Gibt die Gatewayadresse an, wenn das Präfix nicht auf Verbindung ist.

[[ store=]{active | persistent}]

Gibt an, ob die Löschung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird die Route mit dem Präfix 3FFE::/16 und dem Gateway FE80::1 von der Schnittstelle Internet gelöscht.

delete route 3FFE::/16 "Internet" FE80::1

dump

Gibt die IPv6-Konfiguration des Netzwerkadapters im Eingabeaufforderungsfenster aus, wenn der Befehl im netsh-Kontext ausgeführt wird. Wird der Befehl in einer Batchdatei oder in einem Skript verwendet, kann die Ausgabe in einer Textdatei gespeichert werden.

Syntax

netsh interface ipv6 dump > [ PfadUndDateiname ]

Parameter

[ PfadUndDateiname]

Gibt sowohl den Speicherort der Datei als auch den Namen der Zieldatei an, in der die Konfiguration gespeichert werden soll.

Hinweise

  • Sobald Ihnen die Ausgabe in Form einer Datei zur Verfügung steht, können Sie den Befehl netsh exec verwenden, um einen anderen Computer mit derselben IPv6-Konfiguration zu konfigurieren oder um die ursprüngliche Konfiguration auf demselben Computer wiederherzustellen.
  • Durch den Befehl dump werden alle IPv6-Konfigurationsinformationen gespeichert. Wenn z. B. eine ISATAP- oder eine IPv6-zu-IPv4-Konfiguration an einer Schnittstelle definiert ist, speichert der Befehl dump diese Einstellungen in der Textdatei.

Beispiele

Im ersten Beispiel wird der Befehl manuell im netsh interface ipv6-Kontext der Eingabeaufforderung ausgeführt. Die IPv6-Konfiguration wird im Eingabeaufforderungsfenster angezeigt und kann in eine Textdatei kopiert oder eingefügt werden. Im zweiten Beispiel wird der Befehl dump in einer Batchdatei ausgeführt, und die Konfiguration wird in der Textdatei Ipv6_conf.txt unter C:\Temp gespeichert.

dump netsh interface ipv6 dump > C:\temp\ipv6_conf.txt

install

Installiert IPv6.

Syntax

install

isatap

Gibt an, dass der isatap-Kontext von netsh interface IPv6 verwendet wird.

Syntax

isatap

Hinweise

ISATAP (Intrasite Automatic Tunnel Addressing Protocol) wird für die Kommunikation zwischen IPv6- und IPv4-Knoten innerhalb eines IPv4-Standorts verwendet. Dieser Mechanismus wird im Internetentwurf "Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)" (draft-ietf-ngtrans-isatap-00.txt) näher beschrieben. Weitere Informationen finden Sie unter IPv6-Verkehr zwischen Knoten in verschiedenen Subnetzen eines IPv4-Netzwerkes.

renew

Startet die IPv6-Schnittstellen neu.

Syntax

renew [[interface=]Zeichenfolge]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

Beispiele

renew "Privat"

reset

Setzt den IPv6-Konfigurationsstatus zurück.

Syntax

reset

set

set address

Ändert eine IPv6-Adresse an einer angegebenen Schnittstelle. Zeitwerte können in Tagen (d), Stunden (h), Minuten (m) und Sekunden (s) ausgedrückt werden. So steht beispielsweise die Angabe 2d für zwei Tage.

Syntax

set address [[interface=]Zeichenfolge] [address=]IPv6-Adresse [[type=]{unicast | anycast}] [[validlifetime=]{GanzeZahl | infinite}] [[preferredlifetime=]{GanzeZahl | infinite}] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[ address=] IPv6-Adresse

Erforderlich. Gibt die zu ändernde IPv6-Adresse an.

[[ type=]{unicast | anycast}]

Gibt an, ob die Adresse als Unicastadresse (unicast) oder als Anycastadresse (anycast) markiert werden soll. Die Standardeinstellung ist unicast.

[[ validlifetime=]{GanzeZahl | infinite}]

Gibt an, wie lange die Adresse gültig ist. Der Standardwert ist infinite.

[[ preferredlifetime=]{GanzeZahl | infinite}]

Gibt an, wie lange die Adresse bevorzugt wird. Der Standardwert ist infinite.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird die Adresse FE80::2 an der Schnittstelle Privat als Anycastadresse festgelegt.

set address "Privat" FE80::2 anycast

set global

Ändert globale Konfigurationsparameter.

Syntax

set global [[defaultcurhoplimit=]GanzeZahl] [neighborcachelimit=]GanzeZahl [[routecachelimit=]GanzeZahl] [[reassemblylimit=]GanzeZahl] [[store=]{active | persistent}]

Parameter

[[ defaultcurhoplimit=]GanzeZahl]

Gibt das Standardabschnittslimit für gesendete Pakete an.

[ neighborcachelimit=]GanzeZahl

Erforderlich. Gibt die maximale Anzahl von Nachbarcacheeinträgen an.

[[ routecachelimit=]GanzeZahl]

Gibt die maximale Anzahl von Routecacheeinträgen an.

[[ reassemblylimit=]GanzeZahl]

Gibt die maximale Größe des Reassemblierungspuffers an.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl werden die globalen Parameter für alle IPv6-aktivierten Schnittstellen auf dem Computer festgelegt. Das Standardabschnittslimit wird auf 32, die maximale Anzahl von Nachbarcacheeinträgen auf 100 und die maximale Anzahl von Routecacheeinträgen auf 100.000 festgelegt.

set global 32 100 100000

set interface

Ändert die Konfigurationsparameter der Schnittstelle.

Syntax

set interface [[interface=]Zeichenfolge] [[forwarding=]{enabled | disabled}] [[advertise=]{enabled | disabled}] [[mtu=]GanzeZahl] [[siteid=]GanzeZahl] [[metric=]GanzeZahl] [[firewall=]{enabled | disabled}] [[siteprefixlength=]GanzeZahl] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ forwarding=]{enabled | disabled}]

Gibt an, ob Pakete, die an dieser Schnittstelle eintreffen, zu anderen Schnittstellen weitergeleitet werden können. Die Standardeinstellung ist disabled.

[[ advertise=]{ enabled| disabled}]

Gibt an, ob Routerankündigungen über diese Schnittstelle gesendet werden. Die Standardeinstellung ist disabled.

[[ mtu=] GanzeZahl]

Gibt die MTU dieser Schnittstelle an. Die Standard-MTU entspricht der natürlichen MTU der Verbindung.

[[ siteid=] GanzeZahl]

Gibt die Kennung der Standortbereichszone an.

[[ metric=]GanzeZahl]

Gibt die Schnittstellenmetrik an, die für alle Routen über die Schnittstelle zur Routemetrik hinzugefügt wird.

[[ firewall=]{enabled | disabled}]

Gibt an, ob der Firewallmodus verwendet wird.

[[ siteprefixlength=]GanzeZahl]

Gibt die Standardlänge des globalen Präfixes für den ganzen Standort an.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird die Schnittstelle Privat mit der Standortkennung 2 und der Metrik 2 festgelegt. Für alle anderen Parameter werden die Standardwerte beibehalten.

set interface "Privat" siteid=2 metric=2

set mobility

Ändert Mobilitätskonfigurationsparameter.

Syntax

set mobility [[security=]{enabled | disabled}] [[bindingcachelimit=]GanzeZahl] [[correspondentnode=]enabled | disabled] [[store=]{active | persistent}]

Parameter

[[ security=]{enabled | disabled}]

Gibt an, ob Bindungsaktualisierungen geschützt werden müssen.

[[ bindingcachelimit=]GanzeZahl]

Gibt die maximale Anzahl von Bindungscacheeinträgen an.

[[ correspondentnode=]enabled | disabled]

Gibt an, ob die Korrespondenzknotenfunktionalität auf enabled festgelegt wird oder der Standardwert disabled verwendet wird.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

set mobility security=disabled bindingcachelimit=1000 corr=enabled

set prefixpolicy

Ändert eine Richtlinie für eine Quell- und Zieladressauswahl für ein angegebenes Präfix.

Syntax

set prefixpolicy [prefix=]IPv6-Adresse/GanzeZahl[precedence=]GanzeZahl [label=]GanzeZahl[[store=]{active | persistent}]

Parameter

[ prefix=] IPv6-Adresse/GanzeZahl

Erforderlich. Gibt das Präfix an, für das eine Richtlinie in der Richtlinientabelle hinzugefügt wird. GanzeZahl gibt die Präfixlänge an.

[ precedence=]GanzeZahl

Erforderlich. Gibt den Reihenfolgewert an, der zum Sortieren von Zieladressen in der Richtlinientabelle verwendet wird.

[ label=]GanzeZahl

Erforderlich. Gibt den Bezeichnungswert an, der Richtlinien zulässt, die die Verwendung eines bestimmten Quelladresspräfixes zusammen mit einem Zieladresspräfix erfordern.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird eine Richtlinie in der Richtlinientabelle für das Präfix ::/96 mit dem Reihenfolgewert 3 und dem Bezeichnungswert 4 festgelegt.

set prefixpolicy ::/96 3 4

set privacy

Ändert Parameter, die sich auf das Generieren temporärer Adressen beziehen. Wenn randomtime= angegeben ist, wird maxrandomtime= nicht verwendet. Zeitwerte können in Tagen (d), Stunden (h), Minuten (m) und Sekunden (s) ausgedrückt werden. So steht beispielsweise die Angabe 2d für zwei Tage.

Syntax

set privacy [[state=]{enabled | disabled}] [[maxdadattempts=]GanzeZahl] [[maxvalidlifetime=]GanzeZahl] [[maxpreferredlifetime=]GanzeZahl] [[regeneratetime=]GanzeZahl] [[maxrandomtime=]GanzeZahl] [[randomtime=]GanzeZahl] [[store=]{active | persistent}]

Parameter

[[ state=]{enabled | disabled}]

Gibt an, ob temporäre Adressen aktiviert sind.

[[ maxdadattempts=]GanzeZahl]

Gibt die Anzahl der Versuche zur Ermittlung doppelter Adressen an. Der Standardwert ist 5.

[[ maxvalidlifetime=]GanzeZahl]

Gibt an, wie lange eine temporäre Adresse maximal gültig ist. Die Standardeinstellung ist 7d (sieben Tage).

[[ maxpreferredlifetime=]GanzeZahl]

Gibt an, wie lange eine temporäre Adresse maximal bevorzugt wird. Der Standardwert ist 1d (ein Tag).

[[ regeneratetime=]GanzeZahl]

Gibt den Zeitraum an, der beim Generieren einer neuen Adresse verstreicht, bevor eine temporäre Adresse verworfen wird. Der Standardwert ist 5s (fünf Sekunden).

[[ maxrandomtime=]GanzeZahl]

Gibt die obere Grenze an, die beim Berechnen eines Zufallswertes für die Verzögerungszeit beim Starten verwendet wird. Der Standardwert ist 10m (zehn Minuten).

[[ randomtime=]GanzeZahl]

Gibt einen Zeitwert an, der anstelle eines beim Starten generierten Wertes verwendet wird.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

set route

Ändert Routeparameter. Zeitwerte können in Tagen (d), Stunden (h), Minuten (m) und Sekunden (s) ausgedrückt werden. So steht beispielsweise die Angabe 2d für zwei Tage.

Syntax

set route [prefix=]IPv6-Adresse/GanzeZahl [[interface=]Zeichenfolge] [[nexthop=]IPv6-Adresse] [[siteprefixlength=]GanzeZahl] [[metric=]GanzeZahl] [publish=]{no | yes | immortal}] [[validlifetime=]{GanzeZahl | infinite}] [[preferredlifetime=]{GanzeZahl | infinite}] [[store=]{active | persistent}]

Parameter

[ prefix=] IPv6-Adresse/GanzeZahl

Erforderlich. Gibt das Präfix (IPv6-Adresse) und die Länge des Präfixes (GanzeZahl) der Route an, die geändert werden soll.

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ nexthop=]IPv6-Adresse]

Gibt die Gatewayadresse an, falls das Präfix kein Verbindungspräfix ist.

[[ siteprefixlength=]GanzeZahl]

Gibt die Präfixlänge für den ganzen Standort an, falls das Präfix kein Verbindungspräfix ist.

[[ metric=]GanzeZahl]

Gibt die Routenmetrik an.

[[ publish=]{no | yes | immortal}]

Gibt an, ob Routen in Routenankündigungen angekündigt (yes), mit unbegrenzter Gültigkeitsdauer angekündigt (immortal) oder gar nicht angekündigt (no) werden. Die Standardeinstellung ist no.

[[ validlifetime=]{GanzeZahl | infinite}]

Gibt die Gültigkeitsdauer für eine Route an. Der Standardwert ist infinite.

[[ preferredlifetime=]{GanzeZahl | infinite}]

Gibt an, wie lange die Route bevorzugt wird. Der Standardwert ist infinite.

[[ store=]{active | persistent}]

Gibt an, ob die Änderung nur bis zum nächsten Start besteht (active) oder beständig ist (persistent). Die Standardeinstellung ist persistent.

Beispiele

Durch diesen Beispielbefehl wird eine Route an der Schnittstelle Internet festgelegt. Das Routepräfix ist 3FFE:: und hat eine Länge von 16 Bits. Die Gatewayadresse, die durch den Parameter nexthop= definiert wird, lautet FE80::1.

set route 3FFE::/16 "Internet" FE80::1

set state

Aktiviert oder deaktiviert die IPv4-Kompatibilität. In der Standardeinstellung sind alle Parameter deaktiviert.

Syntax

set state [[6over4=]{enabled | disabled | default}] [[v4compat=]{enabled | disabled | default}]

Parameter

[[6over4=]{enabled| disabled| default}]

Gibt an, ob IPv6-über-IPv4-Schnittstellen erstellt werden. Geben Sie default an, um IPv6-über-IPv4-kompatible Schnittstellen zu deaktivieren und gleichzeitig zu löschen. Geben Sie disabled an, um IIPv6-über-IPv4-kompatible Schnittstellen zu deaktivieren, ohne sie zu löschen

[[ v4compat=]{ enabled| disabled| default}]

Gibt an, ob IPv4-kompatible Schnittstellen erstellt werden. Geben Sie default an, um IPv4-kompatible Schnittstellen zu deaktivieren und gleichzeitig zu löschen. Geben Sie disabled an, um IPv4-kompatible Schnittstellen zu deaktivieren, ohne sie zu löschen

Beispiele

Im ersten Beispielbefehl werden IPv4-kompatible Adressen deaktiviert und alle bislang vorhandenen Schnittstellen gelöscht. Im zweiten Beispielbefehl werden IPv4-kompatible Adressen aktiviert.

set state default

set state 6over4=disabled v4compat=enabled

show

show address

Zeigt alle IPv6-Adressen oder alle Adressen an einer angegebenen Schnittstelle an.

Syntax

show address [[interface=]Zeichenfolge] [[level=]{normal | verbose}] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ level=]{normal | verbose}]

Gibt an, ob pro Schnittstelle eine Zeile angezeigt wird (normal) oder ob für jede Schnittstelle zusätzliche Informationen angezeigt werden (verbose). Wenn keine Schnittstelle angegeben wird, ist die Standardeinstellung normal. Wenn eine Schnittstelle angegeben wird, ist die Standardeinstellung verbose.

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Adressen angezeigt werden. Die Standardeinstellung ist active.

show bindingcacheentries

Zeigt alle Bindungscacheeinträge an.

Syntax

show bindingcacheentries

show destinationcache

Zeigt Zielcacheeinträge an. Wenn eine Schnittstelle angegeben wird, wird nur der Cache an dieser Schnittstelle angezeigt. Wenn zudem eine Adresse angegeben wird, wird nur dieser Zielcacheeintrag angezeigt

Syntax

show destinationcache [[interface=]Zeichenfolge] [[address=]IPv6-Adresse]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ address=]IPv6-Adresse]

Gibt die Adresse des Ziels an.

show dns

Zeigt die DNS-Serverkonfiguration für eine bestimmte Schnittstelle oder für bestimmte Schnittstellen an.

Syntax

show dns [[interface=]Zeichenfolge]

Parameter

[[ interface=]Zeichenfolge]

Gibt den Namen der Schnittstelle an, für die Sie die konfigurierten IPv6-Adressen für DNS-Server anzeigen möchten. Wenn keine Schnittstelle angegeben wird, werden die Server für alle Schnittstellen angezeigt.

Beispiele

Durch diesen Beispielbefehl werden die an der Schnittstelle LAN-Verbindung konfigurierten IPv6-Adressen für DNS-Server angezeigt.

show dns "LAN-Verbindung"

show global

Zeigt globale Konfigurationsparameter an.

Syntax

show global [[store=]{active | persistent}]

Parameter

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Informationen angezeigt werden. Die Standardeinstellung ist active.

show interface

Zeigt Informationen zu allen Schnittstellen oder zu einer angegebenen Schnittstelle an.

Syntax

show interface [[interface=]Zeichenfolge] [[level=]{normal | verbose}] [[store=]{active | persistent}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ level=]{normal | verbose}]

Gibt an, ob pro Schnittstelle eine Zeile angezeigt wird (normal) oder ob für jede Schnittstelle zusätzliche Informationen angezeigt werden (verbose). Wenn keine Schnittstelle angegeben wird, ist die Standardeinstellung normal. Wenn eine Schnittstelle angegeben wird, ist die Standardeinstellung verbose.

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Schnittstellen angezeigt werden. Die Standardeinstellung ist active.

show joins

Zeigt alle IPv6-Multicastadressen oder alle Multicastadressen an einer angegebenen Schnittstelle an.

Syntax

show joins [[interface=]Zeichenfolge] [[level=]{normal | verbose}]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ level=]{normal | verbose}]

Gibt an, ob pro Schnittstelle eine Zeile angezeigt wird (normal) oder ob für jede Schnittstelle zusätzliche Informationen angezeigt werden (verbose). Wenn keine Schnittstelle angegeben wird, ist die Standardeinstellung normal. Wenn eine Schnittstelle angegeben wird, ist die Standardeinstellung verbose.

show mobility

Zeigt Mobilitätskonfigurationsparameter an.

Syntax

show mobility [[store=]{active | persistent}]

Parameter

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Informationen angezeigt werden. Die Standardeinstellung ist active.

show neighbors

Zeigt Nachbarcacheeinträge an. Wenn eine Schnittstelle angegeben wird, wird nur der Cache an dieser Schnittstelle angezeigt. Wenn zudem eine Adresse angegeben wird, wird nur dieser Nachbarcacheeintrag angezeigt

Syntax

show neighbors [[interface=]Zeichenfolge] [[address=]IPv6-Adresse]

Parameter

[[ interface=]Zeichenfolge]

Gibt einen Schnittstellennamen oder -index an.

[[ address=]IPv6-Adresse]

Gibt die Adresse des Nachbarn an.

show prefixpolicy

Zeigt Einträge der Präfixrichtlinientabelle an, die bei der Auswahl von Quell- und Zieladressen verwendet werden.

Syntax

show prefixpolicy [[store=]{active | persistent}]

Parameter

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Informationen angezeigt werden. Die Standardeinstellung ist active.

show privacy

Zeigt Datenschutz-Konfigurationsparameter an.

Syntax

show privacy [[store=]{active | persistent}]

Parameter

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Informationen angezeigt werden. Die Standardeinstellung ist active.

show routes

Zeigt Routetabelleneinträge an.

Syntax

show routes [[level=]{normal | verbose}] [[store=]{active | persistent}]

Parameter

[[ level=]{normal | verbose}]

Gibt an, ob ausschließlich normale Routen (normal) oder Routen, die für Loopbacks verwendet werden (verbose), angezeigt werden. Die Standardeinstellung ist normal.

[[ store=]{active | persistent}]

Gibt an, ob aktive (active) oder beständige (persistent) Routen angezeigt werden. Die Standardeinstellung ist active.

show siteprefixes

Zeigt die Standortpräfixtabelle an.

Syntax

show siteprefixes

uninstall

Deinstalliert IPv6.

Syntax

uninstall

Netsh interface IPv6 6to4

Sie können die folgenden Befehle im netsh interface IPv6 6to4-Kontext verwenden, um die Konfiguration des IPv6-zu-IPv4-Dienstes auf einem IPv6-zu-IPv4-Host oder einem IPv6-zu-IPv4-Router anzuzeigen oder den Dienst zu konfigurieren. Weitere Informationen zum Verwenden des IPv6-zu-IPv4-Dienstes finden Sie unter IPv6-Verkehr zwischen Knoten in verschiedenen Sites innerhalb des Internets (6to4).

Weitere Informationen zu Netsh finden Sie unter Netsh (Übersicht).* set interface

set interface

Dieser Befehl konfiguriert den IPv6-zu-IPv4-Dienst über eine Schnittstelle.

Syntax

set interface [name=] Schnittstellenname [[routing=] {enabled | disabled | default}]

Parameter

[ name =] Schnittstellenname

Erforderlich. Gibt den Namen der Schnittstelle an, für die Sie die Konfiguration des IPv6-zu-IPv4-Dienstes festlegen möchten. Schnittstellenname muss mit dem im Dialogfeld zu Netzwerkverbindungen angegebenen Namen der Schnittstelle übereinstimmen. Wenn Schnittstellenname Leerzeichen enthält, muss der Wert in Anführungszeichen gesetzt werden.

[[ routing=] {enabled | disabled | default}]

Gibt an, ob die Weiterleitung von IPv6-zu-IPv4-Paketen, die an der Schnittstelle eintreffen, aktiviert, deaktiviert oder auf den Standardwert festgelegt ist.

Hinweise

Dieser Befehl aktiviert, deaktiviert oder legt das Routingverhalten des IPv6-zu-IPv4-Dienstes für eine bestimmte Schnittstelle auf die Standardeinstellung fest.

Die Standardeinstellung des Parameters routing= ist enabled, sodass das Routing an privaten Schnittstellen bei Verwendung der gemeinsamen Nutzung der Internetverbindung (Internet Connection Sharing, ICS) aktiviert wird.

Hinweis

„Gemeinsame Nutzung der Internetverbindung“ und „Netzwerkbrücke“ sind in Windows Server 2003 Web Edition, Windows Server 2003 Datacenter Edition und den Itanium-basierten Versionen der ursprünglichen Version der Betriebssysteme der Windows Server 2003-Produktfamilie nicht enthalten.

show interface

Zeigt die Routingkonfiguration des IPv6-zu-IPv4-Dienstes für alle Schnittstellen oder für eine angegebene Schnittstelle an.

Syntax

show interface [[name=] Schnittstellenname]

Parameter

[[ name=] Schnittstellenname]

Gibt den Namen der Schnittstelle an, für die Sie die Konfiguration des IPv6-zu-IPv4-Dienstes anzeigen möchten. Schnittstellenname muss mit dem im Dialogfeld zu Netzwerkverbindungen angegebenen Namen der Schnittstelle übereinstimmen. Wenn Schnittstellenname Leerzeichen enthält, muss der Wert in Anführungszeichen gesetzt werden.

Hinweise

Wird kein Schnittstellenname angegeben, wird die IPv6-zu-IPv4-Konfiguration für alle Schnittstellen angezeigt.

set relay

Dieser Befehl konfiguriert den Namen des IPv6-zu-IPv4-Relayrouters für den IPv6-zu-IPv4-Dienst. Darüber hinaus wird die Häufigkeit der Namensauflösung und der Zustand der Relaykomponente für den IPv6-zu-IPv4-Dienst angegeben.

Syntax

set relay [[name=] {RelayDNSName | default}] [[state=] {enabled | disabled | automatic | default}] [[interval=] {Auflösungsintervall | default}]

Parameter

[[ name=] {RelayDNSName | default}]

Gibt entweder den vollqualifizierten Domänennamen eines IPv6-zu-IPv4-Relayrouters im IPv4-Internet (RelayDNSName) an oder legt den Relaynamen auf den Standardwert 6to4.ipv6.microsoft.com fest (default).

[[ state=] {enabled | disabled | automatic | default}]

Gibt an, ob der Status der Relaykomponente des IPv6-zu-IPv4-Dienstes aktiviert, deaktiviert, bei der Konfiguration einer öffentlichen IPv4-Adresse automatisch aktiviert oder auf den Standardwert festgelegt wird.

[[ interval=] {Auflösungsintervall | default}]

Gibt an, wie oft (in Minuten) der Name des Relayrouters aufgelöst wird (Auflösungsintervall) oder legt das Auflösungsintervall auf den Standardwert von 1.440 Minuten fest (default).

Hinweise
  • Der IPv6-zu-IPv4-Relayrouter ist ein Router, der einen Zugriffspunkt zwischen dem IPv4-Internet und dem 6bone (dem systemeigenen IPv6-Abschnitt des Internets) bereitstellt. Für den Zugriff auf 6bone-Ressourcen von einem IPv6-zu-IPv4-Router kapselt der IPv6-zu-IPv4-Router den IPv6-zu-IPv4-Datenverkehr mithilfe eines IPv4-Headers ein und sendet das Paket an die IPv4-Adresse des IPv6-zu-IPv4-Relayrouters. Der IPv6-zu-IPv4-Relayrouter entfernt den IPv4-Header und leitet den Datenverkehr an den 6bone weiter. Bei der Rückgabe von Daten kapselt der IPv6-zu-IPv4-Relayrouter den IPv6-Datenverkehr ein und sendet ihn an den IPv6-zu-IPv4-Router am Standort des IPv6-zu-IPv4-Hosts.
  • Der Standardname des IPv6-zu-IPv4-Relayrouters lautet 6to4.ipv6.microsoft.com.
  • Der Standardzustand ist automatic, sodass die Weiterleitung des systemeigenen IPv6-Datenverkehrs an einen Relayrouter beim Zuweisen einer öffentlichen IPv4-Adresse an eine Schnittstelle aktiviert wird.
  • Das Standard-Auflösungsintervall ist 1.440 Minuten (einmal täglich).
show relay

Dieser Befehl zeigt die Konfiguration des Relayrouters für den IPv6-zu-IPv4-Dienst an.

Syntax

show relay

set routing

Dieser Befehl legt sowohl den Status des Routings als auch die Aufnahme von Site-Local-Adresspräfixe in Routerankündigungen, die vom IPv6-zu-IPv4-Router gesendet werden, fest.

Syntax

set routing [[routing=] {enabled | disabled | automatic | default}] [[sitelocals=] {enabled | disabled | default}]

Parameter

[[ routing=] {enabled | disabled | automatic | default}]

Gibt an, ob der Status des Routing auf einem IPv6-zu-IPv4-Router aktiviert, deaktiviert, bei der Aktivierung der gemeinsamen Nutzung der Internetverbindung (Internet Connection Sharing, ICS) automatisch aktiviert oder auf den Standardwert festgelegt wird.

[[ sitelocals=] {enabled | disabled | default}]

Gibt an, ob die Ankündigung von Site-Local-Adresspräfixen zusätzlich zu IPv6-zu-IPv4-Adresspräfixen aktiviert, deaktiviert oder auf den Standardwert festgelegt ist.

Hinweise
  • Die Standardeinstellung des Parameters routing= ist automatic, sodass das Routing über private Schnittstellen bei Verwendung von ICS aktiviert wird.
  • Die Standardeinstellung des Parameters sitelocals= ist enabled, sodass die Ankündigung standortlokaler Präfixe bei der Konfiguration standortlokaler Adressen über private Schnittstellen aktiviert wird.

Hinweis * „Gemeinsame Nutzung der Internetverbindung“ und „Netzwerkbrücke“ sind in Windows Server 2003 Web Edition, Windows Server 2003 Datacenter Edition und den Itanium-basierten Versionen der ursprünglichen Version der Betriebssysteme der Windows Server 2003-Produktfamilie nicht enthalten.

show routing

Dieser Befehl zeigt die Routingkonfiguration des IPv6-zu-IPv4-Dienstes an.

Syntax

show routing

set state

Dieser Befehl konfiguriert den Status des IPv6-zu-IPv4-Dienstes.

Syntax

set state [[state=] {enabled | disabled | default}] [[undoonstop=] {enabled | disabled | default}] [[6over4=] {enabled | disabled | default}]

Parameter

[[ state=] {enabled | disabled | default}]

Gibt an, ob der IPv6-zu-IPv4-Dienst aktiviert, deaktiviert oder auf den Standardwert festgelegt ist.

[[ undoonstop=] {enabled | disabled | default}]

Gibt an, ob die Umkehrung der gesamten automatischen Konfiguration, die der IPv6-zu-IPv4-Dienst beim Beenden des Dienstes ausführt, aktiviert, deaktiviert oder auf den Standardwert festgelegt ist.

Hinweise
  • Die Standardeinstellung des Parameters state= ist enabled, sodass der IPv6-zu-IPv4-Dienst aktiviert wird .
  • Die Standardeinstellung des Parameters undoonstop= ist enabled, sodass die gesamte vom IPv6-zu-IPv4-Dienst ausgeführte automatische Konfiguration beim Beenden des Dienstes rückgängig gemacht wird.
show state

Dieser Befehl zeigt den Status des IPv6-zu-IPv4-Dienstes an.

Syntax

show state

reset

Dieser Befehl setzt den IPv6-zu-IPv4-Dienst zurück.

Syntax

reset

Netsh interface IPv6 isatap

ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) ist ein Mechanismus für die Adresszuweisung und das Tunneling, der die Kommunikation zwischen IPv6- und IPv4-Knoten innerhalb eines IPv4-Standorts ermöglicht. Dieser Mechanismus wird im Internetentwurf "Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)" (draft-ietf-ngtrans-isatap-00.txt) näher beschrieben. Zum Konfigurieren des ISATAP-Routers können Sie die folgenden Befehle verwenden.* set router

set router

Gibt die ISATAP-Routerinformationen (Intra-Site Automatic Tunneling Address Protocol), einschließlich des Routernamens, des Status und des Auflösungsintervalls, an.

Syntax

set router [[name=]{Zeichenfolge | default}] [[state=]{Enabled | Disabled | Default}] [[interval]=GanzeZahl]

Parameter

[[ name=]{Zeichenfolge | default}]

Gibt an, ob der Router mit einer Zeichenfolge benannt wird. Wenn default angegeben wird, kehrt das System zur Verwendung des Standardnamens zurück.

[[ state=]{Enabled | Disabled | Default}]

Gibt an, ob der ISATAP-Router Pakete zwischen Subnetzen weiterleitet.

[[ interval]=GanzeZahl]

Gibt das Auflösungsintervall für den Router (in Minuten) an. Der Standardwert für das Intervall ist 1.440 (24 Stunden).

Beispiele

Durch den folgenden Beispielbefehl wird isatap als Routername festgelegt, der Router aktiviert und das Auflösungsintervall auf 120 (Minuten) festgelegt:

set router isatap enabled 120

show router

Zeigt die Konfigurationsinformationen für den ISATAP-Router an.

Syntax

show router

Hinweise

Durch diesen Befehl werden der Routername, der Relaystatus und das Auflösungsintervall angezeigt.