对网站的请求返回“没有到主机的路由”

对网站的请求返回“没有到主机的路由”

截至今天下午 3 点(太平洋夏令时间),通过域名向我的网络服务器发出的请求中,约有 50% 的请求在世界各地都失败了(我的监控服务 Pingdom 报告)。Pingdom 在其日志中报告的错误是“没有到主机的路由”。当我尝试自己访问该网站时,只有大约一半的时间能够连接。但是,当我尝试通过其 IP 号访问它时,该网站立即出现。GoDaddy 为我提供 DNS 托管服务,几个月来我都没有对 A 记录进行任何更改。A 记录指向正确的 IP 号。我联系了 GoDaddy,但他们坚持认为这不是 DNS 问题,并向我指出了网站http://www.whatsmydns.net/#A/。此工具显示我的域名从所有位置都快速解析到正确的 IP。但我的托管公司(到目前为止,该公司在快速解决问题方面非常称职)坚持认为这是 DNS 问题。他们没有遇到任何问题,我的服务器所在的数据中心(它是 hostway DC)表示他们当时没有遇到任何问题。我最近根本没有碰过 Apache 配置文件。

问题还可能出在哪里?

德里克

答案1

我联系了 GoDaddy,但他们坚持认为这不是 DNS 问题

很可能是正确的。除非他们的某些 DNS 响应回答了错误的 IP...这不是与 DNS 相关的错误消息。

Pingdom 在其日志中报告的错误是“没有到主机的路由”

Pingdom 会给出它尝试的 IP 地址吗?如果它一致且正确,那么这根本不是 DNS 问题。

但我的托管公司坚持认为这是一个 DNS 问题,尽管该公司迄今为止一直非常擅长快速解决问题。

如果尝试联系的 IP 地址在任何地方都是正确的,则可以排除这种情况。一旦请求计算机拥有名称的 IP,DNS 就无从谈起。

他们没有遇到任何问题,并且我的服务器所在的数据中心(它是一个主机 DC)表示他们当时没有遇到任何问题。

可能会失去他们的控制。

我最近根本没有碰过 Apache 配置文件。

也无关紧要。Apache 是 HTTP,而不是 IP - 基本上,这是来自路由方面的错误,请求永远不会到达您的服务器。

我建议设置第二个服务 (monitis) 来验证结果。另外找出尝试访问的 IP 地址。也许 pingdom 存在问题,导致它们有时使用错误的 IP。

答案2

这听起来像是路由或 DNS 出了问题。让我们来调查一下:

使用 NSLOOKUP 查询检查您的域的一个或多个 DNS 服务器是否解析错误。使用设置querytype=NS仅查询 NS 条目,norecurse禁用递归查询(我们稍后会手动执行此操作)并将名称服务器设置为a.root-servers.net

$ nslookup
> set querytype=NS
> set norecurse
> server a.root-servers.net
> example.org

您将收到负责您域名 TLD 的名称服务器列表

Server:  [198.41.0.4]
Address:  198.41.0.4

org     nameserver = b2.org.afilias-nst.org
org     nameserver = b0.org.afilias-nst.org
[...]
a0.org.afilias-nst.info internet address = 199.19.56.1
[...]

将您刚刚收到的名称服务器之一设置为服务器:

> server 199.19.56.1
> example.org

您可能会看到注册或提供商的 DNS 根。如果您有嵌套的 DNS 服务器设置,您可能还需要重复最后一步,直到找到您域的自动名称服务器。

example.org     nameserver = a.iana-servers.net
example.org     nameserver = b.iana-servers.net

您没有经历 100% 的解析度损失这一事实是一个提示。如果它与 DNS 相关,则很可能是递归方式到达您的域的某个名称服务器提供了错误的数据。

使用上述方法,您应该能够遍历可能的名称服务器路径并检查它们是否提供正确的数据。(不要忘记set querytype=any

答案3

如果您的 DNS 稳定且一致,那么......

这可能只是路由故障,您的主 AS 或目标 AS 正在丢弃路由。尝试 mtr 并查看您的数据包在哪里停止正确路由。

相关内容