Настройку BIND вручную под Mac OS X я рассмотрел в первой части статьи. Согласитесь, настройка отнюдь не проста для обычного пользователя.
Также я сказал, что смысла ставить DNS-сервер на ноутбук никакого нет, даже кеширующий DNS должен обслуживать нескольких клиентов, а для локального использования и так есть штатный кеш резолвера.
Поэтому самый логичный способ установки DNS-сервера - это установка на сервер, который постоянно включен, и который не таскают с места на место. Рассматривать различные Unix не буду, настройка BIND в них и так не отличается от описанной ранее. Я хочу показать, как настраивается BIND в Mac OS X Server. Особенно доступным использование Mac OS X Server стало с выходом Mac mini Server. Это событие на мой взгляд сильно облегчило разворачивание нормальной сети уровня небольших организаций (а для гиков - и домашней сети) с преобладанием Mac’ов.
У меня в качестве тестового стоит Mac OS X Server 10.6 на MacBook. Через 10 дней он прекратит свою работу и я подумаю, планировать или нет покупку законного Mac mini Server.
Рассказывать о настройке сервера с нуля не буду, об этом можно почитатать в документации Apple, либо в книге ”Apple Training Series: Mac OS X Server Essentials v10.6: A Guide to Using and Supporting Mac OS X Server v10.6”.
DNS-сервер в Mac OS X Server является ключевым звеном, поэтому при установке нужно чётко знать IP-адрес и FQDN-адрес сервера, иначе придётся сталкиваться с мистическими проблемами при запуске разнообразных сервисов (даже команда changeip не всегда помогает). Когда Mac OS X Server установился, то DNS включён по умолчанию. Но отключить/включить его можно в Server Admin (либо на самом сервере, либо установив пакет ”Server Admin Tools”):
Обратите внимание, что сервер у меня назван не так, как я описывал в первой части, но созвучно (ceiling-cat.ctrld.me вместо coche.home.ctrld.me). Если бы я указал при установке сервера coche.home.ctrld.me, то прямая зона home.ctrld.me была бы создана автоматически. Я же буду создавать её самостоятельно.
У Apple хороший инструментарий для настройки серверных сервисов. И очень хорошо то, что это именно интерфейс к настройке стандартных пакетов вроде BIND, OpenDirectory, и при необходимости конфигурационные файлы можно править вручную.
Итак, заходим в настройки DNS-сервера, выбираем закладку Zones. Добавляем прямую зону (Primary Zone):
MX’ы не ставим, к ним дойдёт очередь при настройке почты (да, я надеюсь и это описать когда-нибудь). Также не будем прописывать вторичные DNS (slave DNS), я с трудом могу предположить два сервера в домашней сети. Однако для организации 2 DNS’а нужны - в случае отказа единственного DNS все компьютеры не смогут ничего резолвить.
Используем стандартные значения устаревания зоны и записей:
Эти значения важны для больших сетей, или же ситуаций, когда записи в зонах часто появляются, или же primary/slave сервера могут быть недоступны, но у нас совсем не те требования, и для большинства офисных сетей вполне подходят.
Выбираем нужную зону, и создаём необходимые A-записи (соответствие между именем и IP-адресом):
После добавления видим примерно такое:
Обратная зона 98.168.192.in-addr.arpa создалась автоматически:
У меня уже была зона 2.98.168.192.in-addr.arpa, содержащая один адрес сервера. Для того, чтобы не создавать проблем на ровном месте, я оставил резолвинг 192.168.98.2 в оригинальное имя:
Не забываем нажать Save, сервер автоматически перечитает зоны (увеличивать Serial не нужно). Журнальные записи можно посмотреть в закладке Log:
21-Dec-2009 11:53:44.275 zone home.ctrld.me/IN/com.apple.ServerAdmin.DNS.public: loaded serial 2009122100 21-Dec-2009 12:04:40.777 zone home.ctrld.me/IN/com.apple.ServerAdmin.DNS.public: loaded serial 2009122101 21-Dec-2009 12:04:40.784 zone home.ctrld.me/IN/com.apple.ServerAdmin.DNS.public: loaded serial 2009122101
Сейчас у нас две реверсные зоны - 2.98.168.192.in-addr.arpa и 98.168.192.in-addr.arpa. Берётся более конкретная (192.168.98.2 выдаётся из первой):
$ dig @192.168.98.2 -x 192.168.98.2 soa 2.98.168.192.in-addr.arpa. 10800 IN SOA ceiling-cat.ctrld.me. admin.localhost.localdomain.2.98.168.192.in-addr.arpa. 2009121100 86400 3600 604800 3600 $ dig @192.168.98.2 -x 192.168.98.3 soa 98.168.192.in-addr.arpa. 10800 IN SOA coche.home.ctrld.me. hostmaster.home.ctrld.me.98.168.192.in-addr.arpa. 2009122100 86400 3600 604800 345600
Для того, чтобы устранить путаницу, удалим 2.98.168.192.in-addr.arpa (не забываем жать Save):
$ dig @192.168.98.2 -x 192.168.98.2 soa 98.168.192.in-addr.arpa. 10800 IN SOA coche.home.ctrld.me. hostmaster.home.ctrld.me.98.168.192.in-addr.arpa. 2009122100 86400 3600 604800 345600
Зоны настроены, теперь описываем forwarder 8.8.8.8 (напомню, на него шлются запросы на записи в зонах, за которые сервер не авторитарен, т.е. которые на нём не сконфигурированы):
Save. Настройки закончены. Можно пользоваться. Как вы видите, настройка DNS-сервера под Mac OS X Server на порядок проще ручной настройки BIND для человека, не обременённого опытом системного администрирования Unix.
Но Mac OS X Server есть не у всех, и в следующей части рассмотрим стороннюю программу, которая делает то же самое, но под Mac OS X, причём за деньги.