DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析。
正向解析:根据域名查询IP地址,即将指定的域名解析为相应的IP地址。
反向解析:根据IP地址查询域名,即将指定的IP地址解析为相应的域名。
每一台DNS服务器都只负责一个有效的范围(一个域或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone(区域)”。根据地址解析的方向不同,DNS区域相应地分为正向区域和反向区域。根据DNS服务器所管理区域的不同,可以分为不同类型的。
从服务器的角色只是针对某一个特定的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记录部分用于设置区域名称,管理邮箱,以及为从域名服务指定更新参数。
地址解析记录部分:
上述配置内容中,用以下四种常见的地址解析记录。
NS域名服务器:记录当前区域的DNS服务器的主机地址。
MX邮件交换:记录当前区域的邮件服务器的主机地址,数字10表示(当有多个MX记录时)选择邮件服务器的优先级,数字越大优先级越低。
A地址:记录正向解析条目。
CNAME别名:记录某一个正向解析条目的其他名称。
在反向区域文件中,不会用到A地址记录,而是使用PTR指针记录,使用PTR记录时,第一列只需要指明对应IP地址的“主机地址”部分即可。
注意:在区域文件中当使用完整的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
本文出自 “邓奇的Blog” 博客,谢绝转载!