您的位置:首页 > 运维架构 > Linux

Linux上DNS实现工具之bind详叙

2014-03-14 02:45 375 查看
一、DNS的描叙及层次结构:

1、DNS:domain name service,即域名服务,是把复杂的IP地址解析成我们易于记忆并理解的域名,以方便在网络上通信。
2、DNS的层次:DNS呈金字塔状结构,根域在最顶层,向下依次为一级域、二级域、三级域(或有或无)、主机名。如下所示: A、根域:. ,以“.”来标识,全世界有13组根域服务器。 B、一级域:(1)组织域:.com,,.org, .mil, .gov, .edu, .net (2)国家域:.cn,.hk,.tw,.jp,.ir,.iq,.us,.uk (3)反向域:.in-addr.arpa C、二级域:需要向一级域申请和注册二级域名,如:xybbs.com,hello.net. D、三级域:可有可无,通常用在父子域关系中,如:tech.hello.edu. E、主机:具体的主机,即FQDN,Full Qualified Domain Name,完全合格的域名,如:www.baidu.com
二、linux上的DNS实现程序工具: 1、实现工具:BIND(Berkeley Internet NameDomain), PowerDNS, dnsmasq。我们以bind为例来介绍DNS的安装和使用。 2、使用yum安装bind程序包以及相应的路径: 图1


图2





三、名称解释: 1、DNS查询类型:
(1)递归查询:只发出一次请求就得到最终结果。只有客户端主机才能向DNS服务器递归,且DNS服务器必须允许客户端递归,即recursion yes,客户端才能得到结果。根域是不允许客户端主机递归的。 (2)迭代查询:经过多次查询才能返回结果。只有DNS服务器才能向其他DNS服务器进行多次迭代查询。 2、名称解析类型:
(1)正向解析:通过完全合格的域名来解析IP地址。
(2)反向解析:通过IP地址来解析完全合格的域名。
3、资源记录的类型:
(1)SOA:Start OfAuthority,起始授权,上级区域授权某一区域来管理的区域。SOA只能有一个。
(2)NS:Name Server,域名服务器,标明某一DNS服务器所管理的区域。NS可以有多个,如辅助DNS服务器的NS记录,子域的NS记录。
(3)MX:MaileXchanger,邮件交换器,标明该区域的邮箱服务。
(4)A:internetaddress,地址记录,通常是正向解析。
(5)PTR:PoiTeR,指针记录,通常用于反向解析。
(6)AAAA:address,IPV6的正向解析记录。
(7)CNAME: Canonical Name,别名记录。通常用于A记录的别名。 4、DNS服务器类型: (1)主DNS服务器:只能有一个。 (2)辅助DNS服务器:辅助主DNS服务器工作,在主DNS服务器宕机的时候能顶替上去,辅助DNS要实时从主DNS同步区域名称和区域数据库文件。辅助DNS可以有多个。 (3)缓存名称服务器:缓存其它客户端向DNS服务器递归查询后,DNS服务器迭代查询所缓存的的DNS记录。 (4)转发DNS服务器:某一DNS服务器无法查询的记录会转发给其它DNS服务器进行查询,那么前一个DNS服务器就是一个转发DNS服务器。 5、区域传送:辅助DNS服务器从主DNS服务器或其它的辅助DNS服务器请求传输数据的过程: (1)完全区域传送:传送区域的所有数据,命令为AXFR。 (2)增量区域传送:传送区域中改变的数据部分,命令为IXFR。 6、子域授权:父域DNS服务器授权子域DNS服务器所管理的区域。所以父域DNS服务器的配置文件中要有:授权的子区域名称、子区域的名称服务器、子区域的名称服务器的IP地址,并且子域要设置好自己的区域数据文件,并把DNS服务器指向父域。如:父域为:yanhai.com.,子域为tech.yanhai.com.。 7、转发机制:配置好父子域之后,子域会无法解析父域的资源记录,或子域想解析其它区域的资源记录,那么就得在子域上做好转发,并把地址指向想要解析的区域。转发分2种,区域转发和全局转发,如果想解析某一或某些区域,则设置区域转发,如果想让本地客户端解析所有区域,则设置全局转发。 8、view视图:通常是让内外网或不同地区访问某一网站时,访问的FQDN都一样,但解析的IP地址不同。View提高了不同地区访问网站的速度。 9、rndc: Remote Name Domain Controller,即远程名称域控制器,是远程管理BIND的工具,能够实现重新载入区域数据文件、重新加载主配置文件等远程操作。四、正向解析、反向解析的实现:1、配置bind的主配置文件/etc/named.conf:图片3

图4

2、从一级域.com那里申请yanhai.com.的二级域名,并在/etc/named.rfc1912.zones中配置yanhai.com的区域:图片5

图6

3、正向区域的区域数据库文件:图7

图8

