DNS解析原理:递归 VS 迭代

DNS解析原理:递归 VS 迭代,第1张

DNS解析流程分为 递归查询 迭代查询递归查询是以本地名称服务器为中心查询, 递归查询是默认方式,迭代查询是以DNS客户端,也就是客户机器为中心查询。 其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。

“递归解析”(或叫“递归查询”,其实意思是一样的)是最常见, 也是默认的解析方式 。在这种解析方式中,如果客户端配置的本地名称服务器, (又称Local DNS, 可以是默认的运营商提供的Local DNS 或者自己设置的DNS) 不能解析的话,则后面的查询全由本地名称服务器代替DNS客户端进行查询,直到本地名称服务器从权威名称服务器得到了正确的解析结果,然后由本地名称服务器告诉DNS客户端查询的结果。

下图是windows下默认获取的运营商Local DNS或者 自己设置的Local DNS

在这个查询过程中,一直是以本地名称服务器(Local DNS)为中心的,DNS客户端只是发出原始的域名查询请求报文,然后就一直处于等待状态的,直到本地名称服务器发来了最终的查询结果。此时的本地名称服务器就相当于中介代理的作用。如果考虑了本地名称服务器的缓存技术(也就是在DNS服务器上对一定数量的以前查询记录保存一定时间,这样后面查询同样的域名信息时就可直接从缓存中调出来,以加速查询效率)的话,则递归解析的基本流程如下:

(1)客户端向本机配置的本地名称服务器(在此仅以首选DNS服务器为例进行介绍,所配置其它备用DNS服务器的解析流程完全一样)发出DNS域名查询请求。

(2)本地名称服务器收到请求后,先查询本地的缓存,如果有该域名的记录项,则本地名称服务器就直接把查询的结果返回给客户端;如果本地缓存中没有该域名的记录,则本地名称服务器再以DNS客户端的角色发送与前面一样的DNS域名查询请求发给 根名称服务器

(3)根名称服务器收到DNS请求后,把所查询得到的所请求的DNS域名中 顶级域名所对应的顶级名称服务器 地址返回给本地名称服务器。

(4)本地名称服务器根据根名称服务器所返回的顶级名称服务器地址,向对应的顶级名称服务器发送与前面一样的DNS域名查询请求。

(5)对应的顶级名称服务器在收到DNS查询请求后,也是先查询自己的缓存,如果有所请求的DNS域名的记录项,则相接把对应的记录项返回给本地名称服务器,然后再由本地名称服务器返回给DNS客户端,否则向本地名称服务器返回所请求的DNS域名中的二级域名所对应的二级名称服务器地址。

然后本地名称服务器继续按照前面介绍的方法一次次地向三级、四级名称服务器查询,直到最终的对应域名所在区域的 权威名称服务器 返回到最终的记录给本地名称服务器。然后再由本地名称服务器返回给DNS客户,同时本地名称服务器会缓存本次查询得到的记录项。

DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代。

DNS递归名称解析 : 在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以“本地名称服务器”为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可。

DNS迭代名称解析 :(或者叫“迭代查询”)的所有查询工作全部是DNS客户端自己进行(以“DNS客户端”自己为中心)。在条件之一满足时就会采用迭代名称解析方式:

通过图片看看他们的不同:

权威 DNS 是特定域名记录(例如“example.com”)在域名注册商处所设置的 DNS 服务器,用于特定域名本身的管理(增加、删除、修改等)。

权威 DNS 服务器只对自己所拥有的域名进行域名解析,对于不是自己的域名则拒绝访问。比如,向“example.com”的权威 DNS 服务器查询“test.com”的域名肯定会查询失败。

递归 DNS(也称本地 DNS 或者缓存 DNS)用于域名查询。递归 DNS 会迭代权威服务器返回的应答,直至最终查询到的 IP 地址,将其返回给客户端,并将请求结果缓存到本地。

对用户发出的域名解析请求,递归 DNS 必须给出一个最终的 IP 地址结果。完整的递归DNS 查询流程需要 DNS 服务器从根域名 “.” 服务器,顶级域名服务器(例如“.com”),一级域名服务器(例如“example.com”)等一级一级递归查询,直到最终找到权威服务器取得结果,并返回给客户。同时,递归服务器根据域名 TTL,缓存查询结果,便于相同域名重复查询。

递归 DNS 服务器大多数在运营商端,负责网络接入终端的 DNS 查询,即网络访问设备上配置的 DNS 服务器 IP。

递归 DNS 的访问过程如下图所示(递归 DNS 在图中表示为 Local DNS):

https://www.alibabacloud.com/help/zh/doc-detail/60303.htm

https://www.zhihu.com/question/36891472

DNS(Domain Name System,域名系统), 记录ip地址的分布式服务器。 DNS解析过程如图

全球13组根域名服务器以英文字母A到M依序命名。

域名系统默认的不用写

顶级域名服务器主要负责管理在该顶级域名服务器注册的二级域名。

列:

**举例: **

baidu.com 和 www.baidu.com

权威DNS服务器是经过上一级授权,对域名进行解析的服务器。(为了保障安全和保障一般权威DNS服务器都是俩)

查询过程

主机向本地域名服务器的查询一般都是采用递归查询

本地域名服务器向根域名服务器的查询的迭代查询

A记录:解析域名到指定ip

CNAME记录(Canonical Name 别名指向):解析域名到域名

MX记录:指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。

NS记录:解析服务器记录。用来表明由哪台服务器对该域名进行解析,这里的NS记录只对子域名生效。

优先级:NS记录优先于A记录。即,如果一个主机地址同时存在NS记录和A记录,则A记录不生效。这里的NS记录只对子域名生效。

TXT记录:为某个主机名或域名设置联系信息,如:

admin IN TXT “管理员, 电话: 1000000000”

AAAA记录(AAAA record):是用来将域名解析到IPv6地址的DNS记录。用户可以将一个域名解析到IPv6地址上,也可以将子域名解析到IPv6地址上。

SRV记录:一般是为Microsoft的活动目录设置时的应用。

显性URL记录:访问域名时,会自动跳转到所指的另一个网络地址(URL),此时在浏览器地址栏中显示的是跳转的地址。

隐形URL记录:访问域名时,会自动跳转到所指的另一个网络地址(URL),此时在浏览器地址栏中显示的是原域名地址。

举例:

在线DNS解析网站

提升用户体验! 两步走:

第一步

第二步

一般情况下,新建或修改域名解析,很快就可以生效。但有时也会存在一些解析较慢或解析长时间不生效的问题。出现这种情况,除了网络不可用、域名被劫持等外部因素外,也可能与域名自身状态以及解析设置有关。

1.域名过期没有及时续费

如果域名到期未能及时续费,就会导致原解析失效,所以网站管理者要时刻关注域名的到期情况,及时续费,避免因域名过期导致的解析不生效或者域名被抢注等情况的发生。

2.域名未通过实名认证

根据《中华人民共和国网络安全法》和《中国互联网络域名管理办法》的规定,需对com/net/cn等后缀的新注以及存量域名进行实名认证,如果未能通过实名认证,注册局将暂停域名解析。所以针对这种情况,在域名注册成功后需要及时提交材料完成实名认证,一般情况下实名认证通过后,域名就会恢复正常解析状态。

3.域名状态出现异常

如果出现域名解析长时间不生效,就需要检查一下域名状态,可以通过whois工具查看域名当前的状态是否出现了异常。如果域名的状态是clienthoold或severhold状态,说明域名是被禁止解析的,在这种状态下,即使设置了域名解析,域名也无法被访问到,此时需要联系域名服务商了解情况,尽快恢复正常状态。

一般情况下,当域名处于以下几种状态时,域名是无法被解析的:

Pending delete(域名过期,赎回期)

Redemption period(域名过期,赎回期)

Clienthold(暂停解析)

Serverhold(暂停解析)

Inactive(未设置 DNS)

如果是域名状态出现了问题,需要及时联系域名注册商查明情况并解决。

1.没有设置默认解析线路

如果在进行多线解析时没有设置默认解析线路,也会出现解析不生效或者无法访问的问题。所以这种情况下,需要先添加一条默认解析,这样才能保证当用户网络类型无法确认或者不在设置的网络类型时系统会自动解析到该默认地址上。

2.权威和递归DNS的解析未生效

如果刚修改过域名解析,解析不能及时生效,那么需要检查下权威DNS和递归DNS解析记录是否修改成功。因为在网站访问过程中,直接影响用户端解析生效的是运营商递归服务器,间接影响用户端解析生效的是权威DNS服务器。

首先通过“nslookup +要检测的域名”,查看递归服务器结果,然后再“nslookup +要检测的域名 + dns服务器地址”,查看权威服务器结果。

如果递归服务器未生效,权威服务器已生效,表明域名解析刚添加不久,全球的递归服务器还没有完全同步,需要等域名配置的TTL值失效后再检测是否生效。如果TTL值过后,再次检测递归服务器仍然未生效,则可能是域名劫持或缓存投毒。如果递归和权威服务器都没有生效,则表明域名解析没有添加成功,需要检查情况并重新添加。

3.修改解析服务器未生效

如果是修改了解析服务器,则需要等一定的缓存时间,全球的DNS服务器才能同步生效。一般来说,变更了解析服务器,需要等48小时才能生效。在此期间,由于递归服务器的缓存时间不同,可能会出现有的DNS请求新服务器,有的会请求旧的服务器。所以这种情况下,要耐心等待,不得在此期间对DNS解析记录进行修改,以免影响正常的DNS解析。

DNS解析不生效的原因很多,但归根结底不外乎域名状态和解析设置这两种情况,所以我们在遇到解析不生效情况时,仔细检查这两种情况,然后逐一排查就能快速定位故障原因,并针对性进行应对。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/808157.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存