<?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>idv2 &#187; dns</title>
	<atom:link href="http://tech.idv2.com/tag/dns/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.idv2.com</link>
	<description>关注Web开发技术，关注Internet。</description>
	<lastBuildDate>Tue, 27 Jul 2010 12:54:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Windows下架设自己的DNS服务器</title>
		<link>http://tech.idv2.com/2007/09/17/build-dns-server-on-win32/</link>
		<comments>http://tech.idv2.com/2007/09/17/build-dns-server-on-win32/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 15:30:36 +0000</pubDate>
		<dc:creator>charlee</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://tech.idv2.com/2007/09/17/build-dns-server-on-win32/</guid>
		<description><![CDATA[<!-- begin Pukiwiki generated code--><p>相信有很多人都想架设自己的DNS服务器。我们知道世界上最好用的DNS服务器软件就是BIND；
但是我辈使用Windows操作系统的人就无福享用这Unix下的顶级软件了。</p>
<p>或者可以用Windows Server自带的DNS服务器试试？
需要安装Server版的Windows不说，麻烦的配置和令人迷惑的图形界面就够受的了。</p>
<p>难道就没有一个解决方案了吗？</p>
<p>柳暗花明又一村，突然发现BIND居然有Windows版，这这这…………
赶快下载下来试一下，居然成功地配好了DNS。</p>
<!-- end Pukiwiki generated code--><span id="more-492"></span><!-- begin Pukiwiki generated code--><p>BIND的Windows版叫做<strong>ntbind</strong>，在<a href="http://ftp.isc.org/isc/bind8/contrib/">isc的ftp上</a>有下载。
我下载的是ntbind-9.2.5版。解压之后运行安装程序，默认安装到C:\Windows\system32\dns下。</p>
<p>装好之后就是配置工作了，不过在这之前建议先将 C:\Windows\system32\dns\bin 添加到 PATH 环境变量中，
这样配置时就可以用 dig工具来代替难用的 nslookup了。然后再将自己机器的DNS地址改为 127.0.0.1。
注意修改DNS时别忘记ISP提供的DNS地址，过一会儿要用到。</p>
<p>打开 C:\Windows\system32\dns\etc 目录，建立配置文件 named.conf，内容如下：</p>
<p><strong>named.conf</strong></p>
<pre>options {
    // zone文件的位置
    directory &quot;C:\Windows\system32\dns\etc&quot;;

    // 无法解析的域名就去查询ISP提供的DNS
    // 在下面的IP地址位置上填写ISP的DNS地址
    forwarders {
        1.2.3.4;
        1.2.3.5;
    };

    // 仅允许本机和子网内的机器查询
    allow-query {
        127.0.0.1;
        192.168.0.0/24;
    };
};

// 根DNS
zone &quot;.&quot; {
    type hint;
    file &quot;named.root&quot;;
};

// localhost
zone &quot;localhost&quot; IN {
    type master;
    file &quot;localhost.zone&quot;;
    allow-update { none; };
};

// localhost的反向解析
zone &quot;0.0.127.in-addr.arpa&quot; {
    type master;
    file &quot;localhost.rev&quot;;
};

// example.com
zone &quot;example.com&quot; IN {
    type master;
    file &quot;example.com.zone&quot;;
};

# End of named.conf
</pre>
<p>然后逐个建立named.conf中提到的几个文件，都放在 C:\Windows\system32\dns\etc 下。</p>
<p><strong>named.root</strong>：可以从ftp.rs.internic.net（匿名FTP）上下载。</p>
<p><strong>localhost.zone</strong>：针对localhost的正向解析。</p>
<pre>$TTL 1D

@       IN      SOA     localhost.      root.localhost. (
        2007091701          ; Serial
        30800               ; Refresh
        7200                ; Retry
        604800              ; Expire
        300 )               ; Minimum

        IN      NS      localhost.

localhost.        IN      A       127.0.0.1
</pre>
<p><strong>localhost.rev</strong>：针对127.0.0.1的反向解析。</p>
<pre>$TTL    1D

@       IN      SOA    localhost.    root.localhost. (
        2007091701          ; Serial
        30800               ; Refresh
        7200                ; Retry
        604800              ; Expire
        300 )               ; Minimum

            IN      NS      localhost.
1           IN      PTR     localhost.

</pre>
<p><strong>example.com.zone</strong>：是我们为自己的域的正向解析配置。</p>
<pre>example.com.    IN  SOA   ns1.example.com.  root.example.com. (
        2007091701         ; Serial
        30800              ; Refresh
        7200               ; Retry
        604800             ; Expire
        300 )              ; Minimum

        IN    NS        ns1.example.com.

*       IN    A         192.168.0.2    ; 将所有域名都泛解析到192.168.0.2上
</pre>
<p>OK，这几个配置文件写好之后，启动命令行，输入以下命令：</p>
<pre>C:\&gt; named -f -g -d 1</pre>
<p>即可在控制台启动named。如果不能启动请仔细观察输入结果并自行查找错误。</p>
<p>然后你可以用dig命令来测试返回结果是否正确。</p>
<pre>C:\&gt; dig www.google.com
C:\&gt; dig www.sina.com.cn</pre>
<p>你也可以打开浏览器，看看能否正常上网。另外因为我们配置了 example.com 的域，
所以 abc.example.com 应该能访问你架设在 192.168.0.2 上的 Web 服务器。</p>
<p>一切正常访问之后，我们还有一件事情要做：配置使用 rndc 命令来控制bind。
请执行以下命令：</p>
<pre>C:\&gt; cd C:\Windows\system32\dns\etc
C:\Windows\system32\dns\etc&gt; rndc-confgen &gt; rndc.conf</pre>
<p>即可在 C:\Windows\system32\dns\etc 下生成 rndc.conf 文件。编辑这个文件，
并将该文件的后半部分剪切到 named.conf 末尾，配置即完成。</p>
<p>重启 named，然后在命令行输入 rndc reload，应该能在named的控制台看到
重新加载配置文件的信息，说明配置成功。</p>
<p>最后一步，利用srvany将named安装为服务，即大功告成。(srvany需要安装Windows 2003 Server Resource Kit)</p>
<pre>instsrv ntbind C:\Windows\system32\dns\bin\named.exe</pre>
<p><strong>参考文献</strong></p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li><a href="http://www.howtoforge.com/windows_bind9">Replace ms dns with bind9</a></li>
<li><a href="http://www.linux.or.jp/JF/JFdocs/DNS-HOWTO-4.html">DNS HOWTO, 4.forwarding</a></li>
<li><a href="http://www.miloweb.net/bind.html">内部向けDNSサーバの構築</a></li>
<li><a href="http://www.atmarkit.co.jp/flinux/rensai/bind02/bind02.html">名前解決の仕組みとゾーンファイルの設定</a></li></ul>
<!-- end Pukiwiki generated code-->
]]></description>
			<content:encoded><![CDATA[<!-- begin Pukiwiki generated code--><p>相信有很多人都想架设自己的DNS服务器。我们知道世界上最好用的DNS服务器软件就是BIND；
但是我辈使用Windows操作系统的人就无福享用这Unix下的顶级软件了。</p>
<p>或者可以用Windows Server自带的DNS服务器试试？
需要安装Server版的Windows不说，麻烦的配置和令人迷惑的图形界面就够受的了。</p>
<p>难道就没有一个解决方案了吗？</p>
<p>柳暗花明又一村，突然发现BIND居然有Windows版，这这这…………
赶快下载下来试一下，居然成功地配好了DNS。</p>
<!-- end Pukiwiki generated code--><span id="more-492"></span><!-- begin Pukiwiki generated code--><p>BIND的Windows版叫做<strong>ntbind</strong>，在<a href="http://ftp.isc.org/isc/bind8/contrib/">isc的ftp上</a>有下载。
我下载的是ntbind-9.2.5版。解压之后运行安装程序，默认安装到C:\Windows\system32\dns下。</p>
<p>装好之后就是配置工作了，不过在这之前建议先将 C:\Windows\system32\dns\bin 添加到 PATH 环境变量中，
这样配置时就可以用 dig工具来代替难用的 nslookup了。然后再将自己机器的DNS地址改为 127.0.0.1。
注意修改DNS时别忘记ISP提供的DNS地址，过一会儿要用到。</p>
<p>打开 C:\Windows\system32\dns\etc 目录，建立配置文件 named.conf，内容如下：</p>
<p><strong>named.conf</strong></p>
<pre>options {
    // zone文件的位置
    directory &quot;C:\Windows\system32\dns\etc&quot;;

    // 无法解析的域名就去查询ISP提供的DNS
    // 在下面的IP地址位置上填写ISP的DNS地址
    forwarders {
        1.2.3.4;
        1.2.3.5;
    };

    // 仅允许本机和子网内的机器查询
    allow-query {
        127.0.0.1;
        192.168.0.0/24;
    };
};

// 根DNS
zone &quot;.&quot; {
    type hint;
    file &quot;named.root&quot;;
};

// localhost
zone &quot;localhost&quot; IN {
    type master;
    file &quot;localhost.zone&quot;;
    allow-update { none; };
};

// localhost的反向解析
zone &quot;0.0.127.in-addr.arpa&quot; {
    type master;
    file &quot;localhost.rev&quot;;
};

// example.com
zone &quot;example.com&quot; IN {
    type master;
    file &quot;example.com.zone&quot;;
};

# End of named.conf
</pre>
<p>然后逐个建立named.conf中提到的几个文件，都放在 C:\Windows\system32\dns\etc 下。</p>
<p><strong>named.root</strong>：可以从ftp.rs.internic.net（匿名FTP）上下载。</p>
<p><strong>localhost.zone</strong>：针对localhost的正向解析。</p>
<pre>$TTL 1D

@       IN      SOA     localhost.      root.localhost. (
        2007091701          ; Serial
        30800               ; Refresh
        7200                ; Retry
        604800              ; Expire
        300 )               ; Minimum

        IN      NS      localhost.

localhost.        IN      A       127.0.0.1
</pre>
<p><strong>localhost.rev</strong>：针对127.0.0.1的反向解析。</p>
<pre>$TTL    1D

@       IN      SOA    localhost.    root.localhost. (
        2007091701          ; Serial
        30800               ; Refresh
        7200                ; Retry
        604800              ; Expire
        300 )               ; Minimum

            IN      NS      localhost.
1           IN      PTR     localhost.

</pre>
<p><strong>example.com.zone</strong>：是我们为自己的域的正向解析配置。</p>
<pre>example.com.    IN  SOA   ns1.example.com.  root.example.com. (
        2007091701         ; Serial
        30800              ; Refresh
        7200               ; Retry
        604800             ; Expire
        300 )              ; Minimum

        IN    NS        ns1.example.com.

*       IN    A         192.168.0.2    ; 将所有域名都泛解析到192.168.0.2上
</pre>
<p>OK，这几个配置文件写好之后，启动命令行，输入以下命令：</p>
<pre>C:\&gt; named -f -g -d 1</pre>
<p>即可在控制台启动named。如果不能启动请仔细观察输入结果并自行查找错误。</p>
<p>然后你可以用dig命令来测试返回结果是否正确。</p>
<pre>C:\&gt; dig www.google.com
C:\&gt; dig www.sina.com.cn</pre>
<p>你也可以打开浏览器，看看能否正常上网。另外因为我们配置了 example.com 的域，
所以 abc.example.com 应该能访问你架设在 192.168.0.2 上的 Web 服务器。</p>
<p>一切正常访问之后，我们还有一件事情要做：配置使用 rndc 命令来控制bind。
请执行以下命令：</p>
<pre>C:\&gt; cd C:\Windows\system32\dns\etc
C:\Windows\system32\dns\etc&gt; rndc-confgen &gt; rndc.conf</pre>
<p>即可在 C:\Windows\system32\dns\etc 下生成 rndc.conf 文件。编辑这个文件，
并将该文件的后半部分剪切到 named.conf 末尾，配置即完成。</p>
<p>重启 named，然后在命令行输入 rndc reload，应该能在named的控制台看到
重新加载配置文件的信息，说明配置成功。</p>
<p>最后一步，利用srvany将named安装为服务，即大功告成。(srvany需要安装Windows 2003 Server Resource Kit)</p>
<pre>instsrv ntbind C:\Windows\system32\dns\bin\named.exe</pre>
<p><strong>参考文献</strong></p>
<ul class="list1" style="padding-left:16px;margin-left:16px"><li><a href="http://www.howtoforge.com/windows_bind9">Replace ms dns with bind9</a></li>
<li><a href="http://www.linux.or.jp/JF/JFdocs/DNS-HOWTO-4.html">DNS HOWTO, 4.forwarding</a></li>
<li><a href="http://www.miloweb.net/bind.html">内部向けDNSサーバの構築</a></li>
<li><a href="http://www.atmarkit.co.jp/flinux/rensai/bind02/bind02.html">名前解決の仕組みとゾーンファイルの設定</a></li></ul>
<!-- end Pukiwiki generated code-->
]]></content:encoded>
			<wfw:commentRss>http://tech.idv2.com/2007/09/17/build-dns-server-on-win32/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
