BIND域名服务基础
DNS系统的作用及类型
DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。
反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。反向解析不是很常用。
DNS系统可以分为不同的类型,常见的几种类型如下:
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指区域中唯一存在的权威服务器,官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。
BIND的安装控制
BIND不是唯一能够提供域名服务的DNS服务程序,但它却是应用最为广泛的。
安装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服务的根目录),以提高安全性。
可用yum方式安装这些软件包,如下操作:
使用BIND构建域名服务器
构建缓存域名服务器
1、建立主配置文件named.conf
主配置文件named.conf通常位于/etc/目录下,若使用范本文本创建named.conf,应注意修改和删除默认的监听设备,查询控制,以便能够为局域网段的客户机提供服务。首先使用vi编辑器,进入/etc/named.conf进行编辑,如下操作示例:
上述配置内容中,dump-file、statistics-file 等配置项用于指定缓存数据库文件、状态统计文件的位置,每一条配置记录的行尾以分号“;表示结束,以“#”号或""/"开始的部分表示注释文字。
2、确认根域的区域数据文件named.ca
根区域的区域数据文件默认位于文件/var/named/named.ca,该文件记录了Internet中13台根域服务器的域名和IP地址等相关信息。
3、启动named服务
执行“systemctl start named”命令启动named服务,并通过netstat命令确认named服务的端口监听状态,若服务启动失败,则可在/var/log/messages文件目录中的日志记录排除错误,然后重启服务即可。然后关闭防火墙,如下操作:
4、验证缓存域名服务器
打开另一台LInux客户机,将首选DNS服务器的地址设为192.168.10.101,同样使用vi编辑器修改文件"/etc/sysconfig/network-scripts/ifcfg-ens33",然后保存并退出,重启该服务,之后输入“nslookup www.baidu.com”进行解析,看其是否能够获得该域名对应的IP地址。具体操作如下示例:
构建主域名服务器
案例概述:
主,从域名服务器均位于Internet中,所负责的DNS区域命名为“”。
主服务器的IP地址为192.168.10.101 主机名为ns1.。
从服务器的IP地址为192.168.10.102 主机名为ns2.。
在bdqn,com区域中,除了NS记录外,提供的解析记录还包括以下内容:
网站服务器www., IP地址为192.168.10.105
设置域的泛域名解析“*“,IP地址为192.168.10.106
主配置文件:
同样进入/etc/named.conf编辑,先将缓存域名服务器的内容用“#”注释掉,再添加新内容。接着保存并退出,如下操作示例:
每个 zone 区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定,zone 配置部分的“IN"关键字也可以省略。
反向区域的名称由倒序的网络地址和“.in-addr.arpa"组合而成。例如,对于192.168.1.0/24 网段,其反向区域名称表示为“1.168.192.in-addr.arpa”
file 配置项用于指定实际的区域数据文件,文件名称由管理员自行设置。
区域配置中的部分参数(如 allow-transfer)也可以放在全局配置中。
修改完主配置文件后可以执行“named-checkconf”命令对named.conf文件进行语法检查。如下操作:
区域数据配置文件:
区域数据配置文件通常位于/var/named目录下,每个区域数据文件对应一个DNS解析区域,文件名及内容由该域的管理员自行设置。
在区域数据文件中,主要包括 TTL(Time To Live,生存时间)配置项、SOA(Start OfAuthority,授权信息开始)记录、地址解析记录。文件中的注释信息以“;”(分号)开始。如下图所示:
由于区域文件比较负责,而/var/named目录下,named.localhost中就是大致模板,因此将它拷贝出来,再进行修改。如下图示例:
更改正向解析的文件内容:
STTL 86400:有效解析记录的生存周期
@ IN SOA bdgn.com.admin.bdgn.com.(:SOA 标记、域名、管理邮箱
2011030501:更新序列号,可以是 10 位以内的整数
3H:刷新时间,重新下载地址数据的间隔
15M:重试延时,下载失败后的重试间隔
4W:失效时间,超过该时间仍无法下载则放弃
1D:无效解析记录的生存周期
NS(Name Server,域名服务器):记录当前区域的 DNS 服务器的主机地址。
MX(Mail Exchange,邮件交换):记录当前区域的邮件服务器的主机地址,数字10表示(当有多个 MX记录时)选择邮件服务器的优先级,数字越大,优先级越低。
A(Address,地址):记录正向解析条目。
接着执行”name-checkzone“命令解析文件语法是否正确:
修改文件的属组,使用”ll“命令查询,接着使用”chown”命令进行文件权限修改:
更改反向解析的内容:
接着查询文件语法是否正确:
接着同样修改文件属组为“named”。然后重启该服务。接着进行验证,再打开一台Linux客户机进行正反向解析验证:
构建从域名服务器
建立主配置文件named.conf:
在从域名服务器中,named.conf 文件的内容与主服务器的内容大部分相同,只是不需要再设置“allow-transfer ……”;更关键的一点是,zone 部分的区域类型应设置为“slave”,并添加“masters {};"语句来指定主域名服务器的地址,打开IP地址192.168.10.102的客户机,关闭防火墙,同样先安装bind软件包。具体操作如下:
接着重启该服务,然后打开一台Linux客户机,将网卡内DNS修改为192.168.10.102.之后重启network。然后进行验证。