Файл /etc/hosts как замена локального сервера DNS FreeBSD

В файле /etc/hosts сопоставляются IP-адреса и имена отдельно взятых хостов. Несмотря на всю эффективность применения файла hosts, его содержимое имеет силу только на отдельной машине и должно настраиваться вручную. Динамические серверы имен в значительной степени вытеснили /etc/hosts, однако файл hosts все еще полезен в маленьких сетях и за устройством преобразования сетевых адресов (Network Address Translation, NAT). Например, файл hosts хорошо подходит, если у вас только один или два сервера, а за управление вашей службой имен, доступной извне, отвечает кто-то другой. Если же у вас несколько серверов, каждый из которых должен поддерживаться отдельно, необходим полноценный сервер имен.

Когда-то давно в Интернете имелся единый файл hosts, содержавший все IP-адреса и имена хостов Сети. Системные администраторы оповещали об изменениях в своих системах центрального администратора, который выпускал обновленный файл hosts раз в несколько месяцев. Такой подход вполне оправдывал себя, пока в Интернете было всего четыре хоста. Позже, при нескольких сотнях интернет-хостов, его еще можно было применять. Но когда Интернет начал расти не по дням, а по часам, от этой схемы вскоре отказались.

Каждая строка в /etc/hosts представляет один хост. Первая запись в каждой строке – это IP-адрес, а вторая – полностью определенное доменное имя (fully qualified domain name) хоста, например mail.absolute- freebsd.com. Далее можно перечислить все псевдонимы этого хоста.

Например, у небольшой компании может быть единственный сервер, который обрабатывает почту, предоставляет сервисы FTP, веб, DNS и выполняет множество других функций. Рабочая станция в данной сети может иметь такую запись в /etc/hosts:

192.168.1.2 mail.mycompany.com                  mail ftp www dns

С помощью этой записи в /etc/hosts рабочая станция может найти этот сервер либо по полному доменному имени, либо по кратким псевдонимам.

Если обнаружилось, что вам требуется больше двух или трех строк в hosts или что поддерживать файлы hosts стало нелегко, – это сигнал к тому, что для обслуживания данных о хостах надо создать сервер имен. Сервер имен намного более масштабируем по сравнению с файлами hosts для каждой машины. Обслуживать сервер имен намного проще – стоит только его установить.

Создание сервера имен

Самое популярное программное обеспечение для создания сервера DNS – это BIND (Berkeley Internet Name Daemon). На самом деле BIND представляет собой набор инструментов, в состав которого входят такие программы, как host(l), dig(l) и собственно сервер DNS – named(8). BIND поддерживается Консорциумом программного обеспечения Интернета (Internet Software Consortium, http://www.isc.org) и выпускается под BSD-подобной лицензией. Хотя у BIND есть конкуренты, например djbdns (/usr/ports/net/djbdns), BIND считается эталонной реализацией службы имен. Большинство конкурентов пакета BIND были написаны много лет тому назад, когда BIND еще «славился» своей уязвимостью. Но с тех пор BIND был полностью переписан. Последние его версии гораздо безопаснее прежних, поэтому нет веских причин рассматривать его конкурентов. Не важно, какой демон DNS вы будете использовать, – концепции, применяемые в BIND, в целом подходят для других серверов имен. Одна из наиболее важных концепций – это взаимоотношения между первичными и вторичными серверами.

Первичные и вторичные серверы имен

Для обслуживания каждого домена требуется по крайней мере два сервера имен. Только один из них может быть первичным, все остальные – вторичные. Первичный (master) сервер имен – последняя авторитетная инстанция для домена. Информацию о домене надо изменять на первичном сервере имен, так как именно оттуда эту информацию берет вторичный (slave) сервер. Предполагается, что оба сервера, и первичный и вторичный, являются авторитетными, то есть окружающий их мир считает, что информация о домене, исходящая от этих серверов, будет верна на все сто процентов.

Один сервер имен может быть первичным для одних доменов и вторичным для других. Например, у домена absolutefreebsd.com два сервера имен – bewilderbeast.blackhelicopters.org1 и ribble.lodden.com. Сервер

Этот зверь напоминает антилопу гну (wildebeest), но понять его гораздо труднее.

bewilderbeast.blackhelicopters.org является первичным сервером имен для этого домена, а tribble.lodden.com – вторичным. Всякий раз, когда я обновляю записи DNS, bewilderbeast посылает серверу tribble извещение о том, что появились новые записи, после чего вторичный сервер обновляет их у себя. Если bewilderbeast подвергнется нападению и исчезнет из Интернета, информацию DNS о домене будет поставлять tribble. В свою очередь сервер tribble является первичным сервером имен для домена lodden.com, a bewilderbeast – вторичным для других доменов. Системные администраторы часто обмениваются услугами вторичных серверов имен между собой.

Расширяйте область действия своих серверов имен. Если у вас появится возможность обменяться услугами вторичных серверов имен с кем- то из другого сегмента Интернета, расположенного в другой стране, а еще лучше – на другом континенте, не упускайте такую возможность. Предложения об обмене услугами DNS можно найти на многих общественных веб-сайтах. Самое лучшее при обмене, если оказываемые друг другу услуги будут сопоставимы по объему – не стоит оказывать услуги вторичного сервера имен сотне доменов в обмен на аналогичную услугу для единственного домена вашей компании! Наконец, услуги вторичных серверов DNS, разбросанных по всему свету, недорого предлагают некоторые компании.

Конфигурационные файлы BIND

На первичном и вторичном серверах имен используются одни и те же конфигурационные файлы демона службы имен named(8). В конфигурацию FreeBSD по умолчанию уже входят настройки, необходимые для работы простейшего сервера имен, но чтобы запустить службу имен для собственного домена, вы должны понимать, как она настраивается. Основной каталог с конфигурационными файлами – /etc/ namedb, и здесь вы найдете несколько очень важных файлов.

named.root

Файл named.root должен присутствовать обязательно, и редактировать его не надо. В нем перечислены корневые серверы имен. Когда сервер имен получает запрос информации о сайте, которой нет в его кэше, он обращается к корневым серверам имен. Корневые серверы имен идентифицируются по IP-адресам, и все сообщество Интернета стремится изменять эти IP-адреса как можно реже. Поэтому данный файл изменяется нечасто – к моменту написания этих строк (конец 2007 года) последний раз named.root обновлялся в конце 2004 года.

localhost-forward.db, localhost-reverse.db

Это файлы прямой и обратной зон для хоста localhost на вашем компьютере. Что такое файлы зон? Читайте дальше, и узнаете.

Основу конфигурации сервера DNS составляет конфигурационный файл демона named, named.conf. Если в файле named.conf есть ошибки, сервер имен будет неработоспособен. Именно здесь хранятся главные настройки DNS.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий