Skip to main content

🌐 Schritt 6: IPv4- und IPv6-Adressen konfigurieren

📡 Statische IPv4- und IPv6-ULA-Adressen

Wenn die FRITZ!Box keine Möglichkeit bietet, für ein einzelnes Gerät eine feste IPv6-Adresse zu reservieren – auch nicht für eine ULA –, kann die IPv6-Adresse des Geräts manuell über NetworkManager eingerichtet werden, statt über systemd-networkd.

EndeavourOS verwendet standardmäßig NetworkManager zur Verwaltung der Netzwerkschnittstellen. Ein paralleler Betrieb mit systemd-networkd kann zu Konflikten führen, da ein Netzwerk-Interface grundsätzlich nur von einem Netzwerkmanager verwaltet werden sollte.

Die IPv6-Adresse verwendet den von der FRITZ!Box per Router Advertisement bereitgestellten ULA-Präfix (z.B. fd00::/64); der Hostanteil wird manuell festgelegt.
FRITZ!Box: Heimnetz → Netzwerk → Erweiterte Netzwerkeinstellungen → IPv6 → ULA-Präfix manuell festlegen

Für eine feste IPv4-Adresse gibt es zwei Möglichkeiten:

  • DHCP-Reservierung in der FRITZ!Box: Bei der Einstellung „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen“ bezieht das Gerät seine Adresse weiterhin per DHCP. Die FRITZ!Box weist ihm dabei immer dieselbe Adresse zu. Das Gerät muss dafür so eingestellt sein, dass es seine IP-Adresse automatisch per DHCP bezieht.
  • Manuell am Gerät eingetragene feste IP-Adresse: Sie sollte außerhalb des DHCP-Bereichs liegen, damit der DHCP-Server sie nicht versehentlich einem anderen Gerät zuweist. Außerdem muss die Adresse zum Heimnetz gehören und darf nicht bereits von einem anderen Gerät verwendet werden. Eine zusätzliche DHCP-Reservierung in der FRITZ!Box ist dafür nicht erforderlich.

Beispiele für feste IP-Adressen:

  • 192.168.0.201 → Shelly 1
  • 192.168.0.202 → Shelly 2
  • 192.168.0.210 → Nuki-Hub
  • 192.168.0.240 → Raspberry Pi
  • 192.168.0.254 → LAN-Drucker
  • …

DHCP-Bereich: 192.168.0.2 bis 192.168.0.200
Bereich für manuell vergebene feste IP-Adressen: 192.168.0.201 bis 192.168.0.254
FRITZ!Box: Heimnetz → Netzwerk → Erweiterte Netzwerkeinstellungen → IPv4 → DHCP-Server aktivieren (von/bis)

Die Beispieladressen liegen außerhalb des angegebenen DHCP-Bereichs. Das ist vor allem bei manuell konfigurierten IP-Adressen wichtig. Bei einer DHCP-Reservierung verwaltet die FRITZ!Box die Zuordnung.

💡Alternative: DHCP und Zugriff über Hostnamen

Auf feste IP-Adressen kann verzichtet werden: Die Geräte beziehen ihre IP-Adressen automatisch per DHCP und werden über ihren Hostnamen angesprochen. Das funktioniert, sofern der lokale Namensdienst die Hostnamen auflöst – zum Beispiel über DNS oder mDNS (Multicast DNS). mDNS ermöglicht Geräten, sich im lokalen Netzwerk ohne zentralen DNS-Server über ihre Namen zu finden.

Ein Gerät mit dem Hostnamen eos-arm ist dann beispielsweise unter eos-arm oder – sofern mDNS unterstützt und aktiviert ist – unter eos-arm.local erreichbar. Ob der Zugriff über den Hostnamen funktioniert, lässt sich einfach ausprobieren. Wenn die Geräte so erreichbar sind, sind feste IP-Adressen meist nicht erforderlich.


🌐 Statische IPv4 und IPv6 unter EndeavourOS (NetworkManager) konfigurieren

💡 Kann übersprungen werden, wenn du DHCP und den Zugriff über Hostnamen nutzt

Eine zusätzliche feste IP-Adresse kann nützlich sein, ist aber nicht zwingend nötig, wenn du das Gerät zuverlässig über seinen Hostnamen erreichst. Sie bietet eine zweite Möglichkeit, das Gerät anzusprechen, etwa wenn die Namensauflösung einmal nicht funktioniert.


📘 Vorwort

Ausgangssituation:

Dem System wurde automatisch per SLAAC eine IPv6-Adresse im ULA-Bereich zugewiesen, z.B.:

fd00::abcd:1234:5678:9abc

