Reihenfolge des Starts von Netzwerkdiensten

  • Hi,

    ich habe ein kleines Problem beim Starten von Netzwerkdiensten.

    Hintergrund:

    Auf meinem Pi4 läuft piHole, das ja als DNS-Server im Netzwerk dient und damit Port 53 nutzt. Jetzt habe ich parallel einen Bind9 auf dem selben Pi laufen. Dieser nutzt auch Port 53. Damit beide Port 53 nutzen können, habe ich ein virtuelle Netzwerkinterface auf eth0 angelegt. piHole läuft auf eth0 mit IP 172.16.1.26 und Bind9 ist zu erreichen über eth0:1 auf IP 172.16.1.27. Das funktioniert auch soweit.

    Jetzt zu meinem Problem: Beim Starten des Pi kann der entsprechende Pi-Hole Dienst (pihole-FTL.service) nicht gestartet werden. Ich muss diesen nach dem Boot des Pi manuell neustarten. Das gleiche gilt für einen Dienst, der mir Wetterdaten aus dem Internet holt und auf einem E-Ink-Display anzeigt. Irgendwie scheint da was in der Reihenfolge der Dienststarts nicht zu passen, so dass der piHole und der Wetterdienst zu früh gestartet werden, wenn das Netzwerk noch nicht bereit ist.

    Für eth0 habe ich eine feste IP mittel /etc/dhcpcd.conf vergeben.

    Das virtuelle Interface eth0:1 lege ich über einen systemd-Dienst an:

    Auch den Wetterdienst starte ich per systemd:

    Und hier noch der pihole-Dienst:

    Hat jemand eine Idee, wie ich die richtige Reihenfolge oder die entsprechenden Abhängigkeiten in die Dienste bringe? Es soll erst das normale netzwerkgestartet werden, danach soll das virtuelle Interface angelegt werden. Wenn das fertig ist, sollen piHole und der Wetterdienst gestartet werden.

    Willst du einen Tag lang glücklich sein, dann saufe.

    Willst du ein Jahr lang glücklich sein, dann heirate.

    Willst du ein Leben lang glücklich sein, dann fahr Yamaha.

    Einmal editiert, zuletzt von FoCMB (30. September 2021 um 16:12) aus folgendem Grund: Typo: eine IP-Adresse war falsch

  • habe ich ein virtuelle Netzwerkinterface auf eth0 angelegt. piHole läuft auf eth0 mit IP 172.16.1.26 und Bind9 ist zu erreichen über eth0:1 auf IP 172.16.1.26.

    ein virtuelles Netzwerkinterface muss eine eigene IP-Adresse haben, du benutzt auf beiden die gleiche IP (nach deinen Angaben)

    Das funktioniert auch soweit.

    ist mit der gleichen IP zweifelhaft.

    Computer ..... grrrrrr

  • ExecStart=/usr/sbin/route add default gw 172.16.1.1 eth0:1

    ist nicht notwendig, da diese IP im gleichen Netz ist, wie die andere IP und der Default Gateway.

    Eventuell, ich kenne mit mit systemd-Units nicht wirklich aus, kann man zum Starten der zweiten bzw dritten Unit, die du starten willst, nicht nach der Art der Unit

    network-online.target

    sondern wirklich nach der Interface (also eth0 für eth0.1 und eth0.1 für den Wetterdienst) fragst.

    Nur so als Idee ;)

    Computer ..... grrrrrr

  • Man kann die Reihenfolge ja halbwegs festlegen, indem man Before oder / und After einträgt. Das muss auch keine *.target Unit sein, sondern eine (selbsterstellte) *.service Unit sollte genauso funktionieren. ;)

    Mehr davon gibt es u.a. hier: https://wiki.ubuntuusers.de/systemd/Units/…ie-Unit-Sektion


    Versuch doch mal hier ein Before der anderen beiden Units

    Das virtuelle Interface eth0:1 lege ich über einen systemd-Dienst an

    Oder in der Wetter Service Unit ein After=Interface_einstellungs.service oder wie auch immer Du die genannt hast. ^^

  • Die Einstellung kenne ich. Das eth0-Interface ist auch beim Booten da, aber dann wird eben das eth0:1 noch hinzugefügt und da scheint es zu hapern. Ohne eth0:1 und damit ohne Bind9 funktioniert alles (pihole und Wetterdienst)

    Willst du einen Tag lang glücklich sein, dann saufe.

    Willst du ein Jahr lang glücklich sein, dann heirate.

    Willst du ein Leben lang glücklich sein, dann fahr Yamaha.

  • Ich hab nun nach langem Probieren eine Lösung gefunden. Ich habe den dhcpcd-Dienst abgeschaltet und die Netzwerkonfiguration von eth0 und eth0:1 in der /etc/network/interfaces gemacht. Welcher Dienst (bind, pihole) auf welcher Adresse lauscht, habe ich in den jeweiligen Configs definiert. Nun startet alles wieder sauber.

    Willst du einen Tag lang glücklich sein, dann saufe.

    Willst du ein Jahr lang glücklich sein, dann heirate.

    Willst du ein Leben lang glücklich sein, dann fahr Yamaha.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!