Россия, Казань, Казанский Национальный Исследовательский Технический Университет |
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 и в памяти организуется кэширование этих запросов.