resolvectl

Aus Foxwiki


BEZEICHNUNG

resolvectl, resolvconf - Domain-Namen, IPv4- und IPv6-Adressen, DNS-Ressourcen-Datensätze und -Dienste auflösen; den DNS-Resolver überprüfen und neu konfigurieren

ÜBERSICHT

resolvectl [OPTIONEN…] {BEFEHL} [NAME…]

BESCHREIBUNG

resolvectl kann zum Auflösen von Domain-Namen, IPv4- und IPv6- Adressen, DNS-Ressourcendatensätzen und Diensten mit dem systemd-resolved.service(8)-Auflöser-Dienst verwandt werden.

  • Standardmäßig wird die angegebene Liste der Parameter als Rechnernamen aufgelöst und ihre IPv4- und IPv6-Adressen aufgelöst.
  • Falls die angegebenen Parameter als IPv4- oder IPv6-Aktion formatiert sind, erfolgt die umgekehrte Aktion und der Rechnername für die angegebene Adresse wird abgefragt.

Die Ausgabe des Programms enthält Informationen über das für das Abfragen verwandte Protokoll und auf welcher Netzschnittstelle die Daten ermittelt wurden.

  • Sie enthält auch Informationen, ob die Informationen authentifiziert ermittelt werden konnten.
  • Alle Daten mit erfolgreicher lokaler DNSSEC-Überprüfung werden als authentifiziert betrachtet.
  • Desweiteren werden alle Daten aus lokalen, vertrauenswürdigen Quellen auch als authentifiziert gemeldet, einschließlich der Auflösung des lokalen Rechnernamens, des Rechnernamens »localhost« oder aller Daten von /etc/hosts.

BEFEHLE

query RECHNERNAME|ADRESSE…

Löst Domain-Namen sowie IPv4- und IPv6-Adressen auf.

  • Wird dies zusammen mit --type= oder --class= (siehe unten) verwandt, werden systemnahe DNS-Ressource-Datensätze aufgelöst.

Wenn ein freistehender Domain-Name angegeben ist, wird nach ihm entsprechend der konfigurierten Such-Domains gesucht — außer --search=no oder --type=/--class= ist angegeben, da beide diese Logik ausschalten.

Falls ein internationaler Domain-Namen angegeben ist, wird er automatisch gemäß der IDNA-Regeln übersetzt, wenn er mittels klassischem DNS aufgelöst wird aber nicht beim Nachschlagen mittels MulticastDNS oder LLMNR.

  • Falls --type=/--class= verwandt wird, dann wird IDNA-Übersetzung ausgeschaltet und die Domain-Namen werden so wie angegeben verarbeitet.
service [[NAME] TYP] DOMAIN 

Löst DNS-SD[1]- und SRV[2]-Dienste auf, abhängig von der angegebenen Liste von Parametern.

  • Falls drei Parameter übergeben werden, wird der erste als DNS-SD-Dienstename, der zweite als SRV-Dienstetyp und der dritte als die zu durchsuchende Domain angenommen.
  • In diesem Fall wird ein komplettes DNS-SD-artiges SRV- und TXT-Abfragen ausgeführt.
  • Falls nur zwei Parameter angegeben sind, wird der erste als SRV-Dienstetyp und der zweite als die in der zu suchenden Domain angenommen.
  • In diesem Fall wird kein TXT-Ressourcendatensatz angefordert.
  • Falls schließlich nur ein Parameter angegeben ist, wird er als Domain-Name, dem bereits ein SRV-Typ vorangestellt wurde, angenommen und eine SRV-Abfrage durchgeführt (kein TXT).
openpgp E-MAIL@DOMAIN…

Fragt PGP-Schlüssel ab, die als OPENPGPKEY-Ressourcendatensätze gespeichert sind, siehe RFC 7929[3].

  • Angegebene E-Mail-Adressenwerden zu dem entsprechenden DNS-Domain-Namen aufgelöst und alle OPENPGPKEY-Schlüssel werden ausgegeben.
tlsa [FAMILIE] DOMAIN[:PORT]…

