基于Linux下的DNS服务器的构建与配置
1页20页基于Linux 下的DNS 服务器的构建与配置学生姓名:XX 指导老师:XX摘 要 随着计算机网络的发展, 担负地址解析任务的 DNS 服务器的作用日显突出。同时 LINUX 操作系统

1页20页
基于Linux 下的DNS 服务器的构建与配置
学生姓名:XX 指导老师:XX
摘 要 随着计算机网络的发展, 担负地址解析任务的 DNS 服务器的作用日显突出。同时 LINUX 操作系统以其具备自主开发和高效灵活的特点已成为全球增长最快的操作系统之一,在 LINUX 操作平台上搭建各类网络服务器,真正意义上实现多任务、多用户服务, 具备了稳定性、安全性和高效性。本次设计分析了 DNS 工作原理以及域名系统, 介绍了基于 LINUX 的 DNS 服务器的一般配置。
关键词 计算机网络系统;域名解析;多任务
,
2页20页
The Structure and Configuration of DNS Server Based on Linux Operating System
Student name: XX Advisor :XX
Abstract With the development of computer network,the role of the DNS server,which shoulders the task of resolving address,is obvious important.The Linux operating system is regarded as one of the most popular operating systems for its flexible and self-develop characters.All kinds of network servers established on Linux operating system have realized multi-task and multi-user authentically.The design analyses the work principle of DNS server and domain name system,introduces the general configuration of DNS server based on Linux operating system.
Key words computer net system;resolving domain name;multi-task
,
3页20页
目 录
1 引 言 . .................................................................................................... 4
1.1设计的意义..................................................................................... 4
1.2相关概念简介 ................................................................................ 4
2 DNS 的工作原理................................................................................. 7
2.1 DNS的解析原理 . .......................................................................... 7
2.2 DNS的解析过程 . .......................................................................... 8
3 Linux 下DNS 的构建与配置 . ........................................................... 9
3.1 安装DNS 服务器软件 ................................................................ 9
3.2 实验环境的构建 . ........................................................................ 11
3.3 配置dnsserver 服务器中的DNS 服务 ................................... 11
3.4对域mydomain 进行DNS 服务器的配置 .............................. 12
3.5 配置mydomain 服务器的反向区数据.................................... 13
4 系统测试与结果分析 ......................................................................... 17
5 结束语 . .................................................................................................. 19
6 参考文献............................................................................................... 20
,
4页20页
1 引 言
1.1设计的意义
近年来,随着―传输控制协议/网际协议(TCP/IP)‖套件的广泛使用,TCP/IP已经成为网络通信中事实上的标准。在TCP/IP网络中,每一台主机都既可以通过域名也可以通过唯一的IP 地址实现互联,这是因为域名与IP 地址之间存在这一对一的映射关系。DNS (Domain Name System ,即域名系统)服务可以提供域名和IP 地址之间的自动转换,用于将不易记忆的IP 地址翻译成相对来说易于记忆的域名。这种地址翻译的过程成为域名解析,而提供域名解析服务的网络主机,通常被成为DNS 服务器[1]。本次设计,主要是实现Linux 下DNS 服务器的构建与配置。
1.2相关概念简介
1.DNS 系统简介
DNS (Domain Name System )即―域名系统‖[2]。在一个TCP/IP架构的网络(例如Internet )环境中,IP 地址用于标识主机地址,DNS 的主要功能是易于记忆的Domain Name(域名)与人不容易记忆的IP 地址进行转换。网络中执行DNS 服务的主机称为DNS 服务器(域名服务器)。DNS 服务器除了将域名转换为IP 地址外(―正向解析‖),还可以将IP 地址转换成域名(―逆向解析‖)。
域名系统(DNS )是一种用于TCP/IP应用程序的全球分布式数据库。在Internet 上的单个站点不能拥有Internet 上所有的信息。每个站点(如某所大学中、某间公司)保留自己的信息数据库,并提供给Internet 上的客户查询。该数据库的结构可以用反转树状图来表示,如图1.1所示。

根域
子域
子域
主机
,
5页20页
图1.1 域名系统树形结构图
一个域(Domain )一般是指整个域名空间的一个子树。树的最上层是根(root ),用―.‖表示,根下面是若干个子树,又称为域(Domain )。根域下面是顶级域名,主要有com 、edu 、gov 、org 、net 和mpa 等。表1-1描述了这些顶级域名的含义。
表1-1 顶级域名及其含义

