VMware ESXi and vSphere Cluster Management

host-Befehl unter Linux: DNS-Abfragen für Domains und IP-Adressen

Lerne den Linux-Befehl host kennen: Forward- und Reverse-DNS, A-, AAAA-, NS-, TXT- und SOA-Abfragen, -C, -a, DNS-Server und Fehlersuche.

Der Linux-Befehl host ist ein Kommandozeilenwerkzeug für DNS-Lookups. DNS steht für Domain Name System und verteilt Namen, IP-Adressen sowie weitere Informationen über Domains. Mit host kannst du beispielsweise prüfen, welche IP-Adresse zu einem Hostnamen gehört, ob eine IP-Adresse einen PTR-Eintrag besitzt oder welche Nameserver für eine Zone zuständig sind.

Was macht der host-Befehl?

host fragt einen DNS-Server nach einem Namen, einer IP-Adresse oder einem bestimmten Resource Record ab. Ein Resource Record ist ein DNS-Datensatz eines bestimmten Typs, zum Beispiel ein A-, MX- oder TXT-Record.

  • Forward Lookup: Ein Domain- oder Hostname wird in eine oder mehrere IP-Adressen aufgelöst.
  • Reverse Lookup: Eine IP-Adresse wird über einen PTR-Record in einen Hostnamen aufgelöst.
  • Record-Abfrage: Ein bestimmter DNS-Datensatz wie NS, SOA oder TXT wird abgefragt.
  • DNS-Diagnose: Antworten verschiedener Resolver oder autoritativer Nameserver lassen sich vergleichen.

Der Befehl prüft dabei vor allem die DNS-Konfiguration. Eine erfolgreiche DNS-Auflösung beweist nicht automatisch, dass ein Webserver, Mailserver oder anderer Dienst erreichbar ist. DNS und Dienst-Erreichbarkeit sind getrennte Prüfungen.

Installation und Verfügbarkeit

host gehört zu den DNS-Werkzeugen aus BIND. Prüfe zunächst, ob das Programm vorhanden ist:

host -V
command -v host

Auf Debian, Ubuntu und verwandten Systemen wird das Programm typischerweise mit bind9-host installiert:

sudo apt update && sudo apt install bind9-host

Auf Fedora, RHEL und verwandten Systemen ist meist das Paket bind-utils zuständig:

sudo dnf install bind-utils

Auf älteren Systemen kann statt dnf noch yum verwendet werden. Paketnamen können je nach Distribution und Version abweichen.

Grundsyntax und Aufruf

Das allgemeine Syntaxmuster lautet:

host [Optionen] Name [DNS-Server]
  • Name ist normalerweise ein Domain- oder Hostname. Bei einer IP-Adresse führt host einen Reverse Lookup aus.
  • [Optionen] schränkt die Abfrage ein oder erweitert die Ausgabe.
  • [DNS-Server] ist optional. Wird er angegeben, fragt host diesen Server gezielt ab.

Ohne Argumente zeigt host normalerweise eine Nutzungs- oder Hilfeübersicht:

host

Die genaue Hilfeausgabe kann von der installierten BIND-Version abhängen.

Vorwärtsauflösung von Domains und Hostnamen

Bei einer normalen Namensauflösung fragt host die A- und gegebenenfalls AAAA-Datensätze eines Namens ab:

host example.com

Ein A-Record enthält eine IPv4-Adresse. Ein AAAA-Record enthält eine IPv6-Adresse. Eine typische Ausgabe kann sinngemäß so aussehen:

example.com has address 203.0.113.10
example.com has IPv6 address 2001:db8::10

Die tatsächlich ausgegebenen Adressen hängen von der DNS-Zone und vom verwendeten Resolver ab. Mehrere Adressen sind normal. Sie können beispielsweise für Lastverteilung, Redundanz, geografische Verteilung oder getrennte IPv4- und IPv6-Erreichbarkeit veröffentlicht werden.

Praktische Beispiele:

host linux-bible.com
host example.com

Ohne expliziten DNS-Server verwendet host normalerweise den im System konfigurierten Resolver.

Reverse-DNS-Abfragen mit IP-Adressen

