Internet域名服务器的建立与管理(上)

广州市电信局数据通信分局 李爱民

——因特网上的服务器常有一个域名,每个域名至少对应一个IP地址,主机之间就是使用这32位的IP地址相互通信的。域名服务器DNS(Domain Name System)是一个包含有主机名及其对应的IP地址的分布式数据库,因特网上的主机只有将自己的主机名和IP地址写入DNS服务器,才能够在Internet上公开使用。域名服务器在因特网上起着相当重要的作用。

1 域名服务器(DNS)的基本原理

——(1)Internet域名系统

——Internet域名是按层次结构编排的,由顶级域(top-level-domain)、子域(sub-domain)和主机名(hostname)构成。顶级域和IP地址由IANA(Internet Assigned Numbers Authority)分配及维护。同时,IANA还负责保证整个域名系统的协调统一。通常顶级域名有com,net,org,mil,us等。

——DNS是Internet上一个包含全部可访问主机名及IP地址的分布式数据库系统。其数据库文件由网络上的多台主机共同维护,每台主机负责部分域名空间(zone),并通过备份机制保证系统可靠工作,通过自动更新机制保证信息完整。

——(2)域名服务器分类

——Internet上的域名服务器分为基于Windows NT操作系统的域名服务器和基于Unix操作系统的域名服务器。基于Unix操作系统的域名服务器的操作系统可以是SUN公司的Solaris系统、美国加州大学柏克利分校免费发布的BSD系统、SGI公司的DRIX系统以及免费的Linux等Unix操作系统。目前,基于Unix的DNS系统大多使用美国加州大学柏克利分校免费发布的BIND(Berkeley Internet Name Service)软件。

——免费DNS软件BIND分为BIND 8.*.*和BIND4.*.*两大系列。BIND 8.*.*系列不支持动态域名解析:BIND 4.3以上版本支持动态域名解析并支持下一代IP协议(即128位的IP协议)。鉴于Internet上的域名服务器大多运行在基于SUN公司的Solaris 2.6操作系统上,故本文以Solaris 2.6的操作系统为基础,分别介绍普通DNS和动态DNS的建立与管理。

2 普通DNS的建立与管理

2.1 获取普通DNS软件

——普通DNS软件不支持动态域名解析服务,因特网上多使用免费的BIND-8系列的软件提供普通
DNS服务。通常,使用DNS的原代码在服务器上按自己的要求编译。安装DNS。普通DNS软件的最新
版本是BIND-8.2.2。BIND-8.2.2软件的源代码可在下面的网站获取:ftp://ftp.isc.org/isc/bind/src/dns/

——软件包名为:bind-8.2.2-src.tar.gz。

2.2 安装、建立普通DNS服务

——安装、建立普通DNS服务应以ROOT用户身份操作,假设安装主目录为/home/install,其完整的安装步骤如下。

——a)解压软件包:

——/home/install # gunzip bind-8.2.2-src.tar.gz

——b)解tar软件包:

——/home/install # tar xvf s bind-8.2.2-src.tar

——在当前目录下产生src子目录。

——c)进入src子目录。

——/home/install # cd src

——d)编译前提条件:

——安装普通DNS的机器上必须有gcc、yacc、make、install等编译软件。

——e)准备编译普通DNS:

——/home/install/src# make clean

——/home/install/src # make depend

——f)编译普通DNS:

——/home/install/src # make

——g)安装目录设置:

——在/home/install/src/port/solans/Makefile.set文件中设置。

——h)安装普通DNS:

——/home/install/src # make install

——这步生成以下文件:

——(1)/usr/sbin/目录下的named、named-xfer、ndc等3个执行文件,属性均为755、属主为root、属组为other;

——(2)/usr/bin/目录下的addr、dig、dnsquery、host、nslookup、nsupdate等6个执行文件,属性均为755、属主为root、属组为other;

——(3)/usr/lib/目录下的nslookup.help文件,其属性为444、属主为bin、属组为bin;

——(4)/usr/local/bind/lib/以及/usr/local/bind/include/目录下产生的库文件和头文件。

