{jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер...

30
ДНС-сервер BIND9 {jcomments on}ДНС-сервер BIND9   BIND (Berkeley Internet Name Domain, до этого: Berkeley Internet Name Daemon) — открытая и наиболее распространённая реализация DNS-сервера.  Установка BIND9  Для начала нам необходимо установить сам сервер следующей командой:  sudo su  sudo apt-get install bind9 1 / 30

Transcript of {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер...

Page 1: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

{jcomments on}ДНС-сервер BIND9

 

 

BIND (Berkeley Internet Name Domain, до этого: Berkeley Internet Name Daemon) —открытая и наиболее распространённая реализация DNS-сервера.

 

Установка BIND9

 

Для начала нам необходимо установить сам сервер следующей командой:

 

sudo su

 

sudo apt-get install bind9

1 / 30

Page 2: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

Укажем к каким DNS серверам будет обращатся наш сервер:

 

 

nano /etc/bind/named.conf.options

 

forwarders {

217.195.65.9;

217.195.66.253;

8.8.8.8;

};

 

2 / 30

Page 3: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

Перезапускаем bind:

 

/etc/init.d/bind9 restart

 

Не забываем поменять DNS адрес в /etc/resolv.conf на свой.

 

На сколько я понял кеш хранится в памяти и не сохранется при перезапуске.

Проверим, кеширует ли DNS:

Набираем (спросить адрес, например, www.ru. (которого еще нет в кэше), затем спроситьещё раз. Время запроса должно быть меньше):

dig @localhost www.ru

...

3 / 30

Page 4: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

;; Query time: 4825 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

...

[ждём 5 сек.]

dig @localhost www.ru

...

;; Query time: 2 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

...

 

Утилита DIG.

 

4 / 30

Page 5: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

dig – утилита для запросов информации с серверов DNS, входящая в пакет bind9.Использование:

 

dig www.ru

 

; <<>> DiG 9.7.1-P2 <<>> www.ru

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45434

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 0

;; QUESTION SECTION:

5 / 30

Page 6: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

;www.ru.                                IN      A

;; ANSWER SECTION:

www.ru.                 55760   IN      A       194.87.0.50

;; AUTHORITY SECTION:

.                       75260   IN      NS      a.root-servers.net.

.                       75260   IN      NS      e.root-servers.net.

.                       75260   IN      NS      c.root-servers.net.

.                       75260   IN      NS      i.root-servers.net.

.                       75260   IN      NS      j.root-servers.net.

6 / 30

Page 7: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

.                       75260   IN      NS      d.root-servers.net.

.                       75260   IN      NS      k.root-servers.net.

.                       75260   IN      NS      f.root-servers.net.

.                       75260   IN      NS      h.root-servers.net.

.                       75260   IN      NS      b.root-servers.net.

.                       75260   IN      NS      l.root-servers.net.

.                       75260   IN      NS      g.root-servers.net.

.                       75260   IN      NS      m.root-servers.net.

;; Query time: 0 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu Nov 25 10:47:55 2010

7 / 30

Page 8: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

;; MSG SIZE  rcvd: 251

 

Рассмотрим подробнее вывод:

 

; <<>> DiG 9.7.1-P2 <<>> www.ru

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45434

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 0

 

Здесь dig рассказывает о себе и информацию, которую он принял от DNS серверов.Вывод этой информации можно отключить, воспользовавшись ключом +[no]comments.

8 / 30

Page 9: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

; QUESTION SECTION:

;www.ru. IN A

 

Информация, которую мы запрашиваем. Вывод этой информации можно отключить,воспользовавшись ключом +[no]question.

 

;; ANSWER SECTION:

www.ru.                 55760   IN      A       194.87.0.50

 

Ответ. www.ru имеет адрес 194.87.0.50. Вывод этой информации тоже можно отключить,воспользовавшись ключом +[no]answer.

 

9 / 30

Page 10: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

;; AUTHORITY SECTION:

.                       75260   IN      NS      a.root-servers.net.

.                       75260   IN      NS      e.root-servers.net.

.                       75260   IN      NS      c.root-servers.net.

.                       75260   IN      NS      i.root-servers.net.

.                       75260   IN      NS      j.root-servers.net.

.                       75260   IN      NS      d.root-servers.net.

.                       75260   IN      NS      k.root-servers.net.

.                       75260   IN      NS      f.root-servers.net.

.                       75260   IN      NS      h.root-servers.net.

.                       75260   IN      NS      b.root-servers.net.

.                       75260   IN      NS      l.root-servers.net.

10 / 30

Page 11: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

.                       75260   IN      NS      g.root-servers.net.

.                       75260   IN      NS      m.root-servers.net.

 

Authority секция. Говорит нам о том, что www.ru обслуживают 13 DNS серверов. Выводэтой информации можно отключить, воспользовавшись ключом +[no]authority.

 

;; Query time: 0 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Thu Nov 25 10:47:55 2010

;; MSG SIZE  rcvd: 251

 

Статистика. Вывод этой информации можно отключить, воспользовавшись ключом +[no]stats.

11 / 30

Page 12: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

Dig может выполнять запросы A, NS, MX, TXT и ANY. Запросим адрес www.ru:

dig www.ru A +noall +answer

;; global options: +cmd

www.ru.                 55518   IN      A       194.87.0.50

 

Запись A (address record) или запись адреса связывает имя хоста с адресом IP.

 

Запросим список NS серверов:

12 / 30

Page 13: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

dig www.ru NS +noall +answer

;; global options: +cmd

www.ru.                 55460   IN      NS      ns1.demos.net.

www.ru.                 55460   IN      NS      ns.demos.su.

 

Запись NS (name server) указывает на DNS-сервер для данного домена.

 

Запросим список MX серверов:

 

13 / 30

Page 14: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

dig www.ru MX +noall +answer

 

;; global options: +cmd

www.ru.                 18554   IN      MX      5 hq.demos.ru.

 

Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтойдля данного домена.

 

Теперь запросим всё вместе.

 

dig www.ru ANY +noall +answer

14 / 30

Page 15: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

;; global options: +cmd

www.ru.                 18515   IN      MX      5 hq.demos.ru.

www.ru.                 55396   IN      NS      ns.demos.su.

www.ru.                 55396   IN      NS      ns1.demos.net.

www.ru.                 55396   IN      A       194.87.0.50

Быстрый ответ:

 

dig www.ru +short

 

194.87.0.50

 

15 / 30

Page 16: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

Быстрый ответ для MX:

 

dig www.ru mx +short

 

5 hq.demos.ru.

 

Если мало информации - можно воспользоваться ключом +noall.

 

dig +nocmd www.ru mx +noall +answer

 

www.ru.                 18437   IN      MX      5 hq.demos.ru.

16 / 30

Page 17: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

Запросим SOA записи для зоны .ru используя ключ +multiline

 

dig +nocmd ru any +multiline +noall +answer

 

ru.                     86399 IN SOA ns.ripn.net. hostmaster.ripn.net. (

4017065    ; serial

86400      ; refresh (1 day)

14400      ; retry (4 hours)

2592000    ; expire (4 weeks 2 days)

3600       ; minimum (1 hour)

)

17 / 30

Page 18: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

ru.                     86399 IN NS ns5.msk-ix.net.

ru.                     86399 IN NS ns.ripn.net.

ru.                     86399 IN NS e.dns.ripn.net.

ru.                     86399 IN NS ns9.ripn.net.

ru.                     86399 IN NS ns2.nic.fr.

ru.                     86399 IN NS f.dns.ripn.net.

 

Запись SOA (Start of Authority) или начальная запись зоны указывает, на каком серверехранится эталонная информация о данном домене, содержит контактную информациюлица, ответственного за данную зону, тайминги (параметры времени) кешированиязонной информации и взаимодействия DNS-серверов.

 

Смотрим PTR запись:

 

18 / 30

Page 19: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

dig -x 194.87.0.50 +short

 

www.ru.

 

Запись PTR (pointer) или запись указателя связывает IP хоста с его каноническимименем.

 

Отправляем запрос другому DNS серверу.

 

dig @ns1.demos.net www.ru ANY +short

ns.demos.su. ncc.demos.net. 2004121602 28800 7200 604800 86400

19 / 30

Page 20: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

ns1.demos.net.

ns.demos.su.

194.87.0.50

5 hq.demos.ru.

 

 

Запрашиваем много адресов по списку.

 

dig -f /home/brj/my-ip-list.txt

 

Tracing

20 / 30

Page 21: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

# dig www.ru +trace +short

NS C.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS D.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS E.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS F.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS G.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS H.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS I.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS J.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS K.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS L.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

21 / 30

Page 22: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

NS M.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS A.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

NS B.ROOT-SERVERS.NET. from server 127.0.0.1 in 0 ms.

A 194.87.0.50 from server ns1.demos.net in 79 ms.

 

Смотрим SOA информацию.

 

dig www.ru +nssearch

SOA ns.demos.su. ncc.demos.net. 2004121602 28800 7200 604800 86400 from serverns.demos.su in 14 ms.

SOA ns.demos.su. ncc.demos.net. 2004121602 28800 7200 604800 86400 from serverns1.demos.net in 15 ms.

22 / 30

Page 23: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

Добавляем запись в днс-сервер.

 

nano /etc/bind/named.conf

 

Добавляем путь к конфиг-файлу новой зоны:

 

include "/etc/bind/myzone.conf";

 

Теперь создаем этот файл:

 

touch /etc/bind/myzone.conf

23 / 30

Page 24: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

 

Делаем владельцем этого файла пользователя "bind":

 

chown bind:bind /etc/bind/myzone.conf

 

Указываем путь к файлу, содержащему записи, что будем добавлять:

 

nano /etc/bind/myzone.conf

 

zone "megaholod.lan" IN {

type master;

file "/etc/bind/megaholod.lan";

24 / 30

Page 25: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

allow-update { none; };

};

 

Где allow-update - каким хостам разрешено посылать динамические изменения зоныпервичному серверу.

 

Создаем этот файл:

 

touch /etc/bind/megaholod.lan

 

Меняем владельца файла:

 

25 / 30

Page 26: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

chown bind:bind /etc/bind/megaholod.lan

 

nano /etc/bind/megaholod.lan

 

Вносим записи для добавления:

 

$TTL    86400

$ORIGIN megaholod.lan.

@                       1D IN SOA       @ root (

1              ; Serial Number

3H              ; обновление через 3 часа

15M             ; повторение попытки через 15 мин

26 / 30

Page 27: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

1W              ; устаревание через неделю

1D )            ; minimum

1D IN NS        @

1D IN A         10.10.10.4

 

Где TTL - Допустимое время хранения ответов других днс-серверов в кэше(86400сек=1день).

 

@ - означает, что запись зоны будет совпадать с именем домена.

 

Serial Number - Серийный номер файла базы данных DNS. Этот номер увеличивается наединицу при каждом изменении файла, таким образом дополнительные сервера имен

27 / 30

Page 28: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

этой зоны узнают об изменении, и загружают самую последнюю информацию.

 

Таким образом мы добавили записи:

 

- SOA, т.е. указали что эталонная информация о megaholod.lan хранится на нашемсервере (@), указали тайминги.

- NS, т.е. указали что ДНС-сервером для домена megaholod.lan будет наш сервер (@).

- A, т.е. связали имя megaholod.lan с ip-адресом 10.10.10.4 .

 

В /etc/hosts машины megaholod.lan добавляем:

 

10.10.10.4 megaholod.lan

 

28 / 30

Page 29: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

Перезапускаем сервер:

 

/etc/init.d/bind9 restart

 

Проверяем сначала на серваке, а затем на на любом компе в лок. сети, и для линукс идля виндовс команда одинаковая:

 

nslookup megaholod.lan

 

Команды очистки кэша ДНС

 

Очищаем кеш dns на серваке:

 

29 / 30

Page 30: {jcomments on}ДНС-сервер BIND9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер BIND9 Перезапускаем bind: /etc/init.d/bind9 restart Не забываем

ДНС-сервер BIND9

rndc flush

 

Очищаем кеш dns в windows:

 

ipconfig /flushdns

 

Достаточно подробно и на русском описаны многие параметры BIND9 здесь:

http://www.bog.pp.ru/work/bind.html#namedconf

 

30 / 30