1、下载BIND
代码语言:javascript复制http://ftp.isc.org/isc/bind9/9.4.3/BIND9.4.3.zip
Jetbrains全家桶1年46,售后保障稳定
2、安装 下载回来是zip的压缩包,解压以后直接双击BINDInstall.exe安装,默认安装路径是C:WINDOWSsystem32dns。bind在win32下将自己注册成服务,服务名叫ISC BIND,程序名为named.exe,启动服务需要用一专有帐户,默认名称为named,密码由安装者自定义。点击install以后,程序便安装在C:WINDOWSsystem32dns下,这时还不能启动bind服务,会报代号1067的错,得先经过配置。
安装完毕后进入C:WINDOWSsystem32dns (默认安装路径) 给dns文件夹更改权限(NTFS分区必备操作)->属性->安全),named用户需对此文件夹有读写权限。
3、配置 先运行命令行cmd,cd 至 C:WINDOWSsystem32dnsbin下,运行rndc-confgen.exe -a,会自动在C:WINDOWSsystem32dnsetc下生成rndc.key。此rndc.key是在是bind 9.x版本的新功能,是有关DNS更新以及更新时加密处理的,跟我们个人用户无太大关系,不过基于兼容性,还是照做。
以命令行模式进入C:WINDOWSsystem32dnsbin,
代码语言:javascript复制 a、执行 rndc-confgen -a 命令。此命令将在dnsetc文件夹下生成 rndc.key 文件
b、执行rndc-confgen > rndc.conf 命令。此命令将在dnsbin目录下生成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文件(根服务器地址文件)
代码语言:javascript复制 named.root是一个非常重要的文件,包含了Internet根服务器的名字和IP地址。当Bind接到客户端的查询请求时,如果本地不能解释,也不能在Cache中找到相应的数据,就会通过根服务器进行逐级查询。
生成方式:
a、通过ftp://ftp.rs.internic.net/domain/下载
b、通过安装程序里的dig工具生成
以命令行模式进入C:WINDOWSsystem32dnsbin,执行dig > ../etc/named.root
将在etc文件夹在生成named.root文件(前提条件:本机网络畅通,DNS服务器工作正常,建议DNS为ISP的用户采用此方式
接下来, windows下安装完bind后默认etc文件夹下没有任何文件,所以named.conf文件需要自己创建。新建文本文档命名为named.conf,用记事本打开编写,即bind的配置文件,文件内容如下:
include “c:windowssystem32dnsetcrndc.key”; zone “.” { type hint; file “c:windowssystem32dnsetcnamed.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:windowssystem32dnsetc这个目录的完全控制权,不然,还是会报1067的错(如果bind不作为服务启动,直接在cmd里启动,权限不必放行,因为是直接用当前用户的权限嘛)
【配置文件】 新建named.conf主配置文件,Linux系统安装好bind,会有一个named.conf模块,而windows系统下,并没有这个文件,所以不熟悉bind的朋友,建议参考linux下的格式进行编写。 进入etc目录,用记事本(notepad) 建 named.conf 内容如下:
代码语言:javascript复制acl "trust-lan" { 127.0.0.1/8; 192.168.0.0/16; };
#全局参数设置,对整个bind有效
options {
directory "C:WINDOWSsystem32dnsetc";
#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:WINDOWSsystem32dnsetcrndc.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:WINDOWSsystem32dnslogdns_warnings.txt" versions 3 size 1240k;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns
{ file "C:WINDOWSsystem32dnslogdns_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:WINDOWSsystem32dnsetcmastercnc.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:WINDOWSsystem32dnsetcmastertelecom.def";
};
建立联通IP地址ACL策略文件,在WINDOWSsystem32dnsetc建立cnc.conf文件,cnc.conf内容如下:
代码语言:javascript复制# 2012-03-19 11:50 by liuguohua.com
#
acl "CNC" {
192.168.134.0/24;
192.168.145.0/24;
};
自定义域名文件,在C:WINDOWSsystem32dnsetc下新建master文件夹;在C:WINDOWSsystem32dnsetcmaster下新建四个文件cnc.def,telecom.def, cnc_qq.com.txt,tel_qq.com.txt。
cnc.def:
代码语言:javascript复制zone "qq.com" {
type master;
file "C:WINDOWSsystem32dnsetcmastercnc_qq.com.txt";
};
telecom.def:
代码语言:javascript复制zone "qq.com" {
type master;
file "C:WINDOWSsystem32dnsetcmastertel_qq.com.txt";
};
cnc_qq.com.txt:
代码语言:javascript复制$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:
代码语言:javascript复制$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:WINDOWSsystem32dns下新建log文件夹 在C:WINDOWSsystem32dnslog下新建两个文件dns_logs.txt,dns_warnings.txt 4、启动 从“计算机管理–》服务”启动ISC BIND服务。
5、测试 把网络上的任意一台机器的DNS设置到安装了BIND的机器IP。Ping一下www.baidu.com。如果通了,恭喜你,做对了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/227251.html原文链接:https://javaforall.cn