TCP/IP | Subnetting | IPv6 | Telnet | VLAN einrichten
RFC2460 IPv6 Spezifikation
IPv6 Test der Verbindung
IPv6-Adressen sind 128 Bit lang und werden in 8 Gruppen von je 16 Bit (2
Byte) in Hexadezimal dargestellt, die durch Doppelpunkte getrennt werden. Üblicherweise adressieren die ersten 64Bit das Netz, der Rest den Host.
Eine bisherige Adresse wie zum Beispiel
192.168.1.1
wäre neu
0000:0000:0000:0000:0000:FFFF:C0A8:0101 oder
0:0:0:0:0:FFFF:C0A8:0101 oder
::FFFF:C0A8:0101
in IPv6 ist vorgesehn, die bestehenden IPv4 Adressen innerhalb eines Adressraumes von IPv6 zu erhalten. Daraus entstand ein Sonderfall, eine gemischte Schreibweise der alten IPv4 Adressen.
::FFFF:192.168.1.1 oder
0:0:0:0:0:FFFF:192.168.1.1
Ganze Gruppen von Nullen können durch eine Null ersetzt werden und
einmal in der Adresse können aufeinanderfolgende Gruppen von Nullen
durch zwei Doppelpunkte abgekürzt werden.
Somit sieht die vorherige Adresse so aus:
0000:0000:0000:0000:0000:009A:CE21:0101 oder
::9A:CE21:101
0000:0000:0005:0000:0000:0000:AE23:0012 oder
0:0:5:0:0:0:AE23:12 oder
0:0:5::AE23:12 oder
::5:0:0:0:AE23:12
IPv6-Adressen werden werden häufig aus zwei Teilen erstellt, der vordere Teil definiert das Netz, während der hintere local definert wird.
4743:0:0:0:3:0:0:0/40 oder
4743::3:0:0:0/40 oder
4743:0:0:0:3::/40
der linke Teil (40 Bit) definert das Netz (Präfix).
an den ersten Bits einer Adresse lässt sich deren Typ erkennen. (Format Präfix)
| Präfix | Verwendung |
|---|---|
| 0000 001 | NSAP Adresse |
| 0000 010 | IPX Adresse |
| 001 | global, eindeutige Adresse |
| 1111 1110 10 | auf eine Verbindung begrenzte Adresse (Link-local-Adresse) |
| 1111 1110 11 | auf eine Einrichtung begrenzte Adresse |
| 1111 1111 | Multicast |
Eine weitere Kategorie bilden die Multicast-Adressen (FF...), die in verschiedene Unterkategorien eingeteilt werden. Es wurden auch einige Multicast-Adressen für das protokoll-eigene Netzwerkmanagement festgelegt. So können zum Beispiel mit FF02::2 alle Router auf der lokalen Verbindung angesprochen werden, mit FF02::1 alle Hosts auf der Verbindung.
unter Windows wird mit dem angehängten % Zeichen die InterfaceID mit angegeben.
fe80::207:e9ff:fe0f:7e77%6
Diese Adressen, sind auf einen physikalischen Raum beschränkt nur innerhalb eines LAN kann man damit kommunizieren. Pakete mit dieser Zieladresse werden nicht über Router hinweg transportiert. Netzwerkdienste wie WEB oder FTP funktionieren damit allein noch nicht, der Rechner benötigt dafür noch eine IPv6 Adresse mit globalem Gültigkeitsbereich (Global Scope). Eine Linklocal-Adresse setzt sich folgendermassen zusammensetzen:
| 10 Bit | 54 Bit | 64 Bit |
| 1111 1110 10 | 00 .. 00 | MAC - Adresse der NIC auf 64 Bit erweitert |
fe80::/64 ist der Präfix, gefolgt von 64Bit die der Host aus der Hardware-Adresse der Netzwerkkarte usammensetzt (MAC-Adresse).
Da alle Karten im Netz bei der Link-Local-Adresse den gleichen Präfix haben (fe80::/64), muß man die Schnittstelle immer mit angeben, da der Rechner sonst nicht weiß über welche Schnittstelle er kommunizieren soll. Beispiel für einen Kommunikationstest mit Linux und Windows
Linux> ping6 -l eth0 fe80::207:e9ff:fe0f:7e77 Windows> ping -6 fe80::207:e9ff:fe0f:7e77%6
Prinzip der Erweiterung der MAC-Adresse (48 Bit) auf die gewünschten 64 Bit
Die global eindeutige MAC-Adr wird in der Mitte geteielt in 2 x 3 Byte, die
ersten 3 Byte bilden den Anfang der neuen Adresse, dann folgen 2 Byte mit
festem Inhalt FF-FE (hex), anschliessend die letzten 3 Byte der MAC
00 07 E9 0D 7C 27 ( MAC einer Intel Nic)
daraus ergibt sich folgende 64 Bit Adresse
0007:E9FF:FE0D:7C27
Besondere Beachtung verdient noch das zweit niedrigsten Bit im ersten Byte
der Adresse. Mit einer 0 wird angezeigt, das die Adresse in einem bestimmten
Kontext eindeutig ist, während mit einer 1 eine global Eindeutigkeit
angezeigt wird. Da die Adresse aus einer MAC erstellt wird muss man an dieser
Stelle eine 1 setzen, wenn diese Adresse aus frei gewählten Bestandteilen
erstellt wurde, muss man eine 0 setzen.
Das bedeuted man muss zum ersten Byte noch 0000 0010 dazu Addieren.
0007:E9FF:FE0D:7C27
+000 0010 (nur bei global Eindeutigen Adressen)
= 0207:E9FF:FE0D:7C27
Das ergibt eine Link-local-Adresse:
FE80:0000:0000:0000:0207:E9FF:FE0D:7C27 oder
FE80::207:E9FF:FE0D:7C27
Side-local-Adresse
| 10 Bit | 38 Bit | 16 Bit | 64 Bit |
| 1111 1110 11 | 00 .. 00 | Subnet-ID | eindeutige Adresse |
FEC0:0000:0000:1000:2340:0000:0000:0001
1000 - Subnet-ID
2340:0000:0000:0001 - eindeutige Adresse
Nach RFC4193 bietet ähnliche Funktionen wie private IPv4 Adressen, diese Adressen sollen im unterschied zu IPv4 weltweit eindeutig sein und sind nur für die lokale Kommunikation gedacht.
FC00::/8 - der Prafix zeigt global zugewiesener ULAs durch RIPE an
FD00::/8 - der Präfix zeigt lokal generierte ULAs an
nach diesen 8Bits für FC oder FD folgen 40Bits für eine eindeutige Side-ID, dann kommen 16Bit für die Subnet-ID welche ein Netz innerhalb der Side angibt und zum Schluss 64Bit für das Interface. Router sollen diese Adressen nur innerhalb des Standortes (Side) oder Firmennetzwerk weiterleiten, jedoch nicht im globalen Internet. ULAs die mit FD beginnen sind nur aller Wahrscheinlichkeit weltweit eindeutig, da diese durch ein Script generiert werden.
für die ersten IPv6 versuche kann man auch den Präfix 2001:DB8::/32 benutzen, der nach RFC3849 für Dokumentationszwecke gedacht ist.
IPv6 nutzt die Stateless-Auto-Configuration, bei der ein Router einem Host den Adress-Präfix mitteilt der innerhalb des LANs benutzt wird. Mit Hilfe der Link-Localen-Adresse sendet der Host an die Multicast-Adresse ff02::2 (alle Router) eine Bitte ihm den IPv6-Präfix mitzuteilen. Hat der Host den im LAN benutzen Präfix erhalten, bildet er daraus und aus der Hardware-Schnittstelle die IPv6 Adresse und prüft danach ob diese im LAN auch wirklich nicht schon verwendet wird. Ist die Adresse frei wird diese der Schnittstelle zugewiesen und aktiviert. Ein Rechner der als Router arbeitet und den Präfix verteilen soll benötigt immer eine feste IP-Adresse.
z.B. 2001:db8::1
Globale Adressen
Aussehen einer globalen Adresse (Hirarchieche Struktur)
| 3 | 13 Bit | 8 Bit | 24 Bit | 16 Bit | 64 Bit |
| 001 | TLA | reserviert | NLA | SLA | lokal |
TLA - Top Level Aggregation (Superprovider, Backbones)
NLA - Next Level Aggregation (Internet Provider)
SLA - Site Level Aggregation (Firma)
lokal - Interface (Router, Nic)
Der Superprovider verteielt Adressen an den Internet-Provider, der diese
dann an seine Kunden weitergibt. So ist es auch möglich, Bereiche in
Routern zusammenzufassen
| Anycast-Adresse | Verwendung |
| lokales Präfix ::0 | alle Router in einem Teilnetz |
Mit der Anycast-Adresse kann man mehrere Enderäte unter einer Adresse ansprechen. Die Adressen sind von normalen Unicast-Adressen nicht zu unterscheiden, deshalb muss man die Funktionen eines Anycast beim jeweiligen Gerät einstellen. z.B. bei Routern, wenn mehrere Geräte über die gleiche Anycast-Adresse erreichbar sind. Das ermöglicht z.B. eine Lastenverteilung, oder Sicherung gegen Ausfall
Multicast eignet sich zum Verteilen von Daten, wie Video oder Audio an viele
Empfänger. Durch die Multicast-Adressen werden die Broadcast zum auffinden
von Diensten von IPv4 im Netzwerk abgelöst.
Aufbau einer Multicast-Adresse
| 8 Bit | 4 Bit | 4 Bit | 112 Bit |
| 1111 1111 | Typ | Bereich | Gruppe |
2548::58:854:1012:8532 ergibt die Multicast-Adresse
FF02::1:FF12:8532
Die so genannte "Solicited Node" belegt den Bereich FF02::1:FF00:0
bis FF02::1:FFFF:FFFF.
Ein Gerät muss mit jeder ihm zugeteielten Uni- oder Anycast-Adresse
eine Multicast-Adresse ermitteln
| Multicast-Adresse | Verwendung |
| Adresse mit Gültigkeit innerhalb des lokalen Gerätes | |
|---|---|
| FF01::1 | alle Anschlüsse (Interfaces) |
| FF01::2 | alle Router |
| Adresse mit Gültigkeit innerhalb der lokale Verbindung | |
| FF02::1 | alle Geräte |
| FF02::2 | alle Router |
| FF02::1:1 | alle Anschlüsse |
| FF02::1:2 | alle DHCP-Agenten |
| FF02::1:FFxx:xxxx | automatisch generierte Adresse |
| Adresse mit Gültigkeit innerhalb des lokale Bereiches | |
| FF05::2 | alle Router |
| FF05::3 | alle DHCP-Server |
| FF05::1:3 | alle DHCP-Server |
| FF05::1:4 | alle DHCP-Relais |
| FF05::1:1000 bis FF05::1:13FF | Service Location |
| Adresse mit Gültigkeit innerhalb beliebiger Bereiches | |
| FF0x:: | reserviert |
| FF0x::100 | VMTP-Manager |
| FF0x::101 | NTP (Network Time Protokoll) |
| FF0x::118 | Microsoft-DS |
| keine vollständige Liste ! | es sind noch viel mehr Adressen definiert |
| 3 | 13 Bit | 32 Bit | 16 Bit | 64 Bit |
| 001 | 1FFE | 6Bone | Anwender | lokal |
| 96 Bit | 32 Bit |
| 0 | IPv4 |
zusätzlich zu dieser IPv4 Adresse wird noch eine Link-local-Adresse zur Verwaltung des Tunnels (FE80::IPv4) gebildet. In dei Routing-Tabelle noch 0000::/96 eintragen, so werden alle Pakete an den Treiber für den Tunnel weitergeleitet.
| 16 Bit | 32 Bit | 16 Bit | 64 Bit |
| 2002 | IPv4-Adresse | Subnetz | lokal |
6to4 Tunnel wird über das IP-Protokoll 41 aufgebaut.
Für einen Teredo Tunnel wird der UDP Port 3544 genutzt.
Die RFC beschreibt wie unter IPv6 regelmäßig ein zufälliger Interface Identifier (hinteren 64Bit der IP-Adresse) neu erzeugt wird. Das Verfahren soll das wiederfinden des Gerätes im Internet verhindern (vergleichbar mit einer Dynamischen IP Adresse).
Ist bei WinXP/Server 2003, Vista/Server2008 und Server2008R2/Win7 per default aktiv. Bei OS X, Linux kann es aktiviert werden.
- OpenSuSE Datei /etc/sysctl.conf um den Eintrag erweitern
net.ipv6.conf.<IF>.use_tempaddr=2
<IF> steht dabei für den Namen der Schnittstelle eth0 u.a.
- Ubuntu Datei /etc/sysctl.conf Eintrag
net.ipv6.conf.default.use_tempaddr=2
- Mac OS X Datei /etc/sysctl.conf Eintrag
net.inet6.ip6.use_tempaddr=1
oder temporär mit
sudo -w net.inet6.ip6.use_tempaddr=1
- MAC Adresse des Interface
| Herstellerkennung 24Bit | Adapterkennung 24Bit | |||||
|---|---|---|---|---|---|---|
| Hex | XX |
XX |
XX |
YY |
YY |
YY |
| Dezimal | xxxxxx00 |
xxxxxxxx |
xxxxxxxxx |
yyyyyyyy |
yyyyyyyy |
yyyyyyyy |
- Bit 7 wird umgekehrt und in der Mitte der MAC wird ff:fe eingefügt
| Dezimal | xxxxxx10 |
xxxxxxxx |
xxxxxxxx |
11111111 |
11111110 |
yyyyyyyy |
yyyyyyyy |
yyyyyyyy |
daraus ergibt sich der Interface Identifier (Hex) XZXX:XXff:feYY:YYYY
!! Wenn Privacy Extension nicht aktiv ist, wird der Interface Identifier immer mit diesem Verfahren zusammengesetzt. So kann die Gegenstelle sogar den Hersteller des Gerät identifizieren, (da er die MAC Adresse kennt) mit dem es kommuniziert.