标签:dns bind view视图 子域授权 主从同步 解析
本文主要论述DNS基本原理,BIND正反向解析、主从同步、子域授权及view
1、DNS基本原理
DNS:Domain Name Service,域名服务器,基于udp和tcp完成名称解析服务
C/S架构的协议--客户端、服务端;监听于53/udp,53/tcp两个端口;属于应用层协议
BIND:Bekerley Internat Name Domain-->ISC
BIND是DNS在互联网上最著名的实现,提供DNS和DHCP服务
DNS查询类型:
递归查询:一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;
迭代查询:一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;
名称服务器:域内负责解析本域内的名称的主机,通常用ns#(name server)表示
根服务器:从A至M编号,其中:美国10个(1个主根和9个辅根)、欧洲2个(位于英国和瑞典)、亚洲1个(位于日本)。1个为主根服务器,放置在美国弗吉尼亚州的杜勒斯,由美国VeriSign公司负责运营维护,其余12个均为辅根服务器。
因为迭代查询极耗资源,所以DNS服务器通常只为自己组织内的客户端做解析,通过在权限上加以限制来实现
DNS解析类型
FQDN-->IP(正向解析)
FQDN:Full Qualified Domain Name--完全限定域名
IP-->FQDN(反向解析)
反向解析难度极大,目前应用:邮件服务器根据反向解析,拒绝接收来自没有域名的站点发来的信息以降低垃圾邮件的数量
注意:正、反向解析是两个不同的名称空间,是两棵不同的解析树;各需要一个解析库来分别负责本地域名的正向和反向解析
DNS服务器类型
主DNS服务器
从(辅助)DNS服务器
缓存DNS服务器
转发器
主DNS服务器:维护所负责解析的域内的解析库(解析库由管理员维护)
序列号:解析库的版本号;同步解析库的前提:主服务器解析库内容发生变化,其序列号递增加1
刷新时长:从服务器向主服务器请求同步解析库的时间间隔
重试时长:从服务器向主服务器请求同步解析库失败时,再次尝试的时间间隔
过期时长:从服务器始终联系不到主服务器时,多久之后放弃从服务器角色,停止服务
否定应答的TTL:解析得到的否定答案的缓存时长
从DNS服务器:解析库从主DNS服务器或其他DNS服务器“复制”(区域传送)而来
区域传送:全量传送:传送整个解析库
增量传送:传送解析库变化的那部分内容
缓存DNS服务器:不负责解析任何域,也不用注册域名,用于帮助域内的客户端向互联网的DNS服务器发送请求,把结果返回给客户端的同时在服务器上做一份缓存
2、BIND正反向解析
(1)基本概念
一次完整解析的流程
Client-->hosts文件-->DNS Service
Local Cache-->DNS Server(recursion)-->Server Cache-->iteration(迭代)
解析答案有两种:
肯定答案 权威答案
否定答案 非权威答案
请求的条目不存在等原因导致无法返回结果
区域解析库,由众多RR组成
资源记录:Resource Record--RR
记录类型:A、AAAA、PTR、SOA、NS、CNAME、MX
资源记录的类型标记了主机在域内处于什么样的角色上
SOA:Start OfAuthority,起始授权记录;一个解析库有且仅有一个SOA记录,且必须为解析库的第一条记录;定义了当前解析库为哪个区域所用,由谁负责;
A:internetAddress,FQDN-->IPv4
AAAA:internetAddress,FQDN-->IPv6
PTR:PoinTeR,IP-->FQDN
NS:NameServer,专用于标明当前区域的DNS服务器
CNAME:Canonical Name,别名记录
MX:MaileXchanger,邮件交换器,标明该域实现邮件交换的主机是谁
资源记录定义的格式
语法格式:name [TTL] IN rr_type value
TTL:解析得到结果在客户端的缓存时长,在服务器端由管理员定义
注意:
(1)TTL可从全局继承
(2)@可用于引用当前区域的名字
(3)相邻的两个资源记录的name相同时,后续的可以省略
(4)同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮询方式响应
(5)同一个值也可能定义多个不同的名字,仅表示通过多个不同的名字可以找到同一个主机
SOA:
name:当前区域的名字,例如“magedu.com.”;
value:有多部分组成
1、当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
2、当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用“.”替换
3、(主从服务协调属性的定义以及否定答案的统一的TTL)
示例: [TTL]
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com.( 2015042301; 序列号(一般不要超过10位数字)
2H; 刷新时长
10M; 重试时长
1W; 过期时长
1D; 否定答案的TTL值
)
NS:
name:当前区域的名字
value:当前区域的某DNS服务器的名字,例如ns.magedu.com.
注意:
(1)一个区域可以有多个NS记录
(2)对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录
示例:
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
MX:
name:当前区域的名字
value:当前区域的某邮件服务器(smtp服务器)的主机名
注意:
(1)一个区域内,MX记录可以有多个,但是每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小,优先级越高
(2)对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
示例:
magedu.com. IN MX 10 mx1.magedu.com.
magedu.com. IN MX 10 mx2.magedu.com.
A:
name:某主机的FQDN,例如www.magedu.com.
value:主机名对应的主机地址
示例:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 1.1.1.2
同一个名字可以通过多条记录个不同的值,DNS解析时会轮询响应,即:第一次解析时解析为1.1.1.1,第二次解析为1.1.1.2,第三次1.1.1.1,第四次1.1.1.2。。。
mx1.magedu.com. IN A 1.1.1.3
mx2.magedu.com. IN A 1.1.1.3
同一个值有多个不同的名字
注意:
避免用户写错名称时给否定答案,可以通过泛域名解析进行解析至某特定地址
例如假设百度网址www.baidu.com对应的是1.1.1.4,若A记录写成“www.baidu.com IN A 1.1.1.4”,则用户在输入“ww.baidu.com”或“baidu.com”时会无法解析到1.1.1.4,得到否定答案,但如果在A记录上加上两条“*.baidu.com IN A 1.1.1.4”“baidu.com IN A 1.1.1.4”,就可以正确解析到1.1.1.4。这就是泛域名解析的应用
AAAA:
name: FQDN
value: IPv6
PTR:
name:IP,有特定格式,把IP反过来写,例如1.2.3.4要写作4.3.2.1;且有特定后缀:in-addr.arpa.,所以完整写法为4.3.2.1.in-addr.arpa.
value:FQDN
示例:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
简写成
4 IN PTR www.magedu.com.
注意:网络地址及后缀可省略,主机地址仍然要反写
CNAME:
name:别名的FQDN
value:正式名字的FQDN
示例:
web.magedu.com. IN CNAME www.magedu.com.
(2)正向解析
缓存名称服务器的配置
dnssec:Domain Name System Security Extensions (DNSSEC)DNS安全扩展,是由IETF提供的一系列DNS安全认证的机制。它提供了一种来源鉴定和数据完整性的扩展,但不去保障可用性、加密性和证实域名不存在。
测试建议关闭dnssec,通过注释下图各选项来实现
除此之外,下图选项也必须注释掉或改为any,否则服务器只允许本机查询
(3)反向解析
反向解析测试
3、主从同步
6、主从服务器时间应该同步,可通过ntp进行
7、bind程序的版本应该保持一致,否则,应该从高,主低
4、子域授权
子域授权
分布式数据库的实现依赖于子域授权
正向解析区域的子域授权方法:
glue record:粘合记录,将上级服务器和下级服务器建立起关联
在父域的解析库文件中定义一个子域的DNS:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A 1.1.1.1
ns2.ops.magedu.com. IN A 1.1.1.2
fin.magedu.com. IN NS ns1.fin.magedu.com.
fin.magedu.com. IN NS ns2.fin.magedu.com.
ns1.fin.magedu.com. IN A 3.1.1.1
ns2.fin.magedu.com. IN A 3.1.1.2
注意:子域和父域的服务器无须在一个网络内,只要通过互联网彼此间能通信即可
5、BIND view(视图)
一个bind服务器可以定义多个view,每个view中可以定义一个或多个zone;
每个view匹配一组客户端;
多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件;
定义格式:
view VIEW_NAME {
match-clients { };
}
注意:
(1) 一旦启用了view,所有的zone都只能定义在view中;
(2) 仅需在允许递归请求的客户所在的view中定义根区域;
(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表;
标签:dns bind view视图 子域授权 主从同步 解析
原文地址:http://10066605.blog.51cto.com/10056605/1641371