Linux-сервер своими руками — страница 49 из 119

        93011120 ; серийный номер

        10800 ; обновление каждые 3 часа

        3600 ; повтор каждый час

        3600000 ; хранить информацию 1000 часов

        86400) ; TTL записи — 2 4 часа

     IN NS den.dhsilabs.com.

     IN A 192.168.1.1

     IN MX 150 den.dhsilabs.com.

den  IN A 192.168.1.1

     IN HINFO INTEL CELERON (LINUX)

     IN MX 100 den

     IN MX 150 evg.dhsilabs.com.

ns   IN CNAME den.dhsilabs.com.

www  IN CNAME den.dhsilabs.com.

ftp  IN CNAME den.dhsilabs.com.

mail IN CNAME den.dhsilabs.com.

evg  IN A 192.168.1.2

     IN MX 100 den.dhsilabs.com.

localhost IN A 127.0.0.1

Попробую объяснить все как можно быстрее и проще. Свое объяснение оформлю в виде табл. 10.1.

Записи DNS Таблица 10.1

Запись Описание
NS Обозначает сервер имен (name server)
А Задает IP-адрес, соответствующий имени компьютера
PTR Задает имя компьютера, соответствующее IP-адресу
MX число Определяет почтовик, который будет обслуживать наш домен. Числовой параметр возле записи MX является приоритетом данного почтового сервера. Чем меньше число, тем выше приоритет
CNAME Определяет каноническое имя узла, то есть, если вы в окне браузера введете http://www.dhsilabs.com, то обращение будет произведено к den.dhsilabs.com
HINFO Сведения об аппаратном обеспечении. Рекомендую не заполнять эту запись или использовать заведомо неправильные данные. Чем меньше информации имеет о вашей сети злоумышленник, тем сложнее ему будет атаковать ее
TXTПрочие сведения. Содержит произвольный текст

Обратите внимание на точку в конце

