DNS服务及基于BIND的实现
2016-08-15 09:21
399 查看
http://me2xp.blog.51cto.com/6716920/1538163
1、DNS 概述
1.1、DNS的出现及演化
网络出现的早期是使用IP地址通讯的,那时就几台主机通讯。但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件)。这个文件中记录着主机名称和IP地址的对应表。这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。
但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪重负,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好办法。这时DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断的演化,直到现今的多层架构体系。
1.2、DNS是什么
DNS(Domain Name System),即域名系统。它使用层次结构的命名系统,将域名和IP地址相互映射,形成一个分布式数据库系统。
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653041FXhW.jpg)
DNS采用CS架构,服务器端工作在UDP协议端口53和TCP协议端口53上。
FQDN(Fully Qualified Domain Name)完全限定域名,它是使用DNS的树状层级结构的完全路径域名来表示一个准确位置对应的主机。
提供正向解析(FQDN-->IP)和反向解析(IP-->FQDN)的功能。
目前DNS已经成为了互联网通讯的基础服务。
1.3、互联网DNS访问模型
DNS服务器采用分布式数据结构保存着海量的名称,那么用户如何快速的在互联网上访问哪台服务器或者哪些服务器就能找到待解析的数据呢?
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653293mk8E.jpg)
客户机发起对www.kernel.org的解析请求
(1)客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
(2)客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。
(3)将请求转发本地DNS服务器。
(4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。
(5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
(6)向全球某一个根域服务器发起DNS请求,根域返回org域的地址列表。
(7)使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。
(8)使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务收到后,返回给客户机。
以上客户机和本地DNS服务器直接的查询方式,称为递归查询。
本地DNS服务器多次重复查询的方式,称为迭代查询。
1.4、DNS的分类:
主DNS服务器:就是一台存储着原始资料的DNS服务器。
从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。
缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。
转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。
1.5、一些术语和概念
权威DNS服务器:它是负责对某区域能够进行解析,并在父区域中存储着NS记录的主或者从服务器。
权威应答AA(Authoritative Answer):权威服务器给出的最终答案是就是权威答案,并用协议中的某个标志位表示。
授权:就是上一级将它的子域的管理授权给某一个特定的组织和机构,子域的记录信息就直接由该组织或机构管理的权威服务器进行存储和解析。在上一级中需要保留指向子域的记录,这种记录就称为胶水记录(Glue Record)。
1.6、RR(Resource Record)资源记录
DNS层级结构中,不管是节点还是叶子节点都是资源,对这些资源中的某一个的标识使用一定格式的多字段的一条记录来表示,这条记录就是资源记录RR。RR的标准记录在RFC 1034中。
1.6.1、RR的组成:
1.6.2、RR中IN类(class)常见类型(type)
1.6.3、常用指令
1、$TTL
TTL 可以在SOA之前使用该指令,给出TTL秒数的32位整数值。
2、$ORIGIN
设定域名,它必须出现在任何一行省略书写的RR记录前。当一个区域文件第一次被读取时,隐含这个命令的值为<zone_name>.(必须是跟着一个半角句号),如果不设置它,就必须在区域文件中书写FQDN。
例如
$ORIGIN kernel.org.
www CNAME web-server
就等同于
www.kernel.org. CNAME web-server.kernel.org.
3、@符号
@符号等价于$ORIGIN。
1.6.4、SOA的RDATA格式
百度的SOA
a.shifen.com. 579 IN SOA dns.baidu.com. sa.baidu.com. (
1408010001 ; serial number
5 ; refresh 5s
5 ; retry 5s
86400 ; expire 1d
3600 ;min TTL 1h
)
1.6.5、NS的RDATA格式
NSDName:DNS的FQDN
baidu.com. 64899 IN NS ns2.baidu.com.
baidu.com. 64899 IN NS ns4.baidu.com.
baidu.com. 64899 IN NS dns.baidu.com.
baidu.com. 64899 IN NS ns7.baidu.com.
baidu.com. 64899 IN NS ns3.baidu.com.
1.6.6、MX的RDATA格式
PREFERENCE:优先级,越小越高
EXCHANGE:邮件服务器FQDN
baidu.com. 7200 IN MX 20 jpmx.baidu.com.
baidu.com. 7200 IN MX 20 mx50.baidu.com.
baidu.com. 7200 IN MX 10 mx.n.shifen.com.
baidu.com. 7200 IN MX 20 mx1.baidu.com.
1.6.7、CNAME的RDATA格式
CNAME:权威名称,FQDN
www.baidu.com. 1154 IN CNAME www.a.shifen.com.
www.a.shifen.com是正式名称,而www.baidu.com是别名
1.6.8、A的RDATA格式
ADDRESS:IP V4地址
www.baidu.com. 1154 IN CNAME www.a.shifen.com.
www.a.shifen.com. 36 IN A 111.13.100.92
www.a.shifen.com. 36 IN A 111.13.100.91
1.6.9、PTR的RDATA格式
7.100.in-addr.arpa. IN PTR www.example.com.
2、BIND实现DNS服务
2.1、BIND是什么
1984年,加州大学伯克利分校的几个学生完成了Unix名称服务的实现,起名叫做Berkeley Internet Name Domain(BIND)。目前,它是互联网上使用最为广泛的DNS服务软件。
bind的发行版一般包含三个部分:域名服务器、域名解析器库、软件测试工具。
2.2、DNS实验
下面就安装bind来完成整个DNS的实验
2.2.1、前提:时间同步
在生产环境中,所有的服务器需要使用同一的时钟,一般会指向同一个时间源。时间源采用某种方式取得可靠准确的时间。
客户机可以使用ntp服务或者在crontab中配置ntpdate完成来完成时间同步。
2.2.2、环境准备
本文介绍了2种安装方式,源代码编译安装需要依赖众多开发库,请使用yum安装。将CentOS光盘挂载到/media/cdrom,配置本地yum源备用。配置yun请参看博主博文 《Linux的程序安装和包管理》,此类博文很多,这里不再赘述。使用下面的语句安装开发环境。
两台服务器分别安装了CentOS 6.5,地址分别为192.168.60.133(源码安装)、192.168.60.134、192.168.60.171。
# yum groupinstall "Development tools" "Server Platform Development"
2.2.3、安装BIND
2.2.3.1、rpm安装bind(192.168.60.171和192.168.60.134)
默认bind的库和工具已经安装,但是服务器软件没有安装,可以使用yum -y install bind 。
安装成功生成一下目录和文件:
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf
区域解析库文件:/etc/named.rfc1912.zones
服务根目录:/var/named/
从服务器使用的区域解析库目录:/var/named/slaves,权限特殊
服务脚本使用的文件:
pid目录:/var/run/named/,在其下创建named.pid文件,使用时创建符号链接到其父目录中,即/var/run/named.pid,由服务脚本产生。
锁文件:/var/lock/subsys/named,由服务脚本产生。
以上这些目录和文件,是rpm安装的时候创建的,而且对这些文件和目录的权限做了很好的限定。对于配置文件的配置,下面将逐一实例介绍,部分解释在上面。
2.2.3.2、源代码安装(192.168.60.133上)
下载bind的源码,官网下载地址http://www.isc.org/downloads/bind/,本次使用版本为bin-9.10.0-P2.tar.gz。
(1)安装
configure的一些变量
--prefix :默认在/usr/local
--sysconfdir:默认在--prefix指定的目录下,如果--prefix为空,就为/etc
--localstatedir:默认在--prefix指定的目录下,如果--prefix为空,就为/var
--enable-threads:启用多线程
--disable-chroot:不支持chroot
安装完成
(2)配置
编辑主配置文件/etc/named/named.conf
生成/etc/named/named.rfc1912.zones文件,内容如下:
注意,此配置文件中,file中定义的是路径都是相对于上文中directory的路径 /var/named 的。
建立运行根目录/var/named,准备基本的Zone文件,根、localhost正反向解析
在/var/named目录中准备好这4个文件
named.ca,可以使用dig -t NS . @a.root-servers.net > named.ca 生成。但是要注意的是,dig命令是安装了bind之后才有的,而且某些情况下,查询根的NS记录的命令返回结果可能没有A记录和AAAA记录,有可能被拦截。 named.ca内容如下:
named.localhost 内容如下:
named.loopback 内容如下:
named.empty 内容如下:
检查配置文件
可以开始测试运行named了,由于是编译安装,并没有提供服务脚本,不能使用service启动named。
(3)工作环境配置
1)导出环境变量
在/etc/profile.d下创建文件named9.10.sh
重启会话连接,echo $PATH,返回如下:
这样就把bind提供的众多命令加入到了搜索路径中了,方便使用
2)帮助文件导出
编辑/etc/man.config,添加下面的语句。
3)增加系统用户和组
(4)第一次启动
使用-g选项,让服务运行于前台,便于查错
发现几个问题
权限问题,执行下面语句
开始测试
服务启动成功。
以上配置好之后,基本达到了和rpm安装同样的状态,可以开始试验内容
3、实验
3.1、实验的内容
主从复制(区域传送)、子域授权、转发器、视图
3.2、主从复制(区域传送)
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653294Eu2C.jpg)
(1)建立主DNS服务器
修改named.rfc1912.zone文件,在尾部添加
提供正向解析文件
在/var/named/下新建文件example.org.zfile,属主数组为named,权限640
提供反向解析文件
在主配置文件中,追加以下内容
(2)RNDC
使用rndc(remote name domain controller)对named进行控制操作。默认工作TCP的953号端口,不安全,建议本地使用。
常用命令 :
reload 在线重新装载配置文件和zone文件
reload zone 重新加载指定的zone
stop [-p] 安全停止named。使用-p返回pid
flush 清除DNS缓存
status 显示服务器状态
打开rndc.conf,将下面部分追加到/etc/named/named.conf尾部(要去除前面的#,即注释)
(3)启动DNS服务
使用以下命令测试
(4)建立从DNS服务器(rpm安装的,192.168.60.171)
从服务器的主配置文件中,将这两句改为如下,或者注释掉。
启动服务
查看/var/named/slaves/,已经存在文件example.org.zone了,内容为:
检查是否能够解析
3.3、子域授权及转发器
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653296jf9R.jpg)
假设子域为tech.example.org
在父域172.168.60.133中的example.org.zfile添加胶水记录
子域172.168.60.134中的/etc/named.rfc1912.zones中追加
在/var/named下创建zone文件tech.example.org.zone
启动子域(rpm安装的)
重新装载父域配置文件
测试成功,解析有子域提供,返回非权威答案
3.4、转发器配置
见子域授权图
3.4.1、完全转发
这里有一个问题,使用子域的DNS服务,无法知晓父域,所有的非本域解析统统要去找根域。
为了解决这个问题,可以将子域配置成为转发器,除了子域本身以外的解析,全部转发父域服务器。
在/etc/named.conf中添加forward和forwarders。
开始测试,本地转发www.example.org的解析请求给父域,返回非权威答案
3.4.2、区域转发
当然这里还可以配置区域转发,对example.org定义为一个区域,里面配置forward和forwarders。
在/etc/named.conf中移除forward和forwarders两句。
在/etc/named.rfc1912.zones中追加
使用rndc reload重新装载配置文件
测试成功。
3.5、view视图
![](http://img1.51cto.com/attachment/201408/10/6716920_14076532992aew.jpg)
不同IP段的客户端,DNS分析判断后返回不同的结果。
将来自172.168.60.133的请求访问是intra_view,其他的IP的请求都访问inter_view。
这次使用acl访问控制列表,在192.168.60.133上/etc/named/named.conf中,在起始行添加
重新修改/etc/named/named.rfc1912.zones,定义2个视图
新增/var/named/test.com.zone文件
开始测试
本机192.168.60.133上测试
在192.168.60.134上测试
综上,DNS是一个非常重要的基础性服务,有很多的概念,标准内容也非常多。不仅用于互联网解析,也可以用在企业内建网络中。常用的就有主从复制、子域授权、转发和视图几种模式。要熟悉这些基础概念和应用场景,就能利用它对整个局域网乃至互联网的访问进行优化。
参考资料
维基百科
https://en.wikipedia.org/wiki/List_of_DNS_record_types
域名标准规格
http://tools.ietf.org/html/rfc1035
BIND手册
http://www.isc.org/downloads/bind/doc/bind-9-9/
DNS资料
http://dns-learning.twnic.net.tw/dns/toc.html
https://www.cnnic.net.cn/
本文出自 “终南山下” 博客,请务必保留此出处http://me2xp.blog.51cto.com/6716920/1538163
1、DNS 概述
1.1、DNS的出现及演化
网络出现的早期是使用IP地址通讯的,那时就几台主机通讯。但是随着接入网络主机的增多,这种数字标识的地址非常不便于记忆,UNIX上就出现了建立一个叫做hosts的文件(Linux和Windows也继承保留了这个文件)。这个文件中记录着主机名称和IP地址的对应表。这样只要输入主机名称,系统就会去加载hosts文件并查找对应关系,找到对应的IP,就可以访问这个IP的主机了。
但是后来主机太多了,无法保证所有人都能拿到统一的最新的hosts文件,就出现了在文件服务器上集中存放hosts文件,以供下载使用。互联网规模进一步扩大,这种方式也不堪重负,而且把所有地址解析记录形成的文件都同步到所有的客户机似乎也不是一个好办法。这时DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断的演化,直到现今的多层架构体系。
1.2、DNS是什么
DNS(Domain Name System),即域名系统。它使用层次结构的命名系统,将域名和IP地址相互映射,形成一个分布式数据库系统。
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653041FXhW.jpg)
DNS采用CS架构,服务器端工作在UDP协议端口53和TCP协议端口53上。
FQDN(Fully Qualified Domain Name)完全限定域名,它是使用DNS的树状层级结构的完全路径域名来表示一个准确位置对应的主机。
提供正向解析(FQDN-->IP)和反向解析(IP-->FQDN)的功能。
目前DNS已经成为了互联网通讯的基础服务。
1.3、互联网DNS访问模型
DNS服务器采用分布式数据结构保存着海量的名称,那么用户如何快速的在互联网上访问哪台服务器或者哪些服务器就能找到待解析的数据呢?
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653293mk8E.jpg)
客户机发起对www.kernel.org的解析请求
(1)客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
(2)客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。
(3)将请求转发本地DNS服务器。
(4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。
(5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
(6)向全球某一个根域服务器发起DNS请求,根域返回org域的地址列表。
(7)使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。
(8)使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务收到后,返回给客户机。
以上客户机和本地DNS服务器直接的查询方式,称为递归查询。
本地DNS服务器多次重复查询的方式,称为迭代查询。
1.4、DNS的分类:
主DNS服务器:就是一台存储着原始资料的DNS服务器。
从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。
缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。
转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。
1.5、一些术语和概念
权威DNS服务器:它是负责对某区域能够进行解析,并在父区域中存储着NS记录的主或者从服务器。
权威应答AA(Authoritative Answer):权威服务器给出的最终答案是就是权威答案,并用协议中的某个标志位表示。
授权:就是上一级将它的子域的管理授权给某一个特定的组织和机构,子域的记录信息就直接由该组织或机构管理的权威服务器进行存储和解析。在上一级中需要保留指向子域的记录,这种记录就称为胶水记录(Glue Record)。
1.6、RR(Resource Record)资源记录
DNS层级结构中,不管是节点还是叶子节点都是资源,对这些资源中的某一个的标识使用一定格式的多字段的一条记录来表示,这条记录就是资源记录RR。RR的标准记录在RFC 1034中。
1.6.1、RR的组成:
owner name | 所属名称 |
type | RR的类型 |
TTL | 缓存RR的秒数(time-to-live) |
class | 表示一个协议或者一族协议,常用IN表示Internet |
RDATA | 记录数据 |
SOA | 区域授权起始记录,区域文件第一条记录,而且一个区域文件只能有一条 |
NS | 域的授权名称服务器 |
MX | 域的邮件交换器,要跟着一个优先级值,越小越高 |
A | IPV4主机地址 |
AAAA | IPV6主机地址 |
PTR | 解析IP的指针 |
CNAME | 权威(正式)名称,定义别名记录 |
1、$TTL
TTL 可以在SOA之前使用该指令,给出TTL秒数的32位整数值。
2、$ORIGIN
设定域名,它必须出现在任何一行省略书写的RR记录前。当一个区域文件第一次被读取时,隐含这个命令的值为<zone_name>.(必须是跟着一个半角句号),如果不设置它,就必须在区域文件中书写FQDN。
例如
$ORIGIN kernel.org.
www CNAME web-server
就等同于
www.kernel.org. CNAME web-server.kernel.org.
3、@符号
@符号等价于$ORIGIN。
1.6.4、SOA的RDATA格式
MNAME | 授权主机FQDN或者当前区域的名称 |
RNAME | 邮箱地址,@用.替代 |
SERIAL | 区域传送使用的版本号,格式为yyyymmddnn |
REFRESH | 从服务器去同步主服务器时间间隔 |
RETRY | 刷新失败重试时间间隔 |
EXPIRE | 从服务器过期时长 |
MINIMUM | 否定答案过期时长 |
a.shifen.com. 579 IN SOA dns.baidu.com. sa.baidu.com. (
1408010001 ; serial number
5 ; refresh 5s
5 ; retry 5s
86400 ; expire 1d
3600 ;min TTL 1h
)
1.6.5、NS的RDATA格式
NSDName:DNS的FQDN
baidu.com. 64899 IN NS ns2.baidu.com.
baidu.com. 64899 IN NS ns4.baidu.com.
baidu.com. 64899 IN NS dns.baidu.com.
baidu.com. 64899 IN NS ns7.baidu.com.
baidu.com. 64899 IN NS ns3.baidu.com.
1.6.6、MX的RDATA格式
PREFERENCE:优先级,越小越高
EXCHANGE:邮件服务器FQDN
baidu.com. 7200 IN MX 20 jpmx.baidu.com.
baidu.com. 7200 IN MX 20 mx50.baidu.com.
baidu.com. 7200 IN MX 10 mx.n.shifen.com.
baidu.com. 7200 IN MX 20 mx1.baidu.com.
1.6.7、CNAME的RDATA格式
CNAME:权威名称,FQDN
www.baidu.com. 1154 IN CNAME www.a.shifen.com.
www.a.shifen.com是正式名称,而www.baidu.com是别名
1.6.8、A的RDATA格式
ADDRESS:IP V4地址
www.baidu.com. 1154 IN CNAME www.a.shifen.com.
www.a.shifen.com. 36 IN A 111.13.100.92
www.a.shifen.com. 36 IN A 111.13.100.91
1.6.9、PTR的RDATA格式
7.100.in-addr.arpa. IN PTR www.example.com.
2、BIND实现DNS服务
2.1、BIND是什么
1984年,加州大学伯克利分校的几个学生完成了Unix名称服务的实现,起名叫做Berkeley Internet Name Domain(BIND)。目前,它是互联网上使用最为广泛的DNS服务软件。
bind的发行版一般包含三个部分:域名服务器、域名解析器库、软件测试工具。
2.2、DNS实验
下面就安装bind来完成整个DNS的实验
2.2.1、前提:时间同步
在生产环境中,所有的服务器需要使用同一的时钟,一般会指向同一个时间源。时间源采用某种方式取得可靠准确的时间。
客户机可以使用ntp服务或者在crontab中配置ntpdate完成来完成时间同步。
2.2.2、环境准备
本文介绍了2种安装方式,源代码编译安装需要依赖众多开发库,请使用yum安装。将CentOS光盘挂载到/media/cdrom,配置本地yum源备用。配置yun请参看博主博文 《Linux的程序安装和包管理》,此类博文很多,这里不再赘述。使用下面的语句安装开发环境。
两台服务器分别安装了CentOS 6.5,地址分别为192.168.60.133(源码安装)、192.168.60.134、192.168.60.171。
# yum groupinstall "Development tools" "Server Platform Development"
2.2.3、安装BIND
2.2.3.1、rpm安装bind(192.168.60.171和192.168.60.134)
默认bind的库和工具已经安装,但是服务器软件没有安装,可以使用yum -y install bind 。
安装成功生成一下目录和文件:
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf
区域解析库文件:/etc/named.rfc1912.zones
服务根目录:/var/named/
从服务器使用的区域解析库目录:/var/named/slaves,权限特殊
服务脚本使用的文件:
pid目录:/var/run/named/,在其下创建named.pid文件,使用时创建符号链接到其父目录中,即/var/run/named.pid,由服务脚本产生。
锁文件:/var/lock/subsys/named,由服务脚本产生。
以上这些目录和文件,是rpm安装的时候创建的,而且对这些文件和目录的权限做了很好的限定。对于配置文件的配置,下面将逐一实例介绍,部分解释在上面。
2.2.3.2、源代码安装(192.168.60.133上)
下载bind的源码,官网下载地址http://www.isc.org/downloads/bind/,本次使用版本为bin-9.10.0-P2.tar.gz。
(1)安装
configure的一些变量
--prefix :默认在/usr/local
--sysconfdir:默认在--prefix指定的目录下,如果--prefix为空,就为/etc
--localstatedir:默认在--prefix指定的目录下,如果--prefix为空,就为/var
--enable-threads:启用多线程
--disable-chroot:不支持chroot
(2)配置
编辑主配置文件/etc/named/named.conf
注意,此配置文件中,file中定义的是路径都是相对于上文中directory的路径 /var/named 的。
named.ca,可以使用dig -t NS . @a.root-servers.net > named.ca 生成。但是要注意的是,dig命令是安装了bind之后才有的,而且某些情况下,查询根的NS记录的命令返回结果可能没有A记录和AAAA记录,有可能被拦截。 named.ca内容如下:
(3)工作环境配置
1)导出环境变量
在/etc/profile.d下创建文件named9.10.sh
2)帮助文件导出
编辑/etc/man.config,添加下面的语句。
使用-g选项,让服务运行于前台,便于查错
以上配置好之后,基本达到了和rpm安装同样的状态,可以开始试验内容
3、实验
3.1、实验的内容
主从复制(区域传送)、子域授权、转发器、视图
3.2、主从复制(区域传送)
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653294Eu2C.jpg)
(1)建立主DNS服务器
修改named.rfc1912.zone文件,在尾部添加
在/var/named/下新建文件example.org.zfile,属主数组为named,权限640
在主配置文件中,追加以下内容
使用rndc(remote name domain controller)对named进行控制操作。默认工作TCP的953号端口,不安全,建议本地使用。
常用命令 :
reload 在线重新装载配置文件和zone文件
reload zone 重新加载指定的zone
stop [-p] 安全停止named。使用-p返回pid
flush 清除DNS缓存
status 显示服务器状态
从服务器的主配置文件中,将这两句改为如下,或者注释掉。
![](http://img1.51cto.com/attachment/201408/10/6716920_1407653296jf9R.jpg)
假设子域为tech.example.org
在父域172.168.60.133中的example.org.zfile添加胶水记录
见子域授权图
3.4.1、完全转发
这里有一个问题,使用子域的DNS服务,无法知晓父域,所有的非本域解析统统要去找根域。
为了解决这个问题,可以将子域配置成为转发器,除了子域本身以外的解析,全部转发父域服务器。
在/etc/named.conf中添加forward和forwarders。
当然这里还可以配置区域转发,对example.org定义为一个区域,里面配置forward和forwarders。
在/etc/named.conf中移除forward和forwarders两句。
在/etc/named.rfc1912.zones中追加
3.5、view视图
![](http://img1.51cto.com/attachment/201408/10/6716920_14076532992aew.jpg)
不同IP段的客户端,DNS分析判断后返回不同的结果。
将来自172.168.60.133的请求访问是intra_view,其他的IP的请求都访问inter_view。
这次使用acl访问控制列表,在192.168.60.133上/etc/named/named.conf中,在起始行添加
本机192.168.60.133上测试
参考资料
维基百科
https://en.wikipedia.org/wiki/List_of_DNS_record_types
域名标准规格
http://tools.ietf.org/html/rfc1035
BIND手册
http://www.isc.org/downloads/bind/doc/bind-9-9/
DNS资料
http://dns-learning.twnic.net.tw/dns/toc.html
https://www.cnnic.net.cn/
本文出自 “终南山下” 博客,请务必保留此出处http://me2xp.blog.51cto.com/6716920/1538163
相关文章推荐
- DNS服务及基于BIND的实现
- DNS服务及基于BIND的实现
- 基于Bind实现的DNS正反向解析及主从DNS的配置
- 在FreeBSD下用vrrp实现基于DNS轮询的冗余服务
- 基于bind实现子域授权(DNS连载三)
- 基于Bind实现的DNS正反向解析及主从DNS的配置
- (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf、/var/named)设置实现和解释
- 通过bind实现DNS服务
- 基于bind实现view功能,实现分IP解析(DNS连载四)
- 基于bind工具实现DNS子域授权、子域父域相互解析
- 基于BIND软件实现互联网DNS解析 推荐
- 使用bind自建DNS服务,实现双DNS服务器主从复制、子域授权、转发、智能解析等效果
- 基于bind实现DNS主从(DNS连载二)
- 基于BIND实现DNS的解析、主从、子域、请求转发、访问控制
- BIND实现DNS服务----视频下载
- CentOS DNS服务详解与基于bind的智能DNS
- 基于SOA的企业信息化建设——ESB企业服务总线技术实现
- 基于RSA实现面向服务的体系架构
- wind 4000 ows xp 上安装bind实现域名服务
- 实现基于Spring技术应用的远程服务编程