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)