年后单位网络升级,部分网站需要做智能解析,windows自带DNS无法满足需求,决定采用业界评价最高的BIND9做DNS智能解析。以前没有接触过bind,不过对它可也不陌生,毕竟大名鼎鼎嘛!上网搜了2篇文章        

一篇是讲基础的http://blogold.chinaunix.net/u/9951/showart_280949.html

另一篇是讲智能解析的http://cqfish.blog.51cto.com/622299/138691

一、BIND9的安装

1、下载最新的BIND

       BIND官方网站:   http://www.isc.org    最新产品bind9.8(2011.1.21) http://www.isc.org/software/bind

2、解压下载的 BIND9.8.0b1.zip后,进入解压目录点击  BINDInstall.exe  开始安装

 

BIND9安装图片

 

3、安装完毕后进入C:\WINDOWS\system32\dns\     (默认安装路径)                                                               

     给dns文件夹更改权限(NTFS分区必备操作)->属性->安全)

BIND9安装图片

 

     named用户需对此文件夹有读写权限。

至此,BIND9安装结束

 二、BIND9的配置

1、生成rndc.key文件(参照dns\bin\readme1st.txt的说明)

      以命令行模式进入C:\WINDOWS\system32\dns\bin,

               a、执行 rndc-confgen -a 命令。此命令将在\dns\etc文件夹下生成   rndc.key   文件   

               b、执行rndc-confgen > rndc.conf 命令。此命令将在\dns\bin目录下生成rndc.conf文件

       附:rndc是远程DNS服务器进程控制的英文简写,rndc的工作机制使用了/etc/rndc.key和/etc/rndc.conf两个配置文件,rndc.key文件为锁头,尽管它的名字为key; rndc.conf则是打开rndc.key锁头的对应钥匙;这两个文件可以使用rndc-confgen命令来生成,该命令采用的是对称加密算法;http://baike.baidu.com/view/1301778.htm

2、生成named.root文件(根服务器地址文件)

     named.root是一个非常重要的文件,包含了Internet根服务器的名字和IP地址。当Bind接到客户端的查询请求时,如果本地不能解释,也不能在Cache中找到相应的数据,就会通过根服务器进行逐级查询。

      生成方式:

      a、通过ftp://ftp.rs.internic.net/domain/下载

      b、通过安装程序里的dig工具生成

            以命令行模式进入C:\WINDOWS\system32\dns\bin,执行dig > ../etc/named.root

       将在etc文件夹在生成named.root文件(前提条件:本机网络畅通,DNS服务器工作正常,建议DNS为ISP的用户采用此方式)

3、编写named.conf文件(默认配置文件)

       windows下安装完bind后默认etc文件夹下没有任何文件,所以named.conf文件需要自己创建。新建文本文档命名为named.conf,用记事本打开编写。    

     常用的named.conf内容如下:

//注释方法说明

/*c语言注释方法:多行注释*/

// c++ 注释方法:单行注释

#shell注释方法:单行注释

# 引用rndc.key文件
include "C:\WINDOWS\system32\dns\etc\rndc.key";
options { 
directory "e:\dns\etc"; 
pid-file "named.pid";
version "unknown";
allow-query{any;};
}; 
zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "localhost.local";
        allow-update { none; };
};
zone "." {
        type hint;
        file "named.root";
        };
zone "test.cn" {                         
        type master;
        file "test.cn.zone";              };
zone "1.1.1.in-addr.arpa" {
        type master;
        file "test.cn.local";             };
zone "1.20.172.in-addr.arpa" {
        type master;
        file "172.20.1.local";            };
logging {
 channel query_log
 { file "e:\dns\log\dns_logs.txt" versions 3 size 100m;
 severity info;
 print-category yes;
 print-severity yes;
 print-time yes;
 };
 category queries {
        query_log;
    };
};