Wie kann ich eine Anfrage an einen bestimmten DNS-Server richten?

154

Ich möchte eine Anfrage an einen bestimmten DNS-Server senden, dessen IP-Adresse mir bekannt ist. Es spielt keine Rolle, ob es sich um Windows oder * nix handelt.

Unter Windows kann ich Folgendes tun:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

Non-authoritative answer:
Name:    superuser.com
Address:  64.34.119.12

Dabei werden jedoch die DNS-Einstellungen des lokalen Computers verwendet. Stattdessen möchte ich einen bestimmten DNS-Server abfragen, um zu testen, ob er auf meine Abfragen richtig reagiert oder überhaupt antwortet.

So sollte es etwa sein:

nslookup --dns-ip=8.8.8.8 superuser.com
Anton Daneyko
quelle

Antworten:

200

Für grundlegende A- und CNAME-Einträge können Sie dies einfach tun

nslookup somewhere.com some.dns.server

Usage: 
   nslookup [-opt ...]             # interactive mode using default server
   nslookup [-opt ...] - server    # interactive mode using 'server'
   nslookup [-opt ...] host        # just look up 'host' using default server
   nslookup [-opt ...] host server # just look up 'host' using 'server'

oder wenn Sie einfach nslookup ohne Parameter eingeben, können Sie viel mehr Optionen ausführen ...

Commands:   (identifiers are shown in uppercase, [] means optional)
NAME            - print info about the host/domain NAME using default server
NAME1 NAME2     - as above, but use NAME2 as server
help or ?       - print info on common commands
set OPTION      - set an option
    all                 - print options, current server and host
    [no]debug           - print debugging information
    [no]d2              - print exhaustive debugging information
    [no]defname         - append domain name to each query
    [no]recurse         - ask for recursive answer to query
    [no]search          - use domain search list
    [no]vc              - always use a virtual circuit
    domain=NAME         - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME           - set root server to NAME
    retry=X             - set number of retries to X
    timeout=X           - set initial time-out interval to X seconds
    type=X              - set query type (ex. A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X         - same as type
    class=X             - set query class (ex. IN (Internet), ANY)
    [no]msxfr           - use MS fast zone transfer
    ixfrver=X           - current version to use in IXFR transfer request
server NAME     - set default server to NAME, using current default server
lserver NAME    - set default server to NAME, using initial server
root            - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a          -  list canonical names and aliases
    -d          -  list all records
    -t TYPE     -  list records of the given RFC record type (ex. A,CNAME,MX,NS,PTR etc.)
view FILE           - sort an 'ls' output file and view it with pg
exit            - exit the program
TheCompWiz
quelle
7
Es ist bedauerlich, dass das Handbuch die Begriffe "Host" und "Server" verwendet und nicht die Begriffe "Domain-Name" und "DNS-Server".
ClearCrescendo
1
Es ist nicht ganz falsch. Der "Domain-Name" ist nur ein Teil eines Hostnamens. Sie können in der Tat nur den "Host" -Teil des FQDN nachschlagen und dabei das Domänensuffix weglassen. NSLOOKUPversucht automatisch, alle in Ihrem System konfigurierten Suchsuffixe zu verwenden, um eine Übereinstimmung zu erhalten.
TheCompWiz
1
Sie müssen nicht vollständig zugreifen NSLOOKUP, um die Optionen zu verwenden - die Syntax ist nur ein wenig seltsam. Beispiel :nslookup -all -debug -type=ANY -class=ANY servertolookup.com someDNSserver.com
Coruscate5
11

Nur ein Blick auf die Optionen von nslookup, die Sie beim Aufrufen nslookupund anschließenden Eingeben helpim interaktiven Modus von nslookup anzeigen können, gab mir die richtige Antwort:

C:\Documents and Settings\Anton Daneyko>nslookup help
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

*** DNSs2.Uni-Marburg.DE can't find help: Non-existent domain

C:\Documents and Settings\Anton Daneyko>nslookup
Default Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

> stackoverflow.com 8.8.8.8
Server:  [8.8.8.8]
Address:  8.8.8.8

Non-authoritative answer:
Name:    stackoverflow.com
Address:  64.34.119.12
Anton Daneyko
quelle
16
Ich lächelte, als ich sah, dass diese Antwort mit "Nur graben ..." beginnt .
Hossein
7

Ja, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com sucht in Ihrem eigenen DNS-Server nach der IP-Adresse für superuser.com. Wenn Sie der Befehlszeile die IP-Adresse oder den Namen eines anderen DNS-Servers hinzufügen, wird der angegebene DNS-Server nach der IP-Adresse von superuser.com durchsucht. Ex:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 8.8.4.4
Server:  google-public-dns-b.google.com
Address:  8.8.4.4

Non-authoritative answer:
Name:    superuser.com
Addresses:  190.93.245.58
      190.93.246.58
      141.101.114.59
      190.93.247.58
      190.93.244.58

Übrigens ist 8.8.4.4 die IP-Adresse von Google DNS-Servern.

Beide oben genannten Antworten geben jedoch "Nicht autorisierende Antworten", da keine von ihnen SOA ist, die für die Domäne "superuser.com" maßgeblich ist. Beide haben eine zwischengespeicherte Kopie, die von der SOA weitergegeben wurde. Wenn Sie den autorisierenden Server fragen möchten, ermitteln Sie zunächst den Namen der IP-Adresse des autorisierenden Servers mit dem folgenden Befehl:

C:\Documents and Settings\Anton Daneyko>nslookup -type=ns superuser.com
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

Non-authoritative answer:
superuser.com   nameserver = cf-dns02.superuser.com
superuser.com   nameserver = cf-dns01.superuser.com

cf-dns02.superuser.com  internet address = 173.245.59.4
cf-dns02.superuser.com  AAAA IPv6 address = 2400:cb00:2049:1::adf5:3b04
cf-dns01.superuser.com  AAAA IPv6 address = 2400:cb00:2049:1::adf5:3a35
cf-dns01.superuser.com  internet address = 173.245.58.53

Dies gibt eine nicht autorisierende Antwort von Ihrem lokalen DNS-Server von der Marburg Uni zurück, wobei alle autorisierenden Server für superuser.com benannt werden. Dann können Sie den Befehl, den wir zuvor verwendet haben, verwenden, um einen der 4 autorisierenden Server wie folgt zu fragen:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 173.245.59.4
Server:  cf-173-245-59-4.cloudflare.com
Address:  173.245.59.4

Name:    superuser.com
Addresses:  141.101.114.59
      190.93.246.58
      190.93.245.58
      190.93.247.58
      190.93.244.58

Wie Sie sehen, hat der autorisierende SOA-Server dieses Mal die IP-Adressen zurückgegeben, daher wird der Kommentar "Nicht autorisierende Antwort" nicht mehr angezeigt. Dies ist besonders nützlich, wenn Sie einen neuen Domainnamen erstellt oder den Hosting-Anbieter geändert oder auf einen anderen Domain-Registrar übertragen haben und nicht auf Ihre Website zugreifen können, da die neuen IP-Adressen auch nach 24 Stunden nicht weitergegeben wurden. Anschließend können Sie mit der SOA beginnen und überprüfen, ob Ihre korrekte IP-Adresse vom DNS-Server angegeben wurde. Anschließend können Sie dieser Adresse weiter unten im Baum folgen. Gut zu überprüfen, ob Google DNS-Server die Änderungen erhalten haben, und zu guter Letzt, ob Ihr lokaler DNS-Server Ihren Domain-Namen auflösen kann, um die IP-Adresse zu korrigieren.

Bede Amarasekara
quelle
1

Um Ihren Standard-DNS-Server in nslookup zu ändern, können Sie einfach den Server ändern, indem Sie den Server NAMEorIPofDNS eingeben. In diesem Beispiel habe ich meinen Standard-DNS-Server (192.168.50.21) auf einen neuen (4.2.2.3) geändert.

C: \ Windows \ system32> nslookup

Standardserver: Unbekannt

Adresse: 192.168.50.21

Server 4.2.2.3

Standardserver: c.resolvers.level3.net

Adresse: 4.2.2.3

>

Jetzt bin ich bereit, Fragen zu 4.2.2.3 gegenüber 192.168.50.21 zu stellen

atlantaitservice.com
quelle
Dies dupliziert eine andere Antwort und fügt keinen neuen Inhalt hinzu. Bitte posten Sie keine Antwort, es sei denn, Sie haben tatsächlich etwas Neues beizutragen.
DavidPostill
Kein neuer Inhalt vielleicht, aber Wert. Ich bevorzuge diese Antwort über die langen Onces :)
Pawel Cioch
0

