Приводом до написання статті послужила так би мовити відсутність нормального російсько чи україномовного хавту в інтернеті. Тож спробую нейтралізувати такі пробіли.
Через собачку пишеться DNS який нас цікавить. Як бачимо записи збігаються з попереднім наведеним прикладом, але як показує практика, таке не завжди. Ось приведу приклад опитування мого університетського ДНС-сервера:
4) Можна провести трасування по DNS-ам:
Як відомо, dig - програма з CLI-інтерфейсом, що призначена для опитування DNS-серверів на предмет інформації про хост що нас цікавить і тд. Спробую пояснити на конкретних прикладах.
1) Почнемо з найтривіальнішого прикладу, спробуємо дізнатись дані про перший доменнейм, який прийшов нам на думку (одразу в самому виводі прокоментую що значить виведене):
:~$ dig ubuntu.com
#Програма розповідає трішки про себе (версія програми) та про глобальні опції котрі вона використовує.
; <<>> DiG 9.7.1-P2 <<>> ubuntu.com
;; global options: +cmd
#dig написав про деякі технічні деталі, які він отримав від ДНСа.
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64973
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0
#Якщо нічого не вказувати в запиті, то по замовчуванню йде запит на наявність A-запису на ДНС-сервері. Власне це нагадування dig-а, щодо того який запит ми зробили.
;; QUESTION SECTION:
;ubuntu.com. IN A
#Відповідь, що отримав dig. Бачимо, що ДНС має запис у своїй базі про домен ubuntu.com.Видно що це А-запис (про записи можна почитати тут, тобто по айпі адресі 91.189.94.156 знаходиться сервер з даним домен-неймом.
;; ANSWER SECTION:
ubuntu.com. 521 IN A 91.189.94.156
#NS-записи в базі ДНС-сервера, тобто це еталлоні ДНСи, що делегують зону ubuntu.com.
;; AUTHORITY SECTION:
ubuntu.com. 7346 IN NS ns3.canonical.com.
ubuntu.com. 7346 IN NS ns2.canonical.com.
ubuntu.com. 7346 IN NS ns1.canonical.com.
#Певна технічна інформація. Час отримання відповіді, ДНС-сервер, що ми опитували, час опитування і тд.
;; Query time: 1 msec
;; SERVER: 192.168.4.253#53(192.168.4.253)
;; WHEN: Mon May 2 11:19:24 2011
;; MSG SIZE rcvd: 108
2) Можна опитати доменнейм, що відповідає за зону делегування сервера:
~$ dig @ns2.canonical.com. ubuntu.com
; <<>> DiG 9.7.1-P2 <<>> @ns2.canonical.com. ubuntu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64106
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;ubuntu.com. IN A
;; ANSWER SECTION:
ubuntu.com. 600 IN A 91.189.94.156
;; AUTHORITY SECTION:
ubuntu.com. 172800 IN NS ns1.canonical.com.
ubuntu.com. 172800 IN NS ns2.canonical.com.
ubuntu.com. 172800 IN NS ns3.canonical.com.
;; ADDITIONAL SECTION:
ns1.canonical.com. 172800 IN A 91.189.94.173
ns2.canonical.com. 172800 IN A 91.189.94.219
ns3.canonical.com. 172800 IN A 209.6.3.210
;; Query time: 47 msec
;; SERVER: 91.189.94.219#53(91.189.94.219)
;; WHEN: Mon May 2 11:46:01 2011
;; MSG SIZE rcvd: 156
:~$ dig ubuntu.com
; <<>> DiG 9.7.1-P2 <<>> ubuntu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 14312
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;ubuntu.com. IN A
;; Query time: 2 msec
;; SERVER: 77.47.128.130#53(77.47.128.130)
;; WHEN: Mon May 2 11:54:33 2011
;; MSG SIZE rcvd: 28
Як бачимо, від ДНС-а відповіді не поступило, хоча це таки ДНС-сервер. Не знаю чия це криворукість, але схоже таки провайдера.
Слід зауважити, що коли не вказувати конкретного ДНС-а dig-у, то він використовує перший доступний з файлу /etc/resolv.conf
В цьому прикладі не видно, проте відповідь може містити також CNAME-запис щодо домена, MX ( поштова адреса, що обслуговує домен ) і тд.
3) Можна попросити dig-а багато не говорити :
:~$ dig ubuntu.com A +short
91.189.94.156
Отримали А-запис.
Ну і таке інше ( приводжу лише приклади команд ) :
dig ubuntu.com CNAME +short
dig ubuntu.com NS +short
dig ubuntu.com MX +short
dig ubuntu.com AAA +short
dig ubuntu.com SOA +short
~$ dig live.bete.tv +trace
; <<>> DiG 9.7.1-P2 <<>> live.bete.tv +trace
;; global options: +cmd
. 169696 IN NS b.root-servers.net.
. 169696 IN NS k.root-servers.net.
. 169696 IN NS f.root-servers.net.
. 169696 IN NS g.root-servers.net.
. 169696 IN NS i.root-servers.net.
. 169696 IN NS m.root-servers.net.
. 169696 IN NS c.root-servers.net.
. 169696 IN NS l.root-servers.net.
. 169696 IN NS d.root-servers.net.
. 169696 IN NS j.root-servers.net.
. 169696 IN NS e.root-servers.net.
. 169696 IN NS a.root-servers.net.
. 169696 IN NS h.root-servers.net.
;; Received 272 bytes from 192.168.4.253#53(192.168.4.253) in 25 ms
tv. 172800 IN NS a5.nstld.com.
tv. 172800 IN NS c5.nstld.com.
tv. 172800 IN NS d5.nstld.com.
tv. 172800 IN NS f5.nstld.com.
tv. 172800 IN NS g5.nstld.com.
tv. 172800 IN NS h5.nstld.com.
tv. 172800 IN NS l5.nstld.com.
;; Received 272 bytes from 199.7.83.42#53(l.root-servers.net) in 2 ms
bete.tv. 172800 IN NS ns1.bete.tv.
bete.tv. 172800 IN NS ns2.bete.tv.
;; Received 98 bytes from 192.42.93.34#53(g5.nstld.com) in 188 ms
live.bete.tv. 3600 IN CNAME bad.bete.tv.
bad.bete.tv. 3600 IN CNAME bad.v.bete.tv.
bad.v.bete.tv. 3600 IN A 213.186.126.220
bete.tv. 3600 IN NS ns2.ntu-kpi.kiev.ua.
bete.tv. 3600 IN NS ns2.bete.tv.
bete.tv. 3600 IN NS ns.ntu-kpi.kiev.ua.
bete.tv. 3600 IN NS ns1.bete.tv.
;; Received 202 bytes from 213.186.126.222#53(ns2.bete.tv) in 2 ms
Як бачимо все відбулось, як написано в мануалах. Спочатку було опитано кореневі ДНС-и, потім ДНС-и більш низьких рівнів.
5) Отримаємо ім’я хоста, знаючи його IP:
$ dig -x 204.152.184.167 +short
mx-1.isc.org.
Як вже стало зрозуміло, dig досить гнучка річ. Про всі інші приклади використання читайте офіційний ман.)
Немає коментарів:
Дописати коментар