Bind进阶

还是出于项目的需要,把Bind比较高级的功能做一个梳理,这其中包含:DNS递归迭代查询、DNS子域授权、DNS转发、DNS主从区域传输、DNS数据加密,每一个内容不仅记录了它的实现原理,也相应的配上了我一行一行代码的实践测试及结果。

所有的测试都是基于我原来的文章:Bind服务搭建及测试上的代码来进行的,所以下面的代码如果有不理解的,请去看看我之前写的文章。

DNS递归迭代查询

为什么要把DNS的查询称之为递归迭代查询:

递归是因为:

用户端向我的服务端发起一次查询请求,那么服务端如果有结果就返回,如果没有结果就像上一级服务器再发一次请求,直到找到用户需要的IP或者域名,这个过程可以称之为递归。

迭代是因为:

当服务端向上一级服务器法请求的时候,它并不是一次请求就结束了,先是根域,再是二级域名这样了,有多次的请求跟返回动作,这个过程可以称之为迭代。

我在Bind搭建及测试这篇博文里面,对它们的流程做了更详细的叙述,这里就不多写了。

参数

Bind既然有一个复杂的查询流程,那么与之相对应的就会有一系列的配置项来控制这个流程。下面讲的参数都是基于Bind的主配置文件named.conf。

  • recursion : {yes|no} 是否允许递归请求
  • allow-recursion : {addressmatchlist|any|none} 允许递归请求的范围
  • recursion-clients : {number(填数字)} 客户端执行递归请求的数量

测试

named.conf配置文件的内容如下所示:

    options {
        directory "/var/named";
        recursion yes;
    };
    zone "." {
        type hint;
        file "named.ca";
    };
    zone "liumapp.com" {
        type master;
        file "liumapp.com.zone";
    };
    zone "cnametest.com" {
        type master;
        file "cnametest.com.zone";
    };
    zone "32.29.115.in-addr.arpa" {
        type master;
        file "115.29.32.zone";
    };
可以看到,我默认是把递归查询开启的
开启递归的情况

随便查询一个域名,比如“www.qqq.com”1.jpg

可以发现,Bind为了找到www.qqq.com对应的IP地址,往上层域名服务器迭代了7次才找到最终结果。

关闭递归的情况

现在我们将配置文件的recursion改为no,重启Bind之后再查询一个新的域名,比如"www.qqqq.com"(www.qqq.com已经做了缓存)

2.jpg

可以看到,关闭递归后我们是查不到新域名的解析记录的。

DNS子域授权

在DNS迭代查询的情况下,经常会用到NS记录,同样的,在DNS子域授权下面,NS记录也会经常被用到。

子域授权:

比如我的一台服务器A负责liumapp.com的权威域名解析,它再授权服务器B对liumapp.com的子域名:child.liumapp.com进行解析,这就叫做子域授权。

DNS迭代查询利用的就是子域授权:通过根域,到二级域再依次往下迭代查询。

测试

我的父服务器IP为115.29.32.62,其解析的域名为www.liumapp.com,子服务器IP为106.14.212.41,其解析的域名为www.test.liumapp.com

首先在父服务器上,我们要对子服务器进行授权,具体配置liumapp.com.zone文件,添加如下内容:

    test.liumapp.com. IN NS ns1.test
    ns1.test IN A 106.14.212.41

大意就是给liumapp.com的子域名test.liumapp.com分配权限给ns1.test,然后指定ns1.test的IP为106.14.212.41

重启父服务器,然后进入子服务器的shell命令面板

首先我们对named.conf做一个备份,然后把它的内容修改为:

    o
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值