Skip to content

Windows下安装BIND作为DNS缓存服务器

2010 四月 10
by 荒野无灯

以前写过一篇文章,也是关于windows下面的dns 缓存服务器的,叫《Acrylic:让你在win一分钟建立DNS缓存服务器》 , Acrylic的确够小巧的,这次要介绍的是大名鼎鼎的bind啦。

由于我以前在LINUX下架设过bind9,因此这次在WINDOW下的配置也基本上按照LINUX下的来。

说明:我的window 7安装在E盘。 安装bind主要目的是方便自己和寝室的兄弟们上网,加速解析网站域名的速度。
本文所讲匀在windows 7 专业版下测试通过。

1、下载BIND
http://www.isc.org/downloads/current

目前最新版本为:BIND9.7.0-P1.zip

本文相关文件下载

2、安装
下载回来是zip的压缩包,解压以后直接双击BINDInstall.exe安装,默认安装路径是C:\WINDOWS\system32\dns。 bind在win32下将自己注册成服务,服务名叫ISC BIND,程序名为named.exe,启动服务需要用一专有帐户,默认名称为named,密码自己弄一个吧。
这里我为了方便操作,就把它安装在 E:\dns 了。点击install以后,程序便安装在 E:\dns下,如果这里通过命令net start named 或者运行services.msc打开服务管理启动named服务,会报代号1067的错:应用程序意外终止。必须先经过配置才行,如果配置后还报这个错误,很可能是配置文件有错误。比如我这次由于一个include 指令没有加分号,也会报这个错误。

3、配置
先运行命令行cmd,cd 至 C:\dns\bin下,运行

1
rndc-confgen.exe -a

,会自动在C:\dns\etc\下生成rndc.key。此rndc.key是在是bind 9.x版本的新功能,是有关DNS更新以及更新时加密处理的,跟我们个人用户无太大关系,不过基于兼容性,还是照做。接下来,在C:\dns\etc\下建立named.conf,即bind的配置文件。
named.conf内容如下:

1
2
3
include "e:/dns/etc/named.conf.options";
include "e:/dns/etc/named.conf.local";
include "e:/dns/etc/named.conf.default-zones";
1
mkdir e:/tmp/bind

注意,这里我指定了三个DNS服务器,前两个是铁通的,第三个是电信的,这里你要根据你的实际情况修改成自己的),
e:/dns/etc/named.conf.options内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
options {
    directory "e:/tmp/bind";

    forwarders {
    61.234.254.6;
    61.234.254.5;
    59.51.78.211;
    };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

named.conf.local包含了rndc.key,另外还有我自己配置的一些DNS解析,如果只是要作缓存服务器可以不要那两个zone(这里我定义了两个zone,一个是正解区域,另一个是反解区域),
named.conf.local内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//
// Do any local configuration here
//

include "e:/dns/etc/rndc.key" ;

zone "test.domain" {
    type master;
    file "e:/dns/etc/db.test.domain";
};

zone "30.172.in-addr.arpa"  {
    type master;
    file "e:/dns/etc/db.172.30";
};

named.conf.default-zones 定义了根节点的文件和其它一些保留地址的文件,named.root里面定义了全球的根DNS服务器,下载地址是http://www.internic.net/zones/named.root,需要定期更新。可以从 http://www.internic.net/或者 ftp.internic.net下载named.root文件,并重命名为db.root放在 e:\dns\ect\下面。

named.conf.default-zones内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "e:/dns/etc/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "e:/dns/etc/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "e:/dns/etc/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "e:/dns/etc/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "e:/dns/etc/db.255";
};

4、启动ISC BIND服务
在cmd 中:

1
net start named

或者直接运行 services.msc 打开”服务“,启动ISC BIND服务。
如果bind安装目录所在的磁盘是NTFS格式的且启动服务时还是报1067的错的话,还要记得修改权限,使得启动bind的named用户对e:\dns\etc这个目录有完全控制权。

5、测试

把网络上的任意一台机器的DNS设置到安装了BIND的机器IP。Ping一下www.google.com 如果通了,OK,well done!
或者直接在装BIND的机器上,

1
2
3
cd e:\dns\bin
dig google.com
#或者nslookup google.com

相关文件下载:


有图为证:

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:,欢迎点击这里捐赠以支持荒野无灯转播到腾讯微博 转播到腾讯微博

作者:荒野无灯
出处:Hacklog【Hacklog】

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自Hacklog【荒野无灯weblog】

本文链接: http://ihacklog.com/?p=3619

12 Responses Post a comment
  1. 五月 16, 2012

    博主好,有没有直接配置bind,而不是使用转发的教程呢

  2. wqxcx permalink
    十一月 18, 2010

    还有 这个缓存越来越多 会不会占用太多的资源 如何限制大小或者清空?

  3. wqxcx permalink
    十一月 18, 2010

    弱弱问一句 如果test.com 在前面定义的三个DNS服务器中有解析 那么test.com最后的解析结果究竟是来自那三个DNS服务器呢 还是来自自己定义的zone 也就是优先级的问题

    • 十一月 20, 2010

      如果上网的机子把主DN设置为此服务器,那么查到的肯定是此服务器的记录,也就是说,本服务器的优先级是大一些的。

      • wqxcx permalink
        十一月 20, 2010

        那么如何将DNS的缓存保存成文件写入硬盘而不是只在内存中呢 我搜索了很长时间没有结果
        虽然每条缓存都有TTL 但是因为我不是服务器 不是24小时连续开机 经常要重启 关机 每次重启 内存中的缓存就没了 需要再向上级DNS提交查询 无形中浪费了一部分时间

  4. 九月 29, 2010

    这么好的文章 收藏了!

  5. 四月 13, 2010

    这东西原理是什么?
    为什么可以加速域名解析?
    难道域名解析到你自己电脑上了?
    不懂

  6. 四月 11, 2010

    有点难度,先留个记号,以后回来慢慢吃透,呵呵

  7. 四月 11, 2010

    这个…太专业了 不懂

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <q cite=""> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS