首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CNAME查询失败,但查询返回CNAME

CNAME查询失败,但查询返回CNAME
EN

Server Fault用户
提问于 2018-04-02 11:06:12
回答 2查看 3.4K关注 0票数 -2

我遇到了以下情况,并想知道如何正确地解决这个问题:

名称服务器被配置为不返回CNAME记录(不受我的控制),只有当请求一个A记录(相同名称)时,CNAME才会在附加部分中返回。

问题1:为什么有人会将DNS服务器配置成这样?对我来说没有意义?(问了他们几次,一直没有得到答复)

实际问题:当我们解决主机名时,比如testa.hosta.com,我们会查询一个A记录。在回应中,我们得到:

代码语言:javascript
复制
# query for A of `hosta.com`
testa.hosta.com CNAME testb.hostb.com  TTL=5
testb.hostb.com A     1.2.3.4          TTL=60

所以我们把两个记录都存储在我们的缓存中。因为我们没有得到我们正在寻找的A记录,我们现在尝试CNAME的记录。但是这个在缓存中,它指向testb.hostb.com。现在为testb.hostb.com尝试一个A记录,它也在缓存中,所以我们最终决定使用1.2.3.4。所以到目前为止一切都很好。

5秒后,CNAME的TTL过期。由于数据陈旧,我们需要刷新它。因此,我们查询testa.hosta.com CNAME,这提供了一个空的响应。现在我们的查找失败了..。

问题2:这个查找逻辑有问题吗?我找了很多rfc想弄清楚,但什么也找不到。正确的查找顺序是什么?

任何帮助都是非常感谢的。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2018-04-04 00:00:09

Q1

我不知道为什么,这听起来像是一个失败的实现,返回不一致的结果。

Q2

是的,您描述的逻辑是错误的;您没有理由更改查询类型。

听起来,实际上您要寻找的是递归解析器服务器行为的基本原理。

来自析1034解析器内部部件/算法部分(5.3.3)

###5.3.3。顶层算法有四个步骤:

  1. 查看答案是否在本地信息中,如果是,则将其返回给客户端。
  2. 找出最好的服务器来问。
  3. 将查询发送给他们,直到返回响应为止。
  4. 分析响应: a.如果响应回答问题或包含名称错误,则缓存数据并将其返回给客户端。如果响应包含到其他服务器的更好的委托,则缓存委托信息,然后转到步骤2. c。如果响应显示CNAME,而这不是答案本身,则缓存CNAME,在CNAME RR中将SNAME更改为规范名称,如果响应显示服务器故障或其他奇怪的内容,则从SLIST删除服务器并返回到步骤3。
票数 3
EN

Server Fault用户

发布于 2018-04-02 18:01:11

根据这些资料:

实际问题:当我们解决主机名时,比如hosta.com,我们会查询一个A记录。在回应中,我们得到:

代码语言:javascript
复制
# query for A of `hosta.com`
hosta.com CNAME hostb.com  TTL=5
hostb.com A     1.2.3.4    TTL=60

这完全是意料之中的。如果您查询一个A记录,但只获得一个CNAME (如您发布的这个空白页所示),它指示该域没有A记录,而是另一个A记录的CNAME

问题1:为什么有人会将DNS服务器配置成这样?对我来说没有意义?(问了他们几次,一直没有得到答复)

正如@michaelhampton所指出的,你为什么首先要查询一个CNAME?如果试图执行主机查找以将主机名解析为IP地址,则应查询A记录。如果域名所有者选择使用CNAME记录作为这个主机名,那么您应该在响应中接收CNAMEA记录。

更新:

5秒后,CNAME的TTL过期。由于数据陈旧,我们需要刷新它。因此,我们查询testa.hosta.com CNAME,这提供了一个空的响应。现在我们的查找失败了..。

这很好,只是您不应该查询CNAME,而应该将其作为A记录重新查询。缓存的值一旦过期,您就不能再假设您知道有关它的任何事情;您必须假设它是A记录,并允许DNS系统执行其工作,然后让它告诉您否则的情况。

除非您试图调试或诊断某些东西,否则应该始终查询A记录。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/905594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档