IPv6/Adresse/Konfiguration: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
= Bestehende IPv6 Adressen anzeigen =
== Bestehende IPv6 Adressen anzeigen ==
Zuerst sollten sie überprüfen, ob und welche IPv6 Adressen bereits konfiguriert sind (etwa durch automatischer stateless Konfiguration).
Zuerst sollten sie überprüfen, ob und welche IPv6 Adressen bereits konfiguriert sind (etwa durch automatischer stateless Konfiguration).


Achtung: Adressen beginnend mit ”fec0” sind veraltet, hier aber noch der Vollständigkeit wegen gezeigt!
Achtung: Adressen beginnend mit ”fec0” sind veraltet, hier aber noch der Vollständigkeit wegen gezeigt!


== Verwendung von "ip" ==
=== Verwendung von "ip" ===
  # /sbin/ip -6 addr show dev <interface>
  # /sbin/ip -6 addr show dev <interface>
Beispiel für einen statisch konfigurierten Host:
Beispiel für einen statisch konfigurierten Host:
Zeile 11: Zeile 11:
  inet6 fe80::210:a4ff:fee3:9566/10 scope link
  inet6 fe80::210:a4ff:fee3:9566/10 scope link
  inet6 2001:0db8:0:f101::1/64 scope global
  inet6 2001:0db8:0:f101::1/64 scope global
  inet6 fec0:0:0:f101::1/64 scope site  
  inet6 fec0:0:0:f101::1/64 scope site
Just note that addresses beginning with ”fec0” are deprecated!
Just note that addresses beginning with ”fec0” are deprecated!


Zeile 17: Zeile 17:


Hier sehen Sie einige automatisch konfigurierte IP Adressen und deren Lebensdauer.
Hier sehen Sie einige automatisch konfigurierte IP Adressen und deren Lebensdauer.
  # /sbin/ip -6 addr show dev eth0  
  # /sbin/ip -6 addr show dev eth0
  3: eth0: <BROADCAST,MULTICAST,PROMISC,UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen
  3: eth0: <BROADCAST,MULTICAST,PROMISC,UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen
  ¬ 100  
  ¬ 100
  inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic  
  inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic
  valid_lft 16sec preferred_lft 6sec  
  valid_lft 16sec preferred_lft 6sec
  inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic  
  inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic
  valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10
  valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10
  ¬ scope link
  ¬ scope link


== Verwendung von "ifconfig" ==
=== Verwendung von "ifconfig" ===
  # /sbin/ifconfig <interface>
  # /sbin/ifconfig <interface>
Hier sehen Sie verschiedene IP Adressen mit unterschiedlichen Gültigkeitsbereichen (die Ausgabe wurde mit grep gefiltert)
Hier sehen Sie verschiedene IP Adressen mit unterschiedlichen Gültigkeitsbereichen (die Ausgabe wurde mit grep gefiltert)
Zeile 34: Zeile 34:
  inet6 addr: fec0:0:0:f101::1/64 Scope:Site
  inet6 addr: fec0:0:0:f101::1/64 Scope:Site


= Hinzufügen einer IPv6 Adresse =
== Hinzufügen einer IPv6 Adresse ==
Die Vorgehensweise beim Hinzufügen einer IPv6 Adresse ist vergleichbar mit dem "IP ALIAS"-Mechanismus bei IPv4 adressierten Interfaces.
Die Vorgehensweise beim Hinzufügen einer IPv6 Adresse ist vergleichbar mit dem "IP ALIAS"-Mechanismus bei IPv4 adressierten Interfaces.


== Verwendung von "ip" ==
=== Verwendung von "ip" ===
  # /sbin/ip -6 addr add <ipv6address>/<prefixlength> dev <interface>  
  # /sbin/ip -6 addr add <ipv6address>/<prefixlength> dev <interface>
Beispiel
Beispiel
  # /sbin/ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0  
  # /sbin/ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0


== Verwendung von "ifconfig" ==
=== Verwendung von "ifconfig" ===
  # /sbin/ifconfig <interface> inet6 add <ipv6address>/<prefixlength>
  # /sbin/ifconfig <interface> inet6 add <ipv6address>/<prefixlength>
Beispiel
Beispiel
  # /sbin/ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64  
  # /sbin/ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64


= IPv6 Adressen entfernen =
== IPv6 Adressen entfernen ==
Diese Funktion wird selten benötigt. Vorsicht ist beim entfernen nicht existenter IPv6 Adressen geboten, da ältere Kernel dieses Fehlverhalten manchmal mit einem Crash quittieren.
Diese Funktion wird selten benötigt. Vorsicht ist beim entfernen nicht existenter IPv6 Adressen geboten, da ältere Kernel dieses Fehlverhalten manchmal mit einem Crash quittieren.


