In einem ersten Versuch soll ein Linux-System als IPv6-Router agieren. Dazu wird ein kleines Testnetz aufgebaut, in dem Clients mit verschiedenen Betriebssystemen eingesetzt werden und mit Hilfe eines Domino LAN-Analyzers der Netzverkehr aufgezeichnet und analysiert werden kann.
Der Aufbau des Netzes ist in Abbildung 4.1 ersichtlich. Es besteht aus zwei Netzsegmenten, welche über den Linux-Router verbunden sind. Das eine Segment (Subnetz B) besteht aus dem zweiten Linux-PC, am anderen (Subnetz A) sind über einen Ethernet-Hub die Windows- und Mac OS X-Clients angeschlossen. Ebenfalls am Hub angeschlossen ist der Domino LAN-Analyzer, der zur Aufzeichnung des Netzverkehrs dient.
Der Windows-PC ist als Dualboot-System mit einer Windows 2000 Professional sowie einer Windows 2003 Advanced Server Installation aufgesetzt.
Um die IPv6-Adressen gemäss Abbildung 4.1 manuell zu vergeben, sind auf den verschiedenen Geräten folgende Schritte vorzunehmen:
# ip -6 addr add fec0::1/64 dev eth0 # ip -6 addr add fec1::1/64 dev eth1
Gegebenenfalls müssen die Interfaces noch aktiviert werden:
# ip link set dev eth0 up # ip link set dev eth1 up
Genauso wird auch der Linux-Client eingerichtet. Zusätzlich muss hier noch eine Route auf das Subnetz fec0::/64 gesetzt werden:
# ip -6 addr add fec1::2/64 dev eth1 # ip -6 route add fec0::/64 via fec1::1
Auf dem Linux-Router hingegen sind keine zusätzlichen Routing-Einträge nötig, dafür muss hier noch mit überprüft werden, ob IP-Forwarding bereits aktiv ist:
#cat /proc/sys/net/ipv6/conf/all/forwarding
Wenn dieser Befehl eine 1 zurückliefert, ist IP-Forwarding aktiviert. Andernfalls muss dies mit echo 1 > /proc/sys/net/ipv6/conf/all/forwarding nachgeholt werden.
...
\textbf{Interface 8} (site 1): LAN-Verbindung
uses Neighbor Discovery
link-level address: 00-01-02-8f-f8-d8
preferred address fe80::201:2ff:fe8f:f8d8, infinite/infinite
multicast address ff02::1, 1 refs, not reportable
multicast address ff02::1:ff8f:f8d8, 1 refs, last reporter
multicast address ff02::1:ff00:3, 1 refs, last reporter
link MTU 1500 (true link MTU 1500)
current hop limit 128
reachable time 43500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 1
Interface 2 (site 0): Tunnel Pseudo-Interface
...
In diesem Fall lautet die Interface-Nummer 8. Nun muss zuerst die IPv6-Adresse aktiviert und anschliessend dem Interface 8 zugeordnet werden. Danach kann die Route auf das zweite Subnetz via den Linux-Router gesetzt werden:
C:\> ipv6 adu 8/fec0::3 C:\> ipv6 rtu fec0::/64 8 C:\> ipv6 rtu fec1::/64 8/fec0::1
netsh interface ipv6>show interface
Der aktive Status wird abgefragt...
Idx Met MTU Status Name
--- ---- ----- ------------ -----
\textbf{5} 0 1500 Verbunden LAN-Verbindung
3 1 1280 Verbunden 6to4 Pseudo-Interface
2 1 1280 Verbunden Automatic Tunneling Pseudo-Interface
1 0 1500 Verbunden Loopback Pseudo-Interface
Die gesuchte Interface-Nummer lautet also 5. Nun kann die IPv6-Adresse und die Routen auf die beiden Subnetze gesetzt werden:
netsh interface ipv6>add address 5 fec0::3 netsh interface ipv6>add route fec0::/64 5 netsh interface ipv6>add route fec1::/64 5 fec0::1
# ifconfig en0 inet6 fec0::2/64 # route add -net -inet6 fec1:: -prefixlen 64 -gateway fec0::1
Bei Inbetriebnahme der Netzwerkinterfaces laufen auf IPv6-Ebene einige Vorgänge ab, die hier nun näher betrachtet werden. Diese Phase läuft nicht bei allen Betriebssystemen genau gleich ab, ist jedoch grundsätzlich vergleichbar. Für diesen Test wird der Windows-PC mit Windows 2000 betrieben.
Es werden nun die einzelnen Ethernet-Frames genauer betrachtet, welche während der Inbetriebnahme der einzelnen Knoten über das Subnetz A (vgl. Abb. 4.1) ausgetauscht und vom Domino LAN-Analyzer aufgezeichnet wurden.
Das erste Frame enthält ein MLDv2 Paket. Es dient dazu, etwaigen Multicast-Routern im Netzsegment die Präsenz eines neuen Hosts zu melden. Da es sich bei MLDv2 noch nicht um einen offiziellen Standard handelt, können die gängigen Analyse-Programme die Pakete noch nicht entsprechend aufschlüsseln. Man erkennt aber im Datenteil, dass die beiden Multicast-Adressen ff02::1:ff87:1754 und ff02::2 enthalten sind (Zeilen 25-28). Der Linux-Host meldet sich also korrekt mit seiner Link-Local-Solicited-Node-Multicast-Adresse sowie als Router im lokalen Segment.
Ethernet II
Destination: 33:33:00:00:00:16 (33:33:00:00:00:16)
Source: 00:01:02:87:17:54 (BBN_87:17:54)
Type: IPv6 (0x86dd)
Trailer: 953641EC
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 56
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
Source address: ::
Destination address: ff02::16
Hop-by-hop Option Header
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
Router alert: MLD (4 bytes)
PadN: 2 bytes
Internet Control Message Protocol v6
Type: 206 (Unknown) ### MLDv2 (Listener Report)
Code: 0 (Unknown)
Checksum: 0x1595 (correct)
Data (40 bytes)
0000 04 00 00 00 \textbf{ff 02 00 00 00 00 00 00 00 00 00 01}
0010 \textbf{ff 87 17 54} 04 00 00 00 \textbf{ff 02 00 00 00 00 00 00}
0020 \textbf{00 00 00 00 00 00 00 02}
Als nächstes folgt die Duplicate Address Detection gemäss RFC 2462 (21). Da das ARP in IPv6 durch entsprechende ICMPv6-Meldungen abgelöst wurde, muss vor Inbetriebnahme der Link-Local-Adresse sichergestellt werden, dass diese im lokalen Netz noch nicht verwendet wird. Dazu sendet der Host eine Multicast ICMPv6-Nachricht an die Solicited-Node-Multicast-Adresse ff02::1:ff87:1754 (Zeile 14), die er aus seiner MAC-Adresse bildet, und sucht über eine Neighbor Solicitation Nachricht andere Hosts mit der selben Link-Local-Adresse (Zeile 19). Erhält er innerhalb einer gewissen Zeitspanne keine Antwort auf diese Anfrage, so kann er annehmen, dass die Adresse verfügbar ist.
Gut zu erkennen ist auch, wie die IPv6-Multicast-Adresse in die entsprechende Multicast-MAC-Adresse 33:33:ff:87:17:54 übersetzt wird (Zeile 2).
Ethernet II
Destination: \textbf{33:33:ff:87:17:54} (33:33:ff:87:17:54)
Source: 00:01:02:87:17:54 (BBN_87:17:54)
Type: IPv6 (0x86dd)
Trailer: AB5EB6EC
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 24
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: ::
Destination address: \textbf{ff02::1:ff87:1754}
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0x4970 (correct)
\textbf{Target: fe80::201:2ff:fe87:1754}
Für die Site-Local-Adresse wird ebenfalls wieder eine Duplicate Address Detection durchgeführt, die genau gleich wie in Frame 2 aussieht.
Speziell an Windows 2000 ist, dass es standardmässig ein 6-over-4 Virtual Interface konfiguriert, für welches es eine Link-Local-Adresse vergibt, die es aus der IPv4-Adresse des Links bildet (hier: fe80::a055:a994, Zeile 31). Für diese Adresse sendet es eine Router Solicitation Nachricht (Frame 6) um etwaige Router im lokalen Netz zu einer Router Advertisement Nachricht zu bewegen. Gleich danach versendet es eine weitere Router Solicitation Nachricht (Frame 7) für die aus der MAC-Adresse gebildeten Link-Local-Adresse.
Alle IP-Pakete des 6-over-4 Virtual Interface sind 6-over-4 Pakete, d. h. die IPv6-Pakete werden mit einem zusätzlichen IPv4-Header versehen, der als Protokoll IPv6 (0x29) angibt (Zeile 20) und mappt die IPv6-Multicast-Adressen auf entsprechende IPv4-Multicast-Adressen (Zeile 23).
Windows 2000 führt keine Duplicate Address Detection durch, potentielle Adresskonflikte werden somit nicht erkannt und könnten zu Problemen in der Netzwerkkommunikation führen.
Ethernet II
Destination: 01:00:5e:40:00:02 (01:00:5e:40:00:02)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IP (0x0800)
Trailer: A3DF1E5B
Internet Protocol, Src Addr: 160.85.169.148, Dst Addr: 239.192.0.2
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 76
Identification: 0x031f
Flags: 0x00
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 16
\textbf{Protocol: IPv6 (0x29)}
Header checksum: 0x6dbe (correct)
Source: 160.85.169.148 (160.85.169.148)
\textbf{Destination: 239.192.0.2 (239.192.0.2)}
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 16
Next header: ICMPv6 (0x3a)
Hop limit: 255
\textbf{Source address: fe80::a055:a994}
Destination address: ff02::2
Internet Control Message Protocol v6
Type: 133 (Router solicitation)
Code: 0
Checksum: 0xe859 (correct)
ICMPv6 options
Type: 1 (Source link-layer address)
Length: 8 bytes (1)
Link-layer address: 00:00:a0:55:a9:94
Ethernet II
Destination: 33:33:00:00:00:02 (33:33:00:00:00:02)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IPv6 (0x86dd)
Trailer: 9EA5D3E5
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 16
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: fe80::201:2ff:fe8f:f8d8
Destination address: ff02::2
Internet Control Message Protocol v6
Type: 133 (Router solicitation)
Code: 0
Checksum: 0x845c (correct)
ICMPv6 options
Type: 1 (Source link-layer address)
Length: 8 bytes (1)
Link-layer address: 00:01:02:8f:f8:d8
Als nächstes gibt auch Windows 2000 mit Hilfe des Multicast Listener Discovery Mechanismus seine Multicast-Adressen im Netz bekannt, dies wiederum für die 6-over-4-Adresse sowie die eigentliche Link-Local-Adresse.
Ethernet II
Destination: 01:00:5e:40:a9:94 (01:00:5e:40:a9:94)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IP (0x0800)
Trailer: B2966893
Internet Protocol, Src Addr: 160.85.169.148, Dst Addr: 239.192.169.148
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 92
Identification: 0x0326
Flags: 0x00
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 16
Protocol: IPv6 (0x29)
Header checksum: 0xc414 (correct)
Source: 160.85.169.148 (160.85.169.148)
Destination: 239.192.169.148 (239.192.169.148)
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 32
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
Source address: fe80::a055:a994
Destination address: ff02::1:ff55:a994
Hop-by-hop Option Header
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
Router alert: MLD (4 bytes)
PadN: 2 bytes
Internet Control Message Protocol v6
Type: 131 (Multicast listener report)
Code: 0
Checksum: 0xe464 (correct)
Maximum response delay: 0
Multicast Address: ff02::1:ff55:a994
Ethernet II
Destination: 33:33:ff:8f:f8:d8 (33:33:ff:8f:f8:d8)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IPv6 (0x86dd)
Trailer: E898FEC2
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 32
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
Source address: fe80::201:2ff:fe8f:f8d8
Destination address: ff02::1:ff8f:f8d8
Hop-by-hop Option Header
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
Router alert: MLD (4 bytes)
PadN: 2 bytes
Internet Control Message Protocol v6
Type: 131 (Multicast listener report)
Code: 0
Checksum: 0x92e9 (correct)
Maximum response delay: 0
Multicast Address: ff02::1:ff8f:f8d8
Die beiden Frames 10 und 11 sind identisch zu den Router Solicitation Nachrichten in den Frames 6 und 7.
Nach der Konfiguration der Site-Local-Adresse fec0::3 wird wieder eine MLD-Nachricht abgesetzt um die zusätzliche Multicast-Adresse im Netz bekanntzugeben.
Ethernet II
Destination: 33:33:ff:00:00:03 (33:33:ff:00:00:03)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IPv6 (0x86dd)
Trailer: 568010C3
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 32
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
Source address: fe80::201:2ff:fe8f:f8d8
Destination address: ff02::1:ff00:3
Hop-by-hop Option Header
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
Router alert: MLD (4 bytes)
PadN: 2 bytes
Internet Control Message Protocol v6
Type: 131 (Multicast listener report)
Code: 0
Checksum: 0x85b3 (correct)
Maximum response delay: 0
Multicast Address: ff02::1:ff00:3
Praktisch zeitgleich wird nun für die Site-Local-Adresse eine Duplicate Address Detection durchgeführt.
Ethernet II
Destination: 33:33:ff:00:00:03 (33:33:ff:00:00:03)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IPv6 (0x86dd)
Trailer: 36A3FF75
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 24
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: ::
Destination address: ff02::1:ff00:3
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0x7be1 (correct)
Target: fec0::3 (fec0::3)
Frame 14 ist identisch mit Frame 12 (Multicast Listener Report für die Site-Local-Multicast-Adresse ff02::1:ff00:3).
Auch Mac OS X beginnt als erstes mit zwei Multicast Discovery Report Nachrichten ohne zuerst das Ergebnis der Duplicate Address Discovery aus dem praktisch zeitgleich abgesetzten Frame 17 abzuwarten. Damit verhält sich auch Mac OS X nicht ganz regelkonform.
Ethernet II
Destination: 33:33:ff:4e:5c:8c (33:33:ff:4e:5c:8c)
Source: 00:03:93:4e:5c:8c (Apple_4e:5c:8c)
Type: IPv6 (0x86dd)
Trailer: 79099CDE
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 32
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
Source address: fe80::203:93ff:fe4e:5c8c
Destination address: ff02::1:ff4e:5c8c
Hop-by-hop Option Header
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
PadN: 2 bytes
Router alert: MLD (4 bytes)
Internet Control Message Protocol v6
Type: 131 (Multicast listener report)
Code: 0
Checksum: 0xd78f (correct)
Maximum response delay: 0
Multicast Address: ff02::1:ff4e:5c8c
Dieses Frame führt die Duplicate Address Detection für die Link-Local-Adresse durch.
Ethernet II
Destination: 33:33:ff:4e:5c:8c (33:33:ff:4e:5c:8c)
Source: 00:03:93:4e:5c:8c (Apple_4e:5c:8c)
Type: IPv6 (0x86dd)
Trailer: 9DB1DD6C
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 24
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: ::
Destination address: ff02::1:ff4e:5c8c
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0x2e6f (correct)
Target: fe80::203:93ff:fe4e:5c8c (fe80::203:93ff:fe4e:5c8c)
Dieses ist eine Wiederholung der MLD-Nachricht aus Frame 15.
Auch bei der Inbetriebnahme der Site-Local-Adresse fec0::2 wird nicht das Ergebnis der Duplicate Address Detection abgewartet sondern gleich eine MLD-Nachricht für die entsprechende Multicast-Adresse ff02::1:ff00:2 abgesetzt. Da hier als Quelladresse jedoch die Link-Local-Adresse zum Einsatz kommt (Zeile 13), ist dies nicht sehr problematisch.
Ethernet II
Destination: 33:33:ff:00:00:02 (33:33:ff:00:00:02)
Source: 00:03:93:4e:5c:8c (Apple_4e:5c:8c)
Type: IPv6 (0x86dd)
Trailer: AE194134
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 32
Next header: IPv6 hop-by-hop option (0x00)
Hop limit: 1
\textbf{Source address: fe80::203:93ff:fe4e:5c8c}
Destination address: ff02::1:ff00:2
Hop-by-hop Option Header
Next header: ICMPv6 (0x3a)
Length: 0 (8 bytes)
PadN: 2 bytes
Router alert: MLD (4 bytes)
Internet Control Message Protocol v6
Type: 131 (Multicast listener report)
Code: 0
Checksum: 0x9140 (correct)
Maximum response delay: 0
Multicast Address: ff02::1:ff00:2
In diesem Frame folgt nun die Duplicate Address Detection für die neu zugewiesene Site-Local-Adresse.
Ethernet II
Destination: 33:33:ff:00:00:02 (33:33:ff:00:00:02)
Source: 00:03:93:4e:5c:8c (Apple_4e:5c:8c)
Type: IPv6 (0x86dd)
Trailer: DC51E31D
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 24
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: ::
Destination address: ff02::1:ff00:2
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0x7be3 (correct)
Target: fec0::2 (fec0::2)
Zum Schluss folgt nochmals eine zu Frame 19 identische MLD-Nachricht.
Als nächstes wird das selbe Netzwerk (Abb. 4.1) mit Autokonfiguration betrieben. Dazu wird der Linux-Router so konfiguriert, dass er entsprechende Routing Advertisement Nachrichten verschickt. Die Clients bekommen so automatisch eine IPv6-Adresse zugewiesen.
Auf dem Linux-Router muss eine Software installiert werden, welche das Routing Advertisement übernimmt. Dazu stehen für Debian 3.0 die Pakete Radvd (Router Advertisement Daemon) und Zebra (A GPL'd, BGP/OSPF/RIP capable routing daemon) zur Verfügung. Da für die späteren Versuche ein Routing Daemon benötigt wird, empfiehlt sich die Installation von Zebra (bei Debian mit apt-get install zebra).
Zebra muss erst für das Routing Advertisement konfiguriert werden. Ausserdem werden die IPv6-Adressen des Linux-Routers manuell konfiguriert. Dafür sind folgende Einträge in zebra.conf notwendig:
interface eth0
ipv6 address fec0::1/64
ipv6 nd send-ra
ipv6 nd prefix-advertisement fec0::/64
interface eth1
ipv6 address fec1::1/64
ipv6 nd send-ra
ipv6 nd prefix-advertisement fec1::/64
Mit dieser Konfiguration antwortet der Linux-Router auf beiden Ethernet-Interfaces auf Router Solicitation Anfragen und sendet periodisch Router Advertisements.
Nun muss noch sichergestellt werden, dass der Zebra Daemon auch wirklich gestartet wird. Dies geschieht über die Zeile zebra=yes in /etc/zebra/daemons. Danach wird Zebra mit /etc/inet.d/zebra restart neu gestartet.
Nachdem Zebra gestartet wird, versendet der Linux-Router sofort eine Router Advertisement Nachricht auf die Multicast-Adresse aller Hosts im Segment (Zeile 14), in welcher er den Präfix fec0:: (Zeile 39) mit der Präfix-Länge 64 (Zeile 31) anbietet.
Ethernet II
Destination: 33:33:00:00:00:01 (33:33:00:00:00:01)
Source: 00:01:02:87:17:54 (BBN_87:17:54)
Type: IPv6 (0x86dd)
Trailer: B6CF4EE0
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 56
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: fe80::201:2ff:fe87:1754
\textbf{Destination address: ff02::1}
Internet Control Message Protocol v6
Type: 134 (Router advertisement)
Code: 0
Checksum: 0xf510 (correct)
Cur hop limit: 64
Flags: 0x00
0... .... = Not managed
.0.. .... = Not other
..0. .... = Not Home Agent
...0 0... = Router preference: Medium
Router lifetime: 1800
Reachable time: 0
Retrans time: 0
ICMPv6 options
Type: 3 (Prefix information)
Length: 32 bytes (4)
\textbf{Prefix length: 64}
Flags: 0xc0
1... .... = Onlink
.1.. .... = Auto
..0. .... = Not router address
...0 .... = Not site prefix
Valid lifetime: 0x00278d00
Preferred lifetime: 0x00093a80
\textbf{Prefix: fec0::}
ICMPv6 options
Type: 1 (Source link-layer address)
Length: 8 bytes (1)
Link-layer address: 00:01:02:87:17:54
Nachdem auf dem Windows PC das LAN-Interface aktiviert wird, führt er zunächst die selben Schritte wie bei der manuellen Variante durch. Zunächst erfolgt ein Multicast Listener Report und gleich danach folgt eine Router Solicitation Nachricht:
Ethernet II
Destination: 33:33:00:00:00:02 (33:33:00:00:00:02)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IPv6 (0x86dd)
Trailer: 9EA5D3E5
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 16
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: fe80::201:2ff:fe8f:f8d8
Destination address: ff02::2
Internet Control Message Protocol v6
Type: 133 (Router solicitation)
Code: 0
Checksum: 0x845c (correct)
ICMPv6 options
Type: 1 (Source link-layer address)
Length: 8 bytes (1)
Link-layer address: 00:01:02:8f:f8:d8
Die Antwort des Linux-Routers (Router Advertisement) folgt unmittelbar:
Ethernet II
Destination: 33:33:00:00:00:01 (33:33:00:00:00:01)
Source: 00:01:02:87:17:54 (BBN_87:17:54)
Type: IPv6 (0x86dd)
Trailer: B6CF4EE0
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 56
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: fe80::201:2ff:fe87:1754
Destination address: ff02::1
Internet Control Message Protocol v6
Type: 134 (Router advertisement)
Code: 0
Checksum: 0xf510 (correct)
Cur hop limit: 64
Flags: 0x00
0... .... = Not managed
.0.. .... = Not other
..0. .... = Not Home Agent
...0 0... = Router preference: Medium
Router lifetime: 1800
Reachable time: 0
Retrans time: 0
ICMPv6 options
Type: 3 (Prefix information)
Length: 32 bytes (4)
Prefix length: 64
Flags: 0xc0
1... .... = Onlink
.1.. .... = Auto
..0. .... = Not router address
...0 .... = Not site prefix
Valid lifetime: 0x00278d00
Preferred lifetime: 0x00093a80
Prefix: fec0::
ICMPv6 options
Type: 1 (Source link-layer address)
Length: 8 bytes (1)
Link-layer address: 00:01:02:87:17:54
Der Windows PC bestimmt aus seiner MAC-Adresse und dem Präfix aus der Router Advertisement Nachricht seine Adresse und führt für diese eine Duplicate Address Detection durch:
Ethernet II
Destination: 33:33:ff:8f:f8:d8 (33:33:ff:8f:f8:d8)
Source: 00:01:02:8f:f8:d8 (BBN_8f:f8:d8)
Type: IPv6 (0x86dd)
Trailer: 9BC0E802
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 24
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: ::
Destination address: ff02::1:ff8f:f8d8
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0x8616 (correct)
Target: fec0::201:2ff:fe8f:f8d8 (fec0::201:2ff:fe8f:f8d8)
Die automatisch zugewiesene Adresse ist in der netsh-Konsole sichtbar:
netsh interface ipv6>show address
Der aktive Status wird abgefragt...
Schnittstelle 5: LAN-Verbindung
Adresstyp DAD-Status Gültigkeit Bevorzugt Adresse
--------- ---------- ------------ ------------ -----------------------------
Öffentlich Bevorzugt 29d23h59m47s 6d23h59m47s \textbf{fec0::201:2ff:fe8f:f8d8}
Verbindung Bevorzugt infinite infinite fe80::201:2ff:fe8f:f8d8
Der Mac OS X Client verhält sich genau gleich wie bei manueller Adress-Vergabe. Er meldet seine Link-Local-Adresse bei eventuellen Multicast-Routern und führt die Duplicate Address Detection durch. Erst nachdem der Router eine weitere Routing Advertisement Nachricht versendet (aufgrund der Router Solicitation des Windows 2003 PC), generiert er sich eine Adresse mit dem entsprechenden Präfix und führt auch für diese die Duplicate Address Detection durch.
Ethernet II
Destination: 33:33:ff:4e:5c:8c (33:33:ff:4e:5c:8c)
Source: 00:03:93:4e:5c:8c (Apple_4e:5c:8c)
Type: IPv6 (0x86dd)
Trailer: 1187C752
Internet Protocol Version 6
Version: 6
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 24
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: ::
Destination address: ff02::1:ff4e:5c8c
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0x2e2f (correct)
Target: fec0::203:93ff:fe4e:5c8c
In der Ausgabe von ifconfig ist die per Autokonfiguration generierte Adresse gut zu erkennen:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::203:93ff:fe4e:5c8c%en0 prefixlen 64 scopeid 0x4
inet6 \textbf{fec0::203:93ff:fe4e:5c8c} prefixlen 64 autoconf