关于DNS服务器的一些理论知识可以参考之前的博文http://yttitan.blog.51cto.com/70821/1158218

这里可以回忆一下Windows平台下DNS服务配置的主要步骤:
    首先要创建正向查找区域,也就是这台DNS服务器要负责解析的区域,如example.com;
    然后在example.com区域中创建各种DNS记录,如最常见的主机A记录等。
Linux平台下的DNS服务配置过程也与此大体类似,只是方法不同而已。

 

Linux系统中的DNS服务器分为三种类型:
    缓存域名服务器,也称为高速缓存服务器,这种服务器里没有要负责解析的区域,只是将域名查询结果缓存到本地,以提高客户端重复查询时的速度。
    主域名服务器,就是我们最常使用的DNS服务器,要负责解析一个或几个区域,而且也可以起到缓存域名服务器的作用。
    从域名服务器,也称为辅助域名服务器,主要是作为主域名服务器的备份,所有数据都来源于主域名服务器。。
在Linux系统中安装好DNS服务之后,默认就是一台缓存域名服务器。


在Linux系统中是由一款名为BIND的软件来提供DNS功能,这是一款开源软件:

BIND默认并没有安装,可以执行“yum install bind”命令安装,(在RHEL5.5中,还必须要安装一个名叫caching-nameserver的软件包,这个安装包的主要作用就是为bind提供默认的配置文件/etc/named.conf,如果不装这个软件包,会导致服务无法启动。如果记不住软件包名字,可以执行“yum install caching*”命令安装。)

BIND对应的服务进程名为named:
    # service named start            启动服务
    # chkconfig named on            将服务设为永久启动
named默认监听TCP、UDP协议的53端口:
 其中UDP 53端口一般对所有客户机开放,以提供解析服务;
 TCP 53端口一般只对特定从域名服务器开放,提高解析记录传输通道;


BIND服务的配置文件主要有两种类型:主配置文件和区域数据文件。
主配置文件是/etc/named.conf,主要用于配置全局选项。
区域数据文件用来存放DNS服务所要负责解析的区域的相关数据,比如我们的DNS服务器要负责解析“example.com”和“ytvc.com.cn”这两个区域,那么就要为每个区域生成一个区域数据文件,每个区域中的DNS记录也就存放在相应的区域数据文件里。区域数据文件默认都保存在 /var/named/ 目录中。

 

首先我们来看一下主配置文件:
    # vim /etc/named.conf
主配置文件中主要包括全局配置和区域配置两部分。

(1)全局配置
全局配置部分包含在如“options{};”的大括号中。
062402921.jpg

全局配置中比较重要的几个设置项目:

  •  listen-on port 53 { 127.0.0.1; };
    named服务监听的端口号以及IP地址。对于端口号不建议修改,但是IP地址默认是127.0.0.1,从这个回环地址上是监听不到任何客户端请求的,因而这里需要改成DNS服务器的静态IP,如“listen-on port 53 {192.168.11.61; };”,或者是改成“any”,如“listen-on port 53 {any; };”,表示可以从该服务器的任何一个IP地址上进行监听。(注意,最后的引号不能省略)

  •  allow-query { localhost; };
    允许DNS查询的客户端地址。默认值localhost表示只接受本地查询,这很明显不符合要求,需要将之修改成指定的IP网段,如“allow-query { 192.168.11.0/24; };”,或是改成“any”,如“allow-query { any; };”,表示可以接收所有主机的DNS查询请求。 

  • recursion yes;
    允许递归查询,这一项一般不用修改。 

  • dnssec-validation yes;
    在DNS查询的过程是否加密,为了提高效率,这一项一般都要改为no,如“dnssec-validation no;”。

 

(2)区域配置
区域配置部分则使用“zone……{};”的形式:
062823543.jpg

  •  zone “.”
    表示这个区域的名称是“.”,“.”就是根域,也就是整个域名系统的最高级。

  •  type hint;
    表示区域类型。hint表示根域,master表示主域,slave表示从域。对于我们自己创建的区域,类型一般都是master。

  •  file “named.ca”;
    指定根域的区域配置文件。区域配置文件默认保存在/var/named/ 目录中,所以这里的配置文件就是/var/named/named.ca。
    我们可以查看一下这个配置文件:
    # cat /var/named/named.ca

    062951298.jpg

其中主要也是列出了19台根服务器的地址(除了原先的13台根服务器之外,又增加了6台使用Ipv6地址的根服务器)。