2.3 配置与管理普通DNS

——经过第2步安装、建立的DNS还不能使用,还要进行一系列配置方可使用。例如要在域名为gz.com的服务器上建立域名服务器,需要该域名服务器不仅可以解析本域(即gz.com)的子域,还可以解析其他的任何域名,则需要进行以下配置。

2.3.1 配置普通DNS的主配置文件

——普通DNS的主配置文件是/etc/named.conf。建立此文件,并使它包含如下主要内容。

——options{

————directory"/var/named";

——};

——//DNS system configure

——zone "0.0.127.IN-ADDR.ARPA"

————type master;

————file "db.127.0.0.";

——};

——zone "gz.com"{

————type master;

————file "db.gz.com";

——};

——zone "128.96.202.IN-ADDR.ARPA"{

————type master;

————file "db.202.96.128";

——};

——zone "."{

————type hint;

————file "db.cache";

——};

——//secondary DNS configure

——zone "swatou.com" in{

——type slave;

——file''slave/db.swatou.com'';

——masters{202.96.144.47;};

——};

——//custumer DNS configure

——zone "sst.com.cn"{

——type master;

——file "db.sst.com.cn";

——};

——zone "yinghaocollege.com.cn"{

——type master;

——file "db.yinghaocollege.com";

——};

——文件说明如下。

——a)directory“/var/named”:表示所有域名服务解析的数据文件均放置在“/var/named”目录下;

——b)以下内容表示127.0.0.1主机回送地址信息由“/var/named/db.127.0.0”数据文件定义。

——zone   "0.0.127.IN-ADDR.ARPA"{

——type master;

——file "db.127.0.0";

——};

——“/var/named/db.127.0.0”数据文件的典型内容如下:

——@IN SOA dns.gz.com.root.dns.gz.com.(521 10800 3600 604800 86400)

——IN NS dns.gz.com.

——1.0.0.127.IN-ADDR.ARPA.   IN PTR localhost.

——c)以下内容表示gz.com这个域的域名解析由“/var/named/db.gz.com”数据文件定义。

——zone "gz.com"{

——type master;

——file "db.gz.com";

——};

——“/var/named/db.gz.com”数据文件的典型内容如下:

——@IN SOA dns.gz.com.   root.dns.gz.com.(9711572 10800 3600 604800 86400)

——IN NS dns.gz.com.

——localhostIN   A    127.0.0.1

——www———— IN   A   202.103.134.120

——dns———   —IN    A   202.96.128.110

——ns—————IN    A   202.96.128.110

——book————IN    A   202.103.134.107

——所有DNS的数据文件记录格式均为标准资源记录格式(Standard Resource Record Format)。在数据文件中,每一行称为一个记录(Record),即每行为一个资源记录(Resource Record,简称RR)。DNS的全部数据文件一般具有类似的记录格式,通常的格式如下:

——{name}  {ttl}   class RecordType Specificdata

——凡是{}中的项均为可选项;无{}的项则是必须项。各项解释如下。

——1)name:每一行RR有一个name,如果此行的name为空,那么缺省为前一RR的name。name表示IP地址/主机名,绝对地址/主机名以“.”结尾。通常使用“@”表示自动获取主机名。这项不是必须的。

——2)ttl:ttl表示time-to-live,此项表示备份DNS中的数据的生存时间,此时间一到,则备份DNS就需要从主DNS中取得新数据。如果此项为空,则缺省值为SOA中设置的时间。此时间通常为1天(86400s)~1周(604800s)。所有相同name、class、type的ttl应相同。

——3)class:表示记录的类。现在只有一种类可用(即IN),表示Internet地址。

——4)Recordtype:资源记录类型。

——DNS数据库中常用的资源记录类型如下:

——SOA(sort of authority):指定某一域的域名服务器和附加管理信息。

——A(address):主机名对应的IP地址(向解析)。

——CNNANE(canonical name):主机的别名。

——PTR(pointer record):实现IP地址到主机名的解析(反向解析)。

——MX(mail exchange):指定域的邮件服务器。

——NS(name server):定义某域的DNS。

