wsa*_*ers 8 domain-name-system cname-record
当解析器查找 CNAME 时,解析器显然首先向 DNS 服务器发送 A 记录请求。DNS 服务器是否应该确定该请求实际上是针对 CNAME 的,还是解析器应该重试该请求,但针对的是 CNAME 类型?我问是因为 - 这里有一个转折 - 我们有一个在内部 LAN 上使用的“内部”顶级域,我们称之为“域 1”,我查询的 DNS 服务器是“域1”的权威服务器(和对于其他所有内容都是递归的。)我的主机(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, ttl 64, id 49982, offset 0, flags [DF], proto UDP (17), length 62)
dnsserver.domain1.domain > myhost.domain1.40684: 15355 ServFail 0/0/0 (34)
Run Code Online (Sandbox Code Playgroud)
如果我对 CNAME 类型进行挖掘,我会得到正确的 CNAME 记录(尽管 A rec 没有作为附加数据返回):
cfengine.domain1. 3600 IN CNAME helm02.domain2.
Run Code Online (Sandbox Code Playgroud)
是的,我知道将权威函数和递归函数结合到单个 DNS 服务器中是一种糟糕的做法,但我无法控制此 DNS 设置。
首先,如果将权威函数和递归函数组合到单个服务器中,并且您将递归所需查询发送到服务器以获取服务器对其具有权威性的 CNAME - 它甚至应该工作吗?
假设它应该工作,谁负责确定我的请求实际上是 CNAME 记录而不是 A 记录?DNS 服务器,还是我的解析器?
如果服务器对某个名称具有权威性,并且拥有CNAME
该名称的记录,则它必须使用该记录响应所有记录类型的查询。
如果服务器正在进行递归,请求的记录类型不是CNAME
,但得到CNAME
响应,那么它应该使用记录中的名称重新启动查询CNAME
,将重新启动的查询的响应与CNAME
响应合并,并返回组合的响应给为谁做递归的人。
换句话说,权威服务器负责知道一个名称有 aCNAME
并用它来响应所有查询,而递归器负责注意到它CNAME
在请求其他内容时得到了返回并采取相应的行动。如果您专门要求记录CNAME
,则可以绕过这个额外的魔法,递归器只会按CNAME
原样给您响应,而不会尝试遵循名称。
归档时间: |
|
查看次数: |
5186 次 |
最近记录: |