DNS三部曲之DNS的迭代、递归、转发

简介:

一、DNS迭代与递归

 

DNS的迭代和递归就是一个概念,在正常的完成一整串DNS查询流程的时候,我们需要用这么一个概念来区分它们。

递归:A查询B,如果B找不到,那么就会B向C发起请求,直到找到请求,后将结果发送給A.

迭代:A查询B,如果B找不到,但是知道C有,那么告诉B的C服务器地址,让B去向C服务器发起请求。

其实不必纠结它们细节的称呼,如果我面试一个人,能答出这句话,我就算他这题过了。

 

1、bind关闭递归测试

options{

        directory" /var/named";

        recursion no; 

};

zone "imoocc.com" {

        typemaster;

        file"imoocc.com.zone";

};

zone "iaskjob.com" {

        typemaster;

        file"iaskjob.com.zone";

};

zone "11.156.10.in-addr.arpa" {

        typemaster;

        file"10.156.11.zone";

};

客户端查看效果:

2、客户端默认发起递归查询

[root@Iaskjob opt]# dig @www.iaskjob.com www.imooccc.com

 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> @www.iaskjob.com www.imooccc.com

; (1 server found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 55372

;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; WARNING: recursion requested but not available

 

;; QUESTION SECTION:

;www.imooccc.com.INA

2、客户端发起迭代查询请求

dig +norecurse @199.7.91.13 www.imoocc.com

dig +norecurse @192.33.14.30 www.imoocc.com

dig +norecurse @111.30.136.110 www.imoocc.com

 

二、NS记录

在我答案中,我没有确定的域名,但是能告诉你谁能有这个更精确的答案。

服务器和服务器的的迭代查询也是一个道理,我们接触比较多的就是DNS的子域授权。

父域

imooc.com

子域

test.imoocc.com

1、案例搭建子域授权系统

A服务器(IP:30.96.8.232) 负责imoocc域名解析,并授权B服务器test.imoocc.com的域名解析

A服务器:

$TTL 7200

@  IN  SOA  imoocc.com.   jeson.imoocc.com. (222 1H 15M 1W 1D) 

imoocc.com.   IN    NS    dns1.imoocc.com.

dns1  IN A  10.156.11.232

www  IN  A  115.182.41.180

@ IN  MX10  mail

mail   IN   A  10.156.11.233

test.imoocc.com.  IN  NS  ns1.test     --将test.imoocc.com的这个子域授权給了ns1.test 30.96.8.233来作

ns1.test         IN      A    30.96.8.233

~                            

B服务器(IP:30.96.8.233),完成整段子域授权:

$TTL 7200                                                                       

@ IN SOA  test.imoocc.com.  jeson.test.imooccc.com. (222 1H 15M 1W 1D) 

    IN NS dns1

dns1   IN     A  30.96.8.233

www   IN     A  30.96.8.233

 2、客户端测试

dig @30.96.8.232 www.test.imoocc.com -trace

 

三、DNS转发

如果我没法解析,那么我就指定一台DNS来解析。

注意:bind9版本后,可以支持指定域来转发。

 

说明:这里要注意,转发器本身不用做任何设置,而是对需要转发器的其他 DNS server 做以上配置。还有,如果该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。

forward first说明先把dns请求转发出去然后再查本机的dns记录

1、场景演练

B服务(30.96.8.233)

设置将iaskjob.com这个域,转发由A服务器解析

vim name.conf

zone "iaskjob.com" {

                type forward;

                forwarders { 30.96.8.232; };

};

 

A服务器(30.96.8.232)

设置机器的权威域

$TTL 7200

iaskjob.com.                IN   SOA     iaskjob.com.iaskjob.163.com. ( 20140122

100 1H 15M 1W 1D)  

iaskjob.com.       IN   NS      dns1.iaskjob.com.

dns1.iaskjob.com.  IN   A       10.156.11.232    

www  IN   A       10.156.11.232   

2、客户端测试

 dig @30.96.8.233 www.iaskjob.com -trace

目录
相关文章
|
18天前
|
算法 数据库
递归最佳解析
递归最佳解析
46 0
|
9月前
|
JavaScript
JS深拷贝----采用递归实现(例子+难点解析)
JS深拷贝----采用递归实现(例子+难点解析)
80 1
|
9天前
|
域名解析 网络协议 安全
【域名解析DNS专栏】DNS递归查询与迭代查询的区别及影响
【5月更文挑战第24天】DNS的递归查询与迭代查询是域名解析的两种方式。递归查询由客户端发起,DNS服务器负责全程解析,速度快但可能增加服务器负载和安全风险。迭代查询则需客户端参与多次查询,虽慢但分散负载,提高安全性。理解两者差异有助于优化网站访问体验和安全性。
【域名解析DNS专栏】DNS递归查询与迭代查询的区别及影响
|
18天前
|
机器学习/深度学习 C语言
函数递归深入解析(C语言)
函数递归深入解析(C语言)
|
18天前
|
算法 Java
Java必刷入门递归题×5(内附详细递归解析图)
Java必刷入门递归题×5(内附详细递归解析图)
42 1
|
18天前
迭代归并:归并排序非递归实现解析
迭代归并:归并排序非递归实现解析
21 0
|
18天前
|
算法
递归算法:二叉树前序、中序、后序遍历解析与递归思想深度剖析
递归算法:二叉树前序、中序、后序遍历解析与递归思想深度剖析
46 0
|
18天前
|
网络协议 网络安全 数据安全/隐私保护
【应用层】P2P、DNS、递归查询、迭代查询、FTP、电子邮件系统、万维网和HTTP
【应用层】P2P、DNS、递归查询、迭代查询、FTP、电子邮件系统、万维网和HTTP
85 0
|
18天前
|
算法 容器
class038 经典递归解析【算法】
class038 经典递归解析【算法】
23 0
class038 经典递归解析【算法】
|
11月前
|
Java
递归锁解析
递归锁(Reentrant Lock)是一种可以被同一个线程多次获取的锁,它避免了死锁的发生。在Java中,ReentrantLock类实现了递归锁的机制。
333 1

相关产品

  • 云解析DNS
  • 推荐镜像

    更多