Спланируем нашу зону так:
-
- наша фирма получила зону "фирма.домен";
-
- в ней будет три машины со следующими функциями:
-
- troll
- первичный Name-сервер; почтовая машина;
-
- ogre
- вторичный Name-сервер; FTP- и WWW-сервер;
-
- goblin
- просто машина без каких-либо функций, да еще расположенная совершенно в
другом месте.
-
- Имеется группа "группа.фирма.домен" с двумя машинами:
-
- dwarf
- почтовый шлюз группы
-
- elf
- просто машина
-
- Имеется отдел "отдел.фирма.домен" со своим Name-сервером.
-
- Имеется удаленный филиал "филиал.фирма.домен" со своим
Name-сервером, который надо дублировать.
СтартПри старте машины запускается DNS-сервер: named -b /etc/namedb/named.boot В качестве аргумента ему
передается имя файла с описанием рабочей конфигурации.
Формат файлов |<-
| Текст файла начинается с этой позиции.
|<- Формат файла: имя аргументы В качестве разделителя используются пробелы и
табуляции.
Пустые строки игнорируются.
Точка с запятой ";" - признак комментария; все от нее до конца
строки игнорируется.
Если строка начинается с пробела или с табуляции, она относится к тому же
имени, что и предыдущая строка.
directory /etc/namedb Это - указание на то, в какой директории
находятся все упоминаемые дальше файлы. primary 0.0.127.in-addr.arpa.localhost.rev Каждый Name-сервер
должен обслуживать зону 0.0.127.in-addr.arpa, ибо каждая машина должна
знать свой внутренний номер как localhost. primary фирма.домен фирма.домен.hosts Это - домен, выделенный нашей
организации. primary 1.168.192.in-addr.arpa 1_168_192.rev Это - обратное
преобразование IP-адресов в имена. secondary филиал.фирма.домен 192.168.1.193 филиал_фирма_домен.hosts Для
ускорения обращений к Name-серверу филиала на нашем сервере должна быть копия
содержимого его зоны.
Файл localhost.rev @ IN SOA troll.фирма.домен. ответственный_за_зону. (
19970315 ; Serial
3600 ; Refresh
300 ; Retry
3600000 ; Expire
3600 ; Minimum
IN NS troll.фирма.домен.
1 IN PTR localhost.домен. Пояснения:
-
- @
- текущий исходный домен, от которого будут отсчитываться все имена, которые
не заканчиваются на точку. в данном случае - 0.0.127.in-addr.arpa.
-
- IN
- Запись относится к InterNet. Должно присутствовать во всех записях, но часто
это игнорируют.
-
- SOA
- Start Of Authorisation - Начало Полномочий.
-
- первичный_сервер_зоны.
- Имя первичного сервера зоны. Так как мы создаем этот файл на первичном
серере, здесь должно быть доменное имя самОй машины; точка в конце обязательна.
-
- ответственный_за_зону.
- Почтовый адрес лица, отвественного за зону; "@" в адресе
заменяется на ".".
-
- В скобки заключаются параметры, растянутые на несколько строк:
-
- 19970315 ; Serial
- Серийный номер версии; должен увеличиваться при каждом изменении в зоне - по
нему вторичный сервер обнаруживает, что надо обновить информацию. Обычно пишется
в виде <год><месяц><число><номер>.
-
- 3600 ; Refresh
- Временной интервал в секундах, через который вторичный сервер будет
проверять необходимость обновления информации.
-
- 300 ; Retry
- Временной интервал в секундах, через который вторичный сервер будет
повторять обращения при неудаче.
-
- 3600000 ; Expire
- Временной интервал в секундах, через который вторичный сервер будет считать
имеющуюся у него информацию устаревшей.
-
- 3600 ) ; Minimum
- Значение времени жизни информации на кэширующих серверах.
-
- IN NS первичный_сервер_зоны.
- Запись NS авторизует сервер как ответственный за зону. Естественно,
надо авторизовать самогО себя.
1 IN PTR localhost.домен.
Номер 127.0.0.1 всегда должен быть localhost.
.0.0.127. автоматически приписывается к 1, ибо она не
кончается на точку.
Файл фирма_домен.hosts
Файл фирма_домен.hosts достаточно велик, поэтому я буду перемежать
текст файла обьяснениями. @ IN SOA troll.фирма.домен. ответственный_за_зону. (
19970315 ; Serial
3600 ; Refresh
300 ; Retry
3600000 ; Expire
3600 ; Minimum
) Да в общем-то нет никаких причин делать эту зону отличной от зоны,
содержащейся в localhost.rev, разве что Serial может (и скорее всего будет)
различаться. IN NS troll
IN NS ogre
IN NS вторичный_сервер_провайдера. Раз у нас есть вторичный сервер, да к
тому же провайдер обещал держать у себя на сервере копию нашего сервера, надо
авторизовать их тоже. IN MX 10 troll
IN MX 20 почтовый_шлюз_провайдера. Здесь описаны почтовые шлюзы в порядке
возрастания "удаленности" от пункта назначения. Почтовые серверы,
имеющие почту для наших машин, пытаются послать ее непосредственно по адресу
назначения; если это не удается, они пытаются послать ее самому близкому к
пункту назначения шлюзу, при неудаче - следующему и так далее до исчерпания
списка. Это касается только адреса фирма.домен, но не относится к
машинам зоны (см.ниже). localhost IN A 127.0.0.1 Каждая машина, обратившаяся по адресу
localhost или localhost.зона, должна получить номер
127.0.0.1. * IN MX 10 troll
IN MX 20 почтовый_шлюз_провайдера. Для всех машин данной зоны установить
почтовые шлюзы (те же, что и для самОй зоны). troll IN A 192.168.1.1
IN HINFO "486DX2-66" "FreeBSD"
ns IN CNAME troll
mail IN CNAME troll
-
- IN A 192.168.1.1
- Определяет, что имени troll соответствует IP-номер
192.168.1.1.
-
- IN HINFO "486DX2-66" "FreeBSD"
- Содержит некоторыю информацию о машине, обычно - тип процессора и
операционной системы.
-
- ns IN CNAME troll и mail IN CNAME troll
- Делают имена ns и mail псевдонимами машины troll.
Следует помнить, что этого не всегда достаточно: некоторые протоколы, включая
HTTP 1.1 и E-mail работают непосредственно с именем хоста, так что сам хост тоже
должен понимать, что это имя - его.
ogre IN A 192.168.1.2
IN HINFO "Pentium" "Linux"
nss IN CNAME troll
www IN CNAME ns.misa.ac.ru.
ftp IN CNAME ns.misa.ac.ru.
goblin IN A 172.16.21.114 В общем-то все то же самое, что и для
troll. группа IN MX 5 dwarf.группа
IN MX 10 troll
IN MX 20 почтовый_шлюз_провайдера.
*.группа IN MX 5 dwarf.группа
IN MX 10 troll
IN MX 20 почтовый_шлюз_провайдера. На всякий случай отдельно зафиксируем
почтовые шлюзы как для самой группы, так и для всех ее машин. localhost.группа IN A 127.0.0.1
elf.группа IN A 192.168.1.11
dwarf.группа IN A 192.168.1.12 Обычные записи для машин группы. Можно
сделать им HINFO или добавить псевдонимы, но и так сойдет. отдел IN NS 192.168.1.21.
; и, если есть, вторичные Name-серверы Так как отдел имеет свой
Name-сервер, нужно только авторизовать его, причем по номеру; а дальше он сам
должен отвечать за записи своей зоны.
И напоследок - красивый фокус: altavista IN CNAME altavista.digital.com
yahoo IN CNAME www.yahoo.com Это позволяет моим юзерам обращаться к самым
известным поисковым машинам, не набирая www. в начале и .com в
конце! Однако, когда я пытался обращаться к этим машинам через Proxy-сервер
провайдера, тот обратился к своей зоне DNS и сказал: "Не знаю имени
yahoo.провайдер! Впрочем, полное имя www.yahoo.com
продолжало нормально функционировать. Есть еще одна особенность такой
конфигурации: машина yahoo.фирма.домен находится в нашей зоне, поэтому
некоторые программы, кэширующие обращения к WWW, могут решить, что ее кэшировать
не надо.
Файл 1_168_192.rev @ IN SOA troll.фирма.домен. ответственный_за_зону. (
19970315 ; Serial
3600 ; Refresh
300 ; Retry
3600000 ; Expire
3600 ; Minimum
) Тут даже думать не надо. 1 IN PTR troll.фирма.домен.
2 IN PTR ogre.фирма.домен.
11 IN PTR dwarf.группа.фирма.домен.
12 IN PTR elf.группа.фирма.домен.
; и так далее Этот файл содержит преобразования IP-адресов в доменные
имена. Многие программы вообще отказываются работать с машинами, чей IP-адрес не
прописан в обратной (reverce) зоне, видимо, считая, что этот адрес кем-то
присвоен самовольно, без санкции ответственного администратора. Здесь же мы
должны прописать все остальные машины, имеющие IP-номера 192.168.1.* -
дело в том, что зоны в in-addr.arpa выделяются сразу на 256 адресов и
не делегируются на меньшее число. Хочу также обратить внимание на то, что в
обратной зоне нет машины goblin: она находится в совсем другой обратной
зоне.
Файл филиал_фирма_домен.hostsЭтот файл создается
автоматически; главное - чтобы он был правильно построен (прописаны все NS и
MX).
Инструменты
Для тестирования правильности построения зоны используется
программа nslookup. Она сообщает IP-адрес по доменному имени, а при
запуске без параметров она переходит в командный режим, где проявляет все свои
незаурядные качества - читай
Литература по серверам: разное
|