DNS – kontrola správnosti záznamov NS, SOA a reverzného záznamu pomocou programu dig

Ak chce­me za­kla­dať no­vú do­mé­nu, mu­sí­me v nad­ra­de­nej do­mé­ne po­žia­dať o de­fi­ní­ciu vrá­ta­ne prís­luš­ných NS server­ov. A keď­že NS server­y sú uve­de­né aj vo vlas­tnom zó­no­vom sú­bo­re na­šej do­mé­ny (poz­ri pred­chá­dza­jú­ce vý­pi­sy), mô­že dôjsť k ne­kon­zis­ten­cii úda­jov.

Pod­ľa správ­nos­ti by mal byť zoz­nam NS server­ov nad­ra­de­nej do­mé­ny rov­na­ký ako zoz­nam NS se­ve­rov v da­nej (na­šej) do­mé­ne. Pre­to vy­ko­ná­me kon­tro­lu nas­le­du­jú­cim spô­so­bom (tak ako v pred­chá­dza­jú­cich čas­tiach aj te­raz si po­ži­čia­me sku­toč­nú do­mé­nu pslib.cz):

 $ dig cz ns
...
;; ANSWER SEC­TION:
cz.            172793    IN    NS    a.ns.nic.cz.
cz.            172793    IN    NS    c.ns.nic.cz.
cz.            172793    IN    NS    b.ns.nic.cz.
cz.            172793    IN    NS    d.ns.nic.cz.
$ dig @c.ns.nic.cz. pslib.cz ns
...
;; AUT­HO­RI­TY SEC­TION:
pslib.cz.        18000    IN    NS    ns.ces.net.
pslib.cz.        18000    IN    NS    nep­tun.pslib.cz.
pslib.cz.        18000    IN    NS    se­mi­ra­mis.xser­ver.cz.
$ dig @nep­tun.pslib.cz. pslib.cz ns
...
;; ANSWER SEC­TION:
pslib.cz.        86400    IN    NS    ns.ces.net.
pslib.cz.        86400    IN    NS    nep­tun.pslib.cz.
pslib.cz.        86400    IN    NS    se­mi­ra­mis.xser­ver.cz.

Ako si mô­že­me všim­núť z vý­pi­sov, zá­zna­my sú v po­riad­ku. A ne­za­bud­ni­me skon­tro­lo­vať, či všet­ky uve­de­né NS server­y pos­ky­tu­jú auto­ri­ta­tív­ne od­po­ve­de, te­da či sú na nich nao­zaj umies­tne­né zó­no­vé sú­bo­ry, res­pek­tí­ve či sú nao­zaj pri­már­nym ale­bo se­kun­dár­nym server­om da­nej do­mé­ny (v pred­chá­dza­jú­cich čas­tiach sme si uká­za­li, ako na to).

 Kon­tro­la zá­zna­mov DNS

Pri bež­nom pos­tu­pe mô­že­me kon­tro­lu do­mé­ny naj­vyš­šej úrov­ne (top le­vel) pres­ko­čiť a pris­tú­pi­me rov­no ku kon­tro­le NS server­ov do­mé­ny pslib.cz. Ak bu­de nie­čo zle, nes­mie­me vy­ne­chať ani ten­to pr­vý krok. Zis­tí­me te­da, kto­rý server  je da­nej top le­vel do­mé­ne pri­már­ny (v tom­to prík­la­de čes­ká do­mé­na .cz).

 $ dig cz. soa
...
;; ANSWER SEC­TION:
cz.                                          884         IN           SOA       a.ns.nic.cz. hos­tmas­ter.nic.cz. 1412419078 900 300 604800 900

Tu vi­dieť, že pri­már­nym server­om top le­vel do­mé­ny cz je server a.ns.nic.cz. Te­raz skon­tro­lu­je­me bež­né NS server­y  zó­ny cz, kto­ré by ma­li všet­ky ma­li ob­sa­ho­vať rov­na­ké in­for­má­cie:

 $ dig cz. ns
...
;; ANSWER SEC­TION:
cz.                          172751  IN           NS          a.ns.nic.cz.
cz.                          172751  IN           NS          b.ns.nic.cz.
cz.                          172751  IN           NS          c.ns.nic.cz.
cz.                          172751  IN           NS          d.ns.nic.cz.

 Z vý­pi­su je zrej­mé, že je­den z uve­de­ných NS server­ov je pri­már­ny a os­tat­né sú se­kun­dár­ne. Zvon­ka ich ne­mož­no roz­lí­šiť (te­da mož­no – po­mo­cou in­for­ma­tív­nej po­lož­ky v zá­zna­me SOA) a všet­ky pos­ky­tu­jú auto­ri­ta­tív­ne od­po­ve­de. Ďalej zis­tí­me NS server­y da­nej do­mé­ny (moh­li by sme pou­žiť aj pria­my do­pyt na zvo­le­ný NS server, nap­rík­lad prí­ka­zom  dig @a.ns.nic.cz. pslib.cz ns, a po­rov­nať ich od­po­ve­de):

 $ dig pslib.cz ns
...
;; ANSWER SEC­TION:
pslib.cz.               26173    IN           NS  emi­ra­mis.xser­ver.cz.
pslib.cz.               26173    IN           NS          ns.ces.net.
pslib.cz.               26173    IN           NS          nep­tun.pslib.cz.

