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