ubuntuusers.de

Netzwerk während Bootvorgang neu starten?

Status: Ungelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

sandman85

Anmeldungsdatum:
1. Januar 2018

Beiträge: Zähle...

Hallo zusammen,

ich hab ein kleines Problem, was die Konfiguration des Netzwerks bei meinem kleinen Homeserver betrifft. Da ich eine verschlüsselte Root-Partition habe und den Rechner im Notfall auch remote Booten können möchte, nutze ich Dropbear und Busybox im initramfs. Damit ich mich auch verbinden kann, wir der Kernel mit dem Parameter

ip=dhcp

gebootet. Soweit, so gut. Nun habe ich seit einiger Zeit pi-hole in einem LXD Container auf genau diesem Rechner laufen. Das Netzwerk des Containers ist dabei als macvlan konfiguriert, um pi-hole eine eigene IP Adresse zuweisen zu können. Der DHCP Server des Routers ist so konfiguriert, dass

  • A) Homeserver und pi-hole je eine feste IP zugewiesen wird und

  • B) die IP des pi-hole als DNS Adresse verteilt wird

Da nun eine Kommunikation zwischen Host und macvlan interface auf dem selben Hardware Interface nicht möglich ist und der Server somit den pi-hole als DNS Server nicht ansprechen kann, möchte ich den DNS Server manuell zuweisen:

user@homeserver:~$ cat /etc/dhcp/dhclient.conf | grep supersede
supersede domain-name-servers 208.67.222.222;

Diese Konfiguration spielt aber ja bei der Anfrage aus dem initramfs keine Rolle, jedoch ist das interface anschließend bereits konfiguriert. Nach dem Bootvorgang kann ich den o.g. Nameserver nur mit

user@homeserver:~$ dhclient -r
user@homeserver:~$ dhclient

übernehmen.

Gibt es eine Möglichkeit, die Netzwerkkonfiguration über den Kernel ip-Paramter während des Bootens zu verwerfen und das Netzwerk Interface nochmal neu zu starten?

Danke vorab und viele Grüße, sandman

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3782

Nach dem Bootvorgang kann ich den o.g. Nameserver nur mit

user@homeserver:~$ dhclient -r
user@homeserver:~$ dhclient

übernehmen.

Wenn dies zwei Befehle ausreichen, um den Sollzustand herzustellen, dann verpacke sie doch in ein Shellskript und lege dafür eine systemd-Unit an. Als Voraussetzung (WantedBy=) würde ich network-online.target oder multiuser.target probieren. Schlimmstenfalls kann man im Skript mittels sleep noch eine Wartezeit definieren.

Antworten |