Fragt öffentliche TSL-Schlüssel ab, die als TLSA-Ressourcedatensätze gespeichert sind, siehe RFC 6698[4].

  • Eine Anfrage wird für jeden der angegebenen Namen (mit vorangestelltem Port und vorangestellter Familie, d.h. »_Port._Familie.Domain«) durchgeführt.
  • Die Portnummer kann nach einem Doppelpunkt (»:«) angegeben werden, andernfalls wird standardmäßig 443 verwandt.
  • Die Familie kann als erstes Argument verwandt werden,andernfalls wird tcp verwandt.
status [LINK…]

Zeigt die derzeit effektiven globalen und linkbezogenen DNS-Einstellungen.

  • Wenn kein Befehl angegeben ist, ist dies die implizite Vorgabe.
statistics 

Zeigt die allgemeinen Statistiken des Auflösers an, einschließlich Informationen, ob DNSSEC aktiviert und verfügbar ist und Auflösungs- und Überprüfungsstatistiken.

reset-statistics 

Setzt die in statistics gezeigten Statistikzähler auf Null zurück.

  • Diese Aktion benötigt root-Rechte.
flush-caches 

Leert alle Zwischenspeicher der DNS-Ressourcendatensätze, die der Dienst lokal verwaltet.

  • Dies ist größtenteils äquivalent zum Senden von SIGUSR2 an den Dienst systemd-resolved.
reset-server-features 

Leert alle Funktionalitätsstufeninformationen, die der Resolver über bestimmte Server gelernt hat und stellt sicher, dass die Serverüberprüfungslogik bei der nächsten Abfrageanfrage von Anfang an gestartet wird.

  • Dies ist größtenteils äquivalent zum Senden von SIGRTMIN+1 an den Dienst systemd-resolved.
dns [LINK [SERVER…]], Domain [LINK [DOMAIN…]], default-route [LINK [LOGISCH…]], llmnr [LINK [MODUS]], mdns [LINK [MODUS]], dnssec [LINK [MODUS]],dnsovertls [LINK [MODUS]], nta [LINK [DOMAIN…]]

Ermittelt/Setzt schnittstellenbasierte DNS-Konfiguration.

  • Diese Befehle können zur Konfiguration verschiedener DNS-Einstellungen für Netzwerkschnittstellen verwandt werden.
  • Diese Befehle können zum Informieren von systemd-resolved oder systemd-networkd über schnittstellenbezogene DNS-Konfiguration, die mittels externer Mittel bestimmt werden, verwandt werden.
  • Der Befehl dns erwartet IPv4- oder IPv6-Adressangaben für zu verwendende DNS-Server.
  • Jede Adresse kann optional eine durch »:« abgetrennte Port-Nummer, einen mit »%« abgetrennten Netzwerkschnittstellennamen oder -Index und eine durch »#« abgetrennte Server-Namensanzeige (SNI) akzeptieren.
  • Wenn eine IPv6-Adresse mit einer Port-Nummer angegeben wird, dann muss die Adresse in eckige Klammern eingeschlossen werden.
  • Das bedeutet, dass »111.222.333.444:9953%sname#example.com« für IPv4 und »[1111:2222::3333]:9953%sname#example.com« für IPv6 akzeptierbare vollständige Formate sind.
  • Der Befehl domain= erwartet gültige DNS-Domains, möglicherweise mit vorangestelltem »~« und konfiguriert eine schnittstellenbezogene Such- und nur-Routing-Domain.
  • Der Befehl default-route erwartet einen logischen Parameter und konfiguriert, ob der Link als Standardroute für DNS-Abfragen verwandt werden darf, d.h. ob er für Abfragen für Domains geeignet ist, für die kein anderer Link explizit konfiguriert wurde.
  • Die Befehle llmnr, mdns, dnssec und dnsovertls können zur Konfiguration der schnittstellenbezogenen LLMNR-, MulticastDNS-, DNSSEC- und DNSOverTLS-Einstellungen verwandt werden.
  • Schließlich kann der Befehl nta verwandt werden, um zusätzliche linkbezogene DNSSEC-NTA-Domains zu konfigurieren.

Die Befehle dns, domain und nta können eine einzelne leere Zeichenkette als Argument akzeptieren, um ihre jeweiligen Wertelisten zurückzusetzen.