Je­den z uve­de­ných server­ov je pri­már­ny, os­tat­né sú se­kun­dár­ne. Se­kun­dár­ne server­y si pra­vi­del­ne syn­chro­ni­zu­jú ob­sah zó­ny pod­ľa pri­már­ne­ho NS server­a. Pre­to sa mô­že stať, že se­kun­dár­ne server­y bu­dú ob­sa­ho­vať star­šie in­for­má­cie, čo by ma­lo byť zrej­mé pod­ľa sé­rio­vé­ho čís­la uve­de­né­ho v zá­zna­me SOA. V ideál­nom prí­pa­de by ma­li byť sé­rio­vé čís­la rov­na­ké. Ak nie sú, tre­ba poč­kať do syn­chro­ni­zá­cie se­kun­dár­nych server­ov s pri­már­nym. Na vý­pi­se zá­zna­mu SOA mož­no orien­tač­ne zis­tiť, kto­rý server je ozna­če­ný za pri­már­ny, ale mu­sí­me si uve­do­miť, že ten­to údaj má iba in­for­ma­tív­ny cha­rak­ter. Zis­tí­me te­da zá­znam SOA do­mé­ny pslib.cz:

 $ dig pslib.cz soa
...
;; ANSWER SEC­TION:
pslib.cz.               86021    IN           SOA       nep­tun.pslib.cz. hos­tmas­ter.pslib.cz. 2014091901 28800 7200 1814400 86400

 Keď sa po­zrie­me na vý­pis, vi­dí­me sé­rio­vé čís­lo zó­ny pslib.cz. Skla­dá sa z dá­tu­mu a dvoj­ci­fer­né­ho roz­li­šo­va­cie­ho čís­la. Pri­már­nym server­om je prav­de­po­dob­ne server nep­tun.pslib.cz (ale to­to ne­mu­sí byť úpl­ne prav­da, ako sme už uvied­li). Po­mo­cou kon­krét­nych do­py­tov mô­že­me zis­tiť stav jed­not­li­vých server­ov cez ich zá­zna­my SOA, pre­to­že ak je zá­znam už v ca­che lo­kál­ne­ho server­a, ne­bu­de po ce­lú do­bu svo­jej plat­nos­ti ak­tua­li­zo­va­ný. Uro­bí­me do­py­ty na všet­ky tri NS server­y do­mé­ny pslib.cz:

 $ dig @nep­tun.pslib.cz pslib.cz soa
$ dig @se­mi­ra­mis.xser­ver.cz pslib.cz soa
$ dig @ns.ces.net pslib.cz soa

 Pod­ľa sta­vu zá­zna­mu SOA jed­not­li­vých DNS server­ov si mô­že­me uro­biť pred­sta­vu o ak­tuál­nom sta­ve ich kon­zis­ten­cie. Po­tom mô­že­me kon­tro­lo­vať jed­not­li­vé zá­zna­my, skú­siť pre­niesť ce­lú zó­nu a po­dob­ne:

 $ dig @nep­tun.pslib.cz. www.pslib.cz
...
;; ->>HEA­DER<<- op­co­de: QUERY, sta­tus: NOERROR, id: 15759
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUT­HO­RI­TY: 3, AD­DI­TIO­NAL: 2
;; WAR­NING: re­cur­sion reques­ted but not avai­lab­le
;; QUES­TION SEC­TION:
;www.pslib.cz.                 IN           A
;; ANSWER SEC­TION:
www.pslib.cz.   86400    IN           CNA­ME                op­te­ron.pslib.cz.
op­te­ron.pslib.cz.             86400    IN           A             195.113.159.18

 Uve­de­ný vý­pis je auto­ri­ta­tív­ny (ne­po­chá­dza z ca­che), čo in­di­ku­je flag aa (aut­ho­ri­ta­ti­ve answer – poz­ná­me z pre­doš­lých čas­tí). Ke­by sme sa spý­ta­li lo­kál­ne­ho DNS server­a (z kon­fi­gu­rá­cie po­čí­ta­ča, na kto­rom pra­cu­je­me), zís­ka­me prav­de­po­dob­ne in­for­má­ciu z ca­che, pri­čom mô­že­me zis­tiť, ako dl­ho bu­de eš­te zá­znam v ca­che plat­ný:

 $ dig www.pslib.cz
;; ->>HEA­DER<<- op­co­de: QUERY, sta­tus: NOERROR, id: 6652
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUT­HO­RI­TY: 0, AD­DI­TIO­NAL: 0
;; QUES­TION SEC­TION:
;www.pslib.cz.                                 IN           A
;; ANSWER SEC­TION:
www.pslib.cz.   25916    IN           CNA­ME                op­te­ron.pslib.cz.
op­te­ron.pslib.cz.             25916    IN           A             195.113.159.18


Na vý­pi­se vi­dieť, že ide o vý­pis z ca­che (chý­ba flag aa). Zá­znam CNA­ME aj A bu­dú plat­né eš­te 25916 se­kúnd, čo je ne­ce­lých 8 ho­dín.

Kon­tro­la re­ver­zné­ho zá­zna­mu

Ku kaž­dé­mu zá­zna­mu A by mal byť v po­riad­ku prís­luš­ný re­verz­ný zá­znam, kto­rý by mal zod­po­ve­dať rov­na­ké­mu me­nu, ako má zá­znam A. Pre­ve­die­me zis­te­nú IP ad­re­su 195.113.159.18 na ná­zov:

 $ dig -x 195.113.159.18
;; ANSWER SEC­TION:
18.159.113.195.in-addr.ar­pa. 86400 IN   PTR        op­te­ron.pslib.cz.

 V tom­to prí­pa­de je k zá­zna­mu A zá­znam PTR kon­zis­tent­ný, le­bo op­te­ron.pslib.cz je 195.113.159.18 a to je po re­ver­znom prek­la­de opäť op­te­ron.pslib.cz, tak­že mô­že­me po­ve­dať, že služ­ba DNS je nas­ta­ve­ná správ­ne.

Zdroj: IW 11-12/2014



Ohodnoťte článok:
   
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter