一、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
三、名称解释:
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中还涉及一些高级的配置,还待我们进一步研究。。。
本文出自 “言海” 博客,谢绝转载!