您的位置:首页 > 其它

构建DNS缓存、主从域名服务器

2018-01-17 15:15 190 查看
前言:DNS(DomainNameSystem)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务的命名系统。
现如今大部分网站都有域名,比IP访问网站更加直观,而且更容易被用户记住。
作用:将相关的域名翻译成网络能接受的IP地址

搭建缓存域名服务器

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





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





上述配置内容中,除了directory项通常会保留以外,其他的配置项都可以省略。若不指定listen-on配置项时,named默认在所有接口的UDP 53端口监听服务;不指定allow-query配置项时,默认会响应所有客户机的查询请求。dump-file、statistics-file、memstatistics-file等配置项用于指定缓存数据库文件、状态统计文件的位置。添加了“zone “.” in { };”部分的根区域设置,尽管缓存服务器并没有自主控制的区域数据,但可以向根服务器进行迭代查询,并将最终获得的解析结果反馈给客户。
有时候为了提高解析效率,也可以不向根分区查询,而是将来自客户端的查询请求转发给国内电信运营商的DNS服务器(如北京的202.106.0.20、202.106.148.1),缓存服务器收到返回的查询结果后再传递给客户端。只要去掉“zone “.” in {……};”的设置,并在全局配置中正确设置forwarders参数即可实现该功能。如下所示:
[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {
…… //省略部分内容
Forwarders { 202.106.0.20;202.106.148.1 };
};
3.确认根域的区域数据库文件named.ca
根区域的区域数据库文件默认位于文件/var/named/chroot/var/named/named.ca中,该文件记录了Internet中13台根域服务器的域名和IP地址等相关信息。如图所示:





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



缓存服务器搭建成功!
搭建主域名服务器



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











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





当不需要建立从域名服务器时,上述配置内容中的“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配置项、SOA(Start Of Authority,授权信息开始)记录、地址解析记录。文件中的注释信息以分号“;”开始。如图所示:





上述配置内容中,时间单位默认为秒,也可以使用以下单位:M(分)、H(时)、W(周)、D(天)。文件中的“@”符号表示当前的DNS区域名,相当于“benet.com.”,“admin.benet.com.”表示域管理员的电子邮箱地址(由于“@”符号已有其他含义,因此将邮件地址中的“@”用“.”代替)。SOA记录中的更新序列号用来同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。[url=mailto:br/>其中,NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或者Tab制表位。
其中,NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或者Tab制表位。



在反向区域数据文件中,不会用到A地址记录,而是使用PTR指针(Point)的记录。使用PTR记录时,第一列中只需要指明对应IP地址的“主机地址”部分即可,如“1”、“2”等,系统在查找地址记录时会自动将当前反向域的网络地址作为前缀。
在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录中都会自动将当前的域名作为后缀。
修改完主配置文件以后,可以执行named-checkconfig命令对named.conf文件进行语法检查。如果文件中没有语法错误,该命令将不给出任何提示;反之,则会给出相应的提示信息,只要根据出错信息提示修正文件中的错误即可。带“-z”选项的named-checkconfig命令还可以尝试加载主配置文件中对应的区域数据库文件,并检查该文件是否存在问题。如图所示:



关于named.conf文件中各种配置项的详细说明,可以执行“man named.conf”查看手册页,也可参考配置样本文件/usr/share/doc/bind-9.3.6/sample/etc/named.conf。
修改完区域数据库文件以后,可以执行named-checkzone命令对该文件进行语法检查。依次指定区域名称、数据文件名作为参数。如果文件中没有语法错误,系统将给出“OK”的提示信息。如图所示:



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



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







主域名服务器已搭建好!
搭建从域名服务器
具体步骤:
1.确认本机的网络地址、主机映射、默认DNS服务器地址
将从域名服务器的IP地址设为173.16.16.6,主机名设为ns2.benet.com,通过修改网络配置文件的方式进行。另外,主机映射文件/etc/hosts和DNS解析文件/etc/resolv.conf的内容与主服务器中的内容相同。
2.建立主配置文件named.conf
在从域名服务器中,named.conf文件的内容与主服务器的内容大部分相同,只是不需要再设置“allow-transfer ……”;更关键的一点是,zone部分的区域类型应设置为“slave”,并添加“masters { };”语句来指定主域名服务器的地址。如图所示:





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



3.启动named服务,查看区域数据文件是否下载成功
在从域名服务器中执行“service named start”命令以启动named服务。



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



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



从域名服务器已搭建好!
Linux清除缓存命令:rndc flush
Linux客户端没有缓存
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息