Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 4:

DNS и доменные имена

Компиляция BIND

В настоящее время исходный код программного пакета BIND можно получить в виде отдельного файла с FTP-сервера ftp://ftp.isc.org/src/8.2.1/bind-src.tar.gz. Для компиляции новой программы named нужно выполнить следующие шаги.

  • Распаковать полученный файл в рабочем каталоге с помощью команды
    tar -zxvf bind-src.tar.gz.
  • Перейти во вновь созданный каталог src.
  • Задать команду make clean.
  • Задать команду make depend.
  • Для создания двоичных файлов задать make.
  • Задать команду make install, которая помещает двоичные и конфигурационные файлы в соответствующие каталоги.

После установки BIND можно, либо скомпилировав исходный код, либо установив двоичный дистрибутив, начать настройку конфигурационных файлов named для определенной системы.

Использование named в качестве кэширующего сервера

Проще всего настроить named для работы в качестве локального кэширующего сервера для хранения ответов на DNS-запросы. Для этого сначала необходимо сконфигурировать /etc/named.conf на локальном компьютере под управлением ОС Linux. В листинге 4.8 показан файл /etc/named.conf, сконфигурированный для кэширующего DNS-сервера.

1 options {
2 directory "/var/named;
3 };
4
5 zone "." {
6 type hint;
7 file "root.cache";
8
9 };
10
11
12 zone "localhost" {
13 type master;
14 file "pri/localhost";
15 };
16
17 zone."0.0.127.in-addr.arpa" {
18 type master;
19 file "pri/127.0.0";
20 };
Листинг 4.8. Пример файла /etc/named.conf для кэширующего DNS-сервера

В строках 1–3 определяются опции, которые используются программой named. Строка 2 показывает, что для конфигурационных файлов каталог по умолчанию — /var/named. Строки 5–7 описывают определение для корневых доменов. Как уже отмечалось ранее, каждый DNS-сервер должен содержать адреса корневых DNS-серверов, чтобы иметь возможность направлять запросы в иерархию серверов DNS. В строке 7 указывается файл содержащий адреса корневых серверов, это файл /var/named/root.cache. Этот файл можно создать с помощью команды dig:

dig @f.root-servers.net . ns >> root.cache

В листинге 4.9 представлен пример файла /var/named/root.cache.

1 ;<<>> DIG 8.2 <<>> @f.root-servers.net . ns
2 ; (1 server found)
3 ;; res options: init recurs defnam dnsrch
4 ;; got answer:
5 ;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
6 ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY; 8, ADDITIONAL: 13
7 ;; QUERY SECTION:
8 ;; ., type = NS, class = IN
9
10 ;; ANSWER SECTION:
11 . 6D IN NS G.ROOT-SERVERS,NET.
12 . 6D IN NS J.ROOT-SERVERS.NET.
13 . 6D IN NS K.ROOT-SERVERS.NET.
14 . 6D IN NS L.ROOT-SERVERS.NET.
15 . 6D IN NS M.ROOT-SERVERS.NET.
I6 . 6D IN NS A.ROOT-SERVERS.NET.
17 . 6D IN NS H.ROOT-SERVERS.NET.
18 . 6D IN NS B.ROOT-SERVERS.NET.
19 6D IN NS C.ROOT-SERVERS.NET.
20 . 6D IN NS D.ROOT-SERVERS.NET.
21 . 6D IN NS E.ROOT-SERVERS.NET.
22 . 6D IN NS I.ROOT-SERVERS.NET.
23 . 6D IN NS F.ROOT-SERVERS.NET.
24
25 ;; ADDITIONAL SECTION:
26 G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4
27 J.ROOT-SERVERS.NET. 5w6d16M IN A 198.41.0.10
28 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129
29 L.HOOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12
30 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33
31 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4
32 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
33 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107
34 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
35 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90
36 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10
37 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17
38 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
39
40 ;; Total query time: 10 msec
41 ;; FROM: power.rc.vix.com to SERVER: f.root-servers.net 192.5.5.241
42 ;; WHEN: Thu Jun 3 14:55:57 1999
43 ;; MSG SIZE sent: 17 rcvd: 436
Листинг 4.9. Пример файла /var/named/root.cache

В строках 26–38 показаны IP-адреса корневых серверов DNS по состоянию на июнь 1999 года. Вам следует обновлять этот файл (через каждые 5 недель, 5 дней и 16 часов согласно значениям TTL ), чтобы быть уверенным в том, что ваш DNS-сервер направляет DNS-запросы соответствующим корневым серверам.

В файле /etc/named.conf (листинг 4.8) можно указать две зоны, за которые будет отвечать ваш DNS-сервер. При этом в каждой зоне должен вестись свой файл описания. Строки 10–13 указывают на описание для зоны localhost. Эта зона описывается в файле /var/named/pri/localhost (см. листинг 4.10).

1 ;localhost.
2 @ in soa localhost.postmaster.localhost. (
3 1993053801 ;serial
4 3600 ;refresh
5 1800 ;retry
6 604800 ;expiration
7 3600 ) ;minimum
8
9 ns localhost.
10
11 a 127.0.0.1
Листинг 4.10. Пример файла /var/named/pri/localhost

Как видно из листинга 4.10 в файле localhost задается запись SOA для сервера на ОС Linux, которая говорит о том, что это ваш локальный DNS-сервер (строка 9) и задает в качестве IP-адреса адрес локальной петли (строка 11). В конце файла /etc/named.conf описывается реверсивная (обратная) зона для локального сервера. В строках 17–19 листинга 4.8 описывается зона 0.0.127.in-addr.arpa и дается ссылка на файл конфигурации /var/named/pri/127.0.0, который подробно описан в листинге 4.11.

1 ; 0.0.127.in-addr.arpa
2 @ in soa localhost. postmaster.localhost. (
3 1993050801 ;serial
4 3600 ;refresh
5 1800 ;retry
6 604800 ;expiration
7 3600 ) ;minimum
8
9 ns localhost.
10
11 1 ptr localhost.
Листинг 4.11. Пример файла /var/named/pri/127.0.0

В строке 11 листинга 4.11 адрес петли определяется 127.0.0.1 как адрес для localhost.

И последнее, что потребуется сделать, — изменить файл /etc/resolv.conf таким образом, чтобы он указывал на локальный сервер на базе ОС Linux. Если указать в качестве главного сервера имен петлю с IP-адресом 127.0.0.1, то ОС Linux будет посылать запросы самому себе для преобразования имен в адреса. На этом завершается настройка DNS для рабочей станции. Обработка DNS-запросов в ОС Linux начинается с момента, когда в фоновом режиме запускается процесс named и в памяти организуется кэширование этих запросов.

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно