一.BIND域名服务基础
1.DNS系统的作用及类型
整个
Internet
大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件
等服务器都使用了域名形式的地址,如
www.google.com
、
mail.163.com
等。很显然这种地
址形式要比使用
64.233.189.147
、
202.108.33.74
的
IP
地址形式更加直观,且更容易被用
户记住。
DNS
系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与
IP
地
址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
正向解析:根据域名查 IP 地址,即将指定的域名解析为相对应的 IP 地址。域名的
正向解析是
DNS
服务器最基本的功能,也是最常用的功能。
反向解析:根据 IP
地址查域名,即将指定的
IP
地址解析为相对应的域名。域名的
反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。
实际上,每一台
DNS
服务器都只负责管理一个有限范围(一个或几个域)内的主机域
名和
IP
地址的对应关系,这些特定的
DNS
域或
IP
地址段称为
zone
(区域)。根据地址解
析的方向不同,
DNS
区域相应地分为正向区域(包含域名到
IP
地址的解析记录)和反向区
域(包含
IP
地址到域名的解析记录)。
根据所管理的区域地址数据的来源不同,
DNS
系统可以分为不同的类型。在同一台
DNS
服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下。
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。

主域名服务器:维护某一个特定 DNS
区域的地址数据库,对其中的解析记录具有
自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务
器时,需要自行建立所负责区域的地址数据文件。

从域名服务器:与主域名服务器提供完全相同的 DNS
解析服务,通常用于
DNS
服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询
的结果都是一样的。关键区别在于,从域名服务器提供的解析结果不是由自己决定
的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位
置,以便服务器能自动同步区域的地址数据库。

以上所述主、从服务器的角色只是针对某一个特定的
DNS
区域来说的。例如,同一台
DNS
服务器,可以是
“.chinaunix.net”
区域的主域名服务器,同时也可以是
“.cublog.cn”
区域
的从域名服务器。
2.BIND的安装和控制
BIND
不是唯一能够提供域名服务的
DNS
服务程序,但它却是应用最为广泛的,
BIND
可以运行在大多数
Linux/UNIX
主机中。其官方站点位于
https://www.isc.org/
。
(1)安装BIND软件
在
CentOS
系统中,系统光盘自带了
BIND
服务的安装文件,主要包括以下几个
软件包。
bind-9.9.4-37.el7.x86_64.rpm
。
bind-utils-9.9.4-37.el7.x86_64.rpm
。
bind-libs-9.9.4-37.el7.x86_64.rpm
。
bind-chroot-9.9.4-37.el7.x86_64.rpm
。
各软件包的主要作用如下。
bind
:提供了域名服务的主要程序及相关文件。
bind-utils
:提供了对
DNS
服务器的测试工具程序,如
nslookup
等。
bind-libs
:提供了
bind
、
bind-utils
需要使用的库函数。
bind-chroot
:为
BIND
服务提供一个伪装的根目录(将
/var/named/chroot/
文件夹
作为
BIND
服务的根目录),以提高安全性。
默认已安装
bind-utils
和
bind-libs
,因此只需要安装
bind
和 bind-chroot 即可。

(2).BIND服务控制
BIND
软件包安装完毕以后,会自动增加一个名为
named
的系统服务,通过
systemctl
工具可以控制
DNS
域名服务的运行。例如,执行以下操作可以查询
named
服务的运行状
态。

3.BIND服务的配置文件
使用
BIND
软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数
据文件。其中,主配置文件用于设置
named
服务的全局选项、注册区域及访问控制等各种
运行参数;区域数据文件用于存放某个
DNS
区域的地址解析记录(正向记录或反向记
录)。
(1)主配置文件
主配置文件
named.conf
通常位于
/etc/
目录下,在
named.conf
文件中,主要包括全局
配置、区域配置两个部分,每一条配置记录的行尾以分号
“;”
表示结束,以
“#”
号或
“//”
开始的
部分表示注释文字(大段注释可以使用
“/* …… */”
的格式)。
①全局配置部分
全局配置参数包括在形如
“options { };”
的大括号中,如可以设置监听的地址和端口、区
域数据文件存放的目录、允许哪些客户机查询等。

上述配置内容中,除了
directory 配置项通常会保留以外,其他的配置项都可以省略。
若不指定
listen-on
配置项,则
named
默认在所有接口的
UDP 53
端口监听服务;若不指定
allow-query
配置项,则默认会响应所有客户机的查询请求。
注:DNS工作在两种协议下:
(1)UDP:53;递归查询,当域名过程会用TCP递归查询
客户端发送解析请求给服务器
(2)TCP:53;迭代查询
主从DNS服务器
DNS服务器转发解析给另一个DNS服务器
(1)UDP:53;递归查询,当域名过程会用TCP递归查询
客户端发送解析请求给服务器
(2)TCP:53;迭代查询
主从DNS服务器
DNS服务器转发解析给另一个DNS服务器
全局配置的各项参数

options:选项
listen-on :监听
directory:目录相关
dump-file:转储文件
directory:目录相关
dump-file:转储文件
statistics-file:状态统计文件
memstatistics-file :内存相关文件
recursing-file :存储相关
recursing-file :存储相关
secroots-file: 递归查询放置的文件
allow-query:允许查询