子域受权:分布式数据库数据库
定义:每一个域的名称服务器,都是经过其上级名称服务器所在的解析库进行受权:vim
例子:服务器
根域受权tld,在根域的名称服务器上,解析库中添加资源记录:
分布式
.com. IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
lalala.com. 在.com的名称服务器上,解析库中添加资源记录:ide
lalala.com IN NS ns1.lalala.com.
lalala.com IN NS ns2.lalala.com.
lalala.com IN NS ns3.lalala.com.
ns1.lalala.com. IN A 3.3.3.1
ns2.lalala.com. IN A 3.3.3.2
ns3.lalala.com. IN A 3.3.3.3
正向子域受权实例:spa
---- 三级域名的子域受权(ops.lalala.com)orm
[root@server named]# cat lalala.com.zone
$TTL 1D
@ IN SOA ns1.lalala.com. admin.lalala.com (
2016060905; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.lalala.com.
NS ns2.lalala.com.
MX 10 mx1.lalala.com.
MX 20 mx2.lalala.com.
ns1 A 172.25.254.11
ns2 A 172.25.254.18
www A 172.25.254.11
* A 172.25.254.11为
#子域受权
ops NS ns1.ops #没加. 则自动追加成ops.lalala.com
ops NS ns2.ops
ns1.ops A 172.25.254.10
ns2.ops A 172.25.254.19
root server
|blog
com 递归
|
lalala
/ \
(local dns) ops www
|—— user
有了子域受权,父域就能轻松的找到子域啦,但是子域仍是不知道父域在什么地方==
假设子域(ops)为用户的本地dns服务器,用户须要访问www.lalala.com
访问过程:
user请求ops,因为ops不负责lalala.com这个域
因此ops把请求给root,由root开始,层层迭代....
出现的问题
原本是内部区域解析问题,却要麻烦root进行层层迭代,效率地下
因此转发器应运而生,当当当党~
解决方法
当咱们服务器发现有不能解析的域时,将请求转发给指定服务器
通常指定服务器为上游服务器,也就是转发服务器~
定义转发服务器
- 注意:被转发服务器须要可以为当前请求作递归,不然转发请求不予进行
转发类型:
1.所有转发:
- 对不是本机负责解析的区域的请求,通通转发给指定服务器
Options {
forward (first|only)
fowarders
}
2.区域转发:
- 仅转发对特定区域的请求至某服务器
zone "ZONE_NAME" IN {
type forward;
forward (first|only)
fowarders
};
3.转发的两种模式:
first:先递归,后迭代(找根)
only:只递归,无结果,自我放弃
下面来看一下区域转发服务器的配置
配置核心思想:
desktop 自己不能解析lalala.com,因此将解析需求转发到能解析lalala.com的server上.
定义转发服务器前:(解析失败)
定义区域转发服务器:
[root@desktop named]# vim /etc/named.rfc1912.zones
zone "lalala.com" IN {
type forward; #定义转发类型
forward only; #只使用递归模式查找
forwarders {172.25.254.11;}; #转发服务器为172.25.254.11
};
定义转发服务器后:(解析成功)
注意:
开启转发功能时,应关闭两台服务器的dnssec校验
[root@server named]# vim /etc/named.conf
dnssec-enable yes;
dnssec-validation no;
dnssec-lookaside auto;
区域转发比全局转发优先级高