域名的分配和管理由国际互联网中心(InterNIC )负责。一般顶级域名分为两类,一类是表示组织性质,如com ,另一类是地域性质,如cn 表示中国。在顶级域名下是二级域名,通常由InterNIC 授权给其他单位或组织管理,如中国的域名管理中心是CNNIC 。例如,在域名www.abc.com.cn 中,cn 是地域性的顶级域名,com 是组织性的顶级域名,abc 是二级域名。在二级域名还可以再设置三级域名,如www.abc.com.cn ,www 是一个三级域名。三级域名的管理一般由二级域名的所有者负责,不再由NIC 负责。
2.hosts 文件
在Linux 系统中,往往在/etc目录下存在一个提供DNS 解析的文件——hosts 文件。hosts 文件包括域名和IP 地址的对应信息。当一台计算机需要通过域名来定位网络上另一台计算机时,往往先查看本地hosts 文件。
一个典型的hosts 文件的格式如下:
127.0.0.1 loealhost localhost .localdomain
192.168.1.1 www www.abc.com.cn
192.168.1.2 ftp ftp.abc.com.cn
每一行为一个记录,标识一台计算机。第一列指出IP 地址,如192.168.1.1;第二列开始指明该IP 地址对应的计算机名。一台计算机可以设置多个名字,每个名字之间
,
6页20页 用空格分隔开。例如,www 、www.abc.com.cn 都是IP 地址为192.168.1.1的计算机的名字
3.DNS 服务器的分类
Internet 上主机的域名和地址解析主要是由DNS 域名服务器完成的。DNS 域名空间中存在以下几种DNS 服务器。
①根服务器:用―.‖表示,位于整个域名空间的最上层,主要用来管理根域和顶级域名。目前,世界上一共有13台计算机作为根服务器。
②缓存(cache-only )域名服务器:域名系统中的域名服务器把非它们授权管理的远程域名信息保存在自己的缓存中。遇到域名查询时,首先查找缓存中的记录,如果找到该记录,则把结果返回给客户端;否则,按照DNS 的查找规则进一步查找。缓存服务器只用来缓存DNS 域的信息,没有本地的域名数据库,不管理任何域名信息。
③主域名(Primary servers)服务器:每个域必须有一个主域名服务器。该域的所有DNS 数据库文件的修改都在这台服务器上进行。主域名服务器管理对其子域的授权,并且对该域中的辅助域名服务器进行周期性的更新和同步。
④辅助域名(secondary servers)服务器:每个域至少应有一个辅助域名服务器。辅助域名服务器从相应的主域名服务器获得所有域名数据库文件的副本,并对所服务的域提供和主域名服务器一样的授权信息。
⑤转发域名服务器:是主域名服务器和辅助域名服务器的一种变形,负责所有非本地域名的非本地查询。如果在网络中存在一台转发域名服务器,则所有对于非本地域名的查询都将先转发给它,再由转发域名服务器进行域名解析。
4. 解析器
,
7页20页
2 DNS 的工作原理
2.1 DNS的解析原理
1. 正向解析
当DNS 客户端向DNS 服务器查询IP 地址时,或DNS 服务器在向另外一台DNS 服务器查询IP 地址时,有以下三种查询方式:
①直接从缓冲存储器解析:可以直接从DNS 客户端或DNS 服务器的高速缓冲器中获得查询结果。
②递归查询:DNS 客户端送出查询要求后,如果本地DNS 服务器内没有需要的数据,则DNS 服务器会代替客户端向起他的DNS 服务器查询,一般由DNS 客户端所提出的查询要求是属于递归查询。
③循环查询:一般DNS 服务器与DNS 服务器之间的查询属于这种查询方式,当第1台DNS 服务器在向第2台DNS 服务器提出的查询要求后,如果第2台DNS 服务器内没有所需要的数据,则它会提供第3台DNS 服务器的IP 地址给第1台服务器,让第1台DNS 服务器向第3台DNS 服务器查询。具体解析过程,如图2.1所示。

