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