DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析。

正向解析:根据域名查询IP地址,即将指定的域名解析为相应的IP地址。

反向解析:根据IP地址查询域名,即将指定的IP地址解析为相应的域名。

每一台DNS服务器都只负责一个有效的范围(一个域或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone(区域)”。根据地址解析的方向不同,DNS区域相应地分为正向区域和反向区域。根据DNS服务器所管理区域的不同,可以分为不同类型的。

153251661.jpg

从服务器的角色只是针对某一个特定的DNS区域来说,DNS可以是主DNS服务器,同时可以为从DNS服务器,也可以同时为缓存DNS服务器。


BIND的安装和控制

1、BIND的相关软件

bind-9.3.6-4.P1.el5_4.2:提供了域名服务器的主要程序及相关文件。

bind-utils-9.3.6-4.P1.el5_4.2:提供了对DNS服务器的测试工具程序,如nslookup等。

bind-libs-9.3.6-4.P1.el5_4.2:提供了bind、bind-utils需要使用的库函数。

bind-chroot-9.3.6-4.P1.el5_4.2:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件作为BIND的根目录),以提高安全性。

caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm:提供构建缓存域名服务器的基本配置文件,这些文件在构建主、从域名服务器时也可以作为参考。

2、安装BIND软件

因为BIND相关的软件有很多个,使用rpm命令安装时需要注意依赖关系,所以在这里我们使用yum安装。

[root@localhost /]#yum -y install bind*              //安装BIND相关的软件包

[root@localhost /]#yum -y install caching*        //安装缓存域名服务器的软件包


BIND服务的配置文件

使用BIND软件构件域名服务时,主要涉及两种类型的配置文件:主配置文件区域数据文件。其中,主配置文件用于设置named服务的全局选项,注册域及访问控制等各种运行参数;区域数据文件用于存放某个DNS区域的地址解析记录(正向或反向记录)。

1、主配置文件

主配置文件named.conf通常位于/etc/目录下,如果安装了bind-chroot-9.3.6-4.P1.el5_4.2软件包,则主配置文件默认位于/etc/named/chroot/etc/目录下,需要用户手工建立。在named.conf文件中,主要包括全局配置,区域配置两个部分,每一条配置记录的行尾以分好“;”表示结束。

全局配置部分:

options       {

           listen-on port 53 { 173.16.16.1; };              //监听地址和端口

           directory  "/var/named";                           //区域数据文件的默认存放位置

           allow-query { 192.168.1.0/24; 173.16.16.0/24; };     //允许使用本DNS服务器的网段

};

在上述配置内容中,除了director项通常会保留以外,其他的配置项都可以省略。若不指定listen-on配置项时,named默认在所有接口的UDP53端口监听服务;不指定allow-query配置项时,默认会响应所有客户机的查询请求。

区域配置部分:

zone "cshbk.com" IN {                          //正向“cshbk.com”区域

       type master;                                 //类型为主区域

       file "benet.com.zone";                   //区域数据文件为cshbk.com.zone

       allow-transfer { 173.16.16.2; };      //允许下载的从服务器地址

};

zone "16.16.173.in-addr.arpa" IN {        //反向“173.16.16.0/24”区域

       type master;                                   //类型为主区域

       file "173.16.16.arpa";                     //区域数据文件为173.16.16.arpa

       allow-transfer { 173.16.16.2; };     //允许下载的从服务器地址

};

在上述配置内容中,有几个地址需要注意:

每个zone区域都是可选的(包括根域,回环域,反向域),具体根据实际需要而定,zone配置部分的“IN”关键字也可以省略。

反向区域的名称有倒序的网络地址和“.in-addr.arpa”组合而成。

file配置项用于指定实际的区域数据文件,文件名称由管理员自行设置。

区域配置中的部分参数(如allow-transfer)也可以放在全局配置里。

由于DNS服务器可以为多个区域提供解析,因此在named.conf文件中可以有多个zone配置字段。

修改完主配置文件以后,可以执行named-checkconf命令对named.conf文件进行语法检查。使用“-z”选项还可以尝试加载区域文件。如果检查时出现错误语法,只需要根据错误提示修改即可。

[root@localhost /]#named-checkconf -z /var/named/chroot/etc/named.conf


2、区域配置文件

区域配置文件通常位于/var/named/目录下,如果安装了bind-chroot-9.3.6-4.P1.el5_4.2软件包,则主配置文件默认位于/etc/named/chroot/var/named/目录下,需要用户手工建立。区域配置文件分为正向区域文件和反向区域文件,其配置基本相同。

TTL配置及SOA记录部分:

$TTL 86400                //有效解析记录的生存周期

@    IN    SOA    benet.com.    admin.benet.com (    //SOA标记,域名,管理邮箱

       2013052020     //更新序列号,可以是10位以内的整数

       4H                     //刷新时间,从新下载地址数据的间隔

       15M                  //重试延时,下载失败后的重试间隔

       1W                   //失效时间,超过改时间仍无法下载则放弃

       1D                    //无效解析记录的生存周期

)

上述配置内容中第一行的TTL配置用于设置默认的生存周期,即缓存解析结果的有效时间。SOA记录部分用于设置区域名称,管理邮箱,以及为从域名服务指定更新参数。

地址解析记录部分:

174534984.jpg

上述配置内容中,用以下四种常见的地址解析记录。

NS域名服务器:记录当前区域的DNS服务器的主机地址。

MX邮件交换:记录当前区域的邮件服务器的主机地址,数字10表示(当有多个MX记录时)选择邮件服务器的优先级,数字越大优先级越低。

A地址:记录正向解析条目。

CNAME别名:记录某一个正向解析条目的其他名称。

在反向区域文件中,不会用到A地址记录,而是使用PTR指针记录,使用PTR记录时,第一列只需要指明对应IP地址的“主机地址”部分即可。

172437633.jpg

注意:在区域文件中当使用完整的FQDN地址时,务必记得末尾的点号“.”不能省略。

当一台服务器需要同时承载某个DNS区域内的许多个不同的域名时,可以再区域文件的最后一行添加泛域名解析记录,即使用“*”以匹配任意主机名。

*    IN    A    173.16.16.10

当一个域名对应多个IP进行基于域名的负载均衡时,可以在区域文件的最后添加基于这个域名的多个IP,实现轮询负载。

www    IN    A    173.16.16.100

www    IN    A    173.16.16.101

www    IN    A    173.16.16.102