⌨️Befehle

Die wichtigsten Linux-Befehle rund um IPv6 mit Erklärung und Beispielausgabe. Alle Adressen stammen aus dem Dokumentationsbereich.

🧮sipcalc im Browser

$ sipcalc
-[ipv6 : 2001:db8:1:2::/64] - 0

[IPV6 INFO]
Expanded Address        - 2001:0db8:0001:0002:0000:0000:0000:0000
Compressed address      - 2001:db8:1:2::
Subnet prefix (masked)  - 2001:db8:1:2:0:0:0:0/64
Address ID (masked)     - 0:0:0:0:0:0:0:0/64
Prefix address          - ffff:ffff:ffff:ffff:0:0:0:0
Prefix length           - 64
Address type            - Dokumentation (2001:db8::/32)
Network range           - 2001:0db8:0001:0002:0000:0000:0000:0000 -
                          2001:0db8:0001:0002:ffff:ffff:ffff:ffff

Nachgebaut im Browser – das Original gibt als Typ z. B. „Aggregatable Global Unicast Addresses“ aus, hier steht der deutsche Name aus der Adresstypen-Seite.

📋Spickzettel

ip -6 addr show dev eth0Adressen

Alle IPv6-Adressen des Interfaces. „mngtmpaddr“ = Vorlage für temporäre Adressen, „temporary“ = Privacy-Adresse (RFC 8981), „dynamic“ = per RA/DHCPv6 mit Ablaufzeit.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:db8:1:2:9c3e:15a7:4b20:d1f8/64 scope global temporary dynamic
       valid_lft 85988sec preferred_lft 13988sec
    inet6 2001:db8:1:2:200:5eff:fe00:5301/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 85988sec preferred_lft 13988sec
    inet6 fe80::200:5eff:fe00:5301/64 scope link
       valid_lft forever preferred_lft forever
ip -6 addr add 2001:db8:1:2::10/64 dev eth0Adressen

Statische Adresse hinzufügen (nicht dauerhaft – nach Neustart weg). Löschen mit „ip -6 addr del …“.

ip -6 routeRouten

IPv6-Routingtabelle. „proto ra“ = aus einem Router Advertisement gelernt; das Gateway ist fast immer eine Link-Local-Adresse.

2001:db8:1:2::/64 dev eth0 proto ra metric 100 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::1 dev eth0 proto ra metric 100 pref medium
ip -6 route get 2001:db8:ffff::1Routen

Welche Route und welche Absenderadresse würde der Kernel für dieses Ziel wählen (Source Address Selection, RFC 6724)?

2001:db8:ffff::1 from :: via fe80::1 dev eth0 proto ra src 2001:db8:1:2:9c3e:15a7:4b20:d1f8 metric 100 pref medium
ip -6 neighNachbarn

Neighbor Cache – das IPv6-Gegenstück zur ARP-Tabelle. Zustände: INCOMPLETE, REACHABLE, STALE, DELAY, PROBE, FAILED.

fe80::1 dev eth0 lladdr 00:00:5e:00:53:fe router REACHABLE
2001:db8:1:2:200:5eff:fe00:5302 dev eth0 lladdr 00:00:5e:00:53:02 STALE
ping -6 2001:db8:ffff::1Diagnose

ICMPv6 Echo Request (Typ 128) / Echo Reply (Typ 129). Bei Link-Local-Zielen ist die Zone Pflicht: ping fe80::1%eth0.

PING 2001:db8:ffff::1 (2001:db8:ffff::1) 56 data bytes
64 bytes from 2001:db8:ffff::1: icmp_seq=1 ttl=58 time=11.9 ms
64 bytes from 2001:db8:ffff::1: icmp_seq=2 ttl=58 time=12.1 ms
ping -6 ff02::1%eth0Diagnose

Alle Knoten auf dem Link antworten – praktisch, um Nachbarn zu finden (füllt den Neighbor Cache).

PING ff02::1%eth0 (ff02::1%eth0) 56 data bytes
64 bytes from fe80::200:5eff:fe00:5301%eth0: icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from fe80::1%eth0: icmp_seq=1 ttl=64 time=0.412 ms
traceroute6 2001:db8:ffff::1Diagnose

Weg zum Ziel: steigendes Hop Limit, jeder Router antwortet mit ICMPv6 Time Exceeded (Typ 3).