Bei einem Reverse Lookup wird eine IP-Adresse nach ihrem PTR-Record gefragt:

host 203.0.113.10
host 208.117.229.34

Eine mögliche Antwort lautet:

10.113.0.203.in-addr.arpa domain name pointer host.example.com.

Bei IPv4 werden Reverse-DNS-Daten unter in-addr.arpa verwaltet. Bei IPv6 wird der Bereich ip6.arpa verwendet. Du musst diese Namen normalerweise nicht selbst bilden, weil host die Umwandlung übernimmt.

Ein PTR-Record wird vom Inhaber des jeweiligen IP-Adressbereichs gepflegt, häufig also von einem Hosting- oder Internetprovider. Eine Domain kann vorwärts auflösbar sein, ohne dass die zugehörige IP-Adresse rückwärts einen Hostnamen liefert. Forward- und Reverse-DNS sind unabhängig voneinander.

Bestimmte DNS-Record-Typen abfragen

Mit -t wählst du den gewünschten Record-Typ aus:

host -t TYP NAME

Beispiele:

host -t A example.com
host -t AAAA example.com
host -t CNAME www.example.com
host -t MX example.com
host -t NS google.com
host -t SOA example.com
host -t TXT google.com
TypBedeutungTypischer EinsatzBeispielabfrage
AIPv4-AdresseAuflösung eines Namens zu IPv4host -t A example.com
AAAAIPv6-AdresseAuflösung eines Namens zu IPv6host -t AAAA example.com
CNAMEAlias auf einen kanonischen HostnamenAliasziel eines Hostnamens ermittelnhost -t CNAME www.example.com
MXMailserver einer DomainPrüfung der Mailzustellunghost -t MX example.com
NSZuständiger Nameserver einer ZoneDelegierte beziehungsweise autoritative Nameserver anzeigenhost -t NS example.com
PTRHostname zu einer IP-AdresseReverse DNShost -t PTR 10.113.0.203.in-addr.arpa
SOAStart of Authority, Verwaltungsdaten der ZoneSeriennummer und Zeitwerte prüfenhost -t SOA example.com
TXTFrei definierbare ZeichenketteSPF, Domain-Verifikation und Richtlinienhost -t TXT example.com
SRVDienstbezogene Serverangabe mit PortAutomatische Suche bestimmter Netzwerkdienstehost -t SRV _service._tcp.example.com
CAAZertifikatsaussteller-RichtlinieFestlegen oder Prüfen erlaubter Certificate Authoritieshost -t CAA example.com

Je nach Version werden außerdem Typen wie DNSKEY beziehungsweise ältere Bezeichnungen wie KEY und SIG unterstützt. Diese Records stehen unter anderem im Zusammenhang mit DNSSEC und kryptografischen Signaturen. Nicht jeder DNS-Server liefert jeden Typ für jede Zone.

NS-Records

NS-Records nennen die Nameserver, die für eine DNS-Zone zuständig sind:

host -t NS google.com

Ein autoritärer Nameserver liefert die verbindlichen DNS-Daten seiner Zone. Ein rekursiver DNS-Server nimmt dagegen Anfragen von Clients entgegen und beschafft Antworten gegebenenfalls aus seinem Cache oder von autoritativen Servern.

TXT-Records

TXT-Werte sind frei definierte Textzeichenketten. Häufig enthalten sie SPF-Informationen, Domain-Verifikationen oder Richtlinien für Sicherheitsverfahren:

host -t TXT google.com
host -t TXT example.com

Eine TXT-Abfrage zeigt nur den veröffentlichten Inhalt. Sie bewertet nicht automatisch, ob eine SPF-, DKIM- oder DMARC-Konfiguration fachlich korrekt ist.

SOA-Records

Der SOA-Record, kurz für Start of Authority, beschreibt zentrale Verwaltungsdaten einer DNS-Zone:

host -t SOA example.com

Eine Antwort enthält typischerweise:

  • den primären Nameserver der Zone,
  • eine verantwortliche Kontaktadresse in DNS-Schreibweise,
  • die Seriennummer der Zone,
  • Refresh-, Retry- und Expire-Zeitwerte für sekundäre Nameserver,
  • die minimale beziehungsweise negative Cache-Zeit, abhängig von der verwendeten DNS-Implementierung.

