8. modul · 8.2
DNS lekérdezése dig és nslookup segítségével
8. modul: Biztonság és hibaelhárítás · Olvasási idő: 10 perc
Tanulási cél: E lecke után képes lesz dig és nslookup segítségével rekordokat lekérdezni, egy adott névszervert megkérdezni, és az eredményt értelmezni.
Kulcsfogalmak: dig, nslookup, Resolve-DnsName, +short, @server, +trace, ANSWER- és AUTHORITY-szekció, NOERROR státusz, NXDOMAIN, SERVFAIL, dig -x
Miért kérdezzük le saját magunk?
Egy kezelőpanel azt mutatja, amit Ön beállított. Amit a világ többi része lát, az eltérhet ettől: lehet, hogy a DNS-t más fél kezeli, vagy egy elavult válasz van még a cache-ben. Egy lekérdező programmal ugyanazt a kérdést teszi fel, mint egy böngésző vagy levelezőszerver, és így a valódi választ látja.
Három elterjedt program létezik:
| Program | Hol | Megjegyzés |
|---|---|---|
dig | macOS, Linux (Windows alatt WSL-lel vagy külön telepítve) | Legteljesebb, rendszergazdák által leggyakrabban használt |
nslookup | Windows, macOS, Linux | Mindenhol elérhető, tömörebb kimenet |
Resolve-DnsName | Windows PowerShell | Praktikus Windows alatt extra szoftver nélkül |
Nincs kéznél parancssori ablak? Akkor pontosan ugyanezt elvégezheti egy online dig-eszközzel (8.3. lecke).
Az első lekérdezés dig segítségével
Nyissa meg a Terminált (macOS/Linux), és írja be:
$ dig example.com AAz eredmény rövidítve így néz ki:
;; ->>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)Amit érdemes elolvasni:
- status: a legfontosabb szó. Lásd az alábbi táblázatot.
- flags: az
adazt jelenti, hogy a resolver DNSSEC-cel ellenőrizte a választ (8.1. lecke). - ANSWER SECTION: maguk a rekordok. Az oszlopok ugyanazok, mint egy zónában: név, TTL, osztály, típus, érték.
- TTL (itt 2847): hány másodpercig marad ez a válasz még a resolver cache-ében. Ha a zónában 3600 szerepelt, akkor a válasz már 753 másodperce érvényben van. Ha újra lekérdezi, látni fogja a szám visszaszámlálását.
- SERVER: melyik resolvertől kérdezett. Otthon ez gyakran a router.
A három státusz, amit ismernie kell
| Státusz | Jelentés | Mi a teendő |
|---|---|---|
NOERROR válasszal | Minden rendben, ez a válasz | Nem megfelelő az érték? Akkor hibás rekord van beállítva, vagy egy régi cache-t lát |
NOERROR válasz nélkül (ANSWER: 0) | A név létezik, de nincs ilyen típusú rekordja | Gyakran: rossz típust kérdez le (például A-t olyan névnél, amelynek csak CNAME-je vagy csak MX-rekordja van) |
NXDOMAIN | Ez a név egyáltalán nem létezik | Elgépelés, elfelejtett rekord, vagy duplikált domainnév, mint mail.example.com.example.com |
SERVFAIL | A resolver nem kapott megbízható választ | Elérhetetlen névszerverek, vagy hibás DNSSEC-lánc (próbálja a +cd kapcsolót) |
Hasznos változatok
Csak a válasz a +short kapcsolóval:
$ dig +short MX example.com
10 mail.example.com.
20 mail2.example.com.Egy másik resolver vagy egy névszerver közvetlen megkérdezése a @ karakterrel. Ez a legfontosabb trükk problémák esetén. Ha közvetlenül az autoritatív névszervert kérdezi meg, mindig a friss választ kapja, cache nélkül:
$ 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.10Itt egy pillantásra látszik, mi a helyzet: a névszerver már az új címet adja vissza (.20), a nyilvános resolver cache-ében még a régi van (.10). Nincs tehát semmi teendője, csak meg kell várni, amíg a TTL lejár (6. modul).
Más típusok: írja a típust a név után.
$ 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.A teljes út követése a +trace kapcsolóval. A dig ekkor maga végzi el azt, amit egy resolver tesz: előbb a root, aztán a TLD, aztán az autoritatív szerver (1.4. lecke):
$ 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)A +trace kapcsolóval láthatja, mely névszervereket ad vissza valójában a nyilvántartó (registry). Ez hasznos, ha nem biztos abban, hogy egy névszerverváltás már érvénybe lépett-e.
DNSSEC megjelenítése a +dnssec kapcsolóval: ekkor az RRSIG aláírásokat is megkapja. A +cd kapcsolóval kikapcsolhatja az ellenőrzést, hogy lássa, a SERVFAIL a DNSSEC miatt jelentkezik-e.
Reverse DNS a -x kapcsolóval (4.6. lecke):
$ dig +short -x 192.0.2.25
mail.example.com.Ugyanez nslookup segítségével
Az nslookup minden számítógépen működik. A legfontosabb formák:
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.9A második, a név mögötti cím (itt 9.9.9.9) az a szerver, amelyet megkérdez, ugyanúgy, mint a @ a dig-nél. A "Non-authoritative answer" csupán azt jelenti, hogy a válasz egy resolvertől érkezik, nem az autoritatív névszervertől: ez normális. Ha a név nem létezik, az nslookup Non-existent domain üzenetet ad, ami ugyanaz, mint az 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 -DnsOnlyA saját cache ürítése
Egy online eszköz már az új választ látja, de az Ön számítógépe még nem? Akkor a régi válasz a saját számítógépe vagy böngészője cache-ében van.
- Windows:
ipconfig /flushdnsa parancssorban. - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSRespondera Terminálban. - Linux systemd-resolved esetén:
resolvectl flush-caches. - Böngésző: egy privát ablak, vagy a telefonja 4G/5G hálózaton, wifi nélkül.
Az internetszolgáltatója vagy a routere cache-ét nem tudja saját maga üríteni; ott a TTL lejártát kell kivárni.
A gyakorlatban: így néz ki egy panelen
A legtöbb panelen nem lehet dig-et futtatni. Ezért a dig-et a panel mellett használja: először nézze meg a panelen, mit állított be, utána dig @<az Ön névszervere> paranccsal ellenőrizze, hogy a névszerver valóban ezt adja-e ki, majd dig @9.9.9.9 paranccsal nézze meg, hogy a külvilág már látja-e. A Fiókom rendelkezik egy DNS-diagnosztikával, amely összehasonlítja egymással a névszervereket; más szolgáltatóknál hasonló "DNS-ellenőrzés" gombok találhatók.
Összefoglalás
- A
dig <név> <típus>ugyanazt a kérdést teszi fel, mint egy böngésző vagy levelezőszerver; először a státuszt olvassa el. - A NOERROR válasszal jó, a NOERROR válasz nélkül azt jelenti, hogy "a név létezik, a típus nem", az NXDOMAIN azt jelenti, hogy "a név nem létezik", a SERVFAIL azt jelenti, hogy "nincs megbízható válasz".
- A
@serverkapcsolóval közvetlenül egy adott resolvert vagy az autoritatív névszervert kérdezheti meg; így láthatja a különbséget egy hiba és egy cache között. - A
+short,+trace,+dnssec,+cdés-xazok a változatok, amelyekre leggyakrabban szüksége lesz. - Az nslookup és a Resolve-DnsName Windows alatt ugyanezt teszi.
Kvíz
Feladat
Z8.2 feladat: dig és nslookup. Kérdezzen le dig, nslookup vagy Resolve-DnsName (vagy egy online dig-eszköz) segítségével három dolgot:
- egy nem létező név státuszát:
bestaat-niet-dnscursus.sidn.nl; - a
wikipedia.orgMX-rekordjait, közvetlenül a wikipedia.org egyik névszerverénél (azt előbb keresse meg); - azt a TTL-t, amelyet egy nyilvános resolver jelenleg visszaad a
sidn.nlA-rekordjára (kérdezze le kétszer, egy perc különbséggel, és jegyezze fel mindkét számot).
Töltse ki a válaszokat.
További olvasnivaló
Ezek a cikkek a WebOké-nál végzendő lépéseket írják le; a parancsok mindenhol ugyanúgy működnek.