traceroute to 2001:db8:ffff::1 (2001:db8:ffff::1), 30 hops max, 80 byte packets
 1  2001:db8:1:2::1 (2001:db8:1:2::1)  0.482 ms  0.431 ms  0.420 ms
 2  2001:db8:100::1 (2001:db8:100::1)  8.912 ms  8.877 ms  8.850 ms
 3  2001:db8:ffff::1 (2001:db8:ffff::1)  11.904 ms  11.861 ms  11.843 ms
rdisc6 eth0Diagnose

Schickt eine Router Solicitation und zeigt das Router Advertisement lesbar an (Paket ndisc6).

Soliciting ff02::2 (ff02::2) on eth0...

Hop limit                 :           64 (      0x40)
Stateful address conf.    :           No
Stateful other conf.      :           No
Router preference         :       medium
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 Prefix                   : 2001:db8:1:2::/64
  On-link                 :          Yes
  Autonomous address conf.:          Yes
  Valid time              :        86400 (0x00015180) seconds
  Pref. time              :        14400 (0x00003840) seconds
 Recursive DNS server     : 2001:db8:1:2::53
  DNS server lifetime     :         1800 (0x00000708) seconds
 MTU                      :         1500 bytes (valid)
 Source link-layer address: 00:00:5E:00:53:FE
 from fe80::1
ndisc6 2001:db8:1:2:200:5eff:fe00:5302 eth0Nachbarn

Schickt eine Neighbor Solicitation für die Zieladresse und zeigt die MAC aus dem Neighbor Advertisement.

Soliciting 2001:db8:1:2:200:5eff:fe00:5302 (2001:db8:1:2:200:5eff:fe00:5302) on eth0...
Target link-layer address: 00:00:5E:00:53:02
 from 2001:db8:1:2:200:5eff:fe00:5302
sipcalc 2001:db8:1:2::/64Planung

Präfix-Rechner auf der Kommandozeile – die Ausgabe unten rechnet diese App selbst nach (Feld oben).

dig AAAA www.example.org +shortDNS

IPv6-Adresse eines Namens abfragen (AAAA-Eintrag, „quad A“).

dig -x 2001:db8::1 +shortDNS

Rückwärtsauflösung – dig baut den ip6.arpa-Namen selbst (1.0.0.0…8.b.d.0.1.0.0.2.ip6.arpa).

ss -6 -tlnpDiagnose

Offene TCP-Ports, die auf IPv6 lauschen. „[::]:22“ = auf allen IPv6-Adressen.

State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0      128             [::]:22           [::]:*
LISTEN 0      511      [::1]:3000              [::]:*
tcpdump -ni eth0 icmp6Diagnose

NDP live mitlesen: Router Solicitation/Advertisement und Neighbor Solicitation/Advertisement.

IP6 fe80::200:5eff:fe00:5301 > ff02::2: ICMP6, router solicitation, length 16
IP6 fe80::1 > ff02::1: ICMP6, router advertisement, length 88
IP6 2001:db8:1:2:200:5eff:fe00:5301 > ff02::1:ff00:5302: ICMP6, neighbor solicitation, who has 2001:db8:1:2:200:5eff:fe00:5302, length 32
IP6 2001:db8:1:2:200:5eff:fe00:5302 > 2001:db8:1:2:200:5eff:fe00:5301: ICMP6, neighbor advertisement, tgt is 2001:db8:1:2:200:5eff:fe00:5302, length 32
sysctl net.ipv6.conf.eth0.use_tempaddr=2Einstellungen

Privacy Extensions (RFC 8981): 2 = temporäre Adressen erzeugen und für ausgehende Verbindungen bevorzugen.

sysctl net.ipv6.conf.eth0.addr_gen_mode=3Einstellungen

Interface-ID: 0 = EUI-64, 1 = keine Link-Local, 2 = stable privacy (RFC 7217, mit stable_secret), 3 = stable privacy mit zufälligem Secret.

sysctl net.ipv6.conf.eth0.accept_raEinstellungen

Werden Router Advertisements ausgewertet? 0 = nein, 1 = ja (wenn kein Forwarding), 2 = ja, auch mit Forwarding (Router mit SLAAC auf dem WAN).

Beispielausgaben gekürzt; Zeiten, Lebensdauern und Spaltenbreiten weichen je nach System und Version ab.

📚 Quellen: man ip-address, ip-route, ip-neighbour (iproute2) · man ping (iputils) · man rdisc6, ndisc6 (ndisc6) · Linux ip-sysctl.rst