Vis*_*idu 11 domain-name-system cname-record
由于历史原因,我们的 DNS 域具有 5 级 CNAME。有些事情为了高可用性等而外包,但这不是重点。我的问题是有 5 个 CNAME 对 DNS 解析器来说太过分了?我找不到任何有超过 2-3 级嵌套 CNAME 指向不同 DNS 域的著名网站。
我们的 CNAME hops 如下所示:(我以 xyz 为例)
www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net(最终 A\AAAA 记录)
当我使用http://check-host.net/check-dns?host=www.xyz.com来测试我们的 DNS时,我看到许多客户在其他站点对他们正常工作时向我们的网站抱怨 DNS 解析问题解析度。
它似乎在世界范围内始终运行良好。我的结论是,当上述跳数之一无法解析时,主要是本地 ISP 提供商的 DNS 解析器搞砸了。nslookup 在这些客户端计算机上仅针对我们的网站失败,而且偶尔也会失败。
这种多级 CNAME 通常是一个糟糕的设计吗?
HBr*_*ijn 16
这种多级 CNAME 通常是一个糟糕的设计吗?
CNAME 到 CNAME 链不是被禁止的,但正如您已经体验到的那样,它不是一个非常强大的解决方案。
每个额外的 CNAME 都会增加解析器的递归深度,并且该深度并不总是无限的。您还面临着创建循环或触发循环检测算法的风险。
要了解您的用户名称服务器需要执行多少查询和哪些查询,请运行 DNS 跟踪:
dig +trace www.example.com
Run Code Online (Sandbox Code Playgroud)
或在 Windows 上
nslookup -debug www.example.com
Run Code Online (Sandbox Code Playgroud)
And*_*w B 12
HBrujin 是正确的,但实际上递归深度比任何东西dig +trace
都要糟糕得多。递归深度是经常被嘲笑和过度轻视的东西,但那些人忘记了你不仅仅是解决 ~5 个CNAME
记录。这是因为解析CNAME
记录的目标需要查找路径中的每个名称服务器,这通常比乍一看的要多得多。
CNAME
目标是否居住在另一个域中?您需要递归到它的名称服务器,这不仅需要NS
记录查找,还需要A(AAA)
查找不存在胶水的地方。这些名称服务器的名称服务器是否位于不同的顶级域中?如果这些 TLD 不共享名称服务器,则可能不会包含粘合记录,您也必须通过其他 TLD 的名称服务器进行递归。等等。
CNAME
添加到链中的每条记录都可以以指数方式增加所需的查找次数,具体取决于需要递归通过的名称服务器的数量。这些CNAME
+ NS
+A(AAA)
记录查找链反过来会变得非常复杂,在空缓存上达到超过 150 级的深度。这就是递归深度限制会变得非常糟糕的地方,导致在空缓存上查找域的临时失败,并且原因通常不会立即显现。
简而言之,您可以这样做,但要谨慎行事,并认真对待这种性质的反馈。您无法控制重新启动或清除 Internet 上的递归 DNS 服务器的频率。
归档时间: |
|
查看次数: |
4255 次 |
最近记录: |