== Verwendung von "ip" ==
=== Verwendung von "ip" ===
Anwendung:
Anwendung:
  # /sbin/ip -6 addr del <ipv6address>/<prefixlength> dev <interface>  
  # /sbin/ip -6 addr del <ipv6address>/<prefixlength> dev <interface>
Beispiel:
Beispiel:
  # /sbin/ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0  
  # /sbin/ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0


== Verwendung von "ifconfig" ==
=== Verwendung von "ifconfig" ===
Anwendung:
Anwendung:
  # /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>
  # /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>
Zeile 62: Zeile 62:
  # /sbin/ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64
  # /sbin/ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64


= Automatische IPv6-Adress-Konfiguration =
== Automatische IPv6-Adress-Konfiguration ==
Im Fall, dass ein Endgerät ein Router Advertisement empfängt und der Host kein Router ist, konfiguriert sich das Endgerät selbst eine IPv6-Adresse entsprechend dem Präfix aus dem Router Advertisement (siehe auch Abschnitt 22.4).
Im Fall, dass ein Endgerät ein Router Advertisement empfängt und der Host kein Router ist, konfiguriert sich das Endgerät selbst eine IPv6-Adresse entsprechend dem Präfix aus dem Router Advertisement (siehe auch Abschnitt 22.4).


= Aktivieren der Privacy Extension =
== Aktivieren der Privacy Extension ==
Privacy Extension wie beschrieben in <nowiki>RFC 4941</nowiki> / Privacy Extensions for Stateless Address Autoconfiguration in IPv6 (Nachfolger von <nowiki>RFC 3041</nowiki>) ersetzt die statische Interface ID (mostly basierend auf der weltweit eindeutigen MAC-Adresse), die bei der Autokonfiguration benutzt wird, durch eine pseudo-random und von Zeit zu Zeit neu generierte.
Privacy Extension wie beschrieben in <nowiki>RFC 4941</nowiki> / Privacy Extensions for Stateless Address Autoconfiguration in IPv6 (Nachfolger von <nowiki>RFC 3041</nowiki>) ersetzt die statische Interface ID (mostly basierend auf der weltweit eindeutigen MAC-Adresse), die bei der Autokonfiguration benutzt wird, durch eine pseudo-random und von Zeit zu Zeit neu generierte.


== Aktivieren von Privacy Extension mit Hilfe von sysctl ==
=== Aktivieren von Privacy Extension mit Hilfe von sysctl ===


== Temporäre Aktivierung ==
=== Temporäre Aktivierung ===
Einschalten der Privacy Extension für z.B. Interface ”eth0” und zudem Präferieren dieser Adresse:
Einschalten der Privacy Extension für z.B. Interface ”eth0” und zudem Präferieren dieser Adresse:
  # sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
  # sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
Zeile 79: Zeile 79:
  # ip -6 addr show dev eth0
  # ip -6 addr show dev eth0
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:db8:0:1:8992:3c03:d6e2:ed72/64 scope global secondary dynamic   <- pseudo-random IID
inet6 2001:db8:0:1:8992:3c03:d6e2:ed72/64 scope global secondary dynamic <- pseudo-random IID
        valid_lft 604711sec preferred_lft 86311sec
valid_lft 604711sec preferred_lft 86311sec
    inet6 2001:db8:0:1::224:21ff:fe01:2345/64 scope global     <- IID based on MAC
inet6 2001:db8:0:1::224:21ff:fe01:2345/64 scope global <- IID based on MAC
        valid_lft 604711sec preferred_lft 86311sec
valid_lft 604711sec preferred_lft 86311sec
    ...
...


== Permanente Aktivierung ==
=== Permanente Aktivierung ===
Für eine permanente Aktivierung muss entweder ein spezieller Initscript-Wert pro Interface gesetzt sein oder ein entsprechender Wert in /etc/sysctl.conf definiert werden:
Für eine permanente Aktivierung muss entweder ein spezieller Initscript-Wert pro Interface gesetzt sein oder ein entsprechender Wert in /etc/sysctl.conf definiert werden:
  net.ipv6.conf.eth0.use_tempaddr=2
  net.ipv6.conf.eth0.use_tempaddr=2
Zeile 94: Zeile 94:
  # sysctl -p
  # sysctl -p


== Aktivieren von Privacy Extension mit Hilfe des NetworkManager ==
=== Aktivieren von Privacy Extension mit Hilfe des NetworkManager ===
Moderne (Client-) Systeme nutzen NetworkManager zur Interface-Konfiguration. Ein Kommandozeilen-Werkzeug ist eingebaut welches auch Parameter ändern kann, die in der GUI nicht verfügbar (oder sichtbar) sind.
Moderne (Client-) Systeme nutzen NetworkManager zur Interface-Konfiguration. Ein Kommandozeilen-Werkzeug ist eingebaut welches auch Parameter ändern kann, die in der GUI nicht verfügbar (oder sichtbar) sind.