Diese Adresse liegt im vom Router verteilten Präfix:

fd00::/64

Statt der automatisch generierten IPv6-Adresse wurde eine feste, manuell definierte Adresse im selben /64-Präfix eingerichtet:

fd00::2

Beide Adressen liegen im selben /64-Präfix und sind technisch gleichwertige gültige Hostadressen innerhalb dieses Präfixes.

Eine automatisch vergebene IPv6-Adresse kann durch eine feste, manuell definierte Adresse ergänzt werden (z.B. eine kürzer darstellbare Adresse wie fd00::2), aber nur wenn:

  • sie im gleichen /64 liegt
  • sie nicht bereits von einem anderen Gerät (z.B. dem Router) verwendet wird

🎯 Ziel

Eine persistente NetworkManager-Konfigurationsdatei unter

/etc/NetworkManager/system-connections/

erstellen und IPv4 sowie IPv6 statisch setzen.

Verwendet wird:

  • NetworkManager
  • nmcli
  • .nmconnection-Dateien
  • nicht systemd-networkd

⚙️ NetworkManager prüfen

Status prüfen:

systemctl status NetworkManager

Ist der Dienst nicht aktiv oder deaktiviert, dauerhaft aktivieren und sofort starten:

sudo systemctl enable --now NetworkManager

Nur neu starten (z.B. nach Konfigurationsänderung oder bei Netzwerkproblemen):

sudo systemctl restart NetworkManager

🔎 Eigene Netzwerkwerte ermitteln

Netzwerkschnittstelle ermitteln

→ Beim Raspberry Pi 4 lautet die Schnittstelle in der Regel end0.
(Falls abweichend, Namen in der Konfiguration anpassen.)

Aktuelle IP-Adressen anzeigen

ip addr show dev end0

Nur IPv4 und IPv6 kompakt anzeigen:

ip addr show dev end0 | grep inet | awk '{print $2}'

Beispiel:

192.168.0.164/24
fd00::abcd:1234:5678:9abc/64
fe80::abcd:1234:5678:9abc/64
  • IPv4 = aktuelle Adresse im IPv4-Subnetz
  • fd00::... = automatisch vergebene IPv6-Adresse im ULA-Präfix
  • fe80:: = Link-Local-Adresse

IPv4-Gateway (Router) ermitteln

ip route

Beispiel:

default via 192.168.0.1 dev end0 proto static metric 100

Router IPv4 ist die Adresse hinter default via.


IPv6-Gateway und LAN-Präfix ermitteln

ip -6 route

Beispiel:

fd00::/64 dev end0 proto kernel metric 100 pref medium
fe80::/64 dev end0 proto kernel metric 1024 pref medium
default via fd00::1 dev end0 proto static metric 20100 pref medium
  • fd00::/64 = LAN-Präfix
  • default via fd00::1 = Router IPv6

Nur Adressen aus genau diesem /64 dürfen statisch gesetzt werden.


📋 Voraussetzungen (Beispielwerte)

  • Verbindung: "Kabelgebundene Verbindung 1"
  • Interface: end0
  • Router IPv4: 192.168.0.1
  • Router IPv6: fd00::1
  • Statische IPv4: 192.168.0.164
  • Statische IPv6: fd00::2

1️⃣ Aktive Verbindung prüfen

nmcli connection show
nmcli -t -f NAME,DEVICE connection show --active
ip addr show dev end0

2️⃣ Statische IPv4 setzen

sudo nmcli connection modify "Kabelgebundene Verbindung 1" \
  ipv4.method manual \
  ipv4.addresses "192.168.0.164/24" \
  ipv4.gateway "192.168.0.1" \
  ipv4.dns "192.168.0.164"

Im Pi-hole Szenario technisch korrekt: ipv4.dns auf sich selbst.


3️⃣ Statische IPv6 setzen

sudo nmcli connection modify "Kabelgebundene Verbindung 1" \
  ipv6.method auto \
  ipv6.addresses "fd00::2/64" \
  ipv6.dns "fd00::2"

Im Pi-hole Szenario technisch korrekt: ipv6.dns auf sich selbst.

Damit passiert technisch:

  • fd00::2 bleibt statisch gesetzt
  • Router Advertisements werden angenommen
  • der Pi bekommt zusätzlich eine 2003:-Adresse
  • Default-Route wird automatisch per Router Advertisement gesetzt (Gateway ist eine fe80::-Adresse des Routers)
  • unbound kann IPv6 nutzen

4️⃣ Speicherung prüfen

nmcli connection show "Kabelgebundene Verbindung 1" | grep ipv4.method
nmcli connection show "Kabelgebundene Verbindung 1" | grep ipv6.method

