IPv6 bei Longhorn und Vista

01.09.2006 von Martin Kuppinger
Vista ist die erste Windows-Version, die IPv6 voll unterstützt. Wie Longhorn unterstützt es einen neuen TCP/IP-Stack, der auf den wahlweisen Betrieb mit IPv4 und IPv6 optimiert ist. Der Artikel gibt einen Überblick über die wesentlichen Änderungen.

Microsoft hat – erstmals seit längerer Zeit – den TCP/IP-Stack von Windows wieder grundlegend überarbeitet. Die Basis für den bisherigen Stack wurde bereits mit Windows NT 3.51 gelegt. Danach wurde er zwar noch einige Male überarbeitet, aber nie von Grund auf neu geschrieben. Auch die IPv6-Unterstützung ab Windows XP und dem Windows Server 2003 war nur eine Erweiterung.

Microsoft hat sich nun bei der Entwicklung der gemeinsamen Basis für Windows Vista und Longhorn dafür entschieden, den Stack neu zu entwickeln. Damit soll das Zusammenspiel der beiden IP-Versionen optimiert und die geänderten Anforderungen an TCP/IP-Netzwerke besser bedient werden.

Solange man sich nicht näher mit der Konfiguration des Stacks beschäftigt, merkt man davon zunächst in den meisten Einsatzsituationen nichts. Je intensiver man sich aber mit TCP/IP auseinandersetzt, desto deutlicher werden die Unterschiede. Wichtig ist, dass die Änderungen keine Auswirkungen auf normale Anwendungen haben.

Dual-Layer-Architektur

Die wichtigste Änderung ist, dass nun für die Unterstützung von IPv4 und IPv6 mit einer Dual-Layer Architektur anstelle eine Dual-Stack-Architektur gearbeitet wird. Die Architektur des TCP/IP-Stacks wird weiter unten noch näher betrachtet.

Diese Änderung bedeutet konkret, dass es keinen IPv6-Stack mehr gibt, wie es noch bei Windows XP und dem Windows Server 2003 der Fall ist. Die Schichten für den Transport und die Erstellung von Frames sind nun identisch. Nur bei der Netzwerkschicht gibt es Unterschiede, weil dort die Spezifika der beiden Protokolle berücksichtigt werden müssen.

Für die praktische Nutzung bedeutet das zunächst, dass man nicht länger Stacks installieren muss. Die Unterstützung für IPv4 und IPv6 ist generell aktiviert, wenn mit TCP/IP gearbeitet wird, was ohnehin zwingend ist. Aus Entwicklersicht bringt diese Änderung aber auch wichtige Vorteile. Statt wie bisher Änderungen an zwei Treibern durchführen zu müssen, sind sie nun nur noch an einer Stelle erforderlich. Das vereinfacht die Entwicklung und erhöht potenziell die Softwarequalität.

Weitere Änderungen im Stack

Neben dieser sehr spezifischen Anpassung für IPv6 gibt es noch einige weitere Neuerungen, die generell für TCP/IP gelten, in diesem Rahmen aber ebenfalls erwähnt werden sollen:

Weitere wichtige Optimierungen finden sich im Bereich der Sicherheit. Hier wurde der Schutz gegen die bekannten Ansätze für Denial-of-Service-Attacken deutlich ausgebaut.

Die Architektur

Bild 1 zeigt die neue Architektur des TCP/IPStacks. Hier wird das Dual-Layer-Prinzip für die parallele Nutzung von IPv4 und IPv6 deutlich. Nur auf dem Network Layer sind beide Protokolle implementiert. Auf allen anderen Ebenen wird dagegen mit einheitlichen Komponenten gearbeitet.

Bild 1: Die Architektur des neuen TCP/IP-Stacks bei Windows Vista und Longhorn.

Beim Transport Layer gibt es neben TCP und UDP auch Raw für den direkten Zugriff auf die IP-Protokolle. Auf dem Framing Layer finden sich die bekannten Netzwerktypen, die heute erforderlich sind, einschließlich der Unterstützung für das Tunneling von IPv4 und IPv6.

Interessant ist die oberste Schicht, über die Anwendungen auf TCP/IP zugreifen. Die Windows Sockets als klassische User-Mode-Schnittstelle arbeiten über AFD (Anciliary Function Driver). Dabei handelt es sich um einen speziellen Treiber für Socket-Funktionen.

Neben der bisherigen TDI-Schnittstelle, die unter anderem von NetBT (NetBIOS over TCP/IP) genutzt wird, sollte die neue Schnittstelle WSK von Anwendungsentwicklern heute bevorzugt verwendet werden.

Bild 2: IPv6 ist standardmäßig bei Vista und Longhorn installiert und aktiviert.

Alles in allem ist die Architektur des TCP/IPStacks sehr schlank und übersichtlich geworden – und eine saubere Architektur ist eine gute Basis für ein effizientes Funktionieren eines solchen Stacks.

Die Implementierung von IPv6

Neben der grundlegenden Überarbeitung des IPv6-Stacks wurden auch unzählige Änderungen direkt auf der Ebene von IPv6 vorgenommen. Sowohl der Umgang mit dem Protokoll als auch die Funktionalität wurden optimiert.

