企业网站DNS服务器创建之Solaris篇

来源:岁月联盟 编辑:zhu 时间:2008-03-09
企业网站DNS服务器创建之Solaris篇内容简介:域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。域 域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。

    DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串""来表示,但在文本中用"."来书写。树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域可再进一步划分成子分区(域),每个域都有一个标签(LABEL),标明了它与父域的关系。域也有一个域名(domain name),给出它在整个分布式数据库中的位置。在DNS中,域名全称是一个从该域到根的标签序列,以"."分隔这些标签。该标签最多可包含63个字符,树中每一节点的完整域名为从该节点到根之间路径上的标签序列。

    如果根域在节点的域名中出现,该名字看起来就象以点结尾(实际上是以点和空标签作结尾)。这些以点结尾的域名被称之为绝对域名(Absoulte Domain Name),不以点结尾的域名被称之为相对域名。域名服务器的类型分为三种,下面简单介绍之:

    1)主域名服务器(master)

    每个域都有一个主域名的权威,这个服务器在Internet上注册,使该域可见。主域名服务器是一个域或区域的管理权威。这个服务器的主要责任就是解析域或区域内所有主机的名称。可以使用一个或多个次域名服务器作为主域名服务器的备份。当次域名服务器对主机名字记录采取强制终止策略。

    2)次域名服务器(slave)

    一个或多个次域名服务器作为主域名服务器的备份,当主域名服务器没有响应时使用次域名服务器,次域名服务器定期从主域名服务器复制数据库文件。

    3)缓存服务器(hint)

    缓存服务器没有任何数据库文件。它主要用于使用其他的名字服务器解析远程网络的主机名。它保存先前的解析主机记录,并在下列情况下使用:

  • 使用缓存来加速主机名的解析。
  • 为主域名服务器来担任主机名解析任务。
  • 在大型的网络中减少网络流量。

    在这里只讲企业网站的主域DNS服务器创建,在后面的文章中我们会介绍其他各种DNS服务器创建过程。

    DNS服务的最常用软件是Berkeley Internet Name Domain,也就是BIND,它源自U.C. Berkeley,但现在则由Internet Software Consortium.负责。BIND提供了解析器和名字服务器软件,解析器做实际的查询工作而名字服务器则提供响应。众所周知,以前在internet上用的DNS系统是bind4, bind8是bind4的后一个版本。和bind4相比,bind8更完善,管理者能更充分的控制它的行为,但这两者之间的差别还是很大的,变化的不仅是格式,也多了很多新的概念,其新版本4.9.3包含了标准的 Unix版本和附加的Windows NT 端口。本文以BIND8为例介绍之。
域名解析的两种方式:

  • 名字到地址的解析(正向解析)
    如:www.nangjing.org.cn ?  61.155.107.131
  • 地址到名字的解析(反/逆向解析)
    如:61.155.107.131?  www.nangjing.org.cn

   企业网站考虑到系统的安全性,操作系统采用B级Unix系统如SUN的Solaris、IBM的AIX以及Red Hat Linux 等系统,部分地使用C级的Windows 2000/NT Server 操作系统。下面以Solaris8平台的DNS服务器创建为代表来介绍,供大家学习参考,其它平台可以类比。

Solaris 平台的DNS服务器创建

    BIND是Solaris中最常用的DNS服务器。它是以包形式提供的,一般在系统的初始配置过程中安装,对于随Solaris 8提供的BIND 8,主要配置文件是/etc/named.conf,BIND4 以及更早的版本使用名为/etc/named.boot的配置文件。/etc/named.conf 文件负责控制DNS服务器的行为,它提供了以下关键词,用来定义操作声明:

  • acl——定义一个访问控制列表,哪些客户可以使用该服务器。
  • include ——读入一个包含声明的外部文件,该文件使用与/etc/named.conf相同的格式。这在配置文件非常大时是很有用的,可以将不同的部分分成在逻辑上相关的几个文件。
  • logging——确定在声明指定的日志文件中记录哪些服务器活动。
  • options——定义本地服务器的操作特征。
  • server——定义其他服务器的操作特征。
  • zone——创建本地DNS区域。

    在Solaris 中,in.named为进程域名服务器。通过网络初始化脚本S72inetsvc在level 2级上启动的,启动后,它读取/etc/named.conf以获取它所管理的区域和区域数据库文件。区域文件除了包含主机名到IP地址的映射外,还包含其他内容。域名服务器的配置过程包括下列步骤:
    1)注册一个域名
    2)创建一个主机名和ip地址的列表
    3)创建/etc/named.conf文件
    4)创建区域数据文件

  资源记录类型

    在区域数据文件中,信息是以特定的格式存储的。这些信息被定义为资源记录类型(RR)。常用的标准的资源记录说明如下: 

  • SOA(管理开始)资源记录——在master file(就是bind4里的zone file)中用到。 
  • NS(名字服务器)资源记录——列出了域或区域中的名字服务器。
  • A (地址)资源记录——地址资源记录用于说明DNS 数据库中主机的IP地址。它可能即使用到绝对主机名(FQHN),也可能使用相对的主机名(短主机名)。
  • MX(邮件交换服务器)资源记录——MX资源记录负责域内的主机之间的邮件交换服务。
  • PTR(指示器)资源记录——通常用于逆向主机名的解析。
  • CNAME —— 用于定义主机的别名。