Für Details über diese Einstellungen, ihrer möglichen Werte und ihrer Wirkungen, lesen Sie in systemd.network(5) für die korrespondierenden Einstellungen.

revert LINK 

Setzt die schnittstellenbezogene DNS-Konfiguration zurück.

  • Falls die DNS-Konfiguration zurückgesetzt wird, werden alle schnittstellenbezogenen DNS-Einstellungen auf ihre Vorgaben zurückgesetzt, damit werden alle Effekte von dns, domain, default-route, llmnr, mdns, dnssec, dnsovertls, nta rückgängig gemacht.
  • Beachten Sie, dass sämtliche Konfiguration automatisch verloren geht, wenn eine Netzwerkschnittstelle verschwindet, ein explizites Zurücksetzen ist in diesem Fall nicht notwendig.
log-level [STUFE]

Zeigt die aktuelle Protokollierstufe des Verwalters an, falls kein Argument angegeben ist.

  • Falls das optionale Argument STUFE bereitgestellt wird, dann ändert der Befehl die aktuelle Protokollierstufe des Verwalters auf STUFE (akzeptiert die gleichen Werte wie für das in systemd(1) beschriebene --log-level=).

OPTIONEN

-4, -6

Standardmäßig werden sowohl die IPv4- als auch die IPv6-Adresse beim Auflösen eines Rechnernamens erlangt.

  • Durch Angabe von -4 werden nur IPv4-Adressen angefragt, durch -6 nur IPv6-Adressen.

-i SCHNITTSTELLE, --interface=SCHNITTSTELLE Gibt die Netzschnittstelle an, auf der die Anfrage ausgeführt wird.

  • Dies kann entweder als numerischer Schnittstellenindex oder als Netzwerkschnittstellenzeichenkette (z. B.  »en0«) erfolgen.
  • Beachten Sie, dass diese Option unwirksam ist, falls eine systemweite DNS-Konfiguration

(wie in /etc/resolv.conf oder /etc/systemd/resolved.conf konfiguriert) anstelle von einer linkbasierten Konfiguration verwandt wird.

-p PROTOKOLL, --protocol=PROTOKOLL Gibt das Netzwerkprotokoll für die Abfrage an.

  • Kann einer aus »dns« (d.h.
  • klassisches unicast DNS), »llmnr« (Link-lokale multicast Namensauflösung[5]), »llmnr-ipv4«, »llmnr-ipv6« (LLMNR über die angezeigten darunterliegenden IP-Protokolle), »mdns« (Multicast DNS[6]), »mdns-ipv4«, »mdns-ipv6« (MDNS über die angezeigten unterliegenden IP-Protokolle) sein.
  • Standardmäßig erfolgt das Abfragen über alle für das Abfragen geeigneten Protokolle.
  • Falls dies verwandt wird, schränkt es die zu verwendenden Protokolle ein.
  • Verwenden Sie diese Option mehrfach, um die Auflösung über mehrere Protokolle gleichzeitig zu ermöglichen.
  • Die Einstellung »llmnr« ist identisch zur Angabe dieses Schalters einmal mit »llmnr-ipv4« und einmal mit »llmnr-ipv6«.
  • Beachten Sie, dass diese Option den Dienst nicht dazu zwingt, die Aktion mit dem angegebenen Protokoll aufzulösen, da dies eine geeignete Netzwerkschnittstelle und -konfiguration benötigen könnte.
  • Der besondere Wert »help« kann zum Auflisten aller bekannten Werte verwandt werden.

-t TYP, --type=TYP, -c KLASSE, --class=KLASSE Wenn dies zusammen mit dem Befehl query verwandt wird, gibt dies den nachzuschlagenden DNS-Ressourcendatensatztyp (z. B. 

  • A, AAAA, MX, …) und -klasse (z. B.  IN, ANY …) an.
  • Falls diese Option verwandt wird, wird ein DNS-Ressourcendatensatz mit passender Klasse und Typ angefragt.
  • Falls nur ein Typ angegeben ist, ist die Klasse standardmäßig IN.
  • Der besondere Wert »help« kann zum Auflisten aller bekannten Werte verwandt werden.

