DNS域名解析服务

搭建缓存域名服务器

具体步骤:

1. 插入安装光盘并挂载,然后安装bind软件包及相关的软件包。如图所示:

wKioL1jndyuggeetAAAReToKdMw642.png-wh_50 

2. 编辑主配置文件

主配置文件named.conf通常位于/etc/目录下,如果安装了bind-chroot软件包,则主配置文件默认位于/var/named/chroot/etc/目录下,需要用户手工建立。在named.conf文件中,主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或“//”开始的部分表示注释文件(大段注释可以使用“/*……*/”的格式)。如图所示:

wKiom1jnd0Xho1NrAAAD1uIXyHk181.png-wh_50 

DNS服务的搭建以及反向解析_第1张图片 

上述配置内容中,除了directory项通常会保留以外,其他的配置项都可以省略。若不指定listen-on配置项时,named默认在所有接口的UDP 53端口监听服务;不指定allow-query配置项时,默认会响应所有客户机的查询请求。dump-filestatistics-filememstatistics-file等配置项用于指定缓存数据库文件、状态统计文件的位置。添加了“zone .in  { }”部分的根区域设置,尽管缓存服务器并没有自主控制的区域数据,但可以向根服务器进行迭代查询,并将最终获得的解析结果反馈给客户。

有时候为了提高解析效率,也可以不向根分区查询,而是将来自客户端的查询请求转发给国内电信运营商的DNS服务器(如北京的202.106.0.20202.106.148.1),缓存服务器收到返回的查询结果后再传递给客户端。只要去掉“zone .in  {……}”的设置,并在全局配置中正确设置forwarders参数即可实现该功能。如下所示:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf

options {

…… //省略部分内容

Forwarders { 202.106.0.20202.106.148.1 }

}

3. 确认根域的区域数据库文件named.ca

根区域的区域数据库文件默认位于文件/var/named/chroot/var/named/named.ca中,该文件记录了Internet13台根域服务器的域名和IP地址等相关信息。如图所示:

DNS服务的搭建以及反向解析_第2张图片DNS服务的搭建以及反向解析_第3张图片 

4. 启动named服务

执行service named start”命令,启动named服务,并通过netstat命令确认named服务的端口监听状态。若服务启动失败或发现没有正常监听UDP 53端口,可以根据错误提示信息(或者/var/log/messages文件中的日志记录)排除错误,然后再重启服务即可。如图所示:

wKioL1jnd6STyb2xAAANS399HNA210.png-wh_50 

缓存服务器搭建成功!

搭建主域名服务器

具体步骤:

1. 设置本机的IP地址、主机名称,通过修改网络配置文件的方式进行。另外,为了提高域名解析效率,建议将两个DNS服务器的地址映射直接写入到/etc/hosts文件中,并在/etc/resolv.conf文件中指定两个DNS服务器的地址。如图所示:

wKioL1jnd8mwBslAAAAFx49r3xM946.png-wh_50wKiom1jnd92hydhAAAADEZtzyfk775.png-wh_50wKioL1jnd_SxNCqXAAAOF12_jUg489.png-wh_50wKiom1jneAuCgjl5AAADP20JCC4367.png-wh_50wKioL1jneB6CxNi8AAAFflfKkbQ092.png-wh_50 

2. 建立主配置文件named.conf

新创建的named.conf主配置文件,由于只需要提供benet.com域的正向解析和173.16.16.0/24网段的反向解析,因此相应的添加这两个区域即可。根区域、回环域等其他配置内容可以省略。如图所示:

 

DNS服务的搭建以及反向解析_第4张图片 

当不需要建立从域名服务器时,上述配置内容中的allow-transfer……”部分可以不添加;当不需要提供反向解析,“zone 16.16.173.in-addr.arpa”……”部分也可以去掉。

3. 建立正、反向区域数据文件

根据named.conf中的zone区域设置,分别建立正向区域数据文件benet.com.zone、反向区域数据文件173.16.16.arpa。配置内容可以参考回环域的区域数据文件/var/named/chroot/var/named/localdomain.zone,并根据实际情况进行修改。

区域数据配置文件通常位于/var/named/目录下。如果安装了bind-chroot软件包,则默认位于/var/named/chroot/var/named/目录下,需要手工建立。每个区域数据文件对应一个DNS解析区域,文件名及内容由该域的管理员自行设置。

在区域数据文件中,主要包括TTL配置项、SOAStart Of Authority,授权信息开始)记录、地址解析记录。文件中的注释信息以分号“;”开始。如图所示:

wKioL1jneGCDU3jUAAAS3280qBU885.png-wh_50DNS服务的搭建以及反向解析_第5张图片 

上述配置内容中,时间单位默认为秒,也可以使用以下单位:M(分)、H(时)、W(周)、D(天)。文件中的“@”符号表示当前的DNS区域名,相当于“benet.com.”,“admin.benet.com.”表示域管理员的电子邮箱地址(由于“@”符号已有其他含义,因此将邮件地址中的“@”用“.”代替)。SOA记录中的更新序列号用来同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。

其中,NSMX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或者Tab制表位。

 

在反向区域数据文件中,不会用到A地址记录,而是使用PTR指针(Point)的记录。使用PTR记录时,第一列中只需要指明对应IP地址的“主机地址”部分即可,如“1”、“2”等,系统在查找地址记录时会自动将当前反向域的网络地址作为前缀。

在区域数据配置文件中,凡是不以点号.”结尾的主机地址,系统在查找地址记录中都会自动将当前的域名作为后缀。

修改完主配置文件以后,可以执行named-checkconfig命令对named.conf文件进行语法检查。如果文件中没有语法错误,该命令将不给出任何提示;反之,则会给出相应的提示信息,只要根据出错信息提示修正文件中的错误即可。带“-z”选项的named-checkconfig命令还可以尝试加载主配置文件中对应的区域数据库文件,并检查该文件是否存在问题。如图所示:

wKiom1jneLbjW3mqAAAFLeM81P0969.png-wh_50 

关于named.conf文件中各种配置项的详细说明,可以执行“man named.conf”查看手册页,也可参考配置样本文件/usr/share/doc/bind-9.3.6/sample/etc/named.conf

修改完区域数据库文件以后,可以执行named-checkzone命令对该文件进行语法检查。依次指定区域名称、数据文件名作为参数。如果文件中没有语法错误,系统将给出OK”的提示信息。如图所示:

wKioL1jneMmBf9Q2AAAKkVvnpy4921.png-wh_50 

执行service named start”命令以启动named服务,如果之前named服务已经在运行,也可以重启服务或重载配置。如图所示:

wKiom1jneO6zimcPAAAGEP84dKg665.png-wh_50 

在客户端将DNS服务器指向173.16.16.5(主域名服务器的IP地址),使用nslookup命令验证DNS查询结果。如图所示:

wKiom1jneQPC3CCAAAAQTz0KASM530.png-wh_50wKioL1jneRfyG3dVAAAQtB73yDU279.png-wh_50wKioL1jneSmjtR4MAAAOp6xmKwc922.png-wh_50 

主域名服务器已搭建好!

搭建从域名服务器

具体步骤:

1. 确认本机的网络地址、主机映射、默认DNS服务器地址

将从域名服务器的IP地址设为173.16.16.6,主机名设为ns2.benet.com,通过修改网络配置文件的方式进行。另外,主机映射文件/etc/hostsDNS解析文件/etc/resolv.conf的内容与主服务器中的内容相同。

2. 建立主配置文件named.conf

在从域名服务器中,named.conf文件的内容与主服务器的内容大部分相同,只是不需要再设置“allow-transfer ……”;更关键的一点是,zone部分的区域类型应设置为“slave”,并添加“masters { };”语句来指定主域名服务器的地址。如图所示:

wKiom1jneUChiuO-AAADurGbeHc613.png-wh_50 

DNS服务的搭建以及反向解析_第6张图片 

由于从服务器的区域数据文件是从主服务器中下载而来,因此该文件保存的名称可以自行定义,不用非得与主服务器中的一致。但需要注意的是,named”服务默认以名为“named”的用户身份运行,因此要确认named用户对存放目录有写入权限。

 

3. 启动named服务,查看区域数据文件是否下载成功

在从域名服务器中执行service named start”命令以启动named服务。

wKioL1jneXei7VQqAAAGTGMruIM664.png-wh_50 

若配置无误,则named将会从主域名服务器中自动下载指定的区域数据文件,并保存到“slaves/”目录下。另外,通过系统日志文件/var/log/messages也可以观察到下载区域数据文件的过程。

wKiom1jneY2CUtooAAAL3ScVSIQ998.png-wh_50 

4. 验证从域名服务器

验证从域名服务器时,只需要将客户端的首选DNS服务器地址设为173.16.16.6(从域名服务器的IP地址),使用nslookup命令进行正常测试即可。如图所示:

wKiom1jneaWzrlHfAAAKBUmSOzQ974.png-wh_50 

从域名服务器已搭建好!

Linux清除缓存命令:rndc  flush

Linux客户端没有缓存