如何利用Linux构建免费的DNS服务器
 
实验背景:
      小诺公司目前的网络环境是所有用户都可以上外网,而且使用的DNS是通过DHCP服务器获取得到的,DHCP服务器上填写的DNS地址为公网上一台注册的DNS服务器。而小诺公司并没有搭建DNS服务器。随着业务的增加,小诺公司员工上网的频率越来越大,由于域名解析的问题经常造成网络的拥塞,而且经常有员工抱怨浏览的网页在工作期间(浏览高峰期)总是超时。现在公司要求使用Linux搭建一台缓存型DNS服务器,将员工经常浏览的网站和对应的IP地址缓存到本地DNS服务器上,当员工再次访问访问过的网站时,只需要在本地缓存DNS服务器上进行域名解析,从而降低了网络拥塞问题。
安装缓存型DNS并不需要在公网上进行注册,只对用户查询过的域名解析记录进行缓存,当用户首次进行某域名的查询时,缓存服务器将向其他DNS服务器进行域名查询并将查询结果保存在缓存中。缓存服务器大大提高了常用域名的查询速度,因此特别适合于在局域网内部使用,其主要目的是提高域名解析的速度和节约对互联网访问的出口带宽。
 
实验步骤:
 
一、 安装域名服务(BIND服务器软件包)
       BIND软件包是目前Linux下使用最广泛的DNS服务器安装包,它可以运行到大多数UNIX服务器中,也包括Linux系统。RHEL4默认没有安装BIND服务器软件包,而只安装了名为bind-libs和bind-utils的两个域名解析相关的软件包,bind-libs软件中提供了实现域名解析功能必备的库文件,bing-utils中提供了对DNS服务器的测试工具程序。
clip_p_w_picpath002
 
RHEL4系统中提供了RPM格式的BIND服务器软件包,位于第4章光盘中,安装文件的名称是bind-9.2.4-2.i386.rpm。由于没有默认进行安装,需要管理员使用rpm命令进行手动安装。
clip_p_w_picpath004
 
BIND服务器的服务程序(脚本)名称是named,该服务程序在BIND服务器安装后默认不自动启动,需要使用chkconfig命令进行手动设置在运行级别3和5的启动状态。
clip_p_w_picpath006
 
BIND服务器的主配置文件是named.conf,保存在“/etc”目录中,该文件是安装bind软件包时生成的,而不是包括在该软件包中的。
clip_p_w_picpath008
 
BIND服务器中的域名区域文件需要保存在工作目录“/var/named/”中,bind软件包安装后,该目录包括两个空的子目录,管理员需要在该目录中保存DNS服务器的区域文件。目录data中保存所有主区域文件的数据库,slaves中保存所有从主DNS复制过来的区域文件,而且默认为只读。
clip_p_w_picpath010
 
 
二、 安装caching-nameserver软件包
RHEL4系统为配置缓存域名服务器专门提供了名为caching-nameserver的软件包,该软件包保存在第一张安装光盘中,系统默认没有安装,需要使用rpm命令进行手动安装。
clip_p_w_picpath012
 
安装完成之后,caching-nameserver将对BIND服务器的配置文件named.conf的内容进行更改,原有文件中的内容被保存在文件“/etc/named.conf.rpmorig”中。
clip_p_w_picpath014
 
 
三、 分析配置文件named.conf
 
1、named.conf中的全局设置
directory用于设置BIND服务器的工作目录,即域名区域文件保存的目录,设置的默认值为“/var/named”。
dump-file用于设置域名缓存文件的保存位置和文件名。
clip_p_w_picpath016
 
2、根区域设置及根区域文件
根区域是互联网中所有域名的开始,使用句号(.)表示,缓存服务器只有能够访问DNS根服务器才能提供正常的域名解析服务。配置信息如下:
type设置为hint表示该区域的类型是根区域。
file用于设置区域文件,根区域文件的名称是name.ca,该文件保存在BIND的工作目录中,即“/var/named”目录中。
name.ca文件中包括了全世界范围内互联网使用的所有DNS根服务器的地址解析信息,是由互联网管理机构统一发布的,因此不需要用户更改其中的内容。
clip_p_w_picpath018
 
所有配置的区域文件都保存在“/var/named/”中
clip_p_w_picpath020
 
name.ca文件去除注释行后的内容和形式如下所示:
显示的全国13台根DNS服务器的IP地址以及对应的域名。
clip_p_w_picpath022
 
3、localhos正向解析
Localhost区域的作用是对主机名称localhost和回环地址127.0.0.1之间进行解析,代表本机,可作本机的网卡测试用。使用的参数含义如下:
type master 表示该区域的类型为主服务器。
file设置localhost域的区域文件名为localhost.zone
clip_p_w_picpath024
 
localhost.zone区域文件为localhost.zone,可以查看到一条A记录对应127.0.0.1。
clip_p_w_picpath026
 
4、localhos的反向解析文件
在DNS区域中,每个区域的正向解析必然有对应的反向解析区域,反向解析区域的作用是将IP地址转换为对应的域名。
内容如下:
Localhost的反向解析区域的名称是0.0.127.in-addr.arpa,名称后缀为“.in-addr.arpa”的区域都是反向解析区域,名称中0.0.127是IP地址127.0.0的倒置,这样的反向解析区域名称是named.conf配置文件中的约定。
clip_p_w_picpath028
 
0.0.127.in-addr.arpa区域的类型是master,即主服务器。区域文件的名称是named.local,该区域文件具有如下内容:
在named.local区域文件中使用下面的记录设置了IP地址127.0.0.1对应的主机域名为localhost。
clip_p_w_picpath030
 
 
四、 缓存域名服务器的启动和测试
缓存域名服务器在安装caching-nameserver软件包不需要任何其它的配置就可以启动运行,只要这台DNS服务器能够访问公网就可以了,使用的是那十三台根服务器,通过迭代的方式进行域名查询。
 
启动named服务器。
clip_p_w_picpath032
 
测试缓存域名服务器,测试localhost的正向解析和127.0.0.1的反向解析。如果能够上公网也可以测试网络上某一域名的正向解析和反向解析。
clip_p_w_picpath034