Sie können den primären DNS konfigurieren, der für Ihre Verbindung verwendet werden soll.
Gehen Sie zu Ihren Verbindungseigenschaften => Internet Procol (TCP / IP). (Ort, an dem Sie eine statische IP-
Adresse festlegen können ) Hier können Sie manuell festlegen, welchen DNS Sie für jede Verbindung verwenden möchten.
Nach dem Testen können Sie den vorherigen Wert jederzeit wiederherstellen.

PatrickCUDO
quelle
3
Ich denke nicht, dass dies ein "direkter" Weg ist, einen DNS-Server abzufragen.
Lepe
0

Abrufen bestimmter Datensatztypen vom angegebenen DNS-Server mit einem Befehl

So suchen Sie andere Datensatztypen als die von nslookup zurückgegebenen A- und AAAA- (und CNAME-) Standarddatensätze mithilfe des angegebenen DNS-Servers:

nslookup -q=<record type> <host> <DNS server>

Um beispielsweise MX-Einträge für die Domain stackexchange.comüber den DNS-Server zurückzugeben, lautet 8.8.4.4der Befehl:

nslookup -q=MX stackexchange.com 8.8.4.4
Twisty Imitator
quelle
0

Ich arbeite an Openwrt 18.06.1 ARMv6 Raspberry pi und das Einrichten von DNS sowie DNS-Verschlüsselungs-Proxy hatte also ein sehr ähnliches Problem. Die Hauptursache ist, dass der lokale ISP unsichere Antworten von root-servers.net abfängt, Antworten, die besagen, dass die Site nicht gefunden wurde, und dann auf ihre eigene Website umleitet. Obwohl es keine große Sicherheitslücke ist, finde ich es auch nicht besonders nützlich.

Der erste Test, der bei der Abfrage einer bestimmten Adresse durchgeführt werden muss, besteht darin, eine ungültige Adresse zu verwenden, um sicherzustellen, dass bei Verwendung der Server-, Port- und Host-Parameter eine korrekte Null-Antwort angezeigt wird. Es gibt viele Anleitungen und Versionen Sie führen einen Porttest durch, wenn dieser tatsächlich von zwischengespeicherten Ergebnissen oder Standardservern beantwortet wird. Nachdem Sie eine Null-Antwort erhalten haben, arbeiten Sie mit einer aktiven Serveradresse und einem aktiven Port. Aktive Ports können auf openwrt mit netstat -plnt angezeigt werden. Beachten Sie jedoch, dass einige Router-Befehle möglicherweise zuerst installiert werden müssen. Der Tor-Dienst, den ich auf Port 9053 festgelegt habe, wird hier nicht angezeigt, funktioniert jedoch nach dem Hinzufügen von DNSPort 127.0.0.1:9053 zur Torrc-Datei. Das nslookup-Format auf dieser Plattform akzeptiert die Parameter [host] und [server] und ich kann DNS mit nslookup cnn.com testen. 127.0.0.1 # 9053 Ich kann DNScrypt mit dem Befehl nslookup cnn testen. com 127.0.0.1 # 5353 Wenn Sie zu ungültigen Portnummern oder Domänen wechseln, erhalten Sie eine Antwort. ; Zeitüberschreitung der Verbindung; Es konnten keine Server erreicht werden. Dig funktioniert auch unter openwrt, muss jedoch über das bind-dig-Paket installiert werden. dig -q 127.0.0.1 -p 9053 www.bbc.com Und schlägt erneut für ungültige Ports fehl. In meinem Fall wurde das Problem behoben, als ich die Einträge in / etc / config / network änderte und die Option dns '127.0.0.1' für Netzwerke einstellte, in denen ich zuvor unsichere DNS-Einträge verwendet hatte.

Prada
quelle
0

Informationen zu Windows, nach denen Sie möglicherweise suchen, finden Sie im folgenden Artikel: https://technet.microsoft.com/en-us/library/ff394369.aspx

Zaspam Akaunt
quelle
1
Willkommen bei Super User! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Bertieb