Päringud
Sisukord
Sissejuhatus
Enne kui asuda nimeserverit seadistama, on oluline teada asjassepuutuvaid mõisteid. Seejärel tuleks õppida tegema nimeserverile päringuid, sest nimeserver suudab automaatselt ainult avastada süntaksvigu. Selle eest, et sisuliselt oleks kõik nagu soovitud, peab ikkagi inimene hoolitsema.
Kui nimeserverile vastav tarkvara paigaldada, siis tavaliselt kuulub komplekti ka programm dig., mis on kõige sobivam vahend päringute tegemiseks. Ta võimaldab nii rekursiivseid päringuid (nagu brauser teeb nimeserverile) kui ka iteratiivseid päringuid (so toimima nagu üks nimeserver teise suhtes).
Pädevad ja mittepädevad vastused
Nimeserveritest päringuid tehes peab arvestama asjaoluga, et nad annavad pädevaid vastuseid ainult nende domeenide suhtes, millele vastavad tsoonid on neis endis defineeritud. Seega pädevaid vastuseid saab tsooni primaarsete ja sekundaarsete nimeserverite käest.
Kõik teised nimeserverid vastavad samuti, kuid põhimõtteliselt on võimalik, et nad annavad aegunud vastuseid. See on võimalik seetõttu, et kui keegi on lasknud neil domeeninime lahendada, siis nad mäletavad seda selle domeeninimega seotud eluea pikkuse aja. Kui kõnealuse domeeni primaarses nimeserveris on tehtud muudatus, aga teie päringu ajal kestab veel eluaeg, siis te saate sisuliselt aegunud vastuse.
Näiteks palume nimeserveril ns.neti.ee. lahendada nimi www.eenet.ee.
sh-2.05$ dig @ns.neti.ee. www.eenet.ee. A ; <<>> DiG 9.1.2 <<>> @ns.neti.ee. www.eenet.ee. A ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42566 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.eenet.ee. IN A ;; ANSWER SECTION: www.eenet.ee. 67966 IN CNAME vvv.eenet.ee. vvv.eenet.ee. 67966 IN A 193.40.0.4 ;; AUTHORITY SECTION: eenet.ee. 86400 IN NS ns.eenet.ee. eenet.ee. 86400 IN NS ns2.eenet.ee. ;; ADDITIONAL SECTION: ns.eenet.ee. 86400 IN A 193.40.56.245 ns2.eenet.ee. 86400 IN A 193.40.0.12 ;; Query time: 89 msec ;; SERVER: 194.126.115.18#53(ns.neti.ee.) ;; WHEN: Tue Jul 31 23:32:37 2001 ;; MSG SIZE rcvd: 131
ning mõne sekundi või minuti pärast küsige uuesti
sh-2.05$ dig @ns.neti.ee. www.eenet.ee. A ; <<>> DiG 9.1.2 <<>> @ns.neti.ee. www.eenet.ee. A ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44173 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.eenet.ee. IN A ;; ANSWER SECTION: www.eenet.ee. 67901 IN CNAME vvv.eenet.ee. vvv.eenet.ee. 67901 IN A 193.40.0.4 ;; AUTHORITY SECTION: eenet.ee. 86400 IN NS ns.eenet.ee. eenet.ee. 86400 IN NS ns2.eenet.ee. ;; ADDITIONAL SECTION: ns.eenet.ee. 86400 IN A 193.40.56.245 ns2.eenet.ee. 86400 IN A 193.40.0.12 ;; Query time: 59 msec ;; SERVER: 194.126.115.18#53(ns.neti.ee.) ;; WHEN: Tue Jul 31 23:33:42 2001 ;; MSG SIZE rcvd: 131
Esmalt näeme vastusest, et www.eenet.ee. on CNAME nimele vvv.eenet.ee. ning viimasele vastab IP-aadress 193.40.0.4. CNAME on alias ehk nagu hüüdnimi, mida tihti kasutatakse. vvv.eenet.ee. kohta öeldakse antud juhul kanooniline domeeninimi.
Edasi saame teada, et domeeninime www.eenet.ee. jaoks on pädevad nimeserverid ns.eenet.ee. ja ns2.eenet.ee., kusjuures kirjete eluaeg on 86 400 sekundit, sh www.eenet.ee. domeeninime oma.
Võrreldes vastuse sektsioonis ridu
vvv.eenet.ee. 67966 IN A 193.40.0.4
ja
vvv.eenet.ee. 67901 IN A 193.40.0.4
näeme, et meie esimese päringu hetkel oli kirjel jäänud eluaega 67 966 sekundiks. Ilmselt oli keegi seda mõni tund enne meid samuti küsinud. Teise päringu hetkeks oli järelejäänud eluaeg vähenenud 67 901 sekundini.
Kui me aga esitaksime sama päringut kuitahes palju kordi selle domeeninime jaoks pädevale nimeserverile, siis oleks eluaeg ikkagi 86 400 sekundit
sh-2.05$ dig @ns.eenet.ee. www.eenet.ee. A ; <<>> DiG 9.1.2 <<>> @ns.eenet.ee. www.eenet.ee. A ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62244 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.eenet.ee. IN A ;; ANSWER SECTION: www.eenet.ee. 86400 IN CNAME vvv.eenet.ee. vvv.eenet.ee. 86400 IN A 193.40.0.4 ;; AUTHORITY SECTION: eenet.ee. 86400 IN NS ns2.eenet.ee. eenet.ee. 86400 IN NS ns.eenet.ee. ;; ADDITIONAL SECTION: ns2.eenet.ee. 86400 IN A 193.40.0.12 ns.eenet.ee. 86400 IN A 193.40.56.245 ;; Query time: 82 msec ;; SERVER: 193.40.56.245#53(ns.eenet.ee.) ;; WHEN: Tue Jul 31 23:40:54 2001 ;; MSG SIZE rcvd: 131
Päringu sooritamine
Koostame päringu, milles küsime nimeserverilt ns2.eenet.ee. kõiki domeeniga eenet.ee. seotud andmeid, kasutades võtit ANY
sh-2.05$ dig @ns.eenet.ee. eenet.ee. ANY ; <<>> DiG 9.1.2 <<>> @ns.eenet.ee. eenet.ee. ANY ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37738 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 2, ADDITIONAL: 4 ;; QUESTION SECTION: ;eenet.ee. IN ANY ;; ANSWER SECTION: eenet.ee. 86400 IN A 193.40.0.4 eenet.ee. 86400 IN MX 0 myristaja.eenet.ee. eenet.ee. 86400 IN MX 50 vi.eenet.ee. eenet.ee. 86400 IN NS ns2.eenet.ee. eenet.ee. 86400 IN NS ns.eenet.ee. eenet.ee. 86400 IN SOA ns2.eenet.ee. hostmaster.eenet.ee. 2001050100 86400 7200 2419200 10800
;; AUTHORITY SECTION: eenet.ee. 86400 IN NS ns2.eenet.ee. eenet.ee. 86400 IN NS ns.eenet.ee. ;; ADDITIONAL SECTION: myristaja.eenet.ee. 86400 IN A 193.40.0.12 vi.eenet.ee. 86400 IN A 193.40.56.244 ns2.eenet.ee. 86400 IN A 193.40.0.12 ns.eenet.ee. 86400 IN A 193.40.56.245 ;; Query time: 54 msec ;; SERVER: 193.40.56.245#53(ns.eenet.ee.) ;; WHEN: Tue Jul 31 23:42:56 2001 ;; MSG SIZE rcvd: 261
kus
* @ns2.eenet.ee - küsida näidatud nimeserveri käest * eenet.ee - selle domeeninime kohta * ANY - näidata kõiki domeeninimega seotud andmeid
Vastuses on sektsioonide kaupa kirjas nimeserverilt saadud andmed
* päis (->>HEADER<<-) - opcode: QUERY, status: NOERROR, id: 38621 - oluline, et status oleks NOERROR * küsimuseosa (QUESTION SECTION) - kordab küsimust * vastuseosa (ANSWER SECTION) - standardsel kujul vastus, (domeeninimi, eluaeg, klass, tüüp, IP-aadress) * pädevusosa (AUTHORITY SECTION) - näidatakse millised on selle domeeni jaoks pädevad nimeserverid * lisa (ADDITIONAL SECTION) - pädevate nimeserverite IP-aadressid
Vastuse sektsioon sisaldab järgmisi kirjeid
* NS (NameServer) - domeeni jaoks pädevaid nimeservereid * A - domeeninimele vastav IP-aadress * MX (Mail eXchange) - domeeni teenindavad postiserverid * SOA (Start of Authority) - sisaldab järgmisi tsooni jaoks olulisi järjekorras andmeid: o ns2.eenet.ee. - domeeni primaarne nimeserver o hostmaster.eenet.ee. - domeeni eest vastutava kontaktisiku e-postiaadress o 2001050100 - seerianumber o 86400 - värskendusperiood o 7200 - korduskatse o 2419200 - parim möödas o 10800 - eluaeg
Soovides küsida nimeserverilt midagi spetsiifilist, saab kasutada selliseid võtmeid
* MX - postiserverid * NS - nimeserverid * A - IP-aadressid * SOA - SOA-kirje
Neid võtmeid võib kirjutada samahästi ka väikeste tähtedega.
Päriteisendus
Päriteisendus tähendab domeeninimele vastava IP-aadressi leidmist. Näiteks küsime nimele www.eenet.ee. vastavat IP-aadressi kasutades võtit A
bash$ dig www.eenet.ee A ; <<>> DiG 9.1.2 <<>> www.eenet.ee ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7341 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.eenet.ee. IN A ;; ANSWER SECTION: www.eenet.ee. 86400 IN CNAME vvv.eenet.ee. vvv.eenet.ee. 86400 IN A 193.40.0.4 ;; AUTHORITY SECTION: eenet.ee. 86400 IN NS ns2.eenet.ee. eenet.ee. 86400 IN NS ns.eenet.ee. ;; ADDITIONAL SECTION: ns2.eenet.ee. 86400 IN A 193.40.0.12 ns.eenet.ee. 86400 IN A 193.40.56.245 ;; Query time: 88 msec ;; SERVER: 193.40.0.12#53(193.40.0.12) ;; WHEN: Tue Jul 31 23:15:55 2001 ;; MSG SIZE rcvd: 131
Muuseas näeme, et www.eenet.ee. on CNAME domeeninimele vvv.eenet.ee., millele vastab IP-aadress 193.40.0.4.
Pöördteisendused
IP-aadressile 193.40.0.12 vastava domeeninime leidmine programmiga dig toimub näiteks selliselt, kirjutades ise aadressi enne vastava in-addr.arpa. domeeni domeeninime, antud juhul 12.0.40.193.in-addr.arpa. ning kasutades võtit PTR
sh-2.05$ dig 12.0.40.193.in-addr.arpa. PTR ; <<>> DiG 9.1.2 <<>> 12.0.40.193.in-addr.arpa. PTR ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43404 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;12.0.40.193.in-addr.arpa. IN PTR ;; ANSWER SECTION: 12.0.40.193.in-addr.arpa. 86400 IN PTR myristaja.eenet.ee. 12.0.40.193.in-addr.arpa. 86400 IN PTR ns2.eenet.ee. ;; AUTHORITY SECTION: 0.40.193.in-addr.arpa. 86400 IN NS ns2.eenet.ee. 0.40.193.in-addr.arpa. 86400 IN NS ns.eenet.ee. ;; ADDITIONAL SECTION: ns2.eenet.ee. 86400 IN A 193.40.0.12 ns.eenet.ee. 86400 IN A 193.40.56.245 ;; Query time: 96 msec ;; SERVER: 193.40.0.12#53(193.40.0.12) ;; WHEN: Tue Jul 31 23:54:28 2001 ;; MSG SIZE rcvd: 155
Vastuse osad on sarnased päriteisendusele. Antud juhul on selle IP-aadressiga seotud kaks domeeninime. Oluline on tähele panna, et sarnaselt tavalistele domeeninimedele kuuluvad ka in-addr.arpa. domeeninimed alamdomeenidesse, näiteks tsooni 0.40.193.in-addr.arpa. jaoks on pädevad ns.eenet.ee. ja ns2.eenet.ee. nimeserverid.
Teine võimalus sama päringut esitada on selline
bash$ dig -x 193.40.0.12 PTR
Tsooni kopeerimine
Tsooni saab kopeerida ainult pädevalt nimeserverilt. Seega eelnevalt tuleb jälgides vastuste pädevusosi teha kindlaks, milline nimeserver on huvipakkuva tsooni jaoks pädev.
bash$ dig @ns.eenet.ee. eenet.ee. axfr ; <<>> DiG 9.1.2 <<>> @ns.eenet.ee. eenet.ee. axfr ;; global options: printcmd eenet.ee. 86400 IN SOA ns2.eenet.ee. hostmaster.eenet.ee. 2001050100 86400 7200 2419200 10800 eenet.ee. 86400 IN NS ns2.eenet.ee. eenet.ee. 86400 IN NS ns.eenet.ee. eenet.ee. 86400 IN A 193.40.0.4 eenet.ee. 86400 IN MX 0 myristaja.eenet.ee. eenet.ee. 86400 IN MX 50 vi.eenet.ee. zpp.eenet.ee. 86400 IN A 193.40.56.196 potsataja.eenet.ee. 86400 IN A 193.40.56.120 www2.eenet.ee. 86400 IN CNAME myristaja.eenet.ee. x1100c.eenet.ee. 86400 IN A 193.40.0.116 Mugiseja.eenet.ee. 86400 IN A 193.40.0.19 tartu-mix.eenet.ee. 86400 IN A 193.40.10.225 ... ..
in-addr.arpa. tsooni kopeerimine toimub sarnaselt
bash$ dig @ns.eenet.ee. 0.40.193.in-addr.arpa. axfr
Tsooni kopeerimisel peab arvestama võimalusega, et paljud nimeserverid ei luba oma pädevuses olevaid tsoone kopeerida.
Rekursiivsed ja iteratiivsed päringud
Näitame kuidas kasutada programmi dig rekursiivsete ja iteratiivsete päringute tegemiseks.
Iteratiivne päring
Iteratiivseid päringuid teeb tavaliselt üks nimeserver teisele. Näiteks soovides teada saada, millised nimeservrid on nime frodo.axion.bt.co.uk. lahendamisel mängu haaratud, kasutage võtme +norec. +rorec juhendab nimeserverit vastama domeeninimesüsteemis järgmise sobiva nimeserveri nimega.
bash$ dig frodo.axion.bt.co.uk. +norec ;; AUTHORITY SECTION: . 2d20h44m9s IN NS E.ROOT-SERVERS.NET. . 2d20h44m9s IN NS D.ROOT-SERVERS.NET. . 2d20h44m9s IN NS A.ROOT-SERVERS.NET. . 2d20h44m9s IN NS H.ROOT-SERVERS.NET. . 2d20h44m9s IN NS C.ROOT-SERVERS.NET. . 2d20h44m9s IN NS G.ROOT-SERVERS.NET. . 2d20h44m9s IN NS F.ROOT-SERVERS.NET. . 2d20h44m9s IN NS B.ROOT-SERVERS.NET. . 2d20h44m9s IN NS J.ROOT-SERVERS.NET. . 2d20h44m9s IN NS K.ROOT-SERVERS.NET. . 2d20h44m9s IN NS L.ROOT-SERVERS.NET. . 2d20h44m9s IN NS M.ROOT-SERVERS.NET. . 2d20h44m9s IN NS I.ROOT-SERVERS.NET.
Näeme, et kliendi nimeserver ei teadnud isegi domeeni uk. nimeserverit ja soovitas minna seda küsima juurnimeserverite käest. Küsime
bash$ dig @E.ROOT-SERVERS.NET. frodo.axion.bt.co.uk. +norec ;; AUTHORITY SECTION: uk. 2D IN NS NS1.NIC.uk. uk. 2D IN NS NS.EU.NET. uk. 2D IN NS NS0.JA.NET. uk. 2D IN NS NS.UU.NET.
Jõudsime sammu lähemale, et küsime edasi NS.EU.NET. nimeserveri käest
bash$ dig @NS.EU.NET. frodo.axion.bt.co.uk. +norec ;; AUTHORITY SECTION: axion.bt.co.uk. 19h35m11s IN NS dns0.axion.bt.co.uk. axion.bt.co.uk. 19h35m11s IN NS dns1.axion.bt.co.uk. axion.bt.co.uk. 19h35m11s IN NS ns0.bt.net.
Nagu näha on NS.EU.NET. käest domeeni axion.bt.co.uk. kohta tihti küsitud ja tal on info vahelaos või on ta ise selle domeeni suhtes pädev. Edasi
bash$ dig @dns0.axion.bt.co.uk. frodo.axion.bt.co.uk. +norec ;; ANSWER SECTION: frodo.axion.bt.co.uk. 23h9m10s IN A 132.146.88.2 ;; AUTHORITY SECTION: axion.bt.co.uk. 21h35m25s IN NS dns0.axion.bt.co.uk. axion.bt.co.uk. 21h35m25s IN NS DNS1.axion.bt.co.uk. axion.bt.co.uk. 21h35m25s IN NS ns0.bt.net.
Lõpuks jõudsime välja pädeva nimeserverini ja saime teada vastuse. Paraku sama domeeninime jaoks käidud teed sammhaaval läbi mängida uuesti ei saa. Kliendi nimeserveri vahelaos on nüüd 21 tundi 35 minutit 25 sekundit vastus teada ja ta vastab teile kohe ise.
Rekursiivne päring
Rekursiivsed on enamus kliendi sooritatavaid päringuid. Jätke +norec kirjutamata ning teile vastatakse kohe domeeninimele vastavate andmetega, tõsi nö kulisside taga tehakse tõenäoliselt teie küsimuse rahuldamiseks endiselt iteratiivseid päringuid.