DNS服务器全面解析--转
引用地址:http://pangge.blog.51cto.com/6013757/1273087 基础认知篇 DNS服务的概述 DNS是Domain Name System 的缩写,即域名系统。DNS服务主要功能是将域名转换为相应的IP地址,提供DNS服务的系统就是DNS服务器。形如它能够把www.baidu.com这样的域名转换为61.135.169.125这样的IP地址;没有DNS,浏览baidu.com这个网站时,就必须用61.135.169.125这么难记的数字来访问。 DNS服务器可以分为3种,即主域名服务器(Master DNS)、辅助域名服务器(Slave DNS)、缓存服务器。 uMaster DNS:本身提供DNS 服务,并且本身含有区域数据文件。 uSlave DNS:和Master一起提供DNS服务,当Master服务器上的配置信息修改的时候,会同步更新到Slave服务器上 u缓存服务器:没有自己的区域数据文件,只是帮助客户端向外部DNS请求查询,然后将查询的结果保存到它的缓存中。 在linux系统下DNS服务的功能是通过bind软件实现的,几乎每个linux发行版都自带了这个DNS服务软件。下面将具体讲述DNS服务的安装、配置和使用。 服务器搭建篇 ?第一部分:主DNS服务的搭建实现(包含知识点阐述) 环境介绍:CentOS6.4-x86_64 ? ? bind版本:bind 9.8.2-0.17.rc1.el6 一.安装bind软件: CentOS系统下安装bind时,一般都需要同时安装bind-utils、bind-chroot、ypbind、bind-libs和caching-nameserver几个支持bind的软件包。 注:bind-chroot:安装上这个包之后让named进程有限的活动在/var/named/chroot/中防止黑客攻击导致服务器的崩溃。这里就不安装了,因为安装之后除了路径改变之后其他均不变。所以为了更好的熟悉过程就暂时不装了。 上面的几个软件包都可以从系统光盘中查找,可以通过指向yum源进行安装: [root@localhost ~]#yum install bind ?
|
?
二.配置DNS服务
l?准备工作:
dig(域信息搜索器)命令是个用于询问 DNS 域名服务器的灵活的工具。他执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为DNS 问题的故障诊断,因为他灵活性好、易用、输出清楚。虽然通常情况下 dig 使用命令行参数,但他也能够按批处理模式从文档读取搜索请求。不同于早期版本,dig 的 BIND9 实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试 /etc/resolv.conf 中列举的任何服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行 NS 查询。
dig命令格式:
主配置文件:named.conf,主要作用是定义区域,定义各区域的全局配置,定义视图,定义日志,注意每个完整语句都要使用分号结尾,否则视为语法错误。
bind安装完毕之后,主程序目录默认为/var/named。
?
1).named.conf文件详解
??
???????
?
?
?
?
?
?
2).定义本地区域文件解析
首先更改/etc/named.rfc1912.zones主区域配置文件,在文件尾部新增下面一段内容:
?
?
?
? ?上面这段设置是用zone关键字来定义的一个正向区域,对应的域名为magedu.com。在这里type类型有三种,他们分别为master、slave、hint,含义如下:
? ? master:表示定义的主域名服务器
? ? slave:表示定义的是辅助域名服务器
? ? hint:表示是互联网中的根域名服务器
? ?file用来指定存放DNS记录的文件(一般都是区域名称.zone),allow-update定义是否允许客户主机或服务器自行更新DNS记录,上面指定的这个正向区域不允许更新DNS记录。
?
?
?
?
3).定义区域数据文件:
[root@localhost ~]# cd /var/named/ ? ? ? ? ? ? ? ? #切换到区域文件存放目录
下面我们分析一下我们已经设定好的magedu.com正向区域数据文件的格式和含义:
可以看出,区域数据文件的内容很简单。
第一行是一个TTL设定,定义区域数据文件里面的各项记录的宏,缺少此行不影响使用,但是会出现警告信息。
第二行是一个SOA记录的设定,“@“代表相应的域名,也就是在/etc/named.rfc1912.zones,如在这里表示magedu.com,IN表示后面的数据使用的是Internet标准。SOA表示目前区域授权开始。每一个区域数据文件只能有一个SOA,不能重复,并且必须是所负责的zone中第一个”记录“。在SOA后面分别指定这个区域的授权主机名称和管理者的邮箱。
注:授权主机名和管理员信箱后面都要有一个”.”。由于”@”在区域数据文件中有其他含义,因此管理员邮箱地址中用”.”代替“@“符号。
接下来包含在括弧内的5组数字是作为服务器同步信息而设置的,含义如下:
第一段表示配置文件的修改版本,格式是年月日加上修改的次数,每次修改这个配置文件时都应该修改这个数值,因为当DNS进行信息同步时,会比较这个数值的值。如果这个数值比自身的数值大,就进行更新,否则忽略更新。(这个设置很重要,如果修改区域数据后没有更新该值,那么所做的更改就不会同步到其他DNS服务器)
第二段表示用来设定DNS服务器进行同步的间隔时间又称刷新时间。只通知给本区域解析库文件中定义NS记录的所有主机;
第三段表示同步更新失败之后,在进行重试的间隔时间。
第四段表示同步更新失败之后,多长时间清除对应的记录,又称过期时间
第五段表示否定的TTL值
接下来是对域名解析的具体设置,第1列表示不同的主机域名,但是省略了后面的域信息(若为空白表示与上面域名相同)。例如:”www”其实是www.magedu.com等。“IN“后面的指令含义说明如下:
NS:用来定义这个主机是个域名服务器,是个区域名称
MX:定义邮件服务器,这里需要定义优先级的哦!这里定义的交换级别为10
A:定义了一个A记录,即域名到IP的记录
CNAME:定义了域名的别名
?
定义反向区域文件
分析:可以看出,反向区域文件基本结构和正向区域数据文件基本完全相同,只不过这里多出了一个PTR选项。PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息。最后四行的第一列表示是主机的IP地址,只不过省略了网络地址部分,系统会自动补全,如20对应的是172.16.18.20.
至此,DNS文件配置部分已经基本配置完成,从过程可以看出DNS配置文件对格式的要求非常严格。因此,在以后的配置中要格外的小心。
?
4).定义区域文件的权限关系:
在这里我们通过编辑创建的magedu.com.zone文件,然后将该文件的权限属组更改成系统默认设定权限,这个授权很重要,要不然DNS无法正常工作。
这里的named属组属主都是创建DNS时系统默认创建的。
?
5).检查区域文件语法错误与否:
?
三.测试DNS配置
在对DNS文件的所有配置完成后,需要重启服务,以使配置生效。由于我们这里还未启动过服务所以执行如下命令启动DNS服务:
建议:若之前启动过服务,配置完成之后想重新启动新数据,建议不要使用restart重启,因为这样可能导致网络服务断掉,所以要使用reload重新载入信息。
下面我们使用命令对正向区域解析情况进行测试。
?
下面我们使用dig命令对DNS反向区域解析情况进行测试
?
从上面的输出信息可以看出,DNS都可以正确解析,说明我们的配置没有问题,DNS服务器已经正常工作了。
小拓展:如何不用指向本机就能做本地解析??
#直接将DNS指向本机即可
?
第二部分:创建从DNS服务器(主从同步实现)
?说明:如果有多台DNS服务器,必须为每个DNS服务器建立NS记录,否则主DNS将无法向其发送通知.
? ? ?从服务器IP地址:172.16.18.1
?
u正向区域从服务器创建过程:
1、安装Bind软件(同上,不再演示)
2、设置配置文件
?
?
?????
?3、编辑区域配置文件
?
?
?
?4、检查配置文件语法错误与否
?5、切换之主服务器,给此服务器添加一个NS记录
?6、检查主服务器上解析文件语法错误与否:
?
?7、将主服务器上的数据同步一下
?8、检测NS记录是否同步完成
> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t NS magedu.com
>HEADER<<- opcode: QUERY,?
?9、切换至从服务器,启动服务
?10、查看数据文件是否已同步
?11、查看数据解析情况