子域授权:分布式数据库
定义:每个域的名称服务器,都是通过其上级名称服务器所在的解析库进行授权:
例子:
根域授权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的名称服务器上,解析库中添加资源记录:
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
正向子域授权实例:
---- 三级域名的子域授权(ops.lalala.com)
[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
|
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;
区域转发比全局转发优先级高
转载于:https://blog.51cto.com/12059878/1939994