Pi5/Ubuntu - statische IP Config funktioniert nicht

parco2706

Cadet 4th Year
Registriert
Aug. 2010
Beiträge
67
Hallo Community,

ich bin ein wenig am verzweifeln...
In meinem Netzwerk läuft ein Raspberry Pi5 als NAS mit Ubuntu 24.04 + Webmin + Pi-Hole.
In Pi-Hole ist der DHCP Server aktiviert, der die IP Adresszuweisung in meinem Heimnetz übernehmen soll. Der DHCP Server auf meinem Router ist entsprechend deaktiviert.
Ich möchte daher meinem Pi5 eine statische IP Adresse über die Netzwerkeinstellungen in Ubuntu zuweisen. Bis vor kurzem hat das auch noch funktioniert, jetzt habe ich aber das Problem, dass nachdem Booten des Pi5, keine statische IP mehr gesetzt wird, die Netzwerkkonfiguration auf DHCP "springt" und der Pi-Hole DHCP dem eigenen Gerät wohl keine IP zuweisen kann (da ja noch kein Broadcast ausgesendet werden kann, wegen fehlender Netzwerkverbindung). Und ich bin mir keiner Änderung am System bewusst, dass dieses Fehlverhalten ausgelöst hat. Ich hatte den Pi einfach neugestartet, danach war der Fehler da.

Ich habe mehrfach versucht, die Netzwereinstellungen zu resetten und die statische IP zu definieren. Das funktioniert auch im laufenden Betrieb, sobald ich aber neu starte, zerschießt es mir diese Einstellung wieder.

Bis jetzt habe ich folgendes herausgefunden bzw. getestet. Bitte korrigiert mich, falls ich hier falsch liege...

Ubuntu 24.04 läuft wohl mit netplan und NetworkManager. Der Über die GUI des NetworkManagers wird eine netplan Konfiguration erstellt und angewendet. Diese Konfigurationen werden in /etc/netplan in .yaml Konfigurationen gespeichert.
Unter /etc/netplan liegt bei mir eine 50-cloud-init.yaml Datei, die eine DHCP Konfiguration enthält.
Desweiteren liegt noch eine andere yaml Datei ab, die die Konfiguration enthät, die ich über die GUI erstellt habe (mit statischer IP etc.)
In meiner Naivität habe ich die Datei 50-cloud-init.yaml einfach gelöscht und darauf gehofft, dass dann automatisch die andere Konfiguration genutzt wird. Ich habe noch netplan generate und netplan apply ausgeführt und im Laufenden Betrieb hat das dann auch funktioniert und IP wird gesetzt. Nach dem Reboot setzt sich die Netzwerkeinstellung aber wieder zurück auf DHCP und die Datei 50-cloud-init.yaml wurde automatisch wieder erstellt (und vermutlich aktiviert).

50-cloud-init.yaml kommt wohl vom Dienst CloudInit, den ich aber nicht bewusst nutze oder aktiviert habe. Mir fehlt als das Verständniss des Zusammenspiels zwischen CloudInit, netplan, NetworkManager und noch anderen Diensten, die für die Netzwerkkonfiguration in Ubuntu genutzt werden.

Die schnellste Lösung für mich ist gerade, nach einem Reboot netplan apply auszuführen. Danach wird direkt die richtige Config angewandt und die statische IP gesetzt. Allerdings zeigt mir das Terminal eine Fehlermeldung, dass wohl systemd-networkd nicht läuft und dieser Dienst daraufhin gestartet wird

Könnte Webmin hier irgendwie reinpfuschen? (Ich habe bereits Webmin deaktiviert und neugestartet, gleiches Problem. Ich denke also, dass Webmin keinen Einfluss hat.)

Nutzt Ubuntu noch systemd-networkd?

Wie kann ich prüfen, ob erforderliche Dienste beim Start automatisch gestartet werden? (vgl. Autostart/Dienste bei Windows)

Ich wäre über eure Hilfe und Austausch mit euch wirklich sehr erfreut :-)
Danke!
 
Beispiel für /etc/netplan/01-netcfg.yaml, 50-cloud-init.yaml:

Code:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:     <--- Netzwerk-Interface
      dhcp4: no  <---- DHCP off
      addresses:
        - 192.168.1.10/24 <----- statische IP-Adresse
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

Datei editieren:
Code:
sudo nano /etc/netplan/01-netcfg.yaml bzw. 50-cloud-init.yaml
Dateirechte setzen:
Code:
sudo chmod 600 /etc/netplan/01-netcfg.yaml bzw. 50-cloud-init.yaml
neue Konfiguration anwenden:
Code:
sudo netplan apply
IP-Adresse überprüfen:
Code:
ip a
 
@h00ver Ich werde das später versuchen, vermute aber trotzdem, dass die 50-cloud-init.yaml nach dem Reboot wieder zurückgesetzt wird. Hatte diese bereits angepasst mit statischer IP und DHCP aus, nach dem Reboot wurde das aber alles wieder verworfen.
Mich würde interessieren, wer die 50-cloud-init.yaml erstellt und warum diese plötzlich so prominent ist und sich automatisch aktiviert.
Melde mich sobald ich das getestet habe.
 
So, ich habe jetzt eine manuelle .yaml Konfiguration für eth0 erstellt und diese 00-eth0.yaml genannt. Danach netplan generate und apply angewandt, die 50-cloud-init.yaml gelöscht und einen Reboot durchgeführt. Die statische IP bzw. die neue .yaml Konfiguration wird jetzt sauber angewandt. Trotzdem wird erneut eine 50-cloud-init.yaml angelegt.
Nach Deaktivierung von cloud-init wird diese yaml Datei auch nicht mehr erzeugt.

Ich habe allerdings in alten Backups von /etc/cloud die Dateien und Inhalte mit dem aktuellen Stand verglichen und es gibt hier absolut keine Unterschiede. Daher ist es für mich immer noch sehr verwunderlich, warum cloud-init plötzlich diese 50-cloud-init.yaml Datei erzeugt hat und dadurch meine ganze Netzwerkkonfiguration zerhagelt hat.

Hat jemand dazu irgendeine Erklärung oder Idee?
 
Zurück
Oben