DNS

Einen Kurz-Überblick über die Domain gibt

host example.com

Das Tool der Wahl bei der Untersuchung von DNS-Problemen ist aber Domain Information Groper - kurz dig aus dem bind-utils-Paket.

yum -y install bind-utils
dig @my-dns example.com

# get A- and MX records
dig @my-dns A example.com
dig @my-dns MX example.com

# find the authoritative servers by asking for the NS records for a domain
dig NS example.com

Einen vereinfachten Reverse-Lookup führt man so durch:

dig -x 192.0.2.74
dig -x @my-dns 192.0.2.74
dig -x @my-dns www.example.com

Beispiel für eine Abfrage des A- und MX-Records:

dig @my-dns A example.com | grep --after-context 2 'ANSWER SECTION'
dig @my-dns MX example.com | grep --after-context 2 'ANSWER SECTION'

Verkürzte Ausgabe:

dig +short ...

Lokalen DNS-Cache löschen:

systemctl restart dnsmasq

Troubleshooting

Troubleshooting im DNS-Umfeld bedeutet, eine Kette von Diensten zu untersuchen: angefangen bei lokalen Konfigurationsdateien wie der /etc/hosts, weiter über den lokalen DNS-Client, hin zu den Caching-DNS, zu den Forwarders, die lokal und beim Provider angesiedelt sein können, bis hinauf zu den Root-DNS.

Beispiel: http://example.com lässt sich nicht auflösen?

  • Einträge in der /etc/hosts untersuchen.

  • Die Name Service Switch-Datei /etc/nsswitch legt die Reihenfolge der abzufragenden Namens-Dienste fest; schauen, ob und an welcher Position die Zeile beginnend mit „hosts“ auftaucht, und ob nicht andere DNS-Dienste vorher aufgerufen werden.

  • Erster Test mit Tools, die sich bei der Namensauflösung auf nsswitch stützen:
    yum -y install syslinux
    getent hosts example.com
    gethostip example.com
  • Zweiter Test mit dig @my-dns A example.com - treten hier im Vergleich Unterschiede auf, liegt es ziemlich sicher am lokalen System. /etc/nsswitch genauer anschauen.

  • Liefert dig einen Timeout, lokale IP-Konfiguration in /etc/sysconfig/network-scripts/ifcfg-... überprüfen und schauen, welcher DNS resultierend daraus verwendet wird (einsehbar in /etc/resolv.conf und /etc/sysconfig/network).

  • Stimmt die IP-Konfiguration des Clients, sollte man die als Forwarders eingetragenen Server auf den Caching-DNS überprüfen. allow-query / access-control-Direktiven in der Konfiguration der Nameserver prüfen. Lokale Firewall der DNS-Server prüfen.

  • Blockt die Unternehmens-Firewall, falls die DNS in einem anderen Subnetz stehen? Ist TCP und UDP auf Port 53 freigeschaltet?

  • Erzwungener Test mit TCP: dig +tcp A example.com

DNS Return Codes

Das „status“-Feld in der dig-Ausgabe kennt unter anderem die Stati:

  • NOERROR: alles bestens, sofern die IP-Adresse zum Namen passt

  • SERVFAIL: Fehler auf dem Nameserver

  • NXDOMAIN: Name existiert nicht in der Zone

  • REFUSED: DNS-Request wurde abgewiesen

Built on 2023-01-27