(1)几个必须的配置文件:

named.conf
named.ca
named.local
master file(就是bind4里的zone file) ---- 在本文中用nanjing.org.cn和nanjing.org.cn.rev 两个文件。

    在这几个配置文件中,最主要的是named.conf,在/etc下, 它是named启动时缺省的启动文件。一个典型的named.conf文件至少包括options和zone,如: 

***//named.conf 文件内容 ***
---------------------------------------------------------------
options {
directory "/var/named"; //数据库文件的位置,要创建named这个目录,
multiple-cnames yes;
pid-file "/etc/named.pid";
}; 
//type domin    source host/file backup file
zone "." in {
type hint; //这里hint表示为缓存服务器
file "named.ca";
}; 

zone "0.0.127.in-addr.arpa" in {
type master; //这里master表示为主dns server,
file "named.local";
}; 

zone "nanjing.org.cn" in {
type master;
file "nanjing.org.cn "; //这里的nanjing.org.cn就是你要创建的域,正向解析 ,
}; 

zone "107.155.61.in-addr.arpa" in {
type master;
file "nanjing.org.cn.rev "; // 反向解析,域为107.155.61,
}; 
---------------------------------------------------------------------
    在这里面,options定义master file存放的路径,对应于某一个域, named就会到这里找数据文件,如有一个www.nanjing.org.cn的require请求,named就会到/var/named下找nanjing.org.cn这个文件,查出www.nanjing.org.cn的ip。Zone定义一个域,如nanjing.org.cn这个域,type定义域名服务器的类型,master 说明这是一个主域名服务器,第一个zone定义本地服务器为它自己的回送域的主服务器,将地址127.0.0.1映射为localhost,几乎在所有类型的域名服务器里都可以看见这个域。第二个zone用来定义一个高速缓存初始化文件,在named.ca 里至少包含着根服务器的名字和地址(这些根服务器也会变化). 一般named.ca不需要修改,named.local里只需要修改SOA纪录里域和联系人。file定义nanjing.org.cn这个域的master file。

    在/var/named目录下创建如下几个数据库与/etc/named.conf文件中相对应文件named.ca,named.local,nanjing.org.cn 和 nanjing.org.cn.rev。 

***// nanjing.org.cn 文件内容 ***
-------------------------------------------------------------
@ IN SOA dns.nanjing.org.cn.
root.dns.nanjing.org.cn. (
2000120101 ; Serial Number
10800; Refresh after 3 hours
3600 ; Retry after 1 hour
3600000 ; Expire after 6 weeks
86400 ) ; Minimum TTL of 1 day 
        IN NS dns
@     IN MX 10 mail
 
Localhost IN A 127.0.0.1
www IN A 61.155.107.131
dns IN A 61.155.107.131
mail IN A 61.155.107.132
ftp IN  CNAME  dns
-------------------------------------------------------------
    这里面的@定义当前域,也就是nanjing.org.cn., IN定义这是一个inter-net类型的纪录,SOA(管理开始)标志一个授权域的开始,dns.nanjing.org.cn.为开创该域的服务器,可以用主域名服务器,root.dns.nanjing.org.cn.定义联系人,root后的.就是email里的@,括号里的几个数字定义和本域有关的几个参数,单位是秒,前四个参数用于辅域名服务器更新master file,其中;后面的是说明,serial number用于辅域名服务器判断主域名服务器的 master file是否更新,所以如果你有辅域名服务器,在每次修改 master file后就应该修改这个序列号,以便辅域名服务器更新这个域的master file. Refresh定义辅域名服务器刷新的时间,retry定义如果主服务器未响应,辅服务器重试的时间间隔,expire 定义这个域的过期时间,就是说如果辅服务器在连续42天里都没有从主服务器取到该域的信息,辅服务器就丢弃该域。第五个参数定义这个域在其他域名服务器的cache 里的有效期,过了这个时间其他的域名服务器就会到这里来重新查询相关的信息。 
DNS表明这个域的域名服务器是dns.nanjing.org.cn。NS纪录可以有多个;
 @  IN MX 10 mail表示:所有发给当前域的邮件全部转发到服务器mail上。
Localhost、www、dns和mail这四条A纪录的含义是将localhost解析到127.0.0.1 ;www.nanjing.org.cn和dns.nanjing.org.cn解析到61.155.107.131;将mail.nanjing.org.cn解析到61.155.107.132,定义ftp的别名为dns。