Ohne diese Optionen stellt resolvectl query eine abstrakte Domain-Namen-an-Adressen- und Adressen-an-Domain-Namen-Auflösung bereit.

  • Mit diesen Optionen stellt es eine systemnahe DNS-Ressourcen-Datensatz-Auflösung bereit.
  • Die Such-Domain-Logik wird automatisch ausgeschaltet, wenn diese Optionen verwandt werden, d.h.
  • die angegebenen Domain-Namen müssen vollständig qualifizierte Domain-Namen sein.
  • Desweiteren ist auch die IDNA-interne Domain-Namen-Übersetzung ausgeschaltet, d.h.
  • internationale Domain-Namen sollten in der Notation »xn--…« angegeben werden, außer Nachschlagen in MulticastDomain Name System/LLMNR ist gewünscht, dann sollten UTF-8-Zeichen verwandt werden.

--service-address=LOGISCH Akzeptiert einen logischen Parameter.

  • Falls »true« (die Vorgabe), werden die in SRV-Ressourcendatensätzen enthaltenen Rechnernamen auch mit aufgelöst, wenn eine Diensteauflösung mit --service erfolgt.

--service-txt=LOGISCH Akzeptiert einen logischen Parameter.

  • Falls »true« (die Vorgabe), wird auch der TXT-Dienstemetadatendatensatz aufgelöst, wenn eine DNS-SD-Diensteauflösung mit --service erfolgt.

--cname=LOGISCH Akzeptiert einen logischen Parameter.

  • Falls »true« (die Vorgabe), wird DNS-CNAME- oder DNAME-Umleitungen gefolgt.
  • Andernfalls wird ein Fehler zurückgeliefert, falls ein CNAME- oder DNAME-Datensatz bei der Auflösung angetroffen wird.

--validate=LOGISCH Akzeptiert einen logischen Parameter; im Zusammenhang mit query benutzt.

  • Falls wahr (die Vorgabe) wird DNSSEC-Validierung wie üblich angewandt — unter der Bedingung, dass sie für das Netzwerk und systemd-resolved.service als ganzes aktiviert ist.
  • Falls falsch, wird DNSSEC-Validierung für die angegebene Anfrage deaktiviert, unabhängig davon, ob sie für das Netzwerk oder in dem Dienst aktiviert ist.
  • Beachten Sie, dass das Einstellen dieser Option auf wahr keine DNSSEC-Validierung auf Systemen/Netzwerken erzwingt, auf denen DNSSEC ausgeschaltet ist.
  • Diese Option ist nur zum Einschalten solcher Validierung geeignet, wo sie andernfalls aktiviert ist, nicht zur Aktivierung der Validierung, wo sie andernfalls deaktiviert ist.

--synthesize=LOGISCH Akzeptiert einen logischen Parameter; im Zusammenhang mit query benutzt.

  • Falls wahr (die Vorgabe), werden ausgewählte Domains auf dem lokalen System aufgelöst, unteranderem »localhost«, »_gateway« und »_outbound« oder Einträge aus /etc/hosts.
  • Falls falsch, werden diese Domains nicht lokal aufgelöst und schlagen entweder fehl (im Falle von »localhost«, »_gateway« oder »_outbound« und ähnlichen) oder werden über reguläre Domain Name System/mDomain Name System/LLMNR-Abfragen an das Netzwerk geleitet (im Falle von /etc/hosts-Einträgen).

--cache=LOGISCH Akzeptiert einen logischen Parameter; im Zusammenhang mit query benutzt.

  • Falls wahr (die Vorgabe), verwenden Abfragen den lokalen DNS-Ressourcendatensatz-Zwischenspeicher.
  • Falls falsch, werden Abfragen stattdessen in das Netzwerk weitergeleitet, unabhängig davon, ob sie bereits im lokalen Zwischenspeicher verfügbar sind.

--zone=LOGISCH Akzeptiert einen logischen Parameter; im Zusammenhang mit query benutzt.

  • Falls wahr (die Vorgabe), werden Abfragen aus lokal registrierten LLMNR-

oder mDNS-Ressourcendatensätzen, falls definiert, beantwortet.

  • Falls falsch, werden lokal registrierte LLMNR-/mDNS-Datensätze nicht für Abfragebitten berücksichtigt.

