Пример настройки Name-сервера
Спланируем нашу зону так:
- наша фирма получила зону "фирма.домен";
- в ней будет три машины со следующими функциями:
- 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-серверу филиала на нашем сервере
должна быть копия содержимого его зоны.
@ 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 достаточно велик,
поэтому я буду перемежать текст файла обьяснениями.
@ 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, могут решить, что ее кэшировать не надо.
@ 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: она находится в совсем другой обратной зоне.
Этот файл создается автоматически; главное - чтобы он был правильно
построен (прописаны все NS и MX).
Инструменты
Для тестирования правильности построения зоны используется программа
nslookup. Она сообщает IP-адрес по доменному имени, а при запуске
без параметров она переходит в командный режим, где проявляет все свои
незаурядные качества - читай `man nslookup`.
|
|