Erwartet:

ipv4.method: manual
ipv6.method: auto

5️⃣ Verbindung neu aktivieren (SSH-sicher)

Kein vorheriges connection down ausführen!

sudo nmcli connection up "Kabelgebundene Verbindung 1"

Solange die bestehende IPv4-Adresse nicht geändert wird, bleibt SSH erreichbar.


6️⃣ Ergebnis prüfen

ip addr show dev end0

Erwartet:

IPv4:

192.168.0.164/24
valid_lft forever
kein dynamic

IPv6:

fd00::2/64
valid_lft forever
kein dynamic

🚀 Mini-Check:

ping -c 5 heise.de

Mein Ergebnis:

PING heise.de (2a02:2e0:3fe:1001:302::) 56 Datenbytes
64 Bytes von redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=1 ttl=58 Zeit=6.93 ms
64 Bytes von redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=2 ttl=58 Zeit=5.73 ms
64 Bytes von redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=3 ttl=58 Zeit=5.31 ms
64 Bytes von redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=4 ttl=58 Zeit=6.01 ms
64 Bytes von redirector.heise.de (2a02:2e0:3fe:1001:302::): icmp_seq=5 ttl=58 Zeit=5.85 ms

--- heise.de Ping-Statistiken ---
5 Pakete übertragen, 5 empfangen, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 5.306/5.964/6.925/0.533 ms

Das zeigt: ping heise.de → nutzt 2a02:... (IPv6)

Bedeutung:

  • ✅ System bevorzugt IPv6
  • ✅ DNS liefert AAAA und wird verwendet
  • ✅ Kein IPv4-Fallback nötig
  • ✅ IPv6 funktioniert vollständig (Routing + Internet)

Fazit: IPv6 ist aktiv und wird aktuell verwendet.


7️⃣ Gateway prüfen

ip route

Erwartet: default via 192.168.0.1

ip -6 route

Erwartet:default via fe80::... dev end0 proto ra

Wichtig:

  • Es muss eine "default"-Route vorhanden sein
  • Das Gateway ist eine fe80::-Adresse (Router Link-Local)
  • "proto ra" zeigt, dass die Route per Router Advertisement gesetzt wurde

8️⃣ Verbindung im LAN testen

ping 192.168.0.164
ping -6 fd00::2

9️⃣ Persistente Datei prüfen

sudo ls -la /etc/NetworkManager/system-connections/

Erwartet:

Kabelgebundene Verbindung 1.nmconnection

🔟 Konfigurationsdatei anzeigen

sudo cat "/etc/NetworkManager/system-connections/Kabelgebundene Verbindung 1.nmconnection"

Beispiel:

[connection]
id=Kabelgebundene Verbindung 1
uuid=f1234a22-abcd-4711-0815-1ab3cd2111f5
type=ethernet
autoconnect-priority=-999
interface-name=end0
timestamp=1770162032

[ethernet]

[ipv4]
address1=192.168.0.164/24
dns=192.168.0.164;
gateway=192.168.0.1
method=manual

[ipv6]
addr-gen-mode=default
address1=fd00::2/64
dns=fd00::2;
method=auto

[proxy]

🧠 Ergebnis

Der Pi besitzt nun:

  • feste IPv4: 192.168.0.164
  • feste IPv6 (ULA): fd00::2
  • zusätzliche globale IPv6-Adressen (z.B. 2003:... per SLAAC, inkl. temporärer Privacy-Adressen)
  • Default-Route via fe80::... (Router Advertisement)
  • Link-Local-Adresse fe80::... (automatisch vorhanden)
  • persistente Konfiguration unter /etc/NetworkManager/system-connections/

🔐 Pi-hole: Conditional Forwarding aktivieren

Optional: Integration mit Pi-hole

(wenn du auch Pi-hole 6 auf diesem Host eingerichtet hast)

Settings → DNS → Conditional Forwarding

Eintrag muss mit true aktiviert sein:

true,192.168.0.0/24,192.168.0.1,fritz.box

Nur dann werden lokale Hostnamen korrekt aufgelöst.


🖧 DNS in der FRITZ!Box setzen

Internet → Zugangsdaten → DNS-Server

Eintragen:

  • DNSv4: 192.168.0.164
  • DNSv6: fd00::2

📌 Zusammenfassung

  • IPv6-Adresse muss im vom Router verteilten /64-Präfix liegen
  • Lange automatisch vergebene Adresse kann durch kurze ergänzt werden
  • NetworkManager bleibt aktiv
  • Keine Verwendung von systemd-networkd
  • Eigene Werte immer zuerst mit ip addr, ip route und ip -6 route ermitteln