Die Seriennummer wird bei Änderungen der Zone üblicherweise erhöht. Sekundäre Nameserver verwenden sie, um festzustellen, ob ihre Zonendaten aktualisiert werden müssen.

SOA-Konsistenz mit -C prüfen

host -t SOA example.com zeigt den SOA-Record einer normalen Abfrage. Die Option -C geht weiter: Sie prüft die SOA-Antworten der autoritativen Nameserver auf Konsistenz.

host -C example.com

Abweichende SOA-Seriennummern oder unterschiedliche Antworten können auf Probleme bei Zonentransfers, NOTIFY-Nachrichten, Erreichbarkeit oder Replikation hindeuten. Eine solche Abweichung ist besonders relevant, wenn ein sekundärer Nameserver noch veraltete Zonendaten ausliefert.

Umfangreiche Abfragen mit -a und -v

Mit -a forderst du eine ausführliche Abfrage an:

host -a example.com

Diese Option wird häufig als umfangreiche beziehungsweise ANY-Abfrage verwendet. Viele DNS-Server schränken ANY-Abfragen aus Sicherheits-, Last- oder Datenschutzgründen ein. Deshalb liefert host -a nicht zwingend eine vollständige Liste aller vorhandenen DNS-Datensätze.

Mit -v kann eine detailliertere Ausgabe angefordert werden:

host -v example.com

Für zuverlässige Prüfungen solltest du benötigte Record-Typen einzeln abfragen, beispielsweise mit -t MX, -t TXT oder -t CAA. Eine reduzierte ANY-Antwort bedeutet nicht automatisch, dass ein bestimmter Record fehlt.

Einen DNS-Server gezielt abfragen

Standardmäßig verwendet host den lokal konfigurierten Resolver. Der DNS-Server kann als zweites Argument angegeben werden:

host example.com 1.1.1.1
host -t TXT example.com 1.1.1.1

Das ist nützlich, um einen öffentlichen rekursiven Resolver mit dem lokalen Resolver zu vergleichen. Du kannst außerdem einen autoritativen Nameserver aus einer NS-Antwort direkt abfragen:

host -t NS example.com
host -t SOA example.com ns1.example.net

Beim Vergleich musst du Caching, TTLs und unterschiedliche Validierungs- oder Filtereinstellungen berücksichtigen. Ein rekursiver Resolver kann eine zwischengespeicherte Antwort liefern, während ein autoritativer Server die Zonendaten direkt bereitstellt.

Die Ausgabe richtig interpretieren

Ausgabe oder FehlerBedeutungMögliche UrsacheNächster Prüfschritt
has addressEin A-Record wurde gefunden.Der Name besitzt mindestens eine IPv4-Adresse.Bei Bedarf zusätzlich host -t A NAME ausführen.
has IPv6 addressEin AAAA-Record wurde gefunden.Der Name besitzt mindestens eine IPv6-Adresse.Mit host -t AAAA NAME gezielt prüfen.
domain name pointerEin PTR-Record ordnet der IP-Adresse einen Namen zu.Reverse DNS ist für diese Adresse eingerichtet.Vorwärtsauflösung des zurückgegebenen Namens separat testen.
not found: 3(NXDOMAIN)Der DNS-Name existiert aus Sicht des antwortenden Servers nicht.Schreibfehler, nicht angelegte Domain oder fehlender Record.Name prüfen sowie NS- und SOA-Records der übergeordneten Zone abfragen.
connection timed outKeine rechtzeitige Antwort.Resolver, Netzwerk, VPN oder Firewall blockiert oder ist nicht erreichbar.Anderen Resolver testen und DNS-Verbindung prüfen.
SERVFAILDer Server konnte die Anfrage nicht erfolgreich abschließen.DNSSEC-Validierung, autoritative Server oder Zonendaten problematisch.Mit anderem Resolver vergleichen sowie NS- und SOA-Daten prüfen.

