Windows下安装BIND9

1、下载BIND

http://ftp.isc.org/isc/bind9/9.4.3/BIND9.4.3.zip

2、安装
下载回来是zip的压缩包,解压以后直接双击BINDInstall.exe安装,默认安装路径是C:\WINDOWS\system32\dns。bind在win32下将自己注册成服务,服务名叫ISC BIND,程序名为named.exe,启动服务需要用一专有帐户,默认名称为named,密码由安装者自定义。点击install以后,程序便安装在C:\WINDOWS\system32\dns下,这时还不能启动bind服务,会报代号1067的错,得先经过配置。
在这里插入图片描述
安装完毕后进入C:\WINDOWS\system32\dns\ (默认安装路径) 给dns文件夹更改权限(NTFS分区必备操作)->属性->安全),named用户需对此文件夹有读写权限。
在这里插入图片描述

3、配置
先运行命令行cmd,cd 至 C:\WINDOWS\system32\dns\bin下,运行rndc-confgen.exe -a,会自动在C:\WINDOWS\system32\dns\etc\下生成rndc.key。此rndc.key是在是bind 9.x版本的新功能,是有关DNS更新以及更新时加密处理的,跟我们个人用户无太大关系,不过基于兼容性,还是照做。

以命令行模式进入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

生成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的用户采用此方式

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

include “c:\windows\system32\dns\etc\rndc.key”;
zone “.” {
type hint;
file “c:\windows\system32\dns\etc\named.root”;
};

include一行主要是将rndc.key包含进去,zone "."一行是设置根节点,我们做自己个人的DNS服务器,只要设置这个足够,其他的各个参数可以自己上网去搜索了解,够用就好接下来从http://www.internic.net/下载named.root文件,里面定义了全球的根DNS服务器,下载地址是http://www.internic.net/zones/named.root,需要定期更新,不过用dig工具也可以实时查得根DNS服务器的地址,只不过win32下没有直接将输出结果存为named.root文件的功能,所以还是下载比较方便。named.root文件也是放在etc目录下。如果C盘是NTFS格式的话,还要记得定义启动bind的named用户c:\windows\system32\dns\etc这个目录的完全控制权,不然,还是会报1067的错(如果bind不作为服务启动,直接在cmd里启动,权限不必放行,因为是直接用当前用户的权限嘛)

【配置文件】
新建named.conf主配置文件,Linux系统安装好bind,会有一个named.conf模块,而windows系统下,并没有这个文件,所以不熟悉bind的朋友,建议参考linux下的格式进行编写。
进入etc目录,用记事本(notepad) 建 named.conf 内容如下:

acl "trust-lan" { 127.0.0.1/8; 192.168.0.0/16; };
#全局参数设置,对整个bind有效
options {
directory "C:\WINDOWS\system32\dns\etc";
#recursion yes;
version "0.0.0"; #屏蔽版本
allow-transfer { “trust-lan”; }; #允许trust-lan里的IP从主DNS上进行区域传输
allow-notify { “trust-lan”; }; #从服务器接收主服务器的更新通知
allow-query { “trust-lan”; }; #允许普通查询
allow-recursion{ “trust-lan” }; #打开BIND递归查询功能
auth-nxdomain no; #默认值为0,若为yes,则AA位将一直设置为NXDOMAIN响应
forwarders { #把DNS请求转发至上一级DNS商
202.96.134.133;
202.103.96.112;
};
};
#这一段KEY内容来自rndc.conf,加上这段,好用rndc控制dns进程
include "C:\WINDOWS\system32\dns\etc\rndc.key";
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
logging {
channel warning #下面内容会介绍新建dns_warnings.txt与dns_logs.txt
{ file "C:\WINDOWS\system32\dns\log\dns_warnings.txt" versions 3 size 1240k;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns
{ file "C:\WINDOWS\system32\dns\log\dns_logs.txt" versions 3 size 1240k;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { warning; };
category queries { general_dns; };
};
include "cnc.conf"; #将网通的IP地址范围数据,包含进来
view "view_cnc" { #判断如果是网通的地址范围,则会执行此处(读取cnc.def文件)
match-clients { CNC; };
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
include "C:\WINDOWS\system32\dns\etc\master\cnc.def"; #自定义域名,内容在cnc.def
};
view "view_any" { # 判断是非网通的ip地址范围,则会执行此处(读取telecom.def文件)
match-clients { any; };
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
include "C:\WINDOWS\system32\dns\etc\master\telecom.def";
};

建立联通IP地址ACL策略文件,在WINDOWS\system32\dns\etc\建立cnc.conf文件,cnc.conf内容如下:

# 2012-03-19 11:50 by liuguohua.com
#
acl "CNC" {
192.168.134.0/24;
192.168.145.0/24;
};

自定义域名文件,在C:\WINDOWS\system32\dns\etc下新建master文件夹;在C:\WINDOWS\system32\dns\etc\master下新建四个文件cnc.def,telecom.def,
cnc_qq.com.txt,tel_qq.com.txt。

cnc.def:

zone "qq.com" {
type master;
file "C:\WINDOWS\system32\dns\etc\master\cnc_qq.com.txt";
};

telecom.def:

zone "qq.com" {
type master;
file "C:\WINDOWS\system32\dns\etc\master\tel_qq.com.txt";
};

cnc_qq.com.txt:

$TTL 3600
@ IN SOA ns1.qq.com. root.qq.com.(
2012031620 ;
3600 ;
900 ;
68400 ;
15 );

@ IN NS ns1.qq.com.
ns1 IN A 192.168.145.228
www IN A 112.90.180.1

tel_qq.com.txt:

$TTL 3600
@ IN SOA ns1.qq.com. root.qq.com.(
2012031602 ;
3600 ;
900 ;
68400 ;
15 );

@ IN NS ns1.qq.com.
ns1 IN A 192.168.145.228
www IN A 119.145.254.1

建立日志文件:

在C:\WINDOWS\system32\dns下新建log文件夹
在C:\WINDOWS\system32\dns\log下新建两个文件dns_logs.txt,dns_warnings.txt
4、启动
从“计算机管理–》服务”启动ISC BIND服务。

5、测试
把网络上的任意一台机器的DNS设置到安装了BIND的机器IP。Ping一下www.baidu.com。如果通了,恭喜你,做对了。

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页