Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru Utilizare dig pentru informatii DNS

In debugingul serviciilor DNS un utilitar important este „dig„. E important pentru ca datorita flexibilitatii lui putem afla foarte multe informatii atat direct din linia de comanda cat si indirect din cadrul unor scripturi folosind comanda „dig” in batch mode. Practic comanda „dig„, ruland-o cu parametri potriviti, ne poate da informatii legate de inregistrarile DNS ale unui domeniu – zona A, servere MX, nameservere, inregistrare SOA etc.

Sintaxa comenzii e simpla. In cel mai simplu caz se scrie numele comenzii iar ca parametru primeste numele domeniului:

[sergiu@localhost ~]$ dig lamp.ro
 
; < <>> DiG 9.5.1-P2 < <>> lamp.ro
;; global options:  printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 30955
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
 
;; QUESTION SECTION:
;lamp.ro.			IN	A
 
;; ANSWER SECTION:
lamp.ro.		80	IN	A	89.36.197.228
 
;; Query time: 12 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Tue Sep 22 19:52:56 2009
;; MSG SIZE  rcvd: 41
 
[sergiu@localhost ~]$

In cazul de mai sus comanda „dig” va citi din fisierul „/etc/resolv.conf” nameserverele folosite de sistem si le va interoga. Daca ne intereseaza sa interogam un anumit nameserver, unul care ar trebui sa aiba un rezultat diferit – ex. schimbam serverul de gazduire al unui site si dorim sa verificam daca zona DNS este setata corect – specificam ca prim argument al comenzii serverul (host sau adresa IP) pe care se va face interogarea precedat de semnul „@„:

[sergiu@localhost ~]$ dig @ns1.lamp.ro lamp.ro
 
; < <>> DiG 9.5.1-P2 < <>> @ns1.lamp.ro lamp.ro
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 2329
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
 
;; QUESTION SECTION:
;lamp.ro.			IN	A
 
;; ANSWER SECTION:
lamp.ro.		38400	IN	A	89.36.197.228
 
;; AUTHORITY SECTION:
lamp.ro.		86400	IN	NS	ns1.lamp.ro.
lamp.ro.		86400	IN	NS	ns2.lamp.ro.
 
;; ADDITIONAL SECTION:
ns1.lamp.ro.		38400	IN	A	89.36.197.228
ns2.lamp.ro.		38400	IN	A	89.36.197.229
 
;; Query time: 15 msec
;; SERVER: 89.36.197.228#53(89.36.197.228)
;; WHEN: Tue Sep 22 19:56:58 2009
;; MSG SIZE  rcvd: 109
 
[sergiu@localhost ~]$

Aceeasi comanda o putem folosi, de exemplu, pentru a verifica daca o anumita zona DNS a fost setata corect. De exemplu, putem verifica daca campurile „MX” au fost setate corect pentru ca domeniul folosit in exemplificare sa foloseasca serviciul de mail oferit de Google. Pentru asta rulam comanda anterioara precedata de parametrul „MX” care ii va spune comenzii ca ne intereseaza doar zona „MX” a domeniului:

[sergiu@localhost ~]$ dig @ns1.lamp.ro lamp.ro MX
 
; < <>> DiG 9.5.1-P2 < <>> @ns1.lamp.ro lamp.ro MX
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 22610
;; flags: qr aa rd; QUERY: 1, ANSWER: 7, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
 
;; QUESTION SECTION:
;lamp.ro.			IN	MX
 
;; ANSWER SECTION:
lamp.ro.		38400	IN	MX	10 aspmx4.googlemail.com.
lamp.ro.		38400	IN	MX	10 aspmx5.googlemail.com.
lamp.ro.		38400	IN	MX	1 aspmx.l.google.com.
lamp.ro.		38400	IN	MX	5 alt1.aspmx.l.google.com.
lamp.ro.		38400	IN	MX	5 alt2.aspmx.l.google.com.
lamp.ro.		38400	IN	MX	10 aspmx2.googlemail.com.
lamp.ro.		38400	IN	MX	10 aspmx3.googlemail.com.
 
;; AUTHORITY SECTION:
lamp.ro.		86400	IN	NS	ns1.lamp.ro.
lamp.ro.		86400	IN	NS	ns2.lamp.ro.
 
;; ADDITIONAL SECTION:
ns1.lamp.ro.		38400	IN	A	89.36.197.228
ns2.lamp.ro.		38400	IN	A	89.36.197.229
 
;; Query time: 15 msec
;; SERVER: 89.36.197.228#53(89.36.197.228)
;; WHEN: Tue Sep 22 19:59:09 2009
;; MSG SIZE  rcvd: 272
 
[sergiu@localhost ~]$

La fel putem actiona in cazul in care ne intereseaza SOA a unui domeniu. Vom rula comanda de mai sus cu diferenta ca in loc de „MX” pentru ultimul parametru vom folosi „SOA„:

[sergiu@localhost ~]$ dig @ns1.lamp.ro lamp.ro SOA
 
; < <>> DiG 9.5.1-P2 < <>> @ns1.lamp.ro lamp.ro SOA
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 6162
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
 
;; QUESTION SECTION:
;lamp.ro.			IN	SOA
 
;; ANSWER SECTION:
lamp.ro.		38400	IN	SOA	ns1.lamp.ro. root.reseller.lamp.ro. 1239425387 10800 3600 604800 38400
 
;; AUTHORITY SECTION:
lamp.ro.		86400	IN	NS	ns1.lamp.ro.
lamp.ro.		86400	IN	NS	ns2.lamp.ro.
 
;; ADDITIONAL SECTION:
ns1.lamp.ro.		38400	IN	A	89.36.197.228
ns2.lamp.ro.		38400	IN	A	89.36.197.229
 
;; Query time: 15 msec
;; SERVER: 89.36.197.228#53(89.36.197.228)
;; WHEN: Tue Sep 22 20:02:44 2009
;; MSG SIZE  rcvd: 143
 
[sergiu@localhost ~]$

Pe langa interogarea serverelor DNS pentru a gasi IP-urile corespunzatoare unor subdomenii sau hosturile MX comanda „dig” poate fi folosita si pentru a gasi hostname-ul corespunzator unei adrese IP (Reverse DNS). Pentru asta vom rula comanda cu parametrul „-x„:

[sergiu@localhost ~]$ dig -x 89.36.197.228
 
; < <>> DiG 9.5.1-P2 < <>> -x 89.36.197.228
;; global options:  printcmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 43325
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
 
;; QUESTION SECTION:
;228.197.36.89.in-addr.arpa.	IN	PTR
 
;; ANSWER SECTION:
228.197.36.89.in-addr.arpa. 6182 IN	PTR	lamp.ro.
 
;; Query time: 15 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Tue Sep 22 20:11:20 2009
;; MSG SIZE  rcvd: 65
 
[sergiu@localhost ~]$

Folosind comenzile de mai sus putem identifica corect majoritatea situatiilor si a problemelor care pot sa apara in viata de zi cu zi. Pentru situatii speciale in care e nevoie de mai multe informatii putem folosi diferiti parametri ai comenzii care ne vor permite, de exemplu, sa rulam mai multe comenzi sau sa rulam un set de comenzi preluate dintr-un fisier. Pentru situatiile care nu sunt acoperite aici va recomand sa cititi pagina de manual a comenzii dig (man dig) si, pentru completare, paginile de manual pentru nslookup (man nslookup) si host (man host).

DNS

Comments are closed.