Ich habe ein Problem mit DNS. Um das Problem einzugrenzen, wurde ich gebeten, die DNS-Einstellungen meines Computers manuell zu konfigurieren und dabei nur einen DNS-Server anstelle der beiden anzugeben, die über DHCP zurückgegeben werden. So können die Serveradministratoren herausfinden, ob mein Problem nur bei einem DNS-Server oder bei beiden auftritt.
Ich konnte systemd-resolved jedoch nicht so konfigurieren, dass es meine DNS-Konfiguration manuell akzeptiert.
Ich habe Folgendes versucht, und bei allen wurden weiterhin zufällig DNS-Anfragen zwischen beiden Servern gesendet, selbst nachdem beide neu gestartet wurden, systemd-networkd
und systemd-resolved
:
- Angabe
DNS=1.2.3.4
im[Resolve]
Abschnitt/etc/systemd/resolved.conf
- Angabe
DNS=1.2.3.4
im[Network]
Abschnitt/etc/systemd/network/eth0.conf
(die einzige Datei in diesem Ordner) - Einen der Server bearbeiten
/etc/resolv.conf
und auskommentieren
Nichts davon änderte etwas, resolvectl
beide DNS-Server wurden weiterhin als verfügbar aufgelistet und als ich meine Tests durchführte, wurden die DNS-Abfragen zwischen den beiden Servern aufgeteilt, anstatt nur den einen Server zu verwenden, den ich angegeben hatte.
Wie kann ich systemd anweisen, nur einen einzigen von mir angegebenen DNS-Server zu verwenden und nicht auch die über DHCP zurückgegebenen Server zu verwenden?
Antwort1
Ich habe das nicht ausprobiert, aber inzwischen herausgefunden, dass es eine Option gibt, DNS-Server aus der DHCP-Antwort zu ignorieren. .network
Fügen Sie in der systemd-Datei einen DHCP-Abschnitt hinzu, falls dieser noch nicht vorhanden ist, und verwenden Sie die UseDNS
Option:
[Network]
DNS=8.8.8.8 # Specify your DNS server manually
[DHCPv4]
UseDNS=no # Don't use DNS servers from DHCP
Antwort2
Ich habe nicht genug Ruf, um etwas dazu zu sagenMalvinisch's Antwort. Obwohl seine Antwort richtig ist, müssen nspawn-Container die Datei benennen, 80-container-host0.network
um die Systemstandards des Hosts zu überschreiben.
Von demsystemd-nspawnDokumente:
Beachten Sie, dass systemd-networkd.service(8) standardmäßig eine Netzwerkdatei enthält, die zu
/usr/lib/systemd/network/80-container-ve.network
den auf diese Weise erstellten Host-seitigen Schnittstellen passt und Einstellungen zur Aktivierung der automatischen Adressbereitstellung auf dem erstellten virtuellen Link über DHCP sowie zur automatischen IP-Weiterleitung auf die externen Netzwerkschnittstellen des Hosts enthält. Es enthält außerdem eine/usr/lib/systemd/network/80-container-host0.network
entsprechende Datei zur auf diese Weise erstellten Container-seitigen Schnittstelle, die Einstellungen zur Aktivierung der clientseitigen Adresszuweisung über DHCP enthält. Falls systemd-networkd sowohl auf dem Host als auch innerhalb des Containers ausgeführt wird, ist somit eine automatische IP-Kommunikation vom Container zum Host mit weiterer Konnektivität zum externen Netzwerk möglich.
/etc/systemd/network/80-container-host0.network
:
# https://www.freedesktop.org/software/systemd/man/systemd.network.html#UseDNS=
#
# Disable adding the DNS from DHCP
#
[Match]
Virtualization=container
Name=host0
[Network]
DHCP=ipv4
DNS=
[DHCPv4]
UseDNS=false
Antwort3
Wenn Sie eine statische IP festlegen können, können Sie den DNS-Server angeben. Fragen Sie die Netzwerkadministratoren nach einer statischen IP, die Sie verwenden können, und probieren Sie diese aus. Verwenden Sie dafür nicht einfach irgendeine IP, da es leicht zu einem Duplikat kommen kann.