***// nanjing.org.cn.rev 文件内容 ***
该文件存放从IP地址到域名的映射信息,文件内容:
-----------------------------------------------------------------
@ IN SOA dns.nanjing.org.cn.
 root.dns.nanjing.org.cn. (
  2000120101  ; Serial
  10800  ; Refresh
  1800  ; Retry
  3600000  ; Expire
  86400 ) ; Minimum
  IN NS dns.nanjing.org.cn.
131  IN  PTR dns.nanjing.org.cn.
132  IN  PTR  mail.nanjing.org.cn.
------------------------------------------------
语法说明:
131  IN  PTR    dns.nanjing.org.cn.
表示:当前域(即61.155.107)中地址为 131的服务器的域名为dns.nanjing.org.cn.
132意义同上,表示的服务器的域名为mail.nanjing.org.cn.
注意,此处服务器的域名要用绝对域名

***// named.ca 文件内容 ***
--------------------------------------------------------
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  "
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC registration services
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.RS.INTERNIC.NET
;       -OR- under Gopher at    RS.INTERNIC.NET
;           under menu          InterNIC Registration Services (NSI)
;              submenu          InterNIC Registration Archives
;           file                named.root
;
;       last update:    Aug 22, 2000
;       related version of root zone:   2000082200
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
;
; formerly NS1.ISI.EDU
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
.  3600000  NS  C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.  3600000  A  192.33.4.12
;
; formerly TERP.UMD.EDU
.  3600000  NS  D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.  3600000  A  128.8.10.90
;
; formerly NS.NASA.ORG
;.  3600000  NS  E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.  3600000  A  192.203.230.10
;
; formerly NS.ISC.ORG
.  3600000  NS  F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.  3600000  A  192.5.5.241
;
; formerly NS.NIC.DDN.MIL
.  3600000  NS  G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.  3600000  A  192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
.  3600000  NS  H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.  3600000  A  128.63.2.53
----------------------------------------------------------
    说明:named.ca文件一般不需要修改。

***// named.local 文件内容 ***
-----------------------------------------------
; SOA rec
@ IN  SOA  dns.nanjing.org.cn.  root.nanjing.org.cn. (
    2000120101 ; serial number
    10800 ; refresh every 3 hours
    10800 ; retry every 3 hours
    604800 ; expire after a week
    86400  ; TTL of 1 day
                                )
; Name Servers
IN  NS  dns.nanjing.org.cn.
;ip mappings
1  IN  PTR  localhost.nanjing.org.cn.
-----------------------------------------------
    说明:此文件无太多的意义,只定义 IP地址为127.0.0.1的服务器对应的域名为:localhost。

    至此一个基本的主域名服务器就建立好了。但需要特别说明的是,在master file里,dns.nanjing.org.cn.后面的.,这个. 表示这是一个完整的纪录,否则服务器就会自动给你加上当前域,例如:www表示www.nanjing.org.cn,而www.nanjing.org.cn就会变成www.nanjing.org.cn.nanjing.org.cn,正确的表示方法可以是www或www.nanjing.org.cn. 如果不给这个.足够的重视,就很容易出错。 

(2)和DNS配置相关的文件

包括:/etc/defaultdomain、/etc/nsswitch.conf、/etc/resolv.conf 三个文件权限只需root可读即可。

1) /etc/defaultdomain

 "/etc/defaultdomain"文件给出确省域名,该文件内容为域名名称,例如:
--------------------------------  
nanjing.org.cn
---------------------------------
 
表示缺省域名为" nanjing.org.cn ",以后仅使用某个主机名时,系统假设为缺省域中的主机。例如,"ping www"将被理解为"ping www.nanjing.org.cn "。

2) /etc/nsswitch.conf

    如果使用DNS,则必须在该文件的"HOST"一项中给出"DNS"。缺省为使用文件,即"FILES",该选项可以保留。
-------------------------------------------------------- 
# /etc/nsswitch.files:
# An example file that could be copied over to /etc/nsswitch.conf; it
# does not use any naming service.
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.

passwd:     files
group:      files
hosts:      files   dns
networks:   files
protocols:  files
rpc:        files
ethers:     files
netmasks:   files 
bootparams: files
publickey:  files
# At present there isn't a 'files' backend for netgroup;  the system will
#   figure it out pretty quickly, and won't use netgroups at all.
netgroup:   files
automount:  files
aliases:    files
services:   files
sendmailvars:   files
--------------------------------------------------------
hosts: files dns 表示:将使用/etc/inet/hosts文件解析主机,如果无法解析主机名将使用DNS。

3) /etc/resolv.conf

    该文件给出域名和域名服务器地址。
----------------------------------------------------
; /etc/resolv.conf file
domain nanjing.org.cn ;域名
nameserver 61.155.107.131 ;域名服务器地址
;域名服务器地址可以给出多个
-----------------------------------------------------

图片内容