{jcomments on}ДНС-сервер bind9linux-bash.ru/mseti/65-bind9.pdf · ДНС-сервер...
TRANSCRIPT
ДНС-сервер BIND9
{jcomments on}ДНС-сервер BIND9
BIND (Berkeley Internet Name Domain, до этого: Berkeley Internet Name Daemon) —открытая и наиболее распространённая реализация DNS-сервера.
Установка BIND9
Для начала нам необходимо установить сам сервер следующей командой:
sudo su
sudo apt-get install bind9
1 / 30
ДНС-сервер BIND9
Укажем к каким DNS серверам будет обращатся наш сервер:
nano /etc/bind/named.conf.options
forwarders {
217.195.65.9;
217.195.66.253;
8.8.8.8;
};
2 / 30
ДНС-сервер BIND9
Перезапускаем bind:
/etc/init.d/bind9 restart
Не забываем поменять DNS адрес в /etc/resolv.conf на свой.
На сколько я понял кеш хранится в памяти и не сохранется при перезапуске.
Проверим, кеширует ли DNS:
Набираем (спросить адрес, например, www.ru. (которого еще нет в кэше), затем спроситьещё раз. Время запроса должно быть меньше):
dig @localhost www.ru
...
3 / 30
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер 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
ДНС-сервер BIND9
Добавляем запись в днс-сервер.
nano /etc/bind/named.conf
Добавляем путь к конфиг-файлу новой зоны:
include "/etc/bind/myzone.conf";
Теперь создаем этот файл:
touch /etc/bind/myzone.conf
23 / 30
ДНС-сервер 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
ДНС-сервер BIND9
allow-update { none; };
};
Где allow-update - каким хостам разрешено посылать динамические изменения зоныпервичному серверу.
Создаем этот файл:
touch /etc/bind/megaholod.lan
Меняем владельца файла:
25 / 30
ДНС-сервер 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
ДНС-сервер BIND9
1W ; устаревание через неделю
1D ) ; minimum
1D IN NS @
1D IN A 10.10.10.4
Где TTL - Допустимое время хранения ответов других днс-серверов в кэше(86400сек=1день).
@ - означает, что запись зоны будет совпадать с именем домена.
Serial Number - Серийный номер файла базы данных DNS. Этот номер увеличивается наединицу при каждом изменении файла, таким образом дополнительные сервера имен
27 / 30
ДНС-сервер 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
ДНС-сервер BIND9
Перезапускаем сервер:
/etc/init.d/bind9 restart
Проверяем сначала на серваке, а затем на на любом компе в лок. сети, и для линукс идля виндовс команда одинаковая:
nslookup megaholod.lan
Команды очистки кэша ДНС
Очищаем кеш dns на серваке:
29 / 30
ДНС-сервер BIND9
rndc flush
Очищаем кеш dns в windows:
ipconfig /flushdns
Достаточно подробно и на русском описаны многие параметры BIND9 здесь:
http://www.bog.pp.ru/work/bind.html#namedconf
30 / 30