DNS2
管辖根的DNS服务器
DNS4
管辖ahxinhua.comDNS3管辖.com DNS务器
图2.1 DNS解析过程
2. 反向解析
域名反向解析可以让DNS 客户端利用IP 地址查询其主机名称,服务器利用in-addr.arpa 反向指针[4],讲一个IP 地址指点向域名。
,
8页20页
2.2 DNS的解析过程
以解析www.abc.com 域名为例。当系统需要调用www.abc.com 主机的资料时,发送一个查询www.abc.com 域名的指令。
(1)系统中存在一个hosts 文件,可以用来解析域名。在系统中,可以定义查找域名的顺序:先查找hosts 文件,还是先查找DNS 服务器。一般设置先查找hosts 文件,如果在hosts 文件中发现www.abc.com 记录,则直接返回结果。
(2)如果hosts 文件中没有发现该记录,则把查询指令转发到系统中指定的域名服务器,进行DNS 查询。
(3)域名服务器在自己的缓存中查找相应的域名记录,如果存在该记录,则返回结果;否则,把这个查询指令转发到根域名服务器。
(4)在根域名服务器的记录中,根据递归查询的规则,只能返回顶级域名com ,并且把能够解析com 的域名服务器的地址告诉客户机。
(5)客户机根据返回的信息,继续向com 域名服务器发送递归请求,收到请求的、能够正确返回abc.com 域名信息的域名服务器,再把相关信息返回给客户机。
(6)客户机再次向abc.com 的域名服务器发送递归请求,收到请求的服务器再次进行解析;该服务器已经能够把www.abc.com 域名完全解析到一个IP 地址,并把这个IP 地址返回。
,
9页20页
3 Linux 下DNS 的构建与配置
在Linux 中下架设DNS 服务器使用的工具通常是Bind 程序Bind 是为BSD 操作系统[5]开发的一套网络域名服务系统,是一款实现DNS 服务器的开发源软件。在此次设计平台Linux 9系统中采用了Bind-9.2.1版本。
3.1 安装DNS 服务器软件
1. 查看Band 软件包
在Red Hat Linux 9中,系统默认安装了Bind ,可以通过一下命令进行查询: # rpm –q bind
bind-9.2.1-16
可以知道系统中已经安装好了Bind ,其版本号为9.2.1。如果需要查看更多的安装信息,则使用如下命令:
# rpm –qi bind
2. 安装DNS 服务器软件
#rpm –ivh bind-9.2.1-16.i386.rpm
#rpm –ivh bind-utils-9.2.1-16.i386.rpm
#rpm –ivh caching-nameserver-9.2-7.noarch.rpm
相关文件:
/etc/named.conf dns 服务器核心配置文件
/etc/rc.d/init.d/named dns 服务器守护进程所对应的程序
/var/named/named.ca dns 服务器根区域文件
/var/named/localhosts.zone dns 服务器localhost 区域的正向文件
/var/named/named.local 127.0.0.0的反向解析文件
3.DNS 的启动、停止及测试
可以使用service 命令启动、关闭和重新启动DNS 守护进程named 。
启动named 进程,命令行为:
# service named start
named 已经在运行
关闭named 进程,命令行为:
#service named stop
,
10页20页 停止named :
重新启动named 进程,命令行为:
# service named restart
停止named :
named 已经在运行
4. 测试DNS 服务器
bind-utils
软件包中自带了dig 、host 和nslookup 等测试工具。如果能使用这几个工具对地址进行正确解析,则说明DNS 服务器已经正常工作。
①nslookup 命令
直接使用nslookup 命令可以进入交互模式。输入需要解释的域名将显示对应的IP 地址,输入IP 地址则可以显示对应的域名,如下所示:
# nslookup
> 192.168.120.100 //对192.168.120.100地址进行解析 Server: 192.168.120.100 //显示当前DNS 服务器地址信息 Address: 192.168.120.100#53
……..
②host 命令
使用host 命令也可以对域名或IP 地址进行解析。如果DNS 服务器工作正常,则将返回相应的解析结果,命令行如下所示:
# host www.my.internal.zone /对此域名进行解析/ www.my.internal.zone has address 192.168.255.3 //正向解析结果
# host 192.168.255.3
3.255.168.192.in-addr.arpa domain name pointer www.my.internal.zone. //反向解析结果
dig 命令
dig 命令不仅显示解析结果,而且显示与所查询域名相关的DNS 服务器的配置信息,命令行如下所示:
# dig rhel.my.internal.zone
…..
③ping 命令