——5)Specificdata(特定数据):这根据不同的资源记录类型而不同。

——SOA类型的数据文件记录格式如下。

——name IN SOA origin person(serial refresh retry expire minimum)

——注:字母大写的项为关键字,不需要修改;字母小写的项为变量,需要赐于一定的值。

——各变量解释如下:

——name:为标识本机名。“@”表示取得本机名。

——origin:域名服务器名称。

——如上述db.gz.com文件中的dns.gz.com.表示:“gznet.com”域的域名服务器为dns.gz.com。

——person:管理员E-mail地址。

——如上述db.gz.com文件中的root.dns.gz.com.表示:管理此数据的管理员的E-mail地址为root@dns.gz.com。

——serial:DNS数据文件版本信息。每次修改数据文件内容时一定要增加该值,以便备份DNS及时更新自己的信息。

——如上述db.gz.com文件中的9711572。当/var/named/db.gz.com数据文件修改时需要将9711572增加,如修改为9711573,则gz.com域的备份DNS立即会从主DNS中刷新数据。

——refresh:备份DNS隔多久更新一次信息(单位:s)。

——如上述db.gz.com文件中的10800表示:备份DNS隔3h(10800s)更新一次信息。

——retry:当备份DNS与主DNS连接失败时,隔多久重试(单位:s)。

——如上述db.gz.com文件中的3600表示:当备份DNS与主DNS连接失败时,隔1h(3600s)重试。

——expire:如果经过Expire时间(单位:s)后,备份DNS仍不能与主DNS建立连接,备份DNS将停止域名解析服务。

——如上述db.gz.com文件中的604800表示:备份DNS向主DNS获取数据的最大时间上限为1周(604800s)。

——minimum:即TTL(Time to Live)的缺省值,也就是备份DNS“请求”的有效时间,即备份DNS数据生存的时间(单位:s)。

——如上述db.gz.com文件中的86400表示:每隔1 天(86400s),备份DNS就需要从主DNS中获得新数据。备份DNS就是从DNS。

——d)以下内容表示202.96.128网段的IP地址解析为域名(即域名反向解析)由“/var/named/db.202.96.128”数据文件定义。

——zone"128.96.202.IN-ADDR.ARPA"{

——type master;

——file"db.202.96.128";

——};

——“/var/named/db.202.96.128”数据文件的典型内容如下:

——@IN SOA dns.gz.com.root.dns.gz.com(519 10800 3600 604800 86400)

——IN NS dns.gz.com.

——110.128.96.202.IN-ADDR.ARPA.        IN PTR  dns.gz.com.

——110.128.96.202.IN-ADDR.ARPA.     IN PTR  gz.com.

——120.134.103.202.    IN-ADDR.ARPA.   IN PTR  www.gz.com.

——107.134.103.202.IN-ADDR.ARPA.    IN PTR book.gz.com.

——e)以下内容表示根域的各级域名服务器由“/var/named/db.cache”数据文件定义。

——zone"."{

——type hint;

——file "db.cache";

——};

——“/var/named/db.cache”数据文件的内容典型为:

——.———————————99999999     IN   NS   

ns.internic.net.

——ns.internic.net——————99999999   IN  A

  198.41.0.4

——.———————————99999999   IN NS 

ns1.isi.edu.

——nsl.isi.edu————————99999999   IN A

128.9.0.107

——.———————————99999999   IN  NS

ns.nic.ddn.mil.

——ns.nic.ddn.mil.——————99999999  IN   A  

192.112.36.4

——.———————————99999999   IN  NS 

aos.arl.army.mil.

——aos.arl.army.mil—————99999999  IN A 

128.63.4 82

——.———————————99999999   IN   A 

192.5.25.82

——.——————————99999999   IN   NS 

nic.nordu.net.

——.nic.nordu.net—————99999999   IN  A

192.36.148.17

——该“/var/named/db.cache”文件为全部根域名服务器的信息。

——经过上述步骤的配置后,域名服务器就可以运行了。启动域名服务器方法如下:

——/usr/sbin/named &

(《电信技术》2000.07)


关闭窗口