@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (

Если точка не указана, то к имени будет добавлено имя домена (то есть dhsilabs.com).

Листинг 10.3. Файл named.local

@ IN SOA dhsilabs.com. root.dhsilabs.com. (

     199609203 ;серийный номер

     28800 ;обновление каждые 8 часов

     7200 ;повтор каждые 2 часа

     604800 ;хранить информацию 168 часов (1 неделю)

     86400) ;TTL записи – 24 часа

  NS  dhsilabs.com.

1 PTR localhost.

Файл 192.168.1 или файл обратного соответствия представлен в листинге 10.4.

Листинг 10.4. Файл обратного соответствия

@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (

     93011120 ; серийный номер

     10800 ; обновление каждые 3 часа

     3600 ; повтор каждый час

     3600000 ; хранить информацию 1000 часов

     86400 ) ; TTL записи – 24 часа

@ IN NS den.dhsilabs.com 

1 IN PTR den.dhsilabs.com 

2.1.168.192 IN PTR evg.dhsilabs.com

Запись PTR используется для преобразования IP-адреса в имя. Если указан не весь IP, например:

1 IN PTR den.dhsilabs.com 

то к нему будет добавлен адрес подсети 1.168.192. IP-адреса указываются в обратном порядке!

Для установки файла корневого кэша следует установить пакет caching-nameserver, но я рекомендую получить и установить самую новую версию. Для этого подключитесь к Интернет, запустите сервер DNS, а затем выполните команду:

# nslookup | tee ns

В ответ на приглашение программы nslookup введите две команды

> set q=ns (или set type=ns)

> .

На экране вы увидите список корневых серверов DNS, который будет помешен в файл ns. Для преобразования файла ns в формат named.ca воспользуйтесь следующей программкой на awk (см. листинг 10.5).

Листинт 10.5. Сценарий reformat

#!/bin/awk

awk ` BEGIN {

/root/ { print ". INNS " $4"." }

/internet/ { print $1"." " 999999 IN a " $5 }

END `

Использовать ее нужно как reformat , то есть:

reformat ns named.ca

Теперь осталось скопировать named.ca в каталог /var/named и на этом — все.

А теперь покажу, как то же самое можно было сделать проще. Для этого следует воспользоваться программой dig, выполнив команду:

dig @e.root-servers.net.ns > root.hints.new

После этого остается просто заменить старый файл named.ca новым

файлом named.ca.new. Как видите, второй способ намного проще, но и

первый знать не помешает.

Обычно файл named.ca содержит примерно такую информацию:

. 6D IN NS G.ROOT-SERVERS.NET.

. 6D IN NS J.ROOT-SERVERS.NET.

. 6D IN NS K.ROOT-SERVERS.NET.

. 6D IN NS L.ROOT-SERVERS.NET.

. 6D IN NS M.ROOT-SERVERS.NET.

. 6D IN NS A.ROOT-SERVERS.NET.

. 6D IN NS H.ROOT-SERVERS.NET.

. 6D IN NS B.ROOT-SERVERS.NET.

. 6D IN NS C.ROOT-SERVERS.NET.

. 6D IN NS D.ROOT-SERVERS.NET.

. 6D IN NS E.ROOT-SERVERS.NET.

. 6D IN NS I.ROOT-SERVERS.NET.

. 6D IN NS F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:

G.ROOT-SERVERS.NET. 5w6dl6h IN A 192.112.36.4

J.ROOT-SERVERS.NET. 5w6dl6h IN A 198.41.0.10

K.ROOT-SERVERS.NET. 5w6dl6h IN A 193.0.14.129

L.ROOT-SERVERS.NET. 5w6dl6h IN A 198.32.64.12

M.ROOT-SERVERS.NET. 5w6dl6h IN A 202.12.27.33

A.ROOT-SERVERS.NET. 5w6dl6h IN A 198.41.0.4

H.ROOT-SERVERS.NET. 5w6dl6h IN A 128.63.2.53

B.ROOT-SERVERS.NET. 5w6dl6h IN A 128.9.0.107

C.ROOT-SERVERS.NET. 5w6dl6h IN A 192.33.4.12

D.ROOT-SERVERS.NET. 5w6dl6h IN A 128.8.10.90

E.ROOT-SERVERS.NET. 5w6dl6h IN A 192.203.230.10

I.ROOT-SERVERS.NET. 5w6dl6h IN A 192.36.148.17

F.ROOT-SERVERS.NET. 5w6dl6h IN A 192.5.5.241

Если вы настраиваете сервер DNS только для своей внутренней сети (intranet), которая не имеет выхода в Интернет, не спешите обновлять файл кэша! Он вам вообще не нужен. Вы также должны удалить зону, описывающую корневой кэш в файле named.conf.

Теперь остается сделать пару завершающих штрихов. Отредактируйте файл /etc/resolv.conf таким образом: с помощью директивы search укажите домены для поиска, а в качестве сервера по умолчанию — 127.0.0.1. Можно также указать и адрес реального интерфейса:

search subdomain.domain.com domain.com 

nameserver 127.0.0.1

Как вы уже догадались, сервером DNS по умолчанию является первый сервер из списка nameserver. Напомню, что в списке может быть не более четырех серверов. Список доменов используется для поиска компьютера в

том случае, если указано только имя узла без домена. Например, если вы введете в окне браузера http://host, сначала будет выполнена попытка обращения к узлу host.subdomain.domain.com, а потом, если узел не будет найден, к узлу host.domain.com. Если и этот узел не будет найден, вы получите соответствующее сообщение. И еще: проверьте порядок разрешения имен в файле /etc/hosts.conf. Порядок должен быть задан так: order hosts,bind. Несмотря на то, что сейчас мы используем DNS, лучше сначала все же искать в файле hosts.

10.2. Кэширующий сервер DNS

Кэширующий сервер, как правило, не обслуживает домен, а используется для повышения скорости работы соединения. Для настройки кэширующего сервера используется параметр forwarders, задаваемый в файле named.conf (в блоке options). Рассмотрим пример: допустим, ваш сервер для разрешения какого-нибудь имени пытается добраться до одного из корневых серверов. А если у вас коммутируемое соединение да и модем на 14400? Сейчас выглядит смешно, но иногда бывают и такие ситуации, например, в моей системе спокойно уживаются два модема — один 56К V.90, а второй именно на 14К. В любом случае, если у вас нет собственного домена, а сервер DNS запущен на вашей машине, которую вы используете в гордом одиночестве, то с помощью вышеупомянутой директивы можно существенно повысить скорость соединения. Способ очень прост: можно заставить провайдера проделать за вас всю «грязную» работу. В обычной ситуации в процессе разрешения какого-нибудь имени ваш сервер будет последовательно запрашивать несколько удаленных корневых DNS-серве-ров, с каждым из которых надо установить соединение, отправить запрос и получить ответ. Создание у себя кэширующего DNS-сер