Skip to main content

🌐 Schritt 6: Statische IPv4- und IPv6-ULA-Adressen konfigurieren

Da die FritzBox nur IPv4-Adressen statisch zuweisen kann und keine DHCP-Reservierungen für IPv6-Adressen (einschließlich ULAs) unterstützt, wird die Netzwerkkonfiguration auf dem Raspberry Pi 4 unter EndeavourOS manuell über NetworkManager (nicht systemd-networkd) vorgenommen. EndeavourOS verwendet standardmässig NetworkManager zur Verwaltung der Netzwerkschnittstellen; ein paralleler Betrieb von systemd-networkd würde zu Konflikten führen, da immer nur ein Netzwerk-Manager ein Interface kontrollieren sollte.

Die IPv6-Adresse nutzt dabei den in der FritzBox festgelegten ULA-Bereich (z.B. fd00::/64).


🌐 Statische IPv4 und IPv6 unter EndeavourOS (NetworkManager) konfigurieren


📘 Vorwort

Ausgangssituation:

Dem System wurde automatisch 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 Netzes.

Eine automatisch vergebene IPv6-Adresse kann durch eine feste, kürzere Adresse ersetzt werden, aber nur wenn:

  • sie im gleichen /64 liegt
  • sie noch nicht verwendet wird
  • sie nicht die Router-Adresse ist

🎯 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 kommt automatisch via fe80::
  • 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: manual

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

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 (z.B. 2003:fd:773c:f000:… per SLAAC)
  • Default-Route via fe80::… (Router Advertisement)
  • Link-Local-Adresse fe80::… (immer 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 ersetzt werden
  • NetworkManager bleibt aktiv
  • Keine Verwendung von systemd-networkd
  • Eigene Werte immer zuerst mit ip addr, ip route und ip -6 route ermitteln