Bei SOA-Antworten solltest du insbesondere den primären Nameserver, den Kontakt, die Seriennummer und die Zeitwerte betrachten. Bei NS-Antworten sind die genannten Nameserver die maßgeblichen Anlaufstellen für die Zone. TXT-Ausgaben sind Zeichenketten und müssen je nach Zweck, etwa SPF oder Verifikation, inhaltlich interpretiert werden.

Typische Fehler und ihre Behebung

NXDOMAIN oder „not found“

Prüfe zuerst die Schreibweise des Namens. Teste anschließend die grundsätzliche Auflösung ohne -t und frage die NS- sowie SOA-Records der übergeordneten Domain ab. Ein vorhandener Domainname bedeutet nicht, dass jeder gewünschte Hostname oder jeder angeforderte Record existiert.

Keine Antwort auf einen Reverse Lookup

Ein fehlender Hostname bedeutet nicht automatisch, dass die IP-Adresse ungültig ist. Der Inhaber des Adressbereichs kann den PTR-Record weggelassen oder anders konfiguriert haben. Bei Provider-Adressen wird Reverse DNS oft über ein Kundenportal oder den Provider verwaltet. Vorwärts- und Rückwärtsauflösung müssen getrennt bewertet werden.

Timeout

Ein Timeout kann auf einen nicht erreichbaren lokalen Resolver, Netzwerkprobleme oder blockierten DNS-Verkehr hindeuten. Teste einen anderen DNS-Server:

host example.com 1.1.1.1

Prüfe außerdem die lokale Resolver-Konfiguration, VPN-Regeln und Firewalls. DNS verwendet häufig UDP auf Port 53; für bestimmte Antworten kann auch TCP auf Port 53 erforderlich sein.

SERVFAIL

SERVFAIL bedeutet, dass der Resolver die Anfrage nicht erfolgreich abschließen konnte. Häufige Ursachen sind fehlerhafte DNSSEC-Validierung, nicht erreichbare autoritative Nameserver oder widersprüchliche Zonendaten. Ein Vergleich mit einem anderen Resolver hilft bei der Eingrenzung.

Unvollständige Ausgabe bei -a

Eine ANY-Abfrage ist keine Garantie für eine vollständige Zonenübersicht. Frage die benötigten Typen einzeln ab:

host -t A example.com
host -t MX example.com
host -t TXT example.com
host -t CAA example.com

Abweichende SOA-Daten bei -C

Unterschiedliche Seriennummern können bedeuten, dass Änderungen noch nicht auf alle autoritativen Nameserver übertragen wurden. Prüfe Zonentransfer, NOTIFY, Erreichbarkeit und die Antworten der einzelnen Nameserver. Wiederhole die Prüfung nach der Synchronisation.

Praxisübersicht der wichtigsten Optionen

OptionZweckBeispielHinweis
-tRecord-Typ auswählenhost -t MX example.comTypen wie A, AAAA, NS, SOA, TXT oder CNAME verwenden.
-CSOA-Konsistenz autoritativer Nameserver prüfenhost -C example.comNicht mit einer einfachen -t SOA-Abfrage verwechseln.
-aAusführliche beziehungsweise ANY-nahe Abfragehost -a example.comServer können solche Abfragen einschränken.
-vDetailliertere Ausgabehost -v example.comDie genaue Darstellung hängt von der BIND-Version ab.

Zusammenfassung

  • host NAME prüft die normale Namensauflösung über den lokalen Resolver.
  • host IP-Adresse führt einen Reverse Lookup über einen PTR-Record aus.
  • Mit -t fragst du bestimmte DNS-Record-Typen wie A, AAAA, MX, NS, SOA, TXT oder CNAME ab.
  • -C vergleicht SOA-Daten der autoritativen Nameserver und hilft bei der Suche nach Replikationsproblemen.
  • -a kann umfangreiche Informationen anfordern, liefert wegen Einschränkungen von ANY-Abfragen aber nicht zwingend alle Records.
  • Mit einem zweiten Argument wie 1.1.1.1 lässt sich ein bestimmter DNS-Server testen.
  • DNS-Auflösung und die tatsächliche Erreichbarkeit eines Dienstes sind unterschiedliche Prüfungen.