用BIND组建稳定高效的DNS服务器
祝金会 河北省电力公司
摘要:大家每天都在上互联网,但是大部分人不知道我们在地址栏中输入的网址是如何被定位到具体机器的。该文从介绍DNS概念入手,详细介绍了DNS原理及查找过程,最后以河北省电力公司域名(hbpc.com.cn)为例,详细介绍了利用BIND建立自己域名服务器的过程。
关键词:BIND、DNS、域名
>
1 DNS的概念
DNS是Domain Name System的缩写,即域名系统。在一个 TCP/IP 架构的网络 (例如 Internet) 环境中,DNS 是一个非常重要而且常用的系统。主要的功能就是将人们容易记忆的域名(Domain Name)与人不容易记忆的 IP 地址做转换。运行DNS软件的这台主机(服务器)就称作DNS服务器,即DNS SERVER。通常我们使用最多的是DNS的正向查找,即将 Domain Name (域名)转换成 IP Address(IP地址),然后再使用所查到的 IP Address 去访问目标服务器。将 IP地址转换成域名的功能称作反向查找,反向查找也会被经常用到。
2 DNS的体系结构
Internet上的DNS名字服务为一种分布式的体系,由分布在Internet各地的DNS服务器上的named 守护进程为整个Internet提供本域内计算机的名字解析服务。DNS域名结构为分级方式,例如www.hbpc.com.cn 中最后面的cn为优异域名,由后向前分别划分为不同级别的域。
Internet上的优异域名有两种,一种象cn这样的国别代码,另一种是如同edu、org、net、com 等分类代码。国别优异域下的次级域名同样可以按照地域或组织结构来分类划分。
那么要进行名字解析,就需要从域名的后面向前,一级级查找这个域名。因此Internet上就有一些DNS服务器为Internet的优异域提供解析任务,这些DNS服务器称为根DNS服务器。知道了根DNS服务器的地址,就能按级查找任何具有DNS域名的主机名字,BIND代码中(文件named.ca)就包括了这些根DNS服务器的地址。
名字服务使用zone的概念来表示一个域内的主机,然而zone与域也有所区别,zone只是域的一部分,而不是整个域。因为zone中不包括域下的子域。例如域名www.hbpc.com.cn的域为hbpc.com.cn ,这是一个独立的zone。这个域下可由子域组成,例如www.hdg.hbpc.com.cn就属于其子域hdg.hbpc.com.cn,子域也是一个独立的zone,并不包括在hbpc.com.cn 这个zone之内,作为域的hbpc.com.cn中就包括hdg.hbpc.com.cn子域。
前面在DNS概念中提到,除了从名字查找主机的IP地址这种正向的查找方式之外,另外还有从IP地址反查主机域名的解析方式。很多情况下网络中使用这种反向解析来确定主机的身份,因此也很重要。查找名字的反向解析是从前面的网络地址向后面的节点地址,逐级查找,因此zone是IP地址的前面部分。然而由于一个主机的域名可以任意设置,并不一定与IP地址相关,因此正向查找和反向查找是两个不同的查找过程,需要配置不同的zone。
3 使用DNS查询工具
用来进行DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。除了可以在命令行下直接进行基本的DNS查询之外,直接启动nslookup将进入一个交互模式,这里能查询各种类型的DNS 数据。
域名解析数据可以有各种不同的类型,有设置这个zone的参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置从IP地址反向解析DNS名字的PTR数据,有定义服务与这个zone的DNS服务器的NS数据,以及定义主机别名的CNAME数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,需要使用 set type命令设置相应的查询类型。
$ nslookup
Default Server: hbdlis.hbpc.com.cn
Address: 61.182.207.135
> set type=ns
> yahoo.com
Server: hbdlis.hbpc.com.cn
Address: 61.182.207.135
Non-authoritative answer:
yahoo.com nameserver = NS2.DCA.yahoo.com
yahoo.com nameserver = NS5.DCX.yahoo.com
yahoo.com nameserver = NS.EUROPE.yahoo.com
yahoo.com nameserver = NS1.yahoo.com
Authoritative answers can be found from:
NS2.DCA.yahoo.com internet address = 209.143.200.34
NS5.DCX.yahoo.com internet address = 216.32.74.10
NS.EUROPE.yahoo.com internet address = 195.67.49.25
NS1.yahoo.com internet address = 204.71.200.33
>
这个例子就使用nslookup来查询yahoo.com这个zone的名字服务器,需要将类型设置为ns来执行查询。用来帮助获得DNS数据的工具还有很多,如dig能迅速返回整个zone的名字解析数据,dnswalk可以用来帮助查询名字服务器的设置。这些工具都可以用来帮助查找DNS的设置问题。
4 安装DNS服务器
下面以最常用Redhat Linux 为例,介绍架设DNS服务器的详细过程
⑴ 从www.isc.org下载bind 域名服务器软件。我们这里用的版本是bind9.2.0。
⑵ mkdir /usr/src/bind92
⑶ 下载的文件叫bind-src.tar.gz,复制到/usr/local/src/bind92目录下。
⑷ cd /usr/local/src/bind92
⑸ tar zxvf bind-src.tar.gz
⑹ cd src
⑺ make stdlinks
⑻ make clean
⑼ make depend
⑽ make all
⑾ make install
⑿下面以域hbpc.com.cn为例,介绍各配置文件。
主要由以下文件:
/etc/named.conf 配置文件,设置一般的named 参数,指向该服务器使用的数据库的信息源
/var/named/named.ca 指向根域名服务器
/var/named/localhost.zone 用于将本地回送IP地址(127.0.0.1)转换为名字localhoat
/var/named/named.local 用于将名字localhost转换为本地回送地址127.0.0.1
/var/named/named.hosts 将主机名映射为IP地址的区域文件
/var/named/named.rev 将IP地址映射为主机名的区域文件
named.ca、localhost.zone、named.local、named.hosts、 named.rev
四个文件在同一目录,即/var/named。它是在文件/etc/named.conf中指
定的。不同的域要修改的文件只涉及/etc/named.conf、named.hosts、
named.rev三个文件,而named.ca、localhost.zone、named.local三
个文件一般不用用户修改。
(1)首先编辑配置文件:/etc/named.conf内容如下,需要更改的部分用黑体标出:
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "hbpc.com.cn" IN {
type master;
file "named.hosts";
};
zone "207.182.61.in-addr.arpa" IN {
type master;
file "named.rev";
};
(2)编辑文件named.hosts,即正向解析文件(由于hbpc.com.cn包含子域,文件太长,这里只列出一个子域)
;
; Database file hbpc.com.cn.dns for hbpc.com.cn zone.
; Zone version: 210
;
@ IN SOA hbdlis.hbpc.com.cn. root.hbpc.com.cn. (
210 ; serial number
3600 ; refresh
600 ; retry
86400 ; expire
3600 ) ; minimum TTL
; Zone NS records
@ NS hbdlis
; Zone records
@ MX 10 mail
ftpserver A 61.182.207.160
hbdlis A 61.182.207.135
mail A 61.182.207.151
mailserver A 61.182.207.134
pop3 CNAME mail
smtp CNAME mail
www CNAME mailserver
;hdg
hdg MX 10 hdgserver.hdg
hdgserver.hdg A 61.182.207.180
wwwserver.hdg A 61.182.207.181
www.hdg CNAME wwwserver.hdg
pop3.hdg CNAME hdgserver.hdg
smtp.hdg CNAME hdgserver.hdg
(3)编辑文件named.rev,即反向解析文件(由于hbpc.com.cn包含子域,文件太长,这里只列出一个子域)
; Database file 207.182.61.in-addr.arpa.dns for 207.182.61.in-addr.arpa zone.
; Zone version: 33
@ IN SOA hbdlis.hbpc.com.cn. root.hbpc.com.cn. (
33 ; serial number
3600 ; refresh
600 ; retry
86400 ; expire
3600 ) ; minimum TTL
; Zone NS records
@ NS hbdlis.hbpc.com.cn.
135 PTR hbdlis
160 PTR ftpserver
151 PTR mail
134 PTR mailserver
180 PTR hdgserver.hdg
(4)下面三个文件即 named.ca、localhost.zone、named.local是由BIND自动生成的,不用用户修改,限于篇幅,这里不再介绍。
5 结束语
DNS软件很多,但Internet上绝大多数域名服务器为Unix或Linux操作系统,所用的DNS软件是BIND。BIND是Berkeley Internet Name Domain的缩写,由一个主要的守护进程程序named、一组提供执行名称搜索能力的解析库和各种管理工具组成。做完以上工作后,你将拥有一个解析你自己域名的稳定可靠的DNS服务器。
转载地址:http://www.net130.com/CMS/Pub/network/network_manage/185332.htm