Moodul 8 · 8.2
DNS päringute tegemine dig ja nslookup abil
Moodul 8: Turvalisus ja probleemide lahendamine · Lugemisaeg: 10 minutit
Õpieesmärk: Pärast seda tundi oskad dig ja nslookup abil kirjeid küsida, kindlalt nimeserverilt vastust küsida ja väljundit lugeda.
Põhimõisted: dig, nslookup, Resolve-DnsName, +short, @server, +trace, ANSWER ja AUTHORITY sektsioon, staatus NOERROR, NXDOMAIN, SERVFAIL, dig -x
Miks ise päringuid teha?
Paneel näitab seda, mida sina oled sisestanud. Mida ülejäänud maailm näeb, võib olla teine: võib-olla haldab DNSi mõni teine osapool, võib-olla on vahemälus veel vana vastus. Päringuprogrammiga esitad sama küsimuse mis brauser või meiliserver ja näed tegelikku vastust.
Levinud on kolm programmi:
| Programm | Kus | Märkus |
|---|---|---|
dig | macOS, Linux (Windowsis WSL kaudu või eraldi paigaldatav) | Kõige põhjalikum, halduritel vaikimisi |
nslookup | Windows, macOS, Linux | Kõikjal olemas, lühem väljund |
Resolve-DnsName | Windows PowerShell | Mugav Windowsis ilma lisatarkvarata |
Kas käsurida pole käepärast? Siis saad täpselt sama teha veebipõhise dig-tööriistaga (tund 8.3).
Sinu esimene päring dig abil
Ava Terminal (macOS/Linux) ja kirjuta:
$ dig example.com AVäljund näeb lühendatult välja nii:
;; ->>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)Mida pead lugema:
- status: kõige tähtsam sõna. Vaata tabelit allpool.
- flags:
adtähendab, et resolver on vastuse DNSSECiga üle kontrollinud (tund 8.1). - ANSWER SECTION: kirjed ise. Veerud on samad mis tsoonis: nimi, TTL, klass, tüüp, väärtus.
- TTL (siin 2847): mitu sekundit see vastus veel resolveri vahemälus püsib. Kui tsoonis oli 3600, siis on vastus juba 753 sekundit vana. Küsi uuesti ja näed numbri vähenemas.
- SERVER: millist resolverit sa küsisid. Kodus on see sageli sinu ruuter.
Kolm staatust, mida pead teadma
| Staatus | Tähendus | Mida teha |
|---|---|---|
NOERROR koos vastusega | Kõik on korras, see ongi vastus | Kas väärtus ei klapi? Siis on kirje vale või näed vana vahemälu |
NOERROR ilma vastuseta (ANSWER: 0) | Nimi on olemas, aga sellel ei ole seda tüüpi kirjet | Tihti: küsid vale tüüpi (näiteks A nimelt, millel on ainult CNAME või ainult MX) |
NXDOMAIN | Seda nime pole üldse olemas | Trükiviga, unustatud kirje, või topeltdomeen nagu mail.example.com.example.com |
SERVFAIL | Resolver ei saanud usaldusväärset vastust | Nimeserverid pole saadaval või DNSSEC-ahel on katki (proovi +cd) |
Kasulikud variandid
Ainult vastus käsuga +short:
$ dig +short MX example.com
10 mail.example.com.
20 mail2.example.com.Teise resolveri või nimeserveri otse küsitlemine märgiga @. See on kõige tähtsam nipp probleemide korral. Kui küsid autoriteetselt nimeserverilt otse, saad alati värske vastuse, ilma vahemäluta:
$ 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.10Siit näed kohe, mis toimub: nimeserver annab juba uue aadressi (.20), avalikul resolveril on vahemälus veel vana (.10). Sa ei pea midagi tegema, vaid ootama, kuni TTL saab läbi (moodul 6).
Teised tüübid: pane tüüp nime järele.
$ 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.Kogu tee jälgimine käsuga +trace. dig teeb siis ise seda, mida teeb resolver: esmalt juur, siis TLD, siis autoriteetne server (tund 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)Käsuga +trace näed, millised nimeservereid register tegelikult edastab. See on kasulik, kui kahtled, kas nimeserveri muudatus on juba jõustunud.
DNSSECi nägemine käsuga +dnssec: saad lisaks RRSIG-allkirjad. Käsuga +cd lülitad kontrolli välja, et näha, kas SERVFAIL tuleb DNSSECist.
Pöördpäring (reverse DNS) käsuga -x (tund 4.6):
$ dig +short -x 192.0.2.25
mail.example.com.Sama asi nslookupiga
nslookup töötab igas arvutis. Kõige tähtsamad vormid:
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.9Teine aadress nime järel (siin 9.9.9.9) on server, mida küsid, nii nagu @ digis. "Non-authoritative answer" tähendab ainult seda, et vastus tuleb resolverilt, mitte autoriteetselt nimeserverilt: see on tavapärane. Kui nime pole olemas, ütleb nslookup Non-existent domain, mis tähendab sama mis 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 -DnsOnlyOma vahemälu tühjendamine
Kas veebitööriist näitab juba uut vastust, aga sinu arvuti veel mitte? Siis on vana vastus sinu enda arvuti või brauseri vahemälus.
- Windows:
ipconfig /flushdnskäsureal. - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderTerminalis. - Linux koos systemd-resolved teenusega:
resolvectl flush-caches. - Brauser: privaatne aken, või sinu telefon 4G/5G kaudu koos wifi väljalülitatuna.
Oma teenusepakkuja või ruuteri vahemälu ei saa ise tühjendada; seal tuleb oodata, kuni TTL saab läbi.
Praktikas: nii näeb see välja paneelis
Enamikus paneelides ei saa digi käivitada. Kasuta seetõttu digi oma paneeli kõrval: vaata esmalt paneelist, mida oled sisestanud, siis kontrolli käsuga dig @<sinu nimeserver>, kas nimeserver annab tõesti sama välja, ja seejärel käsuga dig @9.9.9.9, kas välismaailm juba näeb seda. Minu WebOkél on DNS-diagnostika, mis võrdleb nimeservereid omavahel; teistel pakkujatel on sarnased "DNS-kontrolli" nupud.
Kokkuvõte
dig <nimi> <tüüp>esitab sama küsimuse mis brauser või meiliserver; loe esmalt staatus.- NOERROR koos vastusega on hea, NOERROR ilma vastuseta tähendab "nimi on olemas, tüüp mitte", NXDOMAIN tähendab "nime pole olemas", SERVFAIL tähendab "usaldusväärset vastust pole".
- Käsuga
@serverküsid otse teatud resolverilt või autoriteetselt nimeserverilt; nii näed vahet vea ja vahemälu vahel. +short,+trace,+dnssec,+cdja-xon variandid, mida kõige rohkem vajad.- nslookup ja Resolve-DnsName teevad sama asja Windowsis.
Test
Ülesanne
Ülesanne Z8.2: dig ja nslookup. Küsi dig, nslookup või Resolve-DnsName abil (või veebipõhise dig-tööriistaga) kolm asja:
- olematu nime staatus:
bestaat-niet-dnscursus.sidn.nl; wikipedia.orgMX-kirjed otse ühelt wikipedia.org nimeserveritest (leia see esmalt üles);- TTL, mida avalik resolver praegu tagastab
sidn.nlA-kirje jaoks (küsi seda kaks korda, minutise vahega, ja märgi üles mõlemad numbrid).
Täida vastused.
Loe edasi
Need artiklid kirjeldavad samme WebOkés; käsud töötavad kõikjal samamoodi.
