使用Bind9配置DNS服务器的教程

发布时间:2021-01-21编辑:脚本学堂
Bind9是一个强大的Linux下开放源代码的DNS服务器软件,完整的介绍写一本书都不够。假如你想在几分钟之内搭建一个简单的DNS服务器,那么这篇文章很适合你。

    Bind9是一个强大的linux下开放源代码的DNS服务器软件,完整的介绍写一本书都不够。
    假如你想在几分钟之内搭建一个简单的DNS服务器,那么这篇文章很适合你。这篇文章来自我几个小时的摸索。

为什么要搭建一个简单的DNS服务器?
(1)当外网DNS崩溃,比如暴风门发生的那种情况,可以使用我们自己的DNS应急
(2)为内网网站提供内线的IP地址解析,或者实现双线解析
(3)当你的ISP限制了二级域名和高级管理特性,你需要自己搭建DNS服务器来满足自己的需要
(4)避免DNS劫持
(5)和别的解决方案集成

为什么使用Bind9?
(1)Bind9是一个用途非常广泛的DNS服务器,配置文件成了事实上的标准
(2)Bind9开放源代码,并且在Linux、UNIX和Windows下都能运行
(3)Bind9的最低系统配置相当低,假如配置一个小DNS服务器的话,只需要486等级的计算机,我们可以使用一个很小很便宜的电脑来作为服务器

一个简单的DNS服务器配置整过程。
环境:Windows Server 2003。

(1)到http://ftp.isc.org/isc/bind9/下载Bind9,其中.zip适合Windows平台,建议下载稳定版本。

(2)安装:解压缩,运行BINDInstall.exe,默认会安装到C:WINDOWSsystem32dns,它会注册一个服务,注重,暂时不要启动,我们需要简单配置下。安装的时候会创建一个Windows账户来运行服务,需要输入一个密码。

(3)打开控制台,输入:
 

复制代码 代码如下:
CD C:WINDOWSsystem32dnsbin
rndc-confgen.exe -a

这一步会生成一个安全key。

(4)找到C:WINDOWSsystem32dnsetc文件夹
编辑 named.conf
 

复制代码 代码如下:
include "c:windowssystem32dnsetcrndc.key";
zone "." {
type hint;
file "c:windowssystem32dnsetcnamed.root";
};
zone "caozhongyan.com" {
type master;
file "c:windowssystem32dnsetcnamed.caozhongyan.com.db";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "c:windowssystem32dnsetcnamed.192.168.0";
};

添加3个zone,分别是根区域,用来解析互联网网站的,2个zone,假设我们需要解析caozhongyan.com和对应的反向解析。
很显然,我们还需要3个文件:
- c:windowssystem32dnsetcnamed.root
这个文件可以从http://www.internic.net/zones/named.root下载。
- c:windowssystem32dnsetcnamed.caozhongyan.com.db
这个是我们域名的解析,新建一个这样的文件,输入
 

复制代码 代码如下:
$TTL 600
@ IN SOA ns1.caozhongyan.com. admin.ns1 ( 2009112801 28800 14400 720000 86400 )
@ IN NS ns1.caozhongyan.com.
ns1 IN A 192.168.0.100
@ IN MX 10 ns1
@ IN A 192.168.0.100
WWW IN CNAME @
blog IN CNAME @
sns IN CNAME @
ucc IN CNAME @
bbs IN CNAME @

其中192.168.0.100是我们服务器的地址,这里Web服务器和DNS服务器假设是一台主机。其中CNAME是交换,可以指向另一个名称,A记录可以设定指向的IP,MX是邮件交换记录。@符号代表本域名。
这个配置的含义是,让 caozhongyan.com www.caozhongyan.com blog.caozhongyan.com ... 都指向 192.168.0.100。
- c:windowssystem32dnsetcnamed.192.168.0
新建一个文件,输入
 

复制代码 代码如下:
$TTL 600
@ IN SOA ns1.caozhongyan.com. admin.ns1 ( 2009112801 28800 14400 720000 86400 )
@ IN NS localhost.
1 IN PTR localhost.

这样就完成了反向解析。
假如是NTFS分区,还需要检查这个目录是否给安装时候设定的账户读写的权限。
这样etc目录里面应该我们应该创建/修改了4个文件。所有的配置已经OK。

(5)在Windows服务管理器里面启动ISC BIND服务。
找一台客户机电脑,ping www.caozhongyan.com
Pinging www.caozhongyan.com [58.212.103.23] with 32 bytes of data:
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Ping statistics for 58.212.103.23:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
怎么不对?
对了,应该设置下客户端的DNS服务器:在网络连接里面找到本地连接属性,双击TCP/IP,输入DNS服务器地址:192.168.0.100。
确定。
再ping一次:
Pinging www.caozhongyan.com [192.168.0.100] with 32 bytes of data:
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Reply from 58.212.103.23: bytes=32 time<1ms TTL=255
Ping statistics for 192.168.0.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

注意:由于本机缓存,有可能需要重新启动电脑才能看到DNS生效。
服务器段配置修改以后,记得重启服务。