Wat het doet
nslookup stuurt een vraag naar een DNS-server en toont het antwoord. Het werkt op Linux, macOS en Windows, dus het is handig om te kennen als je andere mensen helpt.
Je kunt het op twee manieren gebruiken:
- Eén vraag:
nslookup NAAM [SERVER]. Het toont het antwoord en stopt. - Interactief: typ alleen
nslookup. Je krijgt een>-prompt en kunt veel vragen stellen, de server of het recordtype wijzigen.
nslookup vraagt alleen DNS. Het leest /etc/hosts niet. Om te testen wat het systeem echt gebruikt (hosts-bestand + DNS), gebruik je getent hosts NAAM. Voor meer details en schone uitvoer in scripts is dig de betere tool.
Op Red Hat Enterprise Linux zit het in het pakket bind-utils (dnf install bind-utils).
Zo schrijf je het
nslookup [-option ...] [name | -] [server]
nslookup -type=TYPE name [server]
nslookup (interactive mode)Opties 20
Meest gebruikt
Opties op de commandoregel (ook met "set" in de interactieve modus)
-type=TYPE,-query=TYPE,-q=TYPE- Het recordtype om naar te vragen: A, AAAA, MX, TXT, NS, SOA, PTR, CNAME, SRV, CAA, ANY. Standaard: A en AAAA.
-recurse,-norecurse- Vraag de server om het antwoord voor je te zoeken (standaard aan). -norecurse toont alleen wat deze server weet.
-fail,-nofail- Met -fail stoppen als een server SERVFAIL antwoordt. Met -nofail (standaard) de volgende server proberen.
-all- In de interactieve modus (als
set all): toon de huidige instellingen.
Commando's in de interactieve modus
lserverserver- Zoals server, maar gebruik de eerste server om het adres van de nieuwe server te vinden.
setkeyword[=<value>]- Wijzig een instelling, bijvoorbeeld
set type=mxofset debug.
Niets past bij dit filter.
Voorbeelden 14
$ als gewone gebruiker# als root (of met sudo)
1Het adres van een naam vinden
nslookup www.redhat.com Server: 192.168.122.1 Address: 192.168.122.1#53 Non-authoritative answer: www.redhat.com canonical name = ds-www.redhat.com.edgekey.net. ..."Server" is de DNS-server die antwoordde. "Non-authoritative" betekent dat het uit een cache kwam, niet van de eigenaar van het domein.
2De naam van een IP-adres vinden (omgekeerd opzoeken)
nslookup 8.8.8.8 8.8.8.8.in-addr.arpa name = dns.google.Handig bij incident response: welke host zit achter een IP-adres in je logs? Niet elk adres heeft een omgekeerde naam.
3Eén DNS-server direct vragen
nslookup app.example.com 10.0.0.53 nslookup app.example.com 1.1.1.1Vergelijk de interne en een publieke server. Verschillende antwoorden wijzen op split DNS of een oud record in één cache.
4De mailservers van een domein vinden
nslookup -type=mx example.com example.com mail exchanger = 10 mx1.example.com.Het laagste getal heeft de hoogste prioriteit. Controleer dit als mail niet aankomt.
5Het SPF-record van een domein controleren (mailbeveiliging)
nslookup -type=txt example.com example.com text = "v=spf1 include:_spf.example.com -all"SPF noemt de servers die mail voor het domein mogen versturen. "-all" betekent: weiger alle andere.
6Het DMARC-record controleren
nslookup -type=txt _dmarc.example.comGeen antwoord betekent geen DMARC-beleid: anderen kunnen dan makkelijker nepmail namens het domein sturen.
7De nameservers van een domein vinden
nslookup -type=ns example.comToont welke servers de eigenaar (authoritative) van het domein zijn. Vraag hen direct om de echte records te zien.
8Het SOA-record en het serienummer bekijken
nslookup -type=soa example.comNa een wijziging in een zone moet het serienummer omhoog, anders nemen andere servers de wijziging niet over.
9Controleren welke certificaatautoriteiten certificaten mogen uitgeven
nslookup -type=caa example.comEen CAA-record staat alleen sommige CA's (bijvoorbeeld Let's Encrypt) toe om certificaten voor het domein te maken.
10Een dienst vinden met een SRV-record (zoals LDAP of Kerberos)
nslookup -type=srv _ldap._tcp.corp.example.comLinux-clients die lid worden van Active Directory of IdM vinden de domeincontrollers op deze manier.
11Het volledige antwoord met TTL-waarden zien
nslookup -debug app.example.comDe TTL toont hoe lang servers het antwoord in de cache houden. Verlaag hem voordat je een dienst naar een nieuw IP verhuist.
12In een script wachten tot een nieuwe naam werkt
until nslookup -timeout=2 -retry=1 app.example.com >/dev/null 2>&1; do sleep 10; done; echo "DNS is ready"Handig in een deploymentpipeline: ga pas door als het nieuwe DNS-record bestaat.
13Naamresolutie testen in een Kubernetes-pod
kubectl exec -it debug-pod -- nslookup my-service.default.svc.cluster.localAls dit mislukt, controleer dan eerst de cluster-DNS (CoreDNS) voordat je naar je app kijkt.
14Veel vragen stellen in de interactieve modus
nslookup > server 1.1.1.1 > set type=aaaa > www.example.com > exitDe interactieve modus onthoudt je instellingen tussen de vragen. Typ de woorden na de >-prompt van nslookup.
Niets past bij dit filter.
Let op
nslookupleest/etc/hostsniet. Een naam kan werken voorpingmaar niet voornslookup, of andersom.- Het type
ANYwordt vaak geweigerd door moderne DNS-servers. Vraag naar het type dat je nodig hebt. - In de interactieve modus is de prompt
>. Typexitom te stoppen. - De exitcode is 1 als een vraag mislukte en 0 als het werkte. Scripts kunnen dit gebruiken.
Bestanden
/etc/resolv.conf- De DNS-servers en zoekdomeinen die nslookup standaard gebruikt.
Tips om te onthouden
- Een naam = adres, een adres = naam.
- Zet een server aan het einde om die server te vragen:
nslookup NAAM SERVER. -type=kiest het record: mx voor mail, txt voor SPF en DMARC, ns voor de eigenaar, ptr voor omgekeerd.