<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Apple Geek &#187; dns</title>
	<atom:link href="http://theapplegeek.ru/archives/tag/dns/feed" rel="self" type="application/rss+xml" />
	<link>http://theapplegeek.ru</link>
	<description>Чему ты научился сегодня?</description>
	<lastBuildDate>Sun, 06 May 2012 15:19:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Настройка DNS-сервера в Mac OS X. Часть 3, Blind End Way (DNS Enabler)</title>
		<link>http://theapplegeek.ru/archives/2556</link>
		<comments>http://theapplegeek.ru/archives/2556#comments</comments>
		<pubDate>Tue, 22 Dec 2009 19:44:03 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=2556</guid>
		<description><![CDATA[В предыдущих частях мы рассмотрели настройку DNS-сервера под Mac OS X и Mac OS X Server. Сегодня же пришло время рассмотреть создание DNS-сервера в Mac OS X, но гораздо проще, всего лишь с помощью сторонней программы DNS Enabler стоимостью 25$. Меня сразу неприятно поразило то, что версию под Snow Leopard нельзя списать для того, чтобы [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/01_dns3-full.png" height="128" align="right" width="127" style=" display: inline; float: right; margin: 0 0 10px 10px;" /></p>
<p>В предыдущих частях мы рассмотрели настройку DNS-сервера <a href="http://theapplegeek.ru/archives/2501" >под Mac OS X</a> и <a href="http://theapplegeek.ru/archives/2541" >Mac OS X Server</a>. Сегодня же пришло время рассмотреть создание DNS-сервера в Mac OS X, но гораздо проще, всего лишь с помощью сторонней программы <noindex><a rel="nofollow" href="http://www.cutedgesystems.com/software/DNSEnablerSnow/" >DNS Enabler</a></noindex> стоимостью 25$.</p>
<p>Меня сразу неприятно поразило то, что версию под Snow Leopard нельзя списать для того, чтобы её попробовать &#8211; для списывания нужно её купить: &#8220;The serial number and download link will be displayed in the browser after payment, and will also be sent via email&#8221;. Непривычно, согласитесь&#8230; Это был звоночек № 1. Но я всё-таки дал обещание сделать обзор, и поэтому решил поставить <noindex><a rel="nofollow" href="http://www.cutedgesystems.com/software/DNSEnablerForLeopard/" >версию под Leopard</a></noindex>.</p>
<p><span id="more-2556"></span></p>
<p>Списал. В архиве zip был &#8220;DNS Enabler for Leopard 3.0.4.app&#8221;. Тоже слегка странно &#8211; в нормальных программах не ставится номер версии в имени. Звоночек № 2.</p>
<p style="clear: both"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/02_dns3-full.png" style=" text-align: center; display: block; margin: 0 auto 10px;" /></p>
<p>Звоночек № 3, он же финальный:</p>
<p style="clear: both"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/03_dns3-full.png" style=" text-align: center; display: block; margin: 0 auto 10px;" /></p>
<p>Открыл сайт производителя и начал смотреть на скриншоты и текст.</p>
<p>&#8220;The Log Panel shows the contents of the DNS Server log file at /Library/Logs/named.log&#8221;. Хммм&#8230; Понятно&#8230;</p>
<p style="clear: both"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/04_dns3-full.png" style=" text-align: center; display: block; margin: 0 auto 10px;" /></p>
<p>Версию bind&#8217;а увидели? То-то же и оно. Программа DNS Enabler &#8211; это GUI для настройки штатного BIND:</p>
<p style="clear: both"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/05_dns3-full.png" style=" text-align: center; display: block; margin: 0 auto 10px;" /></p>
<p>Ничего плохого в этом нет, но смысл запрета списывания вполне понятен &#8211; пользователи могут настроить bind в триальной версии, а дальше программа становится ненужной.</p>
<p>Резюме. Если вам нужно настроить DNS-сервер под Mac OS X, но копаться в конфигурационных файлах вам не хочется, то купить <noindex><a rel="nofollow" href="http://www.cutedgesystems.com/software/DNSEnablerSnow/" >DNS Enabler</a></noindex> вполне можно. Но если вам нужен DNS-сервер, то с большой долей вероятности можно утверждать, что вы его сможете настроить вручную, используя мою статью: &#8220;<a href="http://theapplegeek.ru/archives/2501" >Настройка DNS-сервера в Mac OS X. Часть 1, Unix Way (BIND)</a>&#8220;, поверьте, в этом нет ничего суперсложного.</p>
<p>На этом обзор DNS-серверов заканчиваю. К сожалению, сегодняшняя часть получилась короткой.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/2556/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Настройка DNS-сервера в Mac OS X. Часть 2, Mac Way (Mac OS X Server)</title>
		<link>http://theapplegeek.ru/archives/2541</link>
		<comments>http://theapplegeek.ru/archives/2541#comments</comments>
		<pubDate>Mon, 21 Dec 2009 10:20:21 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=2541</guid>
		<description><![CDATA[Настройку BIND вручную под Mac OS X я рассмотрел в первой части статьи. Согласитесь, настройка отнюдь не проста для обычного пользователя. Также я сказал, что смысла ставить DNS-сервер на ноутбук никакого нет, даже кеширующий DNS должен обслуживать нескольких клиентов, а для локального использования и так есть штатный кеш резолвера. Поэтому самый логичный способ установки DNS-сервера [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/01-thumb1.png" height="170" align="right" width="160" style=" display: inline; float: right; margin: 0 0 10px 10px;" /></p>
<p>Настройку BIND вручную под Mac OS X я рассмотрел <a href="http://theapplegeek.ru/archives/2501" >в первой части статьи</a>. Согласитесь, настройка отнюдь не проста для обычного пользователя.</p>
<p>Также я сказал, что смысла ставить DNS-сервер на ноутбук никакого нет, даже кеширующий DNS должен обслуживать нескольких клиентов, а для локального использования и так есть штатный кеш резолвера.</p>
<p>Поэтому самый логичный способ установки DNS-сервера &#8211; это установка на сервер, который постоянно включен, и который не таскают с места на место. Рассматривать различные Unix не буду, настройка BIND в них и так не отличается <a href="http://theapplegeek.ru/archives/2501" >от описанной ранее</a>. Я хочу показать, как настраивается BIND в Mac OS X Server. Особенно доступным использование Mac OS X Server стало с выходом <noindex><a rel="nofollow" href="http://www.apple.com/macmini/server/" >Mac mini Server</a></noindex>. Это событие на мой взгляд сильно облегчило разворачивание нормальной сети уровня небольших организаций (а для гиков &#8211; и домашней сети) с преобладанием Mac&#8217;ов.</p>
<p>У меня в качестве тестового стоит <a href="http://theapplegeek.ru/archives/2103" >Mac OS X Server 10.6 на MacBook</a>. Через 10 дней он прекратит свою работу и я подумаю, планировать или нет покупку законного Mac mini Server.</p>
<p><span id="more-2541"></span></p>
<p>Рассказывать о настройке сервера с нуля не буду, об этом можно почитатать <noindex><a rel="nofollow" href="http://support.apple.com/manuals/#Mac%20OS%20X%20Server%2010.6" >в документации Apple</a></noindex>, либо в книге &#8220;<noindex><a rel="nofollow" href="http://www.peachpit.com/store/product.aspx?isbn=0321635337" >Apple Training Series: Mac OS X Server Essentials v10.6: A Guide to Using and Supporting Mac OS X Server v10.6</a></noindex>&#8220;.</p>
<p>DNS-сервер в Mac OS X Server является ключевым звеном, поэтому при установке нужно чётко знать IP-адрес и <noindex><a rel="nofollow" href="http://en.wikipedia.org/wiki/Fully_qualified_domain_name" >FQDN-адрес</a></noindex> сервера, иначе придётся сталкиваться с мистическими проблемами при запуске разнообразных сервисов (даже команда <noindex><a rel="nofollow" href="http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man8/changeip.8.html" >changeip</a></noindex> не всегда помогает). Когда Mac OS X Server установился, то DNS включён по умолчанию. Но отключить/включить его можно в Server Admin (либо на самом сервере, либо установив пакет &#8220;<noindex><a rel="nofollow" href="http://support.apple.com/downloads/Server_Admin_Tools_10_6" >Server Admin Tools</a></noindex>&#8220;):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/02-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/02-thumb.png" height="411" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Обратите внимание, что сервер у меня назван не так, как я описывал в первой части, но созвучно (ceiling-cat.ctrld.me вместо coche.home.ctrld.me). Если бы я указал при установке сервера coche.home.ctrld.me, то прямая зона home.ctrld.me была бы создана автоматически. Я же буду создавать её самостоятельно.</p>
<p>У Apple хороший инструментарий для настройки серверных сервисов. И очень хорошо то, что это именно интерфейс к настройке стандартных пакетов вроде BIND, OpenDirectory, и при необходимости конфигурационные файлы можно править вручную.</p>
<p>Итак, заходим в настройки DNS-сервера, выбираем закладку Zones. Добавляем прямую зону (Primary Zone):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/03-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/03-thumb.png" height="397" width="497" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>MX&#8217;ы не ставим, к ним дойдёт очередь при настройке почты (да, я надеюсь и это описать когда-нибудь).<br />
Также не будем прописывать вторичные DNS (slave DNS), я с трудом могу предположить два сервера в домашней сети. Однако для организации 2 DNS&#8217;а нужны &#8211; в случае отказа единственного DNS все компьютеры не смогут ничего резолвить.</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/04-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/04-thumb.png" height="265" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Используем стандартные значения устаревания зоны и записей:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/05-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/05-thumb.png" height="263" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Эти значения важны для больших сетей, или же ситуаций, когда записи в зонах часто появляются, или же primary/slave сервера могут быть недоступны, но у нас совсем не те требования, и для большинства офисных сетей вполне подходят.</p>
<p>Выбираем нужную зону, и создаём необходимые A-записи (соответствие между именем и IP-адресом):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/06-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/06-thumb.png" height="313" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>После добавления видим примерно такое:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/07-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/07-thumb.png" height="475" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Обратная зона 98.168.192.in-addr.arpa создалась автоматически:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/08-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/08-thumb.png" height="170" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>У меня уже была зона 2.98.168.192.in-addr.arpa, содержащая один адрес сервера. Для того, чтобы не создавать проблем на ровном месте, я оставил резолвинг 192.168.98.2 в оригинальное имя:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/09-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/09-thumb.png" height="313" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Не забываем нажать Save, сервер автоматически перечитает зоны (увеличивать Serial не нужно). Журнальные записи можно посмотреть в закладке Log:</p>
<pre>
<small>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</small>
</pre>
<p>Сейчас у нас две реверсные зоны &#8211; 2.98.168.192.in-addr.arpa и 98.168.192.in-addr.arpa. Берётся более конкретная (192.168.98.2 выдаётся из первой):</p>
<pre>
$ dig @192.168.98.2 -x 192.168.98.2 soa
<small>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</small>

$ dig @192.168.98.2 -x 192.168.98.3 soa
<small>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</small>
</pre>
<p>Для того, чтобы устранить путаницу, удалим 2.98.168.192.in-addr.arpa (не забываем жать Save):</p>
<pre>
$ dig @192.168.98.2 -x 192.168.98.2 soa
<small>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</small>
</pre>
<p>Зоны настроены, теперь описываем forwarder 8.8.8.8 (напомню, на него шлются запросы на записи в зонах, за которые сервер не авторитарен, т.е. которые на нём не сконфигурированы):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/10-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/10-thumb.png" height="411" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Save. Настройки закончены. Можно пользоваться. Как вы видите, настройка DNS-сервера под Mac OS X Server на порядок проще ручной настройки BIND для человека, не обременённого опытом системного администрирования Unix.</p>
<p>Но Mac OS X Server есть не у всех, и в следующей части рассмотрим стороннюю программу, которая делает то же самое, но под Mac OS X, причём за деньги.</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/2541/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Настройка DNS-сервера в Mac OS X. Часть 1, Unix Way (BIND)</title>
		<link>http://theapplegeek.ru/archives/2501</link>
		<comments>http://theapplegeek.ru/archives/2501#comments</comments>
		<pubDate>Fri, 18 Dec 2009 19:56:08 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/?p=2501</guid>
		<description><![CDATA[Хочу рассказать о странном &#8211; о платной (25$) программе &#8220;DNS Enabler&#8221; для создания DNS-сервера. Об этом меня попросил один из читателей: Есть такая программа &#8220;DNS Enabler&#8221; (www.cutedgesystems.com). Если будет время и желание &#8211; напиши, как ею пользоваться с примерами. Думаю, маководы скажут спасибо за этот материал. О &#8220;странном&#8221;, так как в Mac OS X и [...]]]></description>
			<content:encoded><![CDATA[<p>Хочу рассказать о странном &#8211; о платной (25$) программе &#8220;<noindex><a rel="nofollow" href="http://www.cutedgesystems.com/software/DNSEnablerSnow/" >DNS Enabler</a></noindex>&#8221; для создания DNS-сервера. Об этом меня попросил один из читателей:</p>
<blockquote>
<p>Есть такая программа &#8220;DNS Enabler&#8221; (www.cutedgesystems.com). Если будет время и желание &#8211; напиши, как ею пользоваться с примерами. Думаю, маководы скажут спасибо за этот материал.</p>
</blockquote>
<p>О &#8220;странном&#8221;, так как в Mac OS X и так есть DNS-сервер <noindex><a rel="nofollow" href="http://en.wikipedia.org/wiki/BIND" >ISC BIND</a></noindex> (в лицензионных условиях я сейчас разбираться не очень хочу, поэтому скажу, что это бесплатное программное обеспечение с открытыми исходными текстами).</p>
<pre>
$ named -v
BIND 9.6.0-APPLE-P2
</pre>
<p><span id="more-2501"></span></p>
<p>Я хотел продемонстрировать, что BIND является очень популярным сервером DNS в Интернет, но моя демонстрация хоть и не удалась, но по крайней мере развеселила. В идеале можно узнать версию удалённого DNS-сервера с помощью команды:</p>
<pre>
$ dig @<b>dns.server.ip.address</b> version.bind chaos txt
</pre>
<p>Но информация о версии BIND считается небезопасной утечкой информации, и администраторы DNS отключают её выдачу, но при этом всячески развлекаются. Мне особенно понравился ответ сервера ns2.life.net: &#8220;None of your business&#8221; (грубо говоря &#8220;Не твоё собачье дело&#8221;) :-) Примеры ниже (только один сервер сообщил о своей версии):</p>
<pre>
$ dig @4.2.2.1 version.bind chaos txt
version.bind.		0	CH	TXT	"If you have a legitimate reason for requesting this info, please contact hostmaster@Level3.net"

$ dig @A.ROOT-SERVERS.NET version.bind chaos txt
version.bind.		0	CH	TXT	"This space intentionally left blank"

$ dig @ns2.life.ua version.bind chaos txt
version.bind.		0	CH	TXT	"None of your business"

$ dig @66.244.95.20 version.bind chaos txt
version.bind.		0	CH	TXT	"[secured]"

$ dig @133.145.228.6 version.bind chaos txt
version.bind.		0	CH	TXT	"unknown"

$ dig @218.248.240.208 version.bind chaos txt
version.bind.		0	CH	TXT	"9.2.1"
</pre>
<p>Несмотря на популярность BIND, его настройка требует навыков системного администрирования. Поэтому на Mac OS X его настройка &#8211; удел не слишком многих. Есть другое решение &#8211; в Mac OS X Server тоже используется BIND в качестве DNS-сервера, и у него есть хороший графический интерфейс. Но это сервер, и обычному пользователю он тоже вряд ли доступен. Поэтому третья альтернатива &#8211; использование под Mac OS X стороннего пакета, создающего DNS-сервер, и как раз здесь я рассмотрю &#8220;<noindex><a rel="nofollow" href="http://www.cutedgesystems.com/software/DNSEnablerSnow/" >DNS Enabler</a></noindex>&#8220;.</p>
<p>Три альтернативы &#8211; три части этой статьи. Сложность идёт по убыванию. Первый раздел &#8211; самый сложный, это Unix-way. Последний &#8211; самый простой, это Mac-way. Тема получается объёмной, поэтому если не хотите сложностей, то подождите вторую и третью части статьи, они, в отличие от ещё не написанной &#8220;<a href="http://theapplegeek.ru/archives/tag/amazon" >Amazon Web Services, часть 3</a>&#8220;, будут в течение следующих дней.</p>
<h2>Задача</h2>
<p>Для чего предназначен DNS-сервер? Если вы дочитали до этого момента, то можно <noindex><a rel="nofollow" href="http://en.wikipedia.org/wiki/Domain_Name_System" >об этом не рассказывать</a></noindex> :-)</p>
<p>Детальное описание определений, сценариев работы, конфигурирования DNS можно узнать в книге издательства O&#8217;reilly &#8220;<noindex><a rel="nofollow" href="http://oreilly.com/catalog/9780596100575" >DNS and BIND</a></noindex>&#8220;.</p>
<p>Я расскажу о типичной конфигурация, которую я хочу реализовать. Допустим, у меня есть домен ctrld.me. Этот домен расположен на DNS-серверах провайдера. Но для дома я хочу сделать поддомен home.ctrld.me, в котором я хочу описать iPhone, iPod Touch, PS3, ноутбук и тестовый Mac OS X Server. Это будет &#8220;прямая зона&#8221;. Устройства подключены по WiFi к TimeCapsule, которая раздаёт им по DHCP закреплённые за их MAC-адресами.</p>
<p>Вопрос выбора имён непрост. Называть устройство просто iPhone информативно, но неинтересно. Лучше выбрать какое-либо правило, и его придерживаться. Некоторые называют хосты по именам груческих богов, некоторые &#8211; по названием гор. Главное чтобы этих названий было достаточно для того, чтобы назвать все хосты. Для этого конкретного случая я решил использовать <noindex><a rel="nofollow" href="http://en.wikipedia.org/wiki/Islands_of_Chile#Venezuela" >названия островов в Венесуэле</a></noindex>. Кроме этого в домашней сети (192.168.98.0/24, у меня отнюдь не 253 хоста, но так проще) я придерживаюсь того, что адрес .1 закреплён за маршрутизатором, адреса с .2 по .9 зарезервированы для серверов, с .10 по .99 зарезервированы для &#8220;статических&#8221; адресов, закреплённых по MAC, а после .100 выдаются любым другим устройствам, попадающим в сеть.</p>
<p>Раскладка такая:</p>
<ul>
<li>TimeCapsule: aves.home.ctrld.me, 192.168.98.1</li>
<li>Mac OS X Server: coche.home.ctrld.me, 192.168.98.2</li>
<li>PS3: cubagua.home.ctrld.me, 192.168.98.3</li>
<li>MacBook Pro: patos.home.ctrld.me, 192.168.98.10</li>
<li>iPod Touch: toas.home.ctrld.me, 192.168.98.11</li>
<li>iPhone: zapara.home.ctrld.me, 192.168.98.12</li>
</ul>
<p>DNS-сервер будет стоять на MacBook Pro. Плохая идея &#8211; DNS-сервер должен всегда находиться в сети, и правильно его ставить на выделенном сервере (в моём случае это 192.168.98.2). Но для теста подойдёт.</p>
<p>Чтобы DNS-сервер мог обслуживать запросы клиентов в сети на определение произвольных хостов (например, cnn.com), а но только тех, которые мы сконфигурировали в home.ctrld.me, нужно перенаправить эти запросы на внешний DNS. Я буду использовать для этого публичный DNS-сервер Google 8.8.8.8.</p>
<p>В результате мы сможем использовать наш DNS-сервер для полноценной работы.</p>
<h2>Настройка BIND на Mac OS X</h2>
<p>Сформулирую задачу терминами DNS. Прямая зона (соответствие между именами и IP-адресами) выглядит так:</p>
<pre>
$ORIGIN home.ctrld.me.
aves	IN	A	192.168.98.1
coche	IN	A	192.168.98.2
cubagua	IN	A	192.168.98.3
patos	IN	A	192.168.98.10
toas	IN	A	192.168.98.11
zapara	IN	A	192.168.98.12
</pre>
<p>Обратная зона (соответствие между IP-адресом и именем) такая:</p>
<pre>
$ORIGIN 98.168.192.in-addr.arpa.
1		IN	PTR	aves.home.ctrld.me.
2		IN	PTR	coche.home.ctrld.me.
3		IN	PTR	cubagua.home.ctrld.me.
10		IN	PTR	patos.home.ctrld.me.
11		IN	PTR	toas.home.ctrld.me.
12		IN	PTR	zapara.home.ctrld.me.
</pre>
<p>Обратите внимание, что точки в конце &#8211; это отнюдь не моя любовь к непропусканию точек в конце предложения.</p>
<p>Настраивать bind я буду, опираясь на статью &#8220;<noindex><a rel="nofollow" href="http://www.macshadows.com/kb/index.php?title=How_To:_Enable_BIND_-_Mac_OS_X" s_Built-in_DNS_Server">How To: Enable BIND &#8211; Mac OS X&#8217;s Built-in DNS Server</a></noindex>&#8220;. Также хочу порекомендовать посмотреть инструкцию по настройке BIND на FreeBSD на одном из моих любимых блогов по Unix <noindex><a rel="nofollow" href="http://www.lissyara.su/articles/freebsd/programms/bind/" >www.lissyara.su</a></noindex>.</p>
<h3>Конфигурируем rndc</h3>
<p>rndc &#8211; это утилита для управления BIND&#8217;ом. Для начала нужно сгенерировать ключ и конфигурационный файл:</p>
<pre>
$ sudo -s
$ rndc-confgen -b 256 > /etc/rndc.conf
$ head -n5 /etc/rndc.conf | tail -n4 > /etc/rndc.key
</pre>
<p>Файл /etc/rndc.conf будет примерно такой:</p>
<pre>
# Start of rndc.conf
key "rndc-key" {
	algorithm hmac-md5;
	secret "C0p1VDGqN1m4ApoKIDze+GZORY+tbYSORw56+WjIpGg=";
};

options {
	default-key "rndc-key";
	default-server 127.0.0.1;
	default-port 953;
};
# End of rndc.conf
</pre>
<p>Файл /etc/rndc.key &#8211; это выдержка из предыдущего:</p>
<pre>
key "rndc-key" {
	algorithm hmac-md5;
	secret "C0p1VDGqN1m4ApoKIDze+GZORY+tbYSORw56+WjIpGg=";
};
</pre>
<p>Мне эти ключи не жаль, но вы свои ключи никому не показывайте.</p>
<p>Важно, чтобы порт для rndc в /etc/named.conf (он есть изначально) и в /etc/rndc.conf должны быть одинаковыми, иначе вы не сможете управлять BIND&#8217;ом:</p>
<pre>
# cat /etc/named.conf | grep 'inet.*\?port'
	inet 127.0.0.1 port 54 allow {any;}
# cat /etc/rndc.conf | grep '\-port'
	default-port 953;
</pre>
<p>Если они отличаются, то нужно в /etc/named.conf указать нужный порт:</p>
<pre>
# sed 's/inet 127.0.0.1 port 54/inet 127.0.0.1 port 953/' /etc/named.conf > /tmp/named.conf
# cp /etc/named.conf /etc/named.conf.dist
# mv /tmp/named.conf /etc/
</pre>
<h3>Настройка автозапуска</h3>
<p>Отключаем ключ &#8220;Disabled&#8221; в конфигурации для launchd при запуске BIND (демон называется named), для чего указываем в lauchctl опцию &#8220;-w&#8221;:</p>
<pre>
# launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
</pre>
<p>Обратите внимание на то, что в последних Mac OS X .plist не меняется, &#8220;Now the state of the Disabled key is stored elsewhere on-disk&#8221;. И это &#8220;elsewhere&#8221; значит &#8220;/private/var/db/launchd.db/com.apple.launchd/overrides.plist&#8221;. Как я узнал? Перечитайте статью &#8220;<a href="http://theapplegeek.ru/archives/520" >Слежение за изменениями файловой системы</a>&#8220;.</p>
<p>Named теперь запущен и должен стартовать при перезапуске системы.</p>
<pre>
# ps ax | grep named | grep -v grep
27718   ??  Ss     0:00.01 /usr/sbin/named -f
</pre>
<p>Ручная остановка named:</p>
<pre>
# launchctl stop org.isc.named
</pre>
<p>Ручной запуск:</p>
<pre>
# launchctl start org.isc.named
</pre>
<h3>Конфигурируем named</h3>
<pre>
# vim /etc/named.conf
</pre>
<p>В разделе options добавляем forwarder &#8211; адрес DNS-сервера куда будут идти транслироваться все запросы, на которые наш DNS-сервер ответить не может?</p>
<pre>
	forwarders      { 8.8.8.8; };
</pre>
<p>Желающие могут скрыть версию BIND:</p>
<pre>
	version         "for this info please contact hostmaster@ctrld.me";
</pre>
<p>В глобальной конфигурации добавляем файлы зон (прямую и обратную):</p>
<pre>
zone "home.ctrld.me" IN {
    type master;
    file "home.ctrld.me.fwd";
};

zone "98.168.192.in-addr.arpa" {
    type master;
    file "192.168.98.rev";
    allow-update { none; };
};
</pre>
<p>Файл /etc/named.conf будет выглядеть так:</p>
<pre>
include "/etc/rndc.key";

controls {
    inet 127.0.0.1 port 953 allow {any;}
    keys { "rndc-key"; };
};

options {
    directory "/var/named";
    forwarders      { 8.8.8.8; };
    version         "for this info please contact hostmaster@ctrld.me";
};

zone "." IN {
    type hint;
    file "named.ca";
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
    allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "named.local";
    allow-update { none; };
};

zone "home.ctrld.me" IN {
    type master;
    file "home.ctrld.me.fwd";
};

zone "98.168.192.in-addr.arpa" {
    type master;
    file "192.168.98.rev";
    allow-update { none; };
};

logging {
        category default {
                _default_log;
        };

        channel _default_log  {
                file "/Library/Logs/named.log";
                severity info;
                print-time yes;
        };
};
</pre>
<h3>Конфигурируем прямую зону</h3>
<pre>
# cd /var/named/
# vim home.ctrld.me.fwd
</pre>
<p>Зона выглядит так:</p>
<pre>
$TTL    3600
@               IN      SOA home.ctrld.me.  hostmaster.home.ctrld.me.  (
                            2009121801      ; Serial
                            3600            ; Refresh
                            900             ; Retry
                            3600000         ; Expire
                            3600 )          ; Minimum
@               IN      NS  patos.home.ctrld.me.
$ORIGIN home.ctrld.me.
aves            IN      A   192.168.98.1
coche           IN      A   192.168.98.2
cubagua         IN      A   192.168.98.3
patos           IN      A   192.168.98.10
toas            IN      A   192.168.98.11
zapara          IN      A   192.168.98.12
</pre>
<p>NS &#8211; адрес DNS-сервера. A &#8211; соответствие имя-адрес. Важное поле &#8211; Serial, при модификации зоны нужно его увеличивать. $ORIGIN не нужен, он берётся из конфигурации зоны, но я так привык.</p>
<h3>Конфигурируем обратную зону</h3>
<pre>
# vim 192.168.98.rev
</pre>
<p>Зона:</p>
<pre>
$TTL    3600
@               IN      SOA home.ctrld.me.  hostmaster.home.ctrld.me.  (
                            2009121801      ; Serial
                            3600            ; Refresh
                            900             ; Retry
                            3600000         ; Expire
                            3600 )          ; Minimum
@               IN      NS  patos.home.ctrld.me.
$ORIGIN 98.168.192.in-addr.arpa.
1       IN      PTR aves.home.ctrld.me.
2       IN      PTR coche.home.ctrld.me.
3       IN      PTR cubagua.home.ctrld.me.
10      IN      PTR patos.home.ctrld.me.
11      IN      PTR toas.home.ctrld.me.
12      IN      PTR zapara.home.ctrld.me.
</pre>
<p>98.168.192.in-addr.arpa = 192.168.98 в обратном порядке плюс суффикс, говорящий о том, что это обратная зона.</p>
<h3>Применение изменений</h3>
<p>Поработали мы хорошо, перечитываем конфигурацию:</p>
<pre>
# rndc reload
server reload successful
</pre>
<p>Проверяем логи (successful не всегда обозначает отсутствие ошибок):</p>
<pre>
# tail -20 /Library/Logs/named.log
18-Dec-2009 21:29:42.366 received control channel command 'reload'
18-Dec-2009 21:29:42.366 loading configuration from '/private/etc/named.conf'
18-Dec-2009 21:29:42.367 using default UDP/IPv4 port range: [49152, 65535]
18-Dec-2009 21:29:42.367 using default UDP/IPv6 port range: [49152, 65535]
18-Dec-2009 21:29:42.369 reloading configuration succeeded
18-Dec-2009 21:29:42.369 reloading zones succeeded
</pre>
<p>Всё в порядке.</p>
<p>Если же где-то была ошибка, то всё будет в логах. Например, имитируем ошибку в имени файла зоны:</p>
<pre>
# mv 192.168.98.rev 192.168.98.rev_err
# > /Library/Logs/named.log
# rndc reload
# tail -20 /Library/Logs/named.log
</pre>
<p>Получили ошибку в логе:</p>
<pre>
18-Dec-2009 21:31:27.001 zone 98.168.192.in-addr.arpa/IN: loading from master file 192.168.98.rev failed: file not found
</pre>
<p>Восстанавливаем файл зоны, теперь всё в норме:</p>
<pre>
# mv 192.168.98.rev_err 192.168.98.rev
# rndc reload
# tail /Library/Logs/named.log
18-Dec-2009 21:32:39.168 reloading configuration succeeded
18-Dec-2009 21:32:39.168 reloading zones succeeded
</pre>
<h3>Проверка работы named</h3>
<p>Для проверки используем dig, запрашиваем информацию по корневой зоне (по 9.6.0-APPLE-P2 и @192.168.98.10 видим, что используется именно наш DNS):</p>
<pre>
$ dig @192.168.98.10

; DiG 9.6.0-APPLE-P2 @192.168.98.10
; (1 server found)
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 12368
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			125343	IN	NS	K.ROOT-SERVERS.NET.
.			125343	IN	NS	M.ROOT-SERVERS.NET.
.			125343	IN	NS	C.ROOT-SERVERS.NET.
.			125343	IN	NS	H.ROOT-SERVERS.NET.
.			125343	IN	NS	B.ROOT-SERVERS.NET.
.			125343	IN	NS	E.ROOT-SERVERS.NET.
.			125343	IN	NS	J.ROOT-SERVERS.NET.
.			125343	IN	NS	L.ROOT-SERVERS.NET.
.			125343	IN	NS	F.ROOT-SERVERS.NET.
.			125343	IN	NS	D.ROOT-SERVERS.NET.
.			125343	IN	NS	I.ROOT-SERVERS.NET.
.			125343	IN	NS	A.ROOT-SERVERS.NET.
.			125343	IN	NS	G.ROOT-SERVERS.NET.

;; Query time: 9 msec
;; SERVER: 192.168.98.10#53(192.168.98.10)
;; WHEN: Fri Dec 18 21:34:22 2009
;; MSG SIZE  rcvd: 228
</pre>
<p>Смотрим нашу зону home.ctrld.me:</p>
<pre>
$ dig @192.168.98.10 home.ctrld.me soa
home.ctrld.me.		3600	IN	SOA	home.ctrld.me. hostmaster.home.ctrld.me. 2009121801 3600 900 3600000 3600
home.ctrld.me.		3600	IN	NS	patos.home.ctrld.me.
patos.home.ctrld.me.	3600	IN	A	192.168.98.10
</pre>
<p>Смотрим одну из записей:</p>
<pre>
# dig @192.168.98.10 zapara.home.ctrld.me any
zapara.home.ctrld.me.	3600	IN	A	192.168.98.12
</pre>
<p>Проверяем реверсную зону:</p>
<pre>
$ dig @192.168.98.10 -x 192.168.98.2
2.98.168.192.in-addr.arpa. 3600	IN	PTR	coche.home.ctrld.me.
</pre>
<p>Проверяем, что форвардер тоже работает, запрашивая внешний домен:</p>
<pre>
$ dig @192.168.98.10 cnn.com
cnn.com.		300	IN	A	157.166.255.19
cnn.com.		300	IN	A	157.166.224.25
cnn.com.		300	IN	A	157.166.224.26
cnn.com.		300	IN	A	157.166.226.25
cnn.com.		300	IN	A	157.166.226.26
cnn.com.		300	IN	A	157.166.255.18
</pre>
<p>Ещё вспоминаем о версии named и получаем именно то, что сконфигурировали в /etc/named.conf:</p>
<pre>
$ dig @192.168.98.10 version.bind chaos txt
version.bind.		0	CH	TXT	"for this info please contact hostmaster@ctrld.me"
</pre>
<p>Всё работает.</p>
<h3>Настраиваем использование нашего DNS</h3>
<p>Для того, чтобы воспользоваться нашим свеженастроенным DNS, конфигурируем его в System Preferences/Network на активном сетевом соединении (у меня это Airport):</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/02_dns_bind-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/02_dns_bind-thumb.png" height="432" width="499" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Нажимаем кнопку Advanced и в закладке DNS устанавливаем 192.168.98.10:</p>
<p style="clear: both"><noindex><a rel="nofollow" href="http://images.theapplegeek.ru/wp-content/uploads/2009/12/03_dns_bind-full.png"  class="image-link"><img class="linked-to-original" src="http://images.theapplegeek.ru/wp-content/uploads/2009/12/03_dns_bind-thumb.png" height="386" width="500" style=" text-align: center; display: block; margin: 0 auto 10px;" /></a></noindex></p>
<p>Ok, Apply. Убеждаемся, что автоматически установлен именно нужный DNS:</p>
<pre>
$ cat /etc/resolv.conf
nameserver 192.168.98.10
</pre>
<p>Dig берёт информацию из /etc/resolv.conf, проверяем:</p>
<pre>
$ dig toas.home.ctrld.me
toas.home.ctrld.me.	3600	IN	A	192.168.98.11
</pre>
<p>Всё. DNS настроен. Идём пить чай и радоваться тому, что <b>каждый следующий способ на порядок проще предыдущего</b>.</p>
<p>To be continued&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/2501/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Очистка кеша DNS</title>
		<link>http://theapplegeek.ru/archives/1645</link>
		<comments>http://theapplegeek.ru/archives/1645#comments</comments>
		<pubDate>Tue, 03 Nov 2009 15:52:30 +0000</pubDate>
		<dc:creator>ctrld</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://theapplegeek.ru/archives/1645</guid>
		<description><![CDATA[Запросы DNS кешируются на клиентском компьютере. И если записи поменялись на сервере, то на клиенте они поменяются только когда пройдёт Expire Time для записи. Выход &#8211; ручная очистка командой dscacheutil: dscacheutil -flushcache Эта команда появилась в Mac OS X 10.5, ранее же использовалась команда &#8220;lookupd -flushcache&#8221;.]]></description>
			<content:encoded><![CDATA[<p style="clear: both">Запросы DNS кешируются на клиентском компьютере. И если записи поменялись на сервере, то на клиенте они поменяются только когда пройдёт Expire Time для записи. Выход &#8211; ручная очистка командой <noindex><a rel="nofollow" href="http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/dscacheutil.1.html" >dscacheutil</a></noindex>:</p>
<pre>
dscacheutil -flushcache
</pre>
<p>Эта команда появилась в Mac OS X 10.5, ранее же использовалась команда &#8220;lookupd -flushcache&#8221;.</p>
<p><br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://theapplegeek.ru/archives/1645/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