Zeile 100: Zeile 100:


Prüfen existierender Interfaces mit:
Prüfen existierender Interfaces mit:
  # nmcli connection  
  # nmcli connection
  NAME UUID TYPE DEVICE
  NAME UUID TYPE DEVICE
  ens4v1 d0fc2b2e-5fa0-4675-96b5-b723ca5c46db 802-3-ethernet ens4v1  
  ens4v1 d0fc2b2e-5fa0-4675-96b5-b723ca5c46db 802-3-ethernet ens4v1
Menge von IPv6-Adressen mit Privacy Extension:
Menge von IPv6-Adressen mit Privacy Extension:
  # ip -o addr show dev ens4v1 | grep temporary | wc -l
  # ip -o addr show dev ens4v1 | grep temporary | wc -l
Zeile 119: Zeile 119:
  2
  2


== Test zur Benutzung von Privacy Extension IPv6-Adressen ==
=== Test zur Benutzung von Privacy Extension IPv6-Adressen ===
Ob die IPv6-Adresss mit einer durch die Privacy Extension generierte Interface ID für ausgehende Verbindungen wirklich benutzt wird, kann z.B. mit Hilfe eines Web-Browers durch Aufruf von <nowiki>http://ip.bieringer.de/</nowiki> durchgeführt werden. Wenn EUI64_SCOPE als Ausgabe ”iid-privacy” zeigt, dann funktioniert alles richtig.
Ob die IPv6-Adresss mit einer durch die Privacy Extension generierte Interface ID für ausgehende Verbindungen wirklich benutzt wird, kann z.B. mit Hilfe eines Web-Browers durch Aufruf von <nowiki>http://ip.bieringer.de/</nowiki> durchgeführt werden. Wenn EUI64_SCOPE als Ausgabe ”iid-privacy” zeigt, dann funktioniert alles richtig.

Version vom 30. November 2023, 20:20 Uhr

Bestehende IPv6 Adressen anzeigen

Zuerst sollten sie überprüfen, ob und welche IPv6 Adressen bereits konfiguriert sind (etwa durch automatischer stateless Konfiguration).

Achtung: Adressen beginnend mit ”fec0” sind veraltet, hier aber noch der Vollständigkeit wegen gezeigt!

Verwendung von "ip"

# /sbin/ip -6 addr show dev <interface>

Beispiel für einen statisch konfigurierten Host:

# /sbin/ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc pfifo_ fast qlen 100
inet6 fe80::210:a4ff:fee3:9566/10 scope link
inet6 2001:0db8:0:f101::1/64 scope global
inet6 fec0:0:0:f101::1/64 scope site

Just note that addresses beginning with ”fec0” are deprecated!

Beispiel für einen automatisch konfigurierten Host.

Hier sehen Sie einige automatisch konfigurierte IP Adressen und deren Lebensdauer.

# /sbin/ip -6 addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP&gt; mtu 1500 qdisc pfifo_fast qlen
¬ 100
inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 16sec preferred_lft 6sec
inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10
¬ scope link

Verwendung von "ifconfig"

# /sbin/ifconfig <interface>

Hier sehen Sie verschiedene IP Adressen mit unterschiedlichen Gültigkeitsbereichen (die Ausgabe wurde mit grep gefiltert)

# /sbin/ifconfig eth0 |grep "inet6 addr:"
inet6 addr: fe80::210:a4ff:fee3:9566/10 Scope:Link
inet6 addr: 2001:0db8:0:f101::1/64 Scope:Global
inet6 addr: fec0:0:0:f101::1/64 Scope:Site

Hinzufügen einer IPv6 Adresse

Die Vorgehensweise beim Hinzufügen einer IPv6 Adresse ist vergleichbar mit dem "IP ALIAS"-Mechanismus bei IPv4 adressierten Interfaces.

Verwendung von "ip"

# /sbin/ip -6 addr add <ipv6address>/<prefixlength> dev <interface>

Beispiel

# /sbin/ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0

Verwendung von "ifconfig"

# /sbin/ifconfig <interface> inet6 add <ipv6address>/<prefixlength>

Beispiel

# /sbin/ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64

IPv6 Adressen entfernen

Diese Funktion wird selten benötigt. Vorsicht ist beim entfernen nicht existenter IPv6 Adressen geboten, da ältere Kernel dieses Fehlverhalten manchmal mit einem Crash quittieren.

Verwendung von "ip"

Anwendung:

