Modul 8 · 8.2
DNS opvragen s dig i nslookup
Modul 8: Sigurnost i rješavanje problema · Vrijeme čitanja: 10 minuta
Cilj lekcije: Nakon ove lekcije moći ćete pomoću dig i nslookup provjeravati zapise, ispitati određeni poslužitelj imena i pročitati rezultate.
Ključni pojmovi: dig, nslookup, Resolve-DnsName, +short, @server, +trace, ANSWER i AUTHORITY odjeljak, status NOERROR, NXDOMAIN, SERVFAIL, dig -x
Zašto sami provjeravati?
Panel prikazuje ono što ste Vi upisali. Ono što vidi ostatak svijeta može biti drugačije: možda DNS upravlja druga strana, možda se u predmemoriji (cacheu) još uvijek nalazi stari odgovor. Programom za provjeru postavljate isto pitanje kao preglednik ili poslužitelj e-pošte i vidite stvarni odgovor.
Postoje tri uobičajena programa:
| Program | Where | Comment |
|---|---|---|
dig | macOS, Linux (na Windowsu putem WSL-a ili se instalira zasebno) | Najopsežniji, standard kod administratora |
nslookup | Windows, macOS, Linux | Dostupan svugdje, sažetiji rezultat |
Resolve-DnsName | Windows PowerShell | Praktičan na Windowsu bez dodatnog softvera |
Nemate pri ruci naredbeni redak? Isto možete napraviti putem online dig alata (lekcija 8.3).
Vaš prvi upit pomoću dig
Otvorite Terminal (macOS/Linux) i upišite:
$ dig example.com ARezultat skraćeno izgleda ovako:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41872
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 2847 IN A 192.0.2.10
;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)Što trebate pročitati:
- status: najvažnija riječ. Pogledajte tablicu u nastavku.
- flags:
adznači da je resolver provjerio odgovor pomoću DNSSEC-a (lekcija 8.1). - ANSWER SECTION: sami zapisi. Stupci su isti kao u zoni: naziv, TTL, klasa, tip, vrijednost.
- TTL (ovdje 2847): koliko sekundi ovaj odgovor još ostaje u predmemoriji resolvera. Ako je u zoni stajalo 3600, onda je ovaj odgovor već star 753 sekunde. Ako ga ponovno zatražite, vidjet ćete kako broj odbrojava.
- SERVER: kojeg ste resolvera pitali. Kod kuće je to najčešće Vaš ruter.
Tri statusa koja morate poznavati
| Status | Značenje | Što učiniti |
|---|---|---|
NOERROR s odgovorom | Sve je u redu, ovo je odgovor | Vrijednost nije točna? Onda postoji pogrešan zapis, ili vidite staru predmemoriju |
NOERROR bez odgovora (ANSWER: 0) | Naziv postoji, ali nema zapis tog tipa | Često: tražite pogrešan tip (primjerice A kod naziva koji ima samo CNAME ili samo MX) |
NXDOMAIN | Ovaj naziv uopće ne postoji | Tipfeler, zaboravljen zapis, ili dvostruka domena poput mail.example.com.example.com |
SERVFAIL | Resolver nije mogao dobiti pouzdan odgovor | Poslužitelji imena nedostupni, ili neispravan DNSSEC lanac (pokušajte +cd) |
Korisne varijante
Samo odgovor pomoću +short:
$ dig +short MX example.com
10 mail.example.com.
20 mail2.example.com.Izravno upitati drugi resolver ili poslužitelj imena pomoću @. Ovo je najvažniji trik kod problema. Ako upitate samu autoritativnu poslužitelj imena, uvijek dobivate svježi odgovor, bez predmemorije:
$ dig +short NS example.com
ns1.hosting.example.
ns2.hosting.example.
$ dig +short A www.example.com @ns1.hosting.example
192.0.2.20
$ dig +short A www.example.com @9.9.9.9
192.0.2.10Ovdje odmah vidite o čemu se radi: poslužitelj imena već daje novu adresu (.20), javni resolver u predmemoriji još ima staru (.10). Ne trebate dakle ništa učiniti, samo pričekati dok TTL ne istekne (modul 6).
Drugi tipovi: stavite tip iza naziva.
$ dig +short TXT example.com
"v=spf1 a mx include:_spf.hosting.example ~all"
"google-site-verification=AbC123..."
$ dig +short TXT _dmarc.example.com
"v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
$ dig +short CNAME shop.example.com
shops.platform.example.Pratiti cijeli put pomoću +trace. dig tada sam radi ono što radi resolver: prvo root, zatim TLD, zatim autoritativni poslužitelj (lekcija 1.4):
$ dig +trace example.com A
. 518400 IN NS a.root-servers.net.
;; Received 239 bytes from 192.168.1.1#53
com. 172800 IN NS a.gtld-servers.net.
;; Received 708 bytes from 198.41.0.4#53(a.root-servers.net)
example.com. 172800 IN NS ns1.hosting.example.
;; Received 412 bytes from 192.5.6.30#53(a.gtld-servers.net)
example.com. 3600 IN A 192.0.2.10
;; Received 57 bytes from 198.51.100.53#53(ns1.hosting.example)Pomoću +trace vidite koje poslužitelje imena registar stvarno izdaje. To je korisno ako niste sigurni je li promjena poslužitelja imena već provedena.
Vidjeti DNSSEC pomoću +dnssec: dobivate i RRSIG potpise. Pomoću +cd isključujete provjeru kako biste vidjeli dolazi li SERVFAIL od DNSSEC-a.
Reverse DNS pomoću -x (lekcija 4.6):
$ dig +short -x 192.0.2.25
mail.example.com.Isto to pomoću nslookup
nslookup radi na svakom računalu. Najvažniji oblici:
C:\> nslookup example.com
Server: router.lan
Address: 192.168.1.1
Non-authoritative answer:
Name: example.com
Address: 192.0.2.10
C:\> nslookup -type=mx example.com
example.com MX preference = 10, mail exchanger = mail.example.com
C:\> nslookup -type=txt _dmarc.example.com 9.9.9.9Druga adresa iza naziva (ovdje 9.9.9.9) je poslužitelj koji ispitujete, baš kao @ kod dig. "Non-authoritative answer" znači samo da odgovor dolazi od resolvera, a ne od autoritativnog poslužitelja imena: to je normalno. Ako naziv ne postoji, nslookup kaže Non-existent domain, što je isto što i NXDOMAIN.
Windows PowerShell: Resolve-DnsName
PS> Resolve-DnsName example.com -Type MX
PS> Resolve-DnsName _dmarc.example.com -Type TXT -Server 9.9.9.9
PS> Resolve-DnsName example.com -Type A -DnsOnlyBrisanje vlastite predmemorije
Online alat već vidi novi odgovor, ali Vaše računalo još ne? Onda se stari odgovor nalazi u predmemoriji Vašeg vlastitog računala ili preglednika.
- Windows:
ipconfig /flushdnsu naredbenom retku (Opdrachtprompt). - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderu Terminalu. - Linux sa systemd-resolved:
resolvectl flush-caches. - Preglednik: privatni prozor, ili Vaš telefon putem 4G/5G s isključenim wifi.
Predmemoriju Vašeg pružatelja usluge ili rutera ne možete sami isprazniti; za to pričekate istek TTL-a.
U praksi: tako to izgleda u panelu
U većini panela ne možete pokrenuti dig. Zato koristite dig uz svoj panel: prvo pogledajte u panelu što ste upisali, zatim pomoću dig @<Vaš poslužitelj imena> provjerite izdaje li poslužitelj imena stvarno to isto, a potom pomoću dig @9.9.9.9 provjerite vidi li to vanjski svijet. Moj WebOké ima DNS dijagnostiku koja međusobno uspoređuje poslužitelje imena; drugi pružatelji imaju slične gumbe za "DNS provjeru".
Sažetak
dig <naziv> <tip>postavlja isto pitanje kao preglednik ili poslužitelj e-pošte; prvo pročitajte status.- NOERROR s odgovorom je dobro, NOERROR bez odgovora znači "naziv postoji, tip ne", NXDOMAIN znači "naziv ne postoji", SERVFAIL znači "nema pouzdanog odgovora".
- Pomoću
@serverizravno upitate određeni resolver ili autoritativni poslužitelj imena; tako vidite razliku između greške i predmemorije. +short,+trace,+dnssec,+cdi-xsu varijante koje Vam najčešće trebaju.- nslookup i Resolve-DnsName rade isto na Windowsu.
Kviz
Zadatak
Zadatak Z8.2: dig i nslookup. Pomoću dig, nslookup ili Resolve-DnsName (ili online dig alata) provjerite tri stvari:
- status naziva koji ne postoji:
bestaat-niet-dnscursus.sidn.nl; - MX zapise za
wikipedia.org, izravno kod jednog od poslužitelja imena domene wikipedia.org (prvo ga pronađite); - TTL koji javni resolver trenutno vraća za A zapis domene
sidn.nl(zatražite ga dva puta, s minutom razmaka, i zabilježite oba broja).
Unesite odgovore.
Dodatno štivo
Ovi članci opisuju korake u WebOké sustavu; naredbe rade posvuda jednako.
