Genutzten DNS-Server unter macOS ermitteln

Um Domains zu ihren jeweiligen IP-Adressen aufzulösen, wird DNS genutzt. Dazu wird eine Anfrage an einen DNS-Server gestellt und dieser antwortet mit der entsprechenen IP-Adresse. Wenn unter macOS die genutzten DNS-Server ermittelt werden soll, kann dies im Terminal bewerkstelligt werden:

scutil --dns | grep nameserver

Als Antwort werden die entsprechenden DNS-Server ausgegeben:

nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8
nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8
nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8

Soll die komplette DNS-Konfiguration angezeigt werden, kann die Filterung mittels grep weggelassen werden:

scutil --dns

Damit erhält der Nutzer eine vollständigere Übersicht.

dig mit speziellem DNS-Server nutzen

Zum Abfragen von DNS-Servern kann unter Linux und macOS das Werkzeug dig genutzt werden. Unter Umständen muss dig unter Ubuntu erst installiert werden:

apt install dnsutils

Um mittels dig eine Domain aufzulösen, wird diese einfach als Parameter genutzt:

dig example.com

Anschließend wird die entsprechende Antwort geliefert:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48815
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		23658	IN	A	93.184.216.34

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Jan 26 09:07:13 CET 2021
;; MSG SIZE  rcvd: 56

Soll ein bestimmter DNS-Server abgefragt werden, so kann dies durch einen zusätzlichen Parameter mit einem vorangestellten At-Zeichen erledigt werden:

example.com @hydrogen.ns.hetzner.com.

Damit wird der entsprechende DNS-Server abgerufen:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com @hydrogen.ns.hetzner.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20394
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		7200	IN	A	88.198.220.192

;; AUTHORITY SECTION:
example.com.		7200	IN	NS	ns3.second-ns.de.
example.com.		7200	IN	NS	ns.second-ns.com.
example.com.		7200	IN	NS	ns1.your-server.de.

;; Query time: 3 msec
;; SERVER: 2a01:4f8:0:1::add:1098#53(2a01:4f8:0:1::add:1098)
;; WHEN: Tue Jan 26 09:08:38 CET 2021
;; MSG SIZE  rcvd: 143

550-Inconsistent/Missing DNS PTR record

Beim Senden einer Mail an eine Mail des Anbieters Freenet erhielt ich vom Mailserver folgende Antwort:

host emig.freenet.de[2001:748:100:40::8:115]
said: 550-Inconsistent/Missing DNS PTR record (RFC 1912 2.1)
(example.org) 550 [2001:db8:a0b:12f0::1]:34865 (in reply to RCPT TO command)

Der PTR Resource Record, auf den hier verwiesen wird, ist ein wichtiges Element für Durchführung von Reverse DNS-Abfragen. Für die IPv4- und die IPv6-Adresse des Servers hatte ich einen solchen Eintrag gesetzt. Deshalb war ich etwas verwundert, dass diese Meldung gesendet wurde. Bei der Nachforschung stellte ich dann fest, dass der Server eine IPv4-Adresse besitzt, aber ein ganzes IPv6-Subnetz. Das ist nicht weiter verwunderlich, allerdings sendet Postfix nicht mit einer festen IPv6-Adresse, sondern nutzt irgendeine Adresse aus dem Subnetz. Werden die Einstellungen von Postfix geöffnet:

nano /etc/postfix/main.cf

findet sich dort der Eintrag:

inet_interfaces = all

Durch diesen Eintrag ist nicht genau festgelegt, welche IP-Adresse für das Senden genutzt wird. Hier sollten die genauen IP-Adressen festgelegt werden:

inet_interfaces = 82.91.44.12,2001:db8:a0b:12f0::1

Anschließend sollte Postfix neu gestartet werden:

service postfix restart

Wird nun erneut eine Mail an den Freenet-Server geschickt, so kann es passieren, dass die Fehlermeldung erneut zurückgesendet wird. In einem solchen Fall muss noch einige Minuten bis Stunden gewartet werden, bevor der Freenet-Server die Mails entgegennimmt.

Netzwerkweiter Adblocker mittels Pi-hole

Die größte Verwendung finden Adblocker in den Browsern die wir täglich nutzten. Abseits der Browser werden Adblocker, mangels gefühlter Notwendigkeit, eher selten genutzt. Mit Pi-hole existiert eine Lösung, welche nicht nur für den lokalen Rechner, sondern für das gesamte Netzwerk funktioniert; eine Art schwarzes Loch für Werbung.

pi-hole.net

Pi-hole wird, wie der Name es bereits andeutet, auf dem Raspberry Pi installiert. Es werden eine Reihe von Distributionen für den Raspberry Pi unterstützt. Technisch gesehen fungiert Pi-hole als DNS-Server und löst Domains von Werbenetzwerken nicht auf. Über ein Webinterface können die Statistiken betrachtet und die Einstellungen getätigt werden. Daneben kann Pi-hole über ein Kommandozeilentool, gleichen Namens, administriert werden. Weitere Informationen findet man auf der offiziellen Projektseite unter pi-hole.net. Der unter der EUPL lizenzierte Quellcode ist auf GitHub zu finden. Die European Union Public License (EUPL) ist eine auf europäisches Recht angepasste Copyleft-Lizenz.

nslookup unter Windows mit anderem DNS-Server durchführen

Möchte man zu einer Domain die IP-Adresse und weitere DNS-Informationen ermitteln kann man unter Windows das Tool nslookup nutzen. Ein einfacher Aufruf sieht dabei so aus:

nslookup example.com

Hierbei wird der DNS-Server genutzt welcher an dem genutzten Rechner eingestellt ist. Allerdings kann auch ein abweichender Server definiert werden. Dazu muss nach der abzufragenden Domain der gewünschte DNS-Server angegeben werden:

nslookup example.com 8.8.8.8

In diesem Fall wird der Google eigene DNS-Server mit der IP 8.8.8.8 genutzt. Die Antwort auf diese Anfrage sieht exemplarisch so aus:

Nicht autorisierende Antwort:
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    example.com
Addresses:  2606:2800:220:1:248:1893:25c8:1946
          93.184.216.34