domain-name-system – 解析CNAME – 谁查找后续A记录 – 解析器或服务器?

当解析器查找CNAME时,解析器显然首先向DNS服务器发送A记录请求. DNS服务器是否应该确定该请求实际上是针对CNAME的,还是解析器应该重试该请求,但对于CNAME类型?我问因为 – 这就是扭曲 – 我们在内部局域网上使用了一个“内部”顶级域名,我们称之为“domain1”,而我所查询的DNS服务器是“domain1”的权威服务器(和是其他一切的递归.)我的主机(Centos 6.8)实际发出的是对A记录的请求:
16:15:45.837525 IP (tos 0x0,ttl 64,id 36911,offset 0,flags [none],proto UDP (17),length 62)
myhost.domain1.40684 > dnsserver.domain1.domain: 15355+ A? cfengine.domain1. (34)
Reply - a servfail:
16:15:45.837762 IP (tos 0x0,id 49982,flags [DF],length 62)
dnsserver.domain1.domain > myhost.domain1.40684: 15355 ServFail 0/0/0 (34)

如果我挖掘CNAME类型,我会得到正确的CNAME记录(尽管A rec不会作为ADDITIONAL数据返回):

cfengine.domain1.   3600    IN  CNAME   helm02.domain2.

是的,我知道将权威和递归功能合并到一个DNS服务器中的做法很糟糕,但我无法控制这个DNS设置.

首先,如果将权威和递归函数组合到一个服务器中,并且向服务器发送一个递归所需查询获取CNAME,那么服务器是否具有权威性 – 它是否应该起作用?

假设它应该工作,谁负责找出我的请求实际上是CNAME记录而不是A记录? DNS服务器,还是我的解析器?

解决方法

如果服务器对某个名称具有权威性,则具有该名称的CNAME记录,它必须使用该记录响应所有记录类型的查询.

如果服务器正在进行递归,要求记录类型不是CNAME,但得到CNAME响应,那么它应该使用CNAME记录中的名称重新启动查询,将重新启动的查询的响应与CNAME响应合并,将合并的响应返回给它正在进行递归的任何人.

换句话说,权威服务器负责知道名称具有CNAME并对所有查询作出响应,并且recursor负责在请求其他内容并相应地采取行动时注意到它返回了CNAME.如果您特别要求提供CNAME记录,则可以绕过这个额外的魔法,而recursor只会按原样为您提供CNAME响应,而不会尝试按照名称进行操作.

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在'',则表示换行,用''切割。
代码实现 option = { backgroundColor: '#080b30', tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...