当您同时拥有 A 记录和名称服务器时会发生什么?

当您同时拥有 A 记录和名称服务器时会发生什么?

因此,我有一个朋友试图在他的主域名和子域名之间做一些奇怪的事情。他最终需要 blog.hisdomain.com 指向一个愚蠢的 cPanel 主机,而他的主域名指向一个静态 IP(用于 AWS)。

我不是 http 或 dns 方面的专家,但我试图在他醒着的时候帮助他解决这个问题(目前他所在国家已经是晚上了),但看起来似乎并没有奏效。

我让他执行以下步骤:

  1. 他的主域名是在 cPanel 中设置的,并设置了名称服务器,所以我让他在 cPanel 中为 blog.hisdomain.com 创建一个子域名,该子域名刚好转到公共根目录。
  2. 然后我让他为“博客”添加一条 A 记录,以 cPanel 主机的 IP 作为值。这样我们就可以在 blog.hisdomain.com 上看到他的博客了。
  3. 接下来,我让他将“@”A 记录改为指向其他地方。我只是在这里获取了一个谷歌 IP 地址作为值。这起初并没有真正改变任何东西,但我们认为这可能是一个传播问题。

现在已经过去 24 个小时了,但他的主域名仍然(现在速度更慢了)将我带到博客。刚才我才想起我没有让他更改名称服务器或任何东西;只是 A 记录。是否有可能因为 A 记录和名称服务器而造成一些混淆,并导致 DNS 忽略 A 记录 IP 地址。

答案1

不。对于 @ 记录来说,A 记录和 NS 记录共存是完全有效的(并且很常见)。

但是,CNAME 记录与任何其他类型的记录共存是无效的。RFC 1034 规定“如果节点上存在 CNAME RR,则不应存在其他数据;这确保了规范名称及其别名的数据不能不同”。我最近遇到了这个特殊问题,并惊讶地发现 TXT 记录和 CNAME 记录不能共存。

我会做以下几件事:

  • 刷新 DNS 解析器缓存
    • Windows: ipconfig /flushdns
    • Linux: sudo 服务 nscd 重启
    • Mac OS X
      • Mountain Lion 和 Lion: sudo killall -HUP mDNSResponder
      • 雪豹: sudo dscacheutil -flushcache
  • 我会确保你的朋友使用的是 A 记录而不是 CNAME 记录
  • 我会让你的朋友检查 @ 记录(或区域本身)上的 TTL - 你没有提到 TTL 是什么。虽然 86400 秒(24 小时)是常见的 TTL 值,但总是有可能将其设置得更高以减少 DNS 流量。
  • 使用 DNS 查询实用程序(例如 dig)直接查询 DNS 服务器

相关内容