如何利用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服务器的测试工具程序.
RHEL4系统中提供了RPM格式的BIND服务器软件包,位于第4章光盘中,安装文件的名称是bind-9.2.4-2.i386.rpm. 没有默认进行安装,需要管理员使用rpm命令进行手动安装.
BIND服务器的服务程序(脚本)名称是named,该服务程序在BIND服务器安装后默认不自动启动,需要使用chkconfig命令进行手动设置在运行级别3和5的启动状态.
BIND服务器的主配置文件是named.conf,保存在“/etc”目录中,该文件是安装bind软件包时生成的,而不是包括在该软件包中的.
BIND服务器中的域名区域文件需要保存在工作目录“/var/named/”中,bind软件包安装后,该目录包括两个空的子目录,管理员需要在该目录中保存DNS服务器的区域文件.目录data中保存所有主区域文件的数据库,slaves中保存所有从主DNS复制过来的区域文件, 默认为只读.
二、 安装caching-nameserver软件包
RHEL4系统为配置缓存域名服务器专门提供了名为caching-nameserver的软件包,该软件包保存在第一张安装光盘中,系统默认没有安装,需要使用rpm命令进行手动安装.
安装完成之后,caching-nameserver将对BIND服务器的配置文件named.conf的内容进行更改,原有文件中的内容被保存在文件“/etc/named.conf.rpmorig”中.
三、 分析配置文件named.conf
1、named.conf中的全局设置
directory用于设置BIND服务器的工作目录,即域名区域文件保存的目录,设置的默认值为“/var/named”.
dump-file用于设置域名缓存文件的保存位置和文件名.
2、根区域设置及根区域文件
根区域是互联网中所有域名的开始,使用句号(.)表示,缓存服务器只有能够访问DNS根服务器才能提供正常的域名解析服务.配置信息如下:
type设置为hint表示该区域的类型是根区域.
file用于设置区域文件,根区域文件的名称是name.ca,该文件保存在BIND的工作目录中,即“/var/named”目录中.
name.ca文件中包括了全世界范围内互联网使用的所有DNS根服务器的地址解析信息,是由互联网管理机构统一发布的,因此不需要用户更改其中的内容.
所有配置的区域文件都保存在“/var/named/”中
name.ca文件去除注释行后的内容和形式如下所示:
显示的全国13台根DNS服务器的IP地址以及对应的域 |