--trust-anchor=LOGISCH Akzeptiert einen logischen Parameter; im Zusammenhang mit query benutzt.

  • Falls wahr (die Vorgabe), werden Abfragen für DS und DNSKEY aus den lokalen DNSSEC-Vertrauensankern beantwortet, falls möglich.
  • Falls falsch, wird der lokale Vertrauensspeicher für Abfragebitten nicht berücksichtigt.

--network=LOGISCH Akzeptiert einen logischen Parameter; im Zusammenhang mit query benutzt.

  • Falls wahr (die Vorgabe), werden Abfragen mittels DNS-, LLMNR- oder mDNS-Netzwerkanfragen beantwortet, falls sie nicht lokal synthetisiert werden können, oder aus dem lokalen Zwischenspeicher, der Zone oder Vertrauensankern beantwortet (siehe oben).
  • Falls falsch, wird die Anfrage nicht aus dem Netz beantwortet und wird daher fehlschlagen, falls keine der angegebenen Quellen sie beantworten kann.

--search=LOGISCH Akzeptiert einen logischen Parameter.

  • Falls »true« (die Vorgabe), wird jeder angegebene freistehende Rechnername in den in der Such-Domain-Liste konfigurierten Domains gesucht, falls die Liste nicht leer ist.
  • Andernfalls ist die Such-Domain-Logik deaktiviert.
  • Beachten Sie, dass diese Option wirkungslos ist, falls --type= verwandt wird (siehe oben); in diesem Fall ist die Such-Domain-Logik bedingungslos ausgeschaltet.

--raw[=payload|packet]

Gibt die Antwort als binäre Daten aus.

  • Falls es kein Argument gibt oder falls das Argument »payload« lautet, werden die Nutzdaten des Pakets exportiert.
  • Falls das Argument »packet« ist, wird das gesamte Paket im Leitungsformat ausgegeben, die Länge wird als 64-Bit-Zahl im Little-Endian-Format vorangestellt.
  • Dieses Format erlaubt es, mehrere Pakete auszugeben und eindeutig auszuwerten.

--legend=LOGISCH Akzeptiert einen logischen Parameter.

  • Falls »true« (die Vorgabe), werden die Spaltenköpfe und Metainformationen über die Abfrageantwort gezeigt.

Andernfalls wird diese Ausgabe unterdrückt.

-h, --help Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

--no-pager Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

KOMPATIBILITÄT MIT RESOLVCONF(8)

resolvectl ist ein Programm mit mehreren Aufrufen.

  • Wird es als »resolvconf« ausgeführt (normalerweise mittels eines symbolischen Links dieses Namens auf das Programm resolvectl), wird es im begrenzten resolvconf(8)-Kompatibilitätsmodus ausgeführt.
  • Es akzeptiert größtenteils die gleichen Argumente und schiebt alle Daten in systemd-resolved.service(8), ähnlich wie die Befehle dns und domain agieren.
  • Beachten Sie, dass systemd-resolved.service das einzige unterstützte Backend ist, was sich von anderen Implementierungen dieses Befehls unterscheidet.

/etc/resolv.conf wird nur mit durch diesen Befehl hinzugefügten Servern aktualisiert, wenn /etc/resolv.conf ein Symlink auf /run/systemd/resolve/resolv.conf und keine statische Datei ist. Siehe die Diskussion über die Handhabung von /etc/resolv.conf in systemd-resolved.service(8).

Nicht alle von anderen Implementierungen unterstützte Aktionen werden nativ unterstützt. Insbesondere:

-a Registriert schnittstellenbezogene DNS-Konfigurationsdaten mit systemd-resolved.

Erwartet einen Netzwerkschnittstellennamen als einziges Befehlszeilenargument. Liest resolv.conf(5)-kompatible DNS-Konfigurationsdaten aus seiner Standardeingabe. Relevante Felder sind »nameserver« und »domain«/»search«. Dieser Befehl ist größtenteils identisch zum Aufruf von resolvectl mit einer Kombination der Befehle dns und domain.

-d Deregistriert schnittstellenbezogene DNS-Konfigurationsdaten mit systemd-resolved. Dieser Befehl ist größtenteils identisch zum Aufruf von resolvectl revert.