Wie schon eingangs erwähnt, wird IPv6 standardmäßig als Protokoll installiert und aktiviert. Wenn IPv6 aktiviert ist, versucht der Stack, über IPv6 zu arbeiten. Bei der Namensauflösung geben DNS-Server potenziell sowohl IPv6- als auch IPv4-Adressen zurück. Falls allerdings keine IPv6-Adressen geliefert werden, wird mit IPv4 gearbeitet. Für die Performance der Netzwerkkommunikation macht dieser Ansatz also zunächst keinen Unterschied. Grundsätzlich ist es in Netzwerken mit IPv6-Unterstützung sinnvoll, mit diesem Protokoll zu arbeiten, da es einige Vorteile bietet, beispielsweise bei der Kommunikation über NATs (Network Address Translators).

Da die Infrastrukturkomponenten wie DNS aber IPv6 unterstützen und auch bei der automatischen Zuweisung von IP-Adressen IPv6-Adressen zugeordnet werden, dürften viele Netzwerke zumindest intern mit IPv6 arbeiten. Ob IPv6 auch über die Grenzen des LANs hinaus genutzt wird, hängt insbesondere davon ab, ob die eingesetzten Router auch IPv6 unterstützen.

Zu beachten ist auch, dass manche DNS-Server im Internet nicht korrekt für den Einsatz von IPv6 konfiguriert sind, sodass es zu Problemen bei der Namensauflösung kommen kann. Daher kann es für eine Übergangsphase erforderlich sein, IPv6 zu deaktivieren, bis der Internetprovider seinen DNS-Server so umgestellt hat, dass er Anforderungen an die Namensauflösung auch von Dual-IP-Stack-Systemen korrekt bearbeitet.

Zu den wesentlichen Neuerungen bei Windows Vista und Longhorn in Bezug auf IPv6 gehört die grafische Schnittstelle für die Konfiguration des Protokolls. Man muss also nicht mehr, wie noch beim Windows Server 2003 und Windows XP, mit netsh interface ipv6 arbeiten, sondern kann in gewohnter Weise die GUI verwenden.

Bild 3: Die Konfiguration der Eigenschaften von IPv6 kann nun über die grafische Oberfläche durchgeführt werden.

Wichtig ist weiterhin, dass IPsec nun voll unterstützt wird (Bild 4). Insbesondere können nun auch die Verschlüsselung und IKE (Internet Key Exchange) genutzt werden. Die Konfiguration kann über die Gruppenrichtlinien in gleicher Weise wie bei IPsec für IPv4 erfolgen. Da IPsec gerade im Zusammenhang mit dem Schutz von Netzwerkinfrastrukturen deutlich an Bedeutung gewonnen hat, ist eine volle Unterstützung dieses Sicherheitsprotokolls unverzichtbar.

Bild 4: Bei IPsec können nun auch Richtlinien für IPv6- Netzwerke konfiguriert werden.

Weitere Neuerungen

Neben den genannten Änderungen und den weiter unten behandelten Anpassungen bei Teredo gibt es noch einige weitere Neuerungen:

Teredo

Teredo ist eine der zentralen Technologien in der Migrationsphase von IPv4 zu IPv6. Sie ermöglicht die Kommunikation zwischen Clients mit IPv4-und IPv6-Adressen und Systemen mit globalen IPv6-Adressen, auch wenn die Systeme durch ein oder mehrere NATs voneinander getrennt sind. NATs haben in den vergangenen Jahren erheblich an Bedeutung gewonnen, weil die IPv4-Adressräume nicht ausreichen. Das Problem ist, dass damit gegen ein grundlegendes Designprinzip des Internets verstoßen wird, das eindeutige IP-Adressen für jeden Knoten vorsieht. Mit IPv6 wird das wieder der Fall sein, da der Adressraum ausreichend groß ist.

Teredo verwendet globale IP-Adressen, um die Systeme auch außerhalb des NATs sichtbar zu machen. Dafür ist keine Konfigurationsanpassung des NATs erforderlich. Bei Windows Vista ist Teredo standardmäßig aktiviert, wird aber nicht genutzt. Erst wenn ein Benutzer eine Anwendung, die Teredo erfordert, installiert oder wenn die Einstellungen der Windows-Firewall für Teredo angepasst werden, wird auch mit diesem Protokoll gearbeitet. Beim Windows Server Longhorn ist Teredo dagegen standardmäßig deaktiviert.

Die Sicherheit von IPv6-Verkehr über Teredo wird dadurch gewährleistet, dass die Windows-Firewall in den neuen Windows-Versionen sehr viel differenzierter arbeitet und auch IPv6 schützt. In der Summe hat Microsoft bei Vista und Longhorn die Erweiterungen vorgenommen, die für eine effiziente Nutzung von IPv6 erforderlich sind. Zumindest von der Seite des Windows-Betriebssystems her gibt es keine Hürden für die Umstellung auf die neue IP-Version mehr. Für Unternehmensnetzwerke bedeutet die Einführung von IPv6 dennoch einen erheblichen Aufwand. In kleineren Netzwerken wird man dagegen, sobald der Internet-Provider IPv6 unterstützt und man beispielsweise einen DSL-Router mit IPv6-Unterstützung hat, sehr einfach mit dem neuen Protokoll arbeiten können.