Hajde da analiziramo ovaj ispis korak po korak.
dig 9.11.3-1ubuntu1.11-Ubuntu wdzwdz.com
; globalne opcije: +cmd; Dobijen odgovor:
->>HEADER
Evo šta sve ovo znači:
Prvi red: Prikazuje verziju dig alata i domen koji je bio predmet upita.
Globalne opcije: Kao što ćemo videti, dig se može koristiti za istovremeno
ispitivanje više domena. Ovaj red prikazuje opcije koje su primenjene na sve
upite. U ovom primeru, korišćena je samo podrazumevana opcija +cmd (komanda).
Opcode: Query: Ovo pokazuje vrstu zahtevane operacije, u ovom slučaju, to je
bio upit. Vrednost može biti i inverzni upit ili status, ako se testira stanje
DNS sistema.
Status: Noerror: Ukazuje da nije bilo grešaka i da je zahtev ispravno
obrađen.
ID: Nasumičan ID koji povezuje zahtev i odgovor.
Flags: qr rd ra: Ove oznake predstavljaju upit, željenu rekurziju i
dostupnu rekurziju. Rekurzija je jedan od načina DNS pretrage (drugi je
iterativni). Možete videti i AA, što znači autoritativni odgovor, što
ukazuje da je odgovor dao autoritativni server imena.
Query: 1: Broj postavljenih upita u ovoj sesiji.
Answer: 4: Broj odgovora u ovom odgovoru.
Authority: 0: Broj odgovora sa autoritativnog servera imena, što je ovde nula.
Odgovor je vraćen iz keš memorije DNS servera. U odgovoru ne postoji
autoritativni deo.
Additional: 1: Postoji jedna dodatna informacija. (Zanimljivo, ništa nije
navedeno osim ako je vrednost dva ili veća.)
Opt Pseudo sekcija
Zatim sledi Opt Pseudo sekcija:
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494
Da razjasnimo i ovo:
EDNS: verzija 0: Verzija mehanizma proširenja za DNS koja se koristi. EDNS prenosi dodatne podatke proširivanjem veličine
User Datagram Protocol (UDP) paketa. Ovo je označeno zastavicom promenljive veličine.
flags: Zastavice se ne koriste.
udp: Veličina UDP paketa.
Sekcija pitanja
U sekciji pitanja vidimo sledeće:
;; QUESTION SECTION: ;wdzwdz.com. IN A
Ovo znači:
wdzwdz.com: Ime domena koji je predmet upita.
IN: Upit se odnosi na Internet klasu.
A: Ako nije drugačije navedeno, dig zahteva A (adresni) zapis od DNS
servera.
Sekcija odgovora
Sekcija odgovora sadrži sledeća četiri odgovora dobijena od DNS servera:
wdzwdz.com. 3551 IN A 151.101.194.217 wdzwdz.com. 3551 IN A 151.101.130.217 wdzwdz.com. 3551 IN A 151.101.66.217 wdzwdz.com. 3551 IN A 151.101.2.217
Šta ovi odgovori znače:
3551: Ovo je vreme trajanja (TTL), 32-bitni ceo broj koji označava vremenski
interval tokom kojeg se zapis može keširati. Kada istekne, podaci se
moraju koristiti iz odgovora na zahtev dok ih DNS server ne osveži.
IN: Upit je napravljen za Internet klasu.
A: Tražili smo A zapis od DNS servera.
Sekcija statistike
Statistika je poslednja sekcija i sadrži sledeće:
;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Mar 22 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106
A evo šta to znači:
Vreme upita: 0 ms: Vreme potrebno za dobijanje odgovora.
SERVER: 127.0.0.53#53(127.0.0.53): IP adresa i broj porta DNS servera koji je
odgovorio. U ovom slučaju, to je lokalni keš resolver. On prosleđuje DNS
zahteve bilo kom uzvodnom DNS serveru. Na test računaru, adresa je bila
8.8.8.8#53, što je Google-ov javni DNS servis.
WHEN: Ned, 22. mart 07:44:37 EDT 2020: Vreme kada je zahtev podnet.
MSG SIZE rcvd: 106: Veličina poruke primljene sa DNS servera.
Budite selektivni
Ne morate da se zadovoljite sa dve krajnosti: previše informacija ili
nedovoljno. Komanda dig omogućava selektivno uključivanje ili isključivanje
delova rezultata.
Sledeće opcije upita će ukloniti određeni deo iz rezultata:
+nocomments: Ne prikazuj redove komentara.
+noauthority: Ne prikazuj deo o ovlašćenjima.
+noadditional: Ne prikazuj dodatni deo.
+nostats: Ne prikazuj statistički deo.
+noanswer: Ne prikazuj deo odgovora.
+noall: Ne prikazuj ništa!
Opcija upita +noall se obično kombinuje sa jednom od gore navedenih da bi se
uključio određeni deo rezultata. Umesto da kucate dug niz opcija za
isključivanje više delova, možete koristiti +noall da ih sve isključite.
Zatim, možete koristiti sledeće inkluzivne opcije upita da ponovo uključite
one koje želite da vidite:
+comments: Prikazuj redove komentara.
+authority: Prikazuj deo ovlašćenja.
+additional: Prikazuj dodatni deo.
+stats: Prikazuj statistički deo.
+answer: Prikazuj deo odgovora.
+all: Prikazuj sve.
Ako unesemo sledeće, dobićemo rezultat bez redova komentara:
dig wdzwdz.com +nocomments
Ako koristimo +noall opciju samostalno, nećemo dobiti koristan izlaz:
dig wdzwdz.com +noall
Možemo selektivno dodati delove koje želimo da vidimo. Za dodavanje dela
odgovora, koristimo:
dig wdzwdz.com +noall +answer
Ako unesemo sledeće, uz +stats, videćemo i deo sa statistikama:
dig wdzwdz.com +noall +answer +stats
Kombinacija +noall +answer se često koristi. Po potrebi, možete dodati druge
delove komandnoj liniji. Da biste izbegli kucanje +noall +answer svaki put
kada koristite dig, možete ih staviti u konfiguracioni fajl pod nazivom
“.digrc”, koji se nalazi u vašem kućnom direktorijumu.
Kreiramo jedan pomoću sledeće komande:
echo "+noall +answer" > $HOME/.digrc
Možemo proveriti njegov sadržaj sa:
cat .digrc
Ove dve opcije će biti primenjene na sve buduće upotrebe komande dig, kao što
je prikazano:
dig ubuntu.org
dig linux.org
dig github.com
Ovaj konfiguracioni fajl će se koristiti za ostale primere u ovom članku.
DNS zapisi
Informacije koje dobijate pomoću komande dig se izvlače iz različitih tipova
zapisa koji se čuvaju na DNS serveru. Ako ne zahtevate nešto drugo, dig će
slati upite za A (adresni) zapis. Tipovi zapisa koji se najčešće koriste sa
dig su:
A zapis: povezuje domen sa IPv4 adresom.
MX zapis: Zapis razmene pošte, usmerava e-poštu poslatu na domene ka
odgovarajućem serveru.
NS zapis: Zapis servera imena, delegira domen (ili poddomen) na skup DNS
servera.
TXT zapis: Tekstualni zapisi, čuvaju tekstualne informacije o domenu.
Obično se koriste za sprečavanje lažnih ili falsifikovanih poruka e-pošte.
SOA zapis: Početak autoritativnog zapisa, sadrži mnoge informacije o
domenu. Ovde se nalazi primarni server imena, odgovorna strana, vremenska
oznaka za izmene, učestalost osvežavanja zone i niz vremenskih ograničenja
za ponovne pokušaje i odustajanje.
TTL: Vreme trajanja, podešavanje za svaki DNS zapis, koje određuje koliko
dugo DNS server može keširati svaki DNS upit. Nakon isteka vremena, podaci
se moraju osvežiti za sledeće zahteve.
ANY: Govori komandi dig da vrati sve dostupne tipove DNS zapisa.
Navođenje tipa zapisa A ne menja podrazumevano ponašanje, što je slanje
upita za adresni zapis i dobijanje IP adrese, kao što je prikazano:
dig redhat.com A
Za ispitivanje zapisa razmene pošte, koristi se zastavica MX:
dig yahoo.com MX
Zastavica servera imena vraća imena osnovnih servera povezanih sa
domenom najvišeg nivoa:
dig fedora.com NS
Za upit o početku autoritativnog zapisa, koristimo zastavicu SOA:
dig manjaro.com SOA
Zastavica TTL prikazuje vreme trajanja podataka u kešu DNS servera. Ako
ponovimo zahtev nekoliko puta, videćemo kako se vreme trajanja smanjuje i
vraća na početnu vrednost.
Kucamo sledeće:
dig usa.gov TTL
Za prikaz tekstualnih zapisa, koristimo TXT zastavicu:
dig usa.gov TXT
Određivanje DNS servera
Ako želite koristiti određeni DNS server za svoj zahtev, možete ga proslediti
kao parametar komandne linije pomoću znaka @.
Sa podrazumevanim DNS serverom, dig upućuje zahteve na lokalni keš resolver
na 127.0.0.53.
dig usa.gov +stats
Sada unosimo sledeće da bismo koristili Google-ov javni DNS server na
8.8.8.8:
dig @8.8.8.8 usa.gov +stats
Korišćenje dig sa više domena
Moguće je proslediti više domena komandi dig na komandnoj liniji:
dig ubuntu.org fedora.org manjaro.com
Ako redovno proveravate skup domena, možete ih sačuvati u tekstualnom fajlu i
proslediti komandi dig. Svi domeni iz fajla će biti provereni po redu.
Naš fajl se zove “domains.txt”. Koristićemo cat da prikažemo njegov
sadržaj, a zatim ga proslediti komandi dig sa opcijom -f (file).
cat domains.txt
dig -f domains.txt
Obrnute DNS pretrage
Ako imate IP adresu i želite da saznate koji domen se krije iza nje, možete
pokušati sa obrnutom DNS pretragom. Ako se IP adresa razreši na serveru
registrovanom na DNS serveru, možda ćete saznati njegov domen.
Da li ćete uspeti, zavisi od prisustva PTR (pointer) zapisa. PTR zapisi
razrešavaju IP adresu u potpuno kvalifikovano ime domena. Međutim,
pošto nisu obavezni, ne moraju uvek biti prisutni za svaki domen.
Hajde da vidimo da li možemo da saznamo kuda vodi IP adresa 209.51.188.148.
Unosimo sledeće, koristeći opciju -x (obrnuto pretraživanje):
dig -x 209.51.188.148
Bingo! IP adresa se razrešava u gnu.org.
Pošto je PTR zapisa jedan DNS zapis, a dig može da zahteva određene DNS
zapise, da li možemo da zatražimo od dig da nam preuzme PTR zapis? Možemo,
ali je potrebno malo više posla.
Moramo da navedemo IP adresu obrnutim redosledom i da na kraju dodamo
“.in-addr.arpa”, kao što je prikazano:
dig ptr 148.188.51.209.in-addr.arpa
Dobijamo isti rezultat; samo je trebalo malo više truda.
Razumete?
Svi mi svakodnevno koristimo internet, a mnogi su se pitali kako se
„magija“ dešava kada unesemo ime veb stranice u pretraživač. Sa dig komandom
možemo da istražimo procese koji se odvijaju u pozadini.