如何利用Linux构建免费的DNS服务器
如何利用Linux 构建免费的DNS 服务器实验背景:小诺公司目前的网络环境是所有用户都可以上外网,而且使用的D NS 是通过DHCP 服务器获取得到的,DHCP 服务器上填写的DNS 地址为公网上一
如何利用Linux 构建免费的DNS 服务器
实验背景:
小诺公司目前的网络环境是所有用户都可以上外网,而且使用的D NS 是通过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 ,该服务程序在BIN D 服务器安装后默认不自动启动,需要使用chkconfig 命令进行手动设置在运行级别3和5的启动状态。
,
BIND 服务器的主配置文件是named.conf ,保存在“/etc”目录中,该文件是安装bind 软件包时生成的,而不是包括在该软件包中的。

BIND 服务器中的域名区域文件需要保存在工作目录“/var/named/”中,bind 软件包安装后,该目录包括两个空的子目录,管理员需要在该目录中保存DNS 服务器的区域文件。目录data 中保存所有主区域文件的数据库,slaves 中保存所有从主DNS 复制过来的区域文件,而且默认为只读。

二、 安装caching-nameserver 软件包
,RHEL4系统为配置缓存域名服务器专门提供了名为caching-name server 的软件包,该软件包保存在第一张安装光盘中,系统默认没有安装,需要使用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 地址以及对应的域名。

3、localhos 正向解析
Localhost 区域的作用是对主机名称localhost 和回环地址127.0.0. 1之间进行解析,代表本机,可作本机的网卡测试用。使用的参数含义如下:
type master 表示该区域的类型为主服务器。
file 设置localhost 域的区域文件名为localhost.zone

localhost.zone 区域文件为localhost.zone ,可以查看到一条A 记录对应127.0.0.1。

4、localhos 的反向解析文件
在DNS 区域中,每个区域的正向解析必然有对应的反向解析区域,反向解析区域的作用是将IP 地址转换为对应的域名。
内容如下:
Localhost 的反向解析区域的名称是0.0.127.in-addr.arpa ,名称后缀为“.in-addr.arpa”的区域都是反向解析区域,名称中0.0.127是I P 地址127.0.0的倒置,这样的反向解析区域名称是named.conf 配置文件中的约定。

0.0.127.in-addr.arpa 区域的类型是master ,即主服务器。区域文件的名称是named.local ,该区域文件具有如下内容:
在named.local 区域文件中使用下面的记录设置了IP 地址127.0.0. 1对应的主机域名为localhost 。

四、 缓存域名服务器的启动和测试
缓存域名服务器在安装caching-nameserver 软件包不需要任何其它的配置就可以启动运行,只要这台DNS 服务器能够访问公网就可以了,使用的是那十三台根服务器,通过迭代的方式进行域名查询。
启动named 服务器。

测试缓存域名服务器,测试localhost 的正向解析和127.0.0.1的反向解析。如果能够上公网也可以测试网络上某一域名的正向解析和反向解析。
,