利用Bind9搭建XP下DNS服务器
前言:
在测试设备或者在安装调试设备的过程中,经常要用到DNS服务器以测试设备的DNS功能,对于具有windows server或者Linux服务器的环境来说,可以使用现成的DNS服务器,但对于个人测试需要,或者有经常需要改动DNS条目的环境中,搭建一个DNS服务器尤为必要,但一般的DNS服务都是集成在Server版本的系统中,而大家一般都使用个人版操作系统,所以这里给大家介绍一个能安装在WindowsXP或者Window7系统中的DNS服务——功能强大的开源软件:BIND。
环境准备:
1、系统:windows xp/windows 7/Windows server series
2、C++2005运行库:Microsoft Visual C++ 2005 Redistributable
下载地址:www.xdowns/soft/softdown.asp?softid=49151
3、Bind9主程序
4、etc配置目录xp提交更改
安装步骤
1、安装解压BIND9.5.2rc1.zip,双击,按照图示安装,帐户密码可随意。
2、解压etc  etc是BIND的配置文件,这里已经做了一些相关的配置,直接解压就可以用了。解压etc.zip到C:\WINDOWS\system32\dns\etc,覆盖掉etc目录
3、配置服务。
打开C:\WINDOWS\system32\dns\f,根据需要修改该行(注意空格和格式,错一不可,注释用双斜线//):
listen-on port 53 { 127.0.0.1; 192.168.0.0/16; 169.254.0.0/16; };
上面这行表示端口53在127.0.0.1上、本地网卡IP上属于192.168.0.0/255.255.0.0和169.254.0.0/255.255.0.0上监听
4、打开服务。开始—运行—services.msc,到ISC BIND,双击,并按如下设置(配置完就可以启动该服务了,确认下启动类型为自动:)
5、调整服务。右键我的电脑属性,进行设置,以便使用bind9里自带的dig等命令
在Path上双击,在开头增加如下注意全半角
%SystemRoot%\system32\dns\bin;
6、重启重新启动电脑,以便让设置生效
7、在Bind9中添加DNS记录在Bind中添加DNS记录比在windows server中稍微复杂一点,需要修改f(是bind的主要配置文件)文件和创建一个对应的域名数据,具体请按如下操作:
a) 用记事本打开C:\WINDOWS\system32\dns\etc下的f文件
图7.1  f文件内容
b) 在f中添加正向和反向域名解析的”zone”语句如下(以移动为例,创建中国移动的主域,其它域名以此类推):
c) 根据f中zone字段定义的file路径建立相应的域名数据,即在C:\WINDOWS\system32\dns\etc\named目录下建立一个名为chinamobile.db文件,该文件的数据内容如图
说明:TTL:设置查询超时时间
      @:代表本地域
      SOA:代表主要授权域名服务器
      CNAME:交换,可以指向另一个名称
      A:用来指向另一个IP,这是我们用得最多的参数。这里设置ims.sh.chinamobile指向192.168.0.2和192.168.0.3两个IP
d) 修改完成后保存文件,然后要重新启动BIND服务才能生效,如图
重启前
e) 重启BIND服务完成后我们再试试,切记设置网卡DNS服务器为BIND服务器的IP,不然不会使用自建的服务器解析
为什么还是解析不出来?!!!!
因为我们还没有刷新dns缓存,我们在每次更改完DNS记录后,需要使用ipconfig /flushdns强制刷新DNS缓存以使改动立即生效,如图
如上图所示:已经可以成功解析出来对应的一个IP地址,因为我这里没有192.168.0.3的主机,所以返回“请求超时”
f) 我们可以使用nslookup查询域名记录,如图
我们可以发现,每查询一次,返回的IP地址会在设定的记录中来回切换。
g) 我们可以利用BIND的查询工具查询更详细的域名信息,如图
8、结语当然BIND的高级配置教程用一本书也说不完,这里是最简单的配置,希望能跟大家一起研究,谢谢
附录
BIND相关的一些工具介绍
dig
dig查询DNS服务器。
host
host是一个DNS查工具。
rndc
rndc控制BIND的操作。
rndc-confgen
rndc-confgen生成f文件
named-checkconf
named-checkconf检查f文件的语法。
named-checkzone
named-checkzone检查区域文件的合法性。
lwresd
lwresd是为本地进程提供的只有缓存的名字服务器。
named
named是名字服务器守护进程。
dnssec-signzone
dnssec-signzone生成带有签名的区域文件。
dnssec-signkey
dnssec-signkey为区域文件密钥集生成签名。
dnssec-keygen
dnssec-keygen是DNS密钥生成器。
dnssec-makekeyset
dnssec-makekeyset利用dnssec-keygen生成的一个或多个密钥创建密钥集。
nsupdate
nsupdate用于提交DNS更新请求。
注意事项
1. f中的options中必须设置directory项,要不然bind会不定把临时文件和slave域的数据文件放到哪里去了。我一开始没有设置,结果发现它有时候放到c:\winnt\system32下,有时候放到c:\winnt\system32\dns下。估计如果没有设置的话它就放到它的工作目录下,而每次启动named服务,windows给它设置的工作目录又不一定(纯粹猜测)
2. named服务是以named用户帐号(该帐号由创建)来启动的。这个帐号的权限很小,所以,如果你的文件系统为ntfs格式,则一定要把保存配置文件的目录的权限放给这个帐号,否则……"permission denied"。当然可以设置以Administrator运行此服务。
3. 调试的时候可以到事件查看器中看启动提示信息。
4. named中配置路径的时候直接使用windows的格式即可,例如"c:\winnt\system32\dns",而不可写成"c:/winnt/system32/dns",也不可以写成"c:\\winnt\\system32\\dns"
5. 若出现1069错误,那是因为配置文件有错误,服务无法启动。请仔细检查配置文件
6. 如果客户端无法使用自己搭建的服务器解析,请检查是否开启了防火墙
接入网产品部:黄龙舟
                                                  2011年7月17日星期日

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。