说明:资源记录的格式: name [ttl] IN RRtype Value(1)SOA:只能有一个 name: 区域名称, 通常可以简写为@,例如:yanhai.com. value: 主DNS服务器的FQDN 注意:SOA必须是区域数据库文件第一条记录 如:@ 600 IN SOA dns.yanhai.com. admin.yanhai.com.( serialnumber ;序列号,十进制数字,不能超过10位,通常使用日期,例如2014031301 refreshtime;刷新时间,即每隔多久到主服务器检查一次 retrytime;重试时间,应该小于refresh time expiretime;过期时间 negativeanswer ttl;否定答案的ttl(2) NS:可以有多条 name: 区域名称,通常可以简写为@ value: DNS服务器的FQDN(可以使用相对名称) 如:@ 600 IN NS dns (3)A:只能定义在正向区域数据库文件中 name: FQDN(可以使用相对名称) value: IP 如:www 600 IN A 172.16.35.100 (4) MX: 可以有多个 name: 区域名称,用于标识smtp服务器 value: 包含优先级和FQDN 优先级:0-99, 数字越小,级别越高 如:@ 600 IN MX 10 mail @ 600 IN MX 20 mail2 (5)CNAME: 别名 name: FQDN value: FQDN 如: ftp IN CNAME www pop IN CNAME mail (6)PTR:IP-->FQDN, 只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in-addr.arpa.后缀组成 name: IP, 逆向的主机地址,例如172.16.35.100的name为100.35,完全格式为。100.35.16.172.in-addr.arpa. value: FQDN 4、反向区域的区域数据库文件: 图9

图10


5、更改主配置文件和区域数据库文件的属主为root,属组为named,权限为640:图11

6、重启bind的named服务:图12

7、用dig工具模拟正向解析:图13

8、用dig工具模拟反向解析:图14

五、主DNS和辅助DNS服务器的实现:
1、配置辅助DNS服务器的IP为172.16.35.2,并把DNS指向主DNS服务器的地址172.16.35.1:
图15



2、辅助DNS服务器安装bind程序。 3、在主DNS服务器上的正向区域数据库文件中添加辅助DNS服务器的NS记录及其A记录: 图16

4、在辅助DNS服务器上的/etc/named.rfc1912.zones文件中定义区域yanhai.com,区域类型为slave,即辅助DNS服务器,masters中写上主DNS服务器的IP,并指定辅助DNS服务器的区域数据库文件在slaves目录下:图17

5、在主DNS服务器上生成远程DNS控制器的配置文件: 图18

图19

6、把rndc配置文件中后半部分内容复制到/etc/named.conf中去: 图20

7、重启named服务,并查看rndc运行状态: 图21

8、重启辅助DNS服务器后查看其数据库文件已传送成功:图22

9、在主DNS服务器上添加一条A记录,并把序列号增加一个数: 图23

10、重启主DNS服务器和辅助DNS服务器的named服务,然后查看辅助DNS的数据库文件中已成功传送到一条A记录: 图24

11、在辅助DNS服务器上使用host解析2条A记录: 图25

六、子域授权和转发机制:
1、在子域tech.yanhai.com中设置子域DNS服务器的IP为172.16.35.3,DNS地址指向父域172.16.35.1(yanhai.com): 图26

2、注释子域的主配置文件中的某些部分,见图3。3、在子域DNS服务器上的/etc/named.rfc1912.zones文件中配置子域信息:图27

4、配置子域的区域数据库文件:图28

5、更改子域的区域数据库文件的权限及属主、属组:图29

6、在父域yanhai.com的区域数据库文件中添加子域的NS记录和子域的A记录:图30

7、分别重启父域和子域的named服务。8、在父域上能解析子域的A记录: 图31



9、在子域上能解析本区域的A记录: 图32

10、在子域上无法解析父域的资源记录,原因是在子域上没有配置转发: 图33

11、在子域的区域文件中配置对yanhai.com区域的解析都转发到yanhai.com区域: 图34



12、重启子域的named服务后,子域能够解析父域的主机了:图35

13、如果想让子域内客户端能够通过北京DNS服务器来上网,可在主配置文件的全局选项中添加转发地址为北京DNS服务商的地址,或是如果父域和互联网相通,子域可在主配置文件的全局选项中添加转发的IP为父域的IP: 图36

七、view视图: 1、在一台linux服务器上配置2个IP,一个为内网用户解析,一个为外网用户解析:图37

2、注释掉viewDNS服务器的主配置文件的某些部分,如图3。3、在/etc/named.rfc1912.zones中定义视图:图38

图39

4、配置相同区域解析不同IP的区域数据库文件:图40

图41



5、更改2个区域数据库文件的权限和属主属组:图42

6、重启named服务后在内网和外网各解析www.yanhai.com,解析的IP不同:图43

图44

八、结束语:
至此,bind中基本的解析配置都已完成,DNS中还涉及一些高级的配置,还待我们进一步研究。。。

本文出自 “言海” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: