Hallo,

ich habe bei meinem Arch System Probleme mit der DNS Auflösung.

Ich verwende eine statische IP mit sytstemd-networkd unter /etc/systemd/network/lan-eno1.network:

`[Match]
Name=eno1

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=192.168.1.1
`
Dort habe ich auch den DNS eingetragen. Die DNS IP 192.168.1.1 ist mein opnsense Router, dort läuft unbound DNS.

Ich komme aber so nicht per DNS online.
Ich muss noch zusätzlich in die Date /etc/resolv.conf nameserver 192.168.1.1 eintragen.

Dann klappt alles.

systemd-resolved habe ich nicht aktiv weil es heisst:

systemd-networkd kann bereits für die Verwendung eines bestimmten DNS Servers konfiguriert werden. Siehe die Dateien mit der Endung .network im Verzeichnis /etc/systemd/network im Abschnitt [Network] mit der Option DNS=. Dann ist systemd-resolved nicht mehr zwingend notwendig

https://wiki.archlinux.de/title/Systemd/systemd-resolved

Stimmt das wiki nicht oder reicht es nicht aus nur systemd-networkd am laufen zu haben?

  • Martin-MS hat auf diesen Beitrag geantwortet.

    ziegel systemd-networkd kann bereits für die Verwendung eines bestimmten DNS Servers konfiguriert werden. Siehe die Dateien mit der Endung .network im Verzeichnis /etc/systemd/network im Abschnitt [Network] mit der Option DNS=. Dann ist systemd-resolved nicht mehr zwingend notwendig

    Das halte ich für eine missverständliche Formulierung, das englischsprachige Wiki beschreibt es so:

    It is optional to also configure systemd-resolved, which is a network name resolution service to local applications, considering the following points:

    Demnach ist zwar die Konfiguration von systemd-resolved entbehrlich, nicht aber dessen Service. Weiter heißt es

    systemd-resolved is required if DNS entries are specified in .network files.

    Das träfe für dich zu. Auf jeden Fall ist ein Link
    ln -rsf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    erforderlich, damit du nicht immer manuell die resolv.confkorrigieren musst.

    Irgendwie verstehe ich das nicht.

    Ich habe systemd-networkd per Dienst am laufen.
    systemd-resolved habe ich aktuell nicht am laufen.

    Damit DNS klappt muss ich den nameserver in die /etc/resolv.conf eintragen.

    Heisst das jetzt, wenn ich einfach den Dienst systemd-resolved aktiviere brauche ich den Entrag in der /etc/resolv.conf nicht mehr?
    Ist dann die stub-resolv.conf die Datei die verantwortlich ist, deshalb der Link zur /etc/resolv.conf?

    • Martin-MS hat auf diesen Beitrag geantwortet.

      ziegel Ich habe systemd-networkd per Dienst am laufen.

      Gut

      ziegel systemd-resolved habe ich aktuell nicht am laufen.

      Nicht gut

      ziegel Heisst das jetzt, wenn ich einfach den Dienst systemd-resolved aktiviere brauche ich den Entrag in der /etc/resolv.conf nicht mehr?

      Das ist von den verwendeten Anwendungen abhängig, noch mal aus dem Wiki:

      To provide domain name resolution for software that reads /etc/resolv.conf directly, such as web browsers and GnuPG, systemd-resolved has four different modes for handling the file—stub, static, uplink and foreign. They are described in systemd-resolved(8)

      ziegel Ist dann die stub-resolv.conf die Datei die verantwortlich ist, deshalb der Link zur /etc/resolv.conf?

      Genau, entweder stub-resolv.conf oder eine andere Datei aus /run/systemd/resolve. Ohne systemd-resolvedwird aber keine der Dateien angelegt, und darum funktioniert auch die Namensauflösung nicht.

      Ganz verstehe ich das noch nicht.
      Wenn ich in etc/resolv.conf den DNS Server eintrage, funktioniert DNS ohne systemd-resolved.

      Was hat systemd-resolved denn dann für einen Vorteil? Weil ist ja wieder ein zusätzlicher Dienst der laufen muss.

      • GerBra hat auf diesen Beitrag geantwortet.

        Ich nutze am Desktop auch systemd-networkd mit statischer IP.
        Meine DNS-Server sind in /etc/resolv.conf eingetragen, welches eine reguläre Datei ist.
        //Edit; Den systemd-resolved nutze ich nicht.

        ziegel Ganz verstehe ich das noch nicht.
        Wenn ich in etc/resolv.conf den DNS Server eintrage, funktioniert DNS ohne systemd-resolved.

        Genau. Was zeigt, daß diese Datei den momentanen Netzwerkaufbau (IP<->DNS<->Routing) widerspiegeln muß.

        ziegel Was hat systemd-resolved denn dann für einen Vorteil? Weil ist ja wieder ein zusätzlicher Dienst der laufen muss.

        Bei einem System, welches nicht zwischen mehreren Netwerksetups wechselt keinen.
        Bei mir (statische IP, Rechner hat immer die gleiche Conf) würde resolvd nun immer den/die gleichen DNS-Einträge aus dem Profil in eine neu generierte (verlinkte) resolv.conf schreiben. Ergo: diesen Dienst kann ich mir sparen wenn ich es gleich einmal "richtig" mache. Hat also keinen Vorteil.

        Bei einem System, welches allerdings zwischen mehreren Setups (Standorten, Wired/Wireless, statische IPs/DHCP,...) wechselt braucht es einen Verwalter, der die /etc/resolv.conf an die jeweilige Umgebung anpaßt (das will man nicht von Hand machen müssen).
        Das ist dann die Stunde der Resolver, für systemd bietet sich der eigene an. netctl nutzt dafür z.B. den resolvconf aus openresolv.

        Ich würde dir also raten (wenn dein Setup meinem ähnlich ist): Verzichte auf einen Resolver-Dienst und verwalte die reguläre Datei /etc/resolv.conf per Hand (wenn da überhaupt Änderungen anfallen sollten - ich wechsele z.B. manchmal DNS-Server per An-/Abstellen).
        Der DNS= Eintrag im *.network-Profil kann dann drin bleiben (wird nicht beachtet) oder kann raus, je nach Laune.

        Vielen Dank an alle für die Hilfe.
        Ich nutze dann /etc/resolv.conf.... so spare ich mir den Dienst.
        Der PC steh an einem festen Standort und der DNS wechselt eigentlich nie.

        Klappt so jetzt wunderbar :-)