-f Falls angegeben, beschweren sich -a und -d nicht über fehlende Netzwerkschnittstellen und führen ohne Rückmeldung in diesem Fall keine Aktion aus.

-x Dieser Schalter für »exklusive« Aktionen wird nur teilweise unterstützt.

Er wird auf eine zusätzlich konfigurierte Such-Domain von »~.« abgebildet — d.h. er stellt sicher, dass DNS-Verkehr bevorzugt zu dem DNS-Server auf dieser Schnittstelle geroutet wird, außer es gibt andere, spezifischere Domains, die auf anderen Schnittstellen konfiguriert sind.

-m, -p Diese Schalter werden nicht unterstützt und werden stillschweigend ignoriert.

-u, -I, -i, -l, -R, -r, -v, -V, --enable-updates, --disable-updates, --are-updates-enabled Diese Schalter werden nicht unterstützt und der Befehl schlägt bei deren Verwendung fehl.

Siehe resolvconf(8) für Details über diese Befehlszeilenoptionen.

BEISPIELE

Ermitteln der Adresse der Domain von »www.0pointer.net« (A- und AAAA-Resourcendatensätze)

$ resolvectl query www.0pointer.net www.0pointer.net: 2a01:238:43ed:c300:10c3:bcf3:3266:da74
85.214.157.71

-- Information acquired via protocol DNS in 611.6ms.

-- Data is authenticated: no

Beispiel 2. Ermitteln der Domain der IP-Adresse »85.214.157.71« (PTR-Resourcendatensatz)

$ resolvectl query 85.214.157.71
85.214.157.71: gardel.0pointer.net

-- Information acquired via protocol DNS in 1.2997s.

-- Data is authenticated: no

Ermitteln des MX-Datensatzes der Domain »yahoo.com«

$ resolvectl --legend=no -t MX query yahoo.com yahoo.com. IN MX    1 mta7.am0.yahoodns.net yahoo.com. IN MX    1 mta6.am0.yahoodns.net yahoo.com. IN MX    1 mta5.am0.yahoodns.net

Auflösen eines SRV-Dienstes

$ resolvectl service _xmpp-server._tcp gmail.com
_xmpp-server._tcp/gmail.com: alt1.xmpp-server.l.google.com:5269 [priority=20, weight=0]
173.194.210.125
alt4.xmpp-server.l.google.com:5269 [priority=20, weight=0]
173.194.65.125
...

Ermitteln eines PGP-Schlüssels (OPENPGP-Resourcendatensatz)

$ resolvectl openpgp zbyszek@fedoraproject.org d08ee310438ca124a6149ea5cc21b6313b390dce485576eff96f8722._openpgpkey.fedoraproject.org. IN OPENPGPKEY mQINBFBHPMsBEACeInGYJCb+7TurKfb6wGyTottCDtiSJB310i37/6ZYoeIay/5soJjlMyf MFQ9T2XNT/0LM6gTa0MpC1st9LnzYTMsT6tzRly1D1UbVI6xw0g0vE5y2Cjk3xUwAynCsSs
...

Ermitteln eines TLS-Schlüssel (TLSA-Resourcendatensatz))

$ resolvectl tlsa tcp fedoraproject.org:443
_443._tcp.fedoraproject.org IN TLSA 0 0 1 19400be5b7a31fb733917700789d2f0a2471c0c9d506c0e504c06c16d7cb17c0

-- Cert. usage: CA constraint

-- Selector: Full Certificate

-- Matching type: SHA-256

»tcp« und »:443« sind optional und können ausgelassen werden.

SIEHE AUCH

  1. systemd(1)
  2. systemd-resolved.service(8)
  3. systemd.dnssd(5)
  4. systemd-networkd.service(8)
  5. resolvconf(8)

ANMERKUNGEN

  1. DNS-SD https://tools.ietf.org/html/rfc6763
  2. SRV https://tools.ietf.org/html/rfc2782
  3. RFC 7929 https://tools.ietf.org/html/rfc7929
  4. RFC 6698 https://tools.ietf.org/html/rfc6698
  5. Linklokale Multicast-Namensauflösung https://tools.ietf.org/html/rfc4795
  6. Multicast DNS https://www.ietf.org/rfc/rfc6762.txt