DNS作为网络服务中的常见服务需要很高的稳定性,为了保证能够正常地解析域名,需要服务器提供稳定的DNS服务。Fedora 6以其卓越的稳定性和高速的执行效率成为了DNS服务器的首选,在实际应用的DNS服务器有90%以上采用了Linux或是UNIX系统。动态主机配置协议(DHCP)是用来自动给客户机器分配TCP/IP信息的网络协议。每个DHCP客户都连接到中央位置的DHCP服务器,该服务器会自动返回包括IP地址、网关和DNS服务器信息的客户网络配置。本章主要介绍DNS和DHCP的工作方式以及基本配置方法。
本章主要内容
& DNS的基本概念和原理
& Fedora 6下DNS的安装方法
& Fedora 6下DNS的配置方法
& Fedora 6下DHCP的安装方法
& Fedora 6下DHCP的配置方法
DNS(Domain Name System)即域名服务系统,它可以完成域名与IP地址的互换。网络上的每一台主机都有一个域名,域名给出有关主机的IP地址、Mail路由信息等等。而域名服务器(Name Server)则是指存储有关域名空间信息的程序,具体应用也通过它来完成。
用户可以利用DNS服务器,用简单的域名来代替复杂难记的IP地址。当用户输入IP地址后,系统连接到DNS服务器,而且DNS不仅提供这种变换的服务,还对域名进行层次化的处理。
DNS服务工作的流程被称作名字解析过程。它共分为两种:正向搜索和反向搜索。正向搜索是把一个域名解析成一个IP,假设用户先在Mozilla浏览器中输入www.linux.com这个域名,然后计算机将自动把这个域名传递给本地DNS服务器(也就是指在本机网卡属性中TCP/IP协议的DSN服务器输入框里输入的IP地址所对应的服务器,如图6-1所示。
图6-1 Fedora中设置DNS
DNS服务器收到信息后,将在自己的区域表中搜索该域名所对应的IP。有则返回,若没有,它则会把搜索的信息传递给其他根域DNS服务器,请求解析该域名。根域DNS服务器则返回一条对COM域DNS服务器的IP地址给本地DNS服务器引用。本地DNS服务器再根据IP地址给COM域DNS服务器发送一条www.linux.com域名解析请求的信息。COM域DNS服务器返回一条对Fedora DNS服务器的IP地址指引。然后本地DNS服务器再根据收到的IP地址给Fedora DNS服务器,发送一条www.fedora.com域名解析请求的信息。Fedora DNS服务器根据请求反馈给WWW的IP地址,本地服务器再把这个IP反馈给用户。这时解析完成,用户也就打开了www.linux.com的网页。
反向搜索正好相反,它是把一个IP地址解析成一个域名。由于DNS服务是按域名而不是按IP地址索引的,反向搜索会搜索所有的信息,很消耗资源。为了避免这种情况,DNS服务创建了一个叫in-addr.arpa的特殊二级域,它使用的是与其他域名空间结构相同的方法,但它不采用域名,而是采用IP地址。
DNS系统依赖一种层次化的域名空间分布式数据库结构。可以分为下面三部分。
· 域名或资源记录(Domain Name and Resource Records):用来指定结构化的域名空间和相应的数据。
· 域名服务器(Name Server):它是一个服务器端程序,包括域名空间树结构的部分信息。
· 解析器(Resolves):它是客户端用户向域名服务器提交解析请求的程序。
可以使用命令行程序nslookup命令查看本机所使用的DNS服务器是否工作正常。
[root@localhost ~]# nslookup
> www.sina.com.cn
Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
www.sina.com.cn canonical name = jupiter.sina.com.cn.
Name: jupiter.sina.com.cn
Address: 202.108.33.32
DNS数据库是按照名称索引的,因此,每个域必须有一个名称。往层次结构中添加域的时候,父域名称附在子域名称的后面。这样域名可以在域的的层次结构中唯一标识自己。例如:域名www.pku.edu.cn标识pku域作为edu.cn域的子域,同时,edu域作为cn域的子域。域名空间的层次结构由根域、顶级域和二级域构成。
根域位于层次结构的最顶部并用小句点“.”表示。互联网中,根域是由几个组织单位负责管理的,包括网络规划部门。
顶级域是由一个句点“.”加上两个或三个字母的名称码。顶级域是按照组织类别或地理位置来划分的,如表6-1所示。
表6-1 部分顶级域描述
顶级域 |
描述 |
顶级域 |
描述 |
.gov |
政府组织 |
.edu |
教育部门 |
.com |
商业组织 |
.cn |
中国国别代码 |
.net |
网络中心 |
.firm |
商业公司 |
.org |
非营利性组织 |
.arts |
艺术和文化单位 |
顶级域名大体分为3类:
· 通用顶级域名(General Top Level Domain,GTLD)。下列3个通用顶级域名向所有用户开放:com适用于商业公司;org适用于非赢利机构;net适用于大的网络中心。上述3个通用顶级域名也称为全球域名,因为任何国家的用户都可申请注册它们下面的二级域名。由于历史原因,下列3个通用顶级域名只向美国专门机构开放:mil适用于美国军事机构;gov适用于美国联邦政府;edu适用于美国大学或学院。
· 国际顶级域名(International Top Level Domain,ITLD)适用于国际化机构。
· 国家或地区代码顶级域名(Country Code Top Level Domain,CCTLD)。目前有240多个国家代码顶级域名,它们由二个字母缩写来表示。例如uk代表英国,hk代表香港,sg代表新加坡。并非所有的国家顶级代码域名都已投入使用,有的国家还没有接入Internet(例如北朝鲜)。
在已注册的域名中,最多的是com下的二级域名,其次是net下的二级域名。由于Internet的飞速发展,通用顶级域名下可注册的二级域名越来越少,ICANN在2000年年底前增加下列通用顶级域名:arts艺术和文化单位、firm商业公司、info信息服务、nom个人、rec娱乐、store网上商店、web同Web有关的活动。
由国际域名组织为互联网中的个人或部门指定和登记的二级域。二级域有两部分:一个顶级域名和一个独一无二的二级域名,例如表6-2所示。
表6-2 二级域
二级域 |
描述 |
二级域 |
描述 |
ed.gov |
美国教育部 |
cau.edu.cn |
中国农业大学 |
redhat.com |
红帽子公司 |
w3.org |
World Wide Web组织 |
DNS是典型的客户机/服务器(C/S)模式结构。分为Client和Server,Client向Server询问一个Domain Name,Server回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。
DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。
在每一个名称服务器中都有一个快取缓存区(Cache)。这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在快取缓存区中。这样当下一次还有另外一个客户端到次服务器上去查询相同的名称时,服务器就不用再到别台主机上去寻找,而直接可以从缓存区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度。
当DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称DNS服务器会在该资料库中找寻用户所指定的名称。如果没有,该服务器会先在自己的快取缓存区中查询有无该笔记录,如果找到该笔名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端,如果名称服务器在资料记录查不到且快取缓存区中也没有时,服务器才会向别的名称服务器查询所要的名称。
DNS客户端向指定的DNS服务器查询网际网路上某台主机名称,当DNS服务器在该资料记录找不到用户所指定的名称时,会转向该服务器的快取缓存区找寻是否有该资料。当快取缓存区也找不到时,会向最接近的名称服务器去要求帮忙找寻该名称的IP地址。在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到快取缓存区中,最后再将所查询到的结果回复给客户端。
目前Fedora系统上使用的DNS服务器软件是伯克力互联网域名系统(Berkeley InternetName Domain,BIND)。从概念上讲,BIND系统由服务器端(Server)和解释器端(Resolver)两个部分组成。
DNS服务器有几种,每种服务器在域名服务系统中所起的作用都不一样。基本的DNS服务器是主服务器(Master)。每一个网络至少有一个主服务器,用来解析网络上的域名。比较大的网络可能有多个DNS服务器,其中有些是从服务器,可以直接从主服务器上进行更新。
其余一些服务器是网络中的主机可以使用的替代服务器。这些服务器被称为从服务器(Secondary Server)。DNS服务器不能解析的DNS请求,会被发送到其他网络的服务器,即Internet的特定服务器。
用户可以设置网络中的DNS服务器完成此功能,这样的服务器成为转发服务器(ForwardServer)。为减轻工作负担,本地DNS服务器可以设置为缓冲服务器(Caching Server)。此服务器紧紧收集发送到主DNS服务器以前的查询结果,任何重复的请求都可以由缓冲服务器回答。