# /sbin/ip -6 addr del <ipv6address>/<prefixlength> dev <interface>

Beispiel:

# /sbin/ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0

Verwendung von "ifconfig"

Anwendung:

# /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>

Beispiel:

# /sbin/ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64

Automatische IPv6-Adress-Konfiguration

Im Fall, dass ein Endgerät ein Router Advertisement empfängt und der Host kein Router ist, konfiguriert sich das Endgerät selbst eine IPv6-Adresse entsprechend dem Präfix aus dem Router Advertisement (siehe auch Abschnitt 22.4).

Aktivieren der Privacy Extension

Privacy Extension wie beschrieben in RFC 4941 / Privacy Extensions for Stateless Address Autoconfiguration in IPv6 (Nachfolger von RFC 3041) ersetzt die statische Interface ID (mostly basierend auf der weltweit eindeutigen MAC-Adresse), die bei der Autokonfiguration benutzt wird, durch eine pseudo-random und von Zeit zu Zeit neu generierte.

Aktivieren von Privacy Extension mit Hilfe von sysctl

Temporäre Aktivierung

Einschalten der Privacy Extension für z.B. Interface ”eth0” und zudem Präferieren dieser Adresse:

# sysctl -w net.ipv6.conf.eth0.use_tempaddr=2

Zur Aktivierung ist der Restart des Interfaces notwendig

# ip link set dev eth0 down
# ip link set dev eth0 up

Nach Empfang eines Router Advertisement sollte das Interface eine entsprechende Adresse sich selbst konfiguriert haben

# ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:db8:0:1:8992:3c03:d6e2:ed72/64 scope global secondary dynamic <- pseudo-random IID
valid_lft 604711sec preferred_lft 86311sec
inet6 2001:db8:0:1::224:21ff:fe01:2345/64 scope global <- IID based on MAC
valid_lft 604711sec preferred_lft 86311sec
...

Permanente Aktivierung

Für eine permanente Aktivierung muss entweder ein spezieller Initscript-Wert pro Interface gesetzt sein oder ein entsprechender Wert in /etc/sysctl.conf definiert werden:

net.ipv6.conf.eth0.use_tempaddr=2

Achtung: das Interface muss zu diesem Zeitpunkt bereits existieren. Wenn das nicht der Fall ist (z.B. nach einem Reboot) musses für alle Interfaces konfiguriert werden:

net.ipv6.conf.all.use_tempaddr=2
net.ipv6.conf.default.use_tempaddr=2

Die Änderungen in /etc/sysctl.conf können im laufenden Betrieb geändert werden, aber zur wirklichen Aktivierung wird mindestens wird ein Interface-Restart (down/up) oder ein Reboot benötigt.

# sysctl -p

Aktivieren von Privacy Extension mit Hilfe des NetworkManager

Moderne (Client-) Systeme nutzen NetworkManager zur Interface-Konfiguration. Ein Kommandozeilen-Werkzeug ist eingebaut welches auch Parameter ändern kann, die in der GUI nicht verfügbar (oder sichtbar) sind.

Beispiele basieren auf Version 0.9.9.1-5.git20140319.fc21

Prüfen existierender Interfaces mit:

# nmcli connection
NAME UUID TYPE DEVICE
ens4v1 d0fc2b2e-5fa0-4675-96b5-b723ca5c46db 802-3-ethernet ens4v1

Menge von IPv6-Adressen mit Privacy Extension:

# ip -o addr show dev ens4v1 | grep temporary | wc -l
0

Aktuelle Einstellung der IPv6 Privacy Extension für ein Interface:

# nmcli connection show ens4v1 |grep ip6-privacy
ipv6.ip6-privacy: -1 (unknown)

Aktivieren der IPv6 Privacy Extension und Restart des Interfaces;

# nmcli connection modify ens4v1 ipv6.ip6-privacy 2
# nmcli connection down ens4v1; nmcli connection up ens4v1

Neuer Wert der IPv6 Privacy Extension prüfen:

# nmcli connection show ens4v1 |grep ip6-privacy
ipv6.ip6-privacy: 2 (active, prefer temporary IP)

Nun sollten auch IPv6 Privacy Extension Adressen automatisch konfiguriert sein

# ip -o addr show dev ens4v1 | grep temporary | wc -l
2

Test zur Benutzung von Privacy Extension IPv6-Adressen

Ob die IPv6-Adresss mit einer durch die Privacy Extension generierte Interface ID für ausgehende Verbindungen wirklich benutzt wird, kann z.B. mit Hilfe eines Web-Browers durch Aufruf von http://ip.bieringer.de/ durchgeführt werden. Wenn EUI64_SCOPE als Ausgabe ”iid-privacy” zeigt, dann funktioniert alles richtig.