IPv6-Labor / Pilot
Diese Laborumgebung habe ich
so im Jahr 2012 aufgebaut und einige Aussagen
passen so nicht mehr. Bin aber noch nicht zu
einem Update gekommen.
Heute würde ich als Firma gleich eine "Provider
Independent Address Space (Pi-Space) besorgen.
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.
http://www.ipv6.bva.bund.de
http://www.bit.bund.de/BIT/DE/Beratung/IPv6/node.html
"Kochbuch" für die IPv6-Einführung
http://www.bva.bund.de/cln_341/nn_2260316/DE/Aktuelles/Pressemitteilungen/2013/PM__Forschungsprojekt__IPv6__pdf.html
Migrationsleitfaden
http://www.bit.bund.de/cln_321/nn_2256370/BIT/DE/Shared/Publikationen/IPv6/fue__migrationsleitfaden.html
Profilhandbuch
http://www.bit.bund.de/cln_321/nn_2256370/BIT/DE/Shared/Publikationen/IPv6/fue__profildokument.html
Sicher auch für Firmen durchaus interessante
Quellen.
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 |
|
---|---|
IPv6 |
|
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
http://tools.ietf.org/html/rfc4193
http://en.wikipedia.org/wiki/Unique_local_address
Wahl der IPv6 Adressen
Damit wir nun die "richtigen" Adressen verwenden können, müssen wir uns erst mal mit den Adressen beschäftigen:
Heute würde ich als Firma gleich eine "Provider Independent Address Space (Pi-Space) besorgen.
Wenn Sie IPv4 können, 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:
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 |
Lokal |
Unicast |
Link Local
Unicast |
fec0:/10 |
fec0:0000:0000:0000:0000:0000:0000:0000 |
Lokal |
Unicast |
Site Local unicast (veraltet) |
fc00::/7 |
fc00:0000:0000:0000:0000:0000:0000:0000 |
Global |
Unicast |
Unique Local unicast |
ff00::/8 |
ff00::/8 |
|
Multicast |
|
ff01::1 |
ff01::1 |
|
Broadcast |
All Nodes |
ff01::2 |
ff01::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 |
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. |
64:ff9b::/96 |
0064:ff9b:0000:0000:0000:0000:0000:0000 |
Global |
Unicast |
NAT64. Die letzten 4 Byte (FFFF:FFFF) entsprechen der umgesetzten IPv4-Adresse |
::/96 |
|
|
|
IPv4 Kompatibilitätsadressen. Laut RFC4291 veraltet |
- IPv6
http://de.wikipedia.org/wiki/IPv6#Adressbereiche - IPv6 Adressen
http://itbloggen.se/cs/blogs/hasain/archive/2010/09/01/ipv6-addressing.aspx -
http://en.wikipedia.org/wiki/6to4
IPv4 Adressen in IPv6 abbilden.
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:
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
http://de.wikipedia.org/wiki/Ipv6 - Private IPv6 address range
http://www.simpledns.com/private-ipv6.aspx - RFC4193 unique Local IPv6 unicast Addresses
http://www.ietf.org/rfc/rfc4193.txt - IANA IPv4 Address Space
Registry
http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml
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.
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.
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 für 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
http://technet.microsoft.com/de-de/library/cc779656(WS.10).aspx - IPv6-Adressbereich
http://technet.microsoft.com/de-de/library/cc781652(WS.10).aspx - DHCPv6 - understanding of address configuration in automatic mode and installation of DHCPv6 Server
http://blogs.technet.com/b/teamdhcp/archive/2009/03/03/dhcpv6-understanding-of-address-configuration-in-automatic-mode-and-installation-of-dhcpv6-server.aspx - RFC4861 Neighbor Discovery protocol
http://tools.ietf.org/html/rfc4861 - RFC3315 Dynamic Host Configuration Protocol für IPv6 (DHCPv6)
http://tools.ietf.org/html/rfc3315 - RFC4862 IPv6 Stateless Address Autoconfiguration
http://tools.ietf.org/html/rfc4862 - RFC3736 Stateless Dynamic Host Configuration Protocol (DHCP) Service für IPv6
http://tools.ietf.org/html/rfc3736 - IPv6 Netzwerkgenerator.
http://www.simpledns.com/private-ipv6.aspx -
https://www.sixxs.net/tools/grh/ula/
Auch wenn diese private Adressen nicht registriert werden müssen, bietet SIXXS als Tunnelbroker eine Registrierungsseite an.
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)
http://technet.microsoft.com/de-de/library/cc778019(WS.10).aspx - Neighbor Discovery Protocol
http://de.wikipedia.org/wiki/Neighbor_Discovery_Protocol
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
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.
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
http://technet.microsoft.com/de-de/library/cc783049(WS.10).aspx - Managing the Global Query Block List
http://technet.microsoft.com/en-us/library/cc794902(WS.10).aspx - Configuring DNS für IPv6/IPv4 Coexistence
http://technet.microsoft.com/en-us/library/cc738372(WS.10).aspx - RFC4074 Common Misbehavior Against DNS Queries für IPv6 Addresses
http://www.ietf.org/rfc/rfc4074.txt - Link-Local Multicast Name Resolution
http://technet.microsoft.com/en-us/library/bb878128.aspx - How to benefit from Link-Local Multicast Name Resolution.
http://blogs.technet.com/b/networking/archive/2008/04/01/how-to-benefit-from-link-local-multicast-name-resolution.aspx - Disabling the Link Local Multicast Name Resolution (LLMNR) protocol when it is causing slowdowns für connections between newer workstations and older Windows XP / Windows 2003 servers
http://www.schoolleader.com/Documentation/Disabling_LLMNR_Causing_Slow_Networks.pdf - Chapter 7 - Host Name Resolution
http://technet.microsoft.com/en-us/library/bb727005.aspx
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 können. 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
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.
Das ist dann erst mal nicht so hilfreich bei der Ermittlung des nächten Hop. Zum Glück gibt es dann aber noch Tracert:
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
http://tools.ietf.org/html/rfc6104 - RFC4861 Neighbor Discovery protocol
http://tools.ietf.org/html/rfc4861 - RFC3315 Dynamic Host Configuration Protocol für IPv6 (DHCPv6)
http://tools.ietf.org/html/rfc3315 - RFC4862 IPv6 Stateless Address Autoconfiguration
http://tools.ietf.org/html/rfc4862 - RFC3736 Stateless Dynamic Host Configuration Protocol (DHCP) Service für IPv6
http://tools.ietf.org/html/rfc3736
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 für IPv6
http://technet.microsoft.com/en-us/library/bb878102.aspx - Windows Server 2008 R2 Core:
Introducing SCONFIG.
http://blogs.technet.com/b/virtualization/archive/2009/07/07/windows-server-2008-r2-core-introducing-sconfig.aspx - Core Configurator 2.0 (x64)
http://coreconfig.codeplex.com/
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
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
http://blogs.technet.com/b/edgeaccessblog/archive/2010/09/14/how-to-enable-remote-desktop-sharing-rds-rdp-from-corporate-machines-to-Direct Access-connected-machines.aspx
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. Diese Funktion ist z.B. im UAG enthalten |
Technisch kann das wie folgt aussehen
Animation/Bild steht noch aus.
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
http://technet.microsoft.com/en-us/library/bb726950.aspx - Using Windows Tools to Obtain IPv6 Configuration Information
- http://technet.microsoft.com/en-us/library/bb726952.aspx
- Netsh
http://en.wikipedia.org/wiki/Netsh - Netsh.exe
http://msdn.microsoft.com/en-us/library/windows/desktop/bb736546(v=vs.85).aspx
Weitere Links
- Direct Access
- Direct Access 2012
- IPV6
- ISATAP
- IPv6
http://de.wikipedia.org/wiki/IPv6#Adressbereiche - IPv6
http://de.wikipedia.org/wiki/Ipv6 - Private IPv6 address range
http://www.simpledns.com/private-ipv6.aspx - RFC4193 unique Local IPv6 unicast Addresses
http://www.ietf.org/rfc/rfc4193.txt - IANA IPv4 Address Space
Registry
http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml - IPv6-Konfigurationsmethoden
http://technet.microsoft.com/de-de/library/cc779656(WS.10).aspx - IPv6-Adressbereich
http://technet.microsoft.com/de-de/library/cc781652(WS.10).aspx - DHCPv6 - understanding of address configuration in automatic mode and installation of DHCPv6 Server
http://blogs.technet.com/b/teamdhcp/archive/2009/03/03/dhcpv6-understanding-of-address-configuration-in-automatic-mode-and-installation-of-dhcpv6-server.aspx - RFC4861 Neighbor Discovery protocol
http://tools.ietf.org/html/rfc4861 - RFC3315 Dynamic Host Configuration Protocol für IPv6 (DHCPv6)
http://tools.ietf.org/html/rfc3315 - RFC4862 IPv6 Stateless Address Autoconfiguration
http://tools.ietf.org/html/rfc4862 - RFC3736 Stateless Dynamic Host Configuration Protocol (DHCP) Service für IPv6
http://tools.ietf.org/html/rfc3736 - IPv6 Netzwerkgenerator.
http://www.simpledns.com/private-ipv6.aspx - Nachbarsuche (Neighbor Discovery, ND)
http://technet.microsoft.com/de-de/library/cc778019(WS.10).aspx - Neighbor Discovery Protocol
http://de.wikipedia.org/wiki/Neighbor_Discovery_Protocol - IPv6-Konfigurationselemente
http://technet.microsoft.com/de-de/library/cc783049(WS.10).aspx - Managing the Global Query Block List
http://technet.microsoft.com/en-us/library/cc794902(WS.10).aspx - Configuring DNS für IPv6/IPv4 Coexistence
http://technet.microsoft.com/en-us/library/cc738372(WS.10).aspx - RFC4074 Common Misbehavior Against DNS Queries für IPv6 Addresses
http://www.ietf.org/rfc/rfc4074.txt - Rogue IPv6 Router Advertisement Problem Statement
http://tools.ietf.org/html/rfc6104 - RFC4861 Neighbor Discovery protocol
http://tools.ietf.org/html/rfc4861 - RFC3315 Dynamic Host Configuration Protocol für IPv6 (DHCPv6)
http://tools.ietf.org/html/rfc3315 - RFC4862 IPv6 Stateless Address Autoconfiguration
http://tools.ietf.org/html/rfc4862 - RFC3736 Stateless Dynamic Host Configuration Protocol (DHCP) Service für IPv6
http://tools.ietf.org/html/rfc3736 - RFC6104 Rogue IPv6 Router Advertisement Problem Statement
http://tools.ietf.org/html/rfc6104