Modulis 8 · 8.2
DNS vaicāšana ar dig un nslookup
Modulis 8: Drošība un problēmu risināšana · Lasīšanas laiks: 10 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet ar dig un nslookup pieprasīt ierakstus, iztaujāt konkrētu vārdu serveri un nolasīt izvadi.
Pamatjēdzieni: dig, nslookup, Resolve-DnsName, +short, @server, +trace, ANSWER un AUTHORITY sadaļa, statuss NOERROR, NXDOMAIN, SERVFAIL, dig -x
Kāpēc pašiem pieprasīt?
Panelis parāda to, ko Jūs tajā esat ievadījuši. Tas, ko redz pārējā pasaule, var atšķirties: varbūt DNS pārvalda cita puse, varbūt kešatmiņā vēl ir saglabāta vecā atbilde. Izmantojot pieprasījumu programmu, Jūs uzdodat tādu pašu jautājumu kā pārlūkprogramma vai pasta serveris, un redzat īsto atbildi.
Ir trīs izplatītas programmas:
| Programma | Kur | Piezīme |
|---|---|---|
dig | macOS, Linux (Windows sistēmā caur WSL vai instalējama atsevišķi) | Visplašākā, administratoru standarts |
nslookup | Windows, macOS, Linux | Pieejama visur, kodolīgāka izvade |
Resolve-DnsName | Windows PowerShell | Ērti Windows sistēmā bez papildu programmatūras |
Nav pieejams komandrindas logs? Tad to pašu var izdarīt ar tiešsaistes dig rīku (nodarbība 8.3).
Jūsu pirmais pieprasījums ar dig
Atveriet Terminal (macOS/Linux) un ierakstiet:
$ dig example.com AIzvade saīsinātā veidā izskatās šādi:
;; ->>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)Kas Jums jānolasa:
- status: vissvarīgākais vārds. Skatiet tabulu zemāk.
- flags:
adnozīmē, ka rezolveris atbildi ir pārbaudījis ar DNSSEC (nodarbība 8.1). - ANSWER SECTION: paši ieraksti. Kolonnas ir tādas pašas kā zonā: nosaukums, TTL, klase, tips, vērtība.
- TTL (šeit 2847): cik sekundes šī atbilde vēl paliks rezolvera kešatmiņā. Ja zonā norādīts 3600, tad atbilde jau ir 753 sekundes veca. Pieprasot vēlreiz, Jūs redzēsiet, kā skaitlis samazinās.
- SERVER: kuram rezolverim Jūs uzdevāt jautājumu. Mājās tas bieži ir Jūsu maršrutētājs.
Trīs statusi, kas Jums jāzina
| Statuss | Nozīme | Kas jādara |
|---|---|---|
NOERROR ar atbildi | Viss kārtībā, šī ir atbilde | Vērtība nav pareiza? Tad ieraksts ir nepareizs, vai arī redzat vecu kešatmiņas datu |
NOERROR bez atbildes (ANSWER: 0) | Nosaukums pastāv, bet tam nav šāda tipa ieraksta | Bieži: Jūs pieprasāt nepareizu tipu (piemēram, A ierakstu nosaukumam, kuram ir tikai CNAME vai tikai MX) |
NXDOMAIN | Šis nosaukums vispār nepastāv | Pārrakstīšanās kļūda, aizmirsts ieraksts vai dubults domēna nosaukums, piemēram, mail.example.com.example.com |
SERVFAIL | Rezolveris nevarēja iegūt uzticamu atbildi | Vārdu serveri nav sasniedzami, vai arī bojāta DNSSEC ķēde (pamēģiniet +cd) |
Noderīgi varianti
Tikai atbilde ar +short:
$ dig +short MX example.com
10 mail.example.com.
20 mail2.example.com.Cita rezolvera vai vārdu servera tiešs pieprasījums ar @. Šis ir vissvarīgākais paņēmiens problēmu gadījumā. Ja pieprasa tieši autoritatīvajam vārdu serverim, atbilde vienmēr ir svaiga, bez kešatmiņas:
$ 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.10Šeit uzreiz redzams, kas notiek: vārdu serveris jau atdod jauno adresi (.20), bet publiskajam rezolverim kešatmiņā vēl ir vecā (.10). Jums nekas nav jādara, tikai jāpagaida, kamēr TTL beidzas (modulis 6).
Citi tipi: pievienojiet tipu aiz nosaukuma.
$ 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.Visa ceļa izsekošana ar +trace. dig tad pats dara to, ko dara rezolveris: vispirms root, tad TLD, tad autoritatīvais serveris (nodarbība 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)Ar +trace Jūs redzat, kādus vārdu serverus reģistrs patiešām norāda. Tas ir noderīgi, ja rodas šaubas, vai vārdu servera maiņa jau ir stājusies spēkā.
DNSSEC redzēšana ar +dnssec: Jūs saņemsiet arī RRSIG parakstus. Ar +cd Jūs izslēdzat pārbaudi, lai redzētu, vai SERVFAIL rodas DNSSEC dēļ.
Reverse DNS ar -x (nodarbība 4.6):
$ dig +short -x 192.0.2.25
mail.example.com.Tas pats ar nslookup
nslookup darbojas jebkurā datorā. Svarīgākās formas:
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.9Otra adrese aiz nosaukuma (šeit 9.9.9.9) ir serveris, kuram Jūs uzdodat jautājumu, tāpat kā @ dig gadījumā. "Non-authoritative answer" nozīmē tikai to, ka atbilde nāk no rezolvera, nevis no autoritatīvā vārdu servera: tas ir normāli. Ja nosaukums nepastāv, nslookup parāda Non-existent domain, kas ir tas pats, kas 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 -DnsOnlySavas kešatmiņas iztukšošana
Vai tiešsaistes rīks jau redz jauno atbildi, bet Jūsu dators vēl ne? Tad vecā atbilde atrodas Jūsu paša datora vai pārlūkprogrammas kešatmiņā.
- Windows:
ipconfig /flushdnskomandrindā (Opdrachtprompt). - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSRespondertermināli (Terminal). - Linux ar systemd-resolved:
resolvectl flush-caches. - Pārlūkprogramma: privāts logs, vai Jūsu tālrunis caur 4G/5G ar izslēgtu wifi.
Jūsu interneta pakalpojumu sniedzēja vai maršrutētāja kešatmiņu Jūs pats iztukšot nevarat; tur jāpagaida, kamēr beidzas TTL.
Praksē: kā tas izskatās panelī
Lielākajā daļā paneļu dig izpildīt nevar. Tāpēc izmantojiet dig līdzās savam panelim: vispirms panelī apskatieties, ko esat ievadījuši, tad ar dig @<Jūsu vārdu serveris> pārbaudiet, vai vārdu serveris patiešām to izdod, un pēc tam ar dig @9.9.9.9 pārbaudiet, vai ārpasaule to jau redz. Mans WebOké piedāvā DNS diagnostiku, kas savstarpēji salīdzina vārdu serverus; citiem pakalpojumu sniedzējiem ir līdzīgas "DNS pārbaudes" pogas.
Kopsavilkums
dig <nosaukums> <tips>uzdod tādu pašu jautājumu kā pārlūkprogramma vai pasta serveris; vispirms izlasiet statusu.- NOERROR ar atbildi ir labi, NOERROR bez atbildes nozīmē "nosaukums pastāv, tips ne", NXDOMAIN nozīmē "nosaukums nepastāv", SERVFAIL nozīmē "nav uzticamas atbildes".
- Ar
@serverJūs pieprasāt konkrētu rezolveri vai tieši autoritatīvo vārdu serveri; tā redzams, vai ir kļūda vai tikai kešatmiņa. +short,+trace,+dnssec,+cdun-xir varianti, kas visbiežāk noderēs.- nslookup un Resolve-DnsName Windows sistēmā dara to pašu.
Tests
Uzdevums
Uzdevums Z8.2: dig un nslookup. Ar dig, nslookup vai Resolve-DnsName (vai tiešsaistes dig rīku) pieprasiet trīs lietas:
- statusu nosaukumam, kas nepastāv:
bestaat-niet-dnscursus.sidn.nl; wikipedia.orgMX ierakstus, tieši no viena no wikipedia.org vārdu serveriem (vispirms to noskaidrojiet);- TTL, ko publiskais rezolveris pašlaik atdod
sidn.nlA ierakstam (pieprasiet divas reizes, ar minūtes starplaiku, un pierakstiet abus skaitļus).
Ievadiet atbildes.
Lasiet tālāk
Šie raksti apraksta soļus WebOké; komandas visur darbojas vienādi.
