上周,我们在我们的权威 DNS 服务器上启用了 IPv6,并在我们的域名服务器的注册商上启用了相应的 Glue 记录,并为我们自己的网站添加了 AAAA 记录。这次推出顺利,我们现在在 IPv6 上本地提供我们的网站。
这个周末,我们将一个 IPv6 地址添加到我们客户的一台专用服务器,确保 Apache 已配置为 IPv6,并将该 IP 地址添加到他们自己的 DNS 区域文件中。
从那时起,我们对 URL ( http://www.allgirlsallowed.org ) 的 Nagios 监控一直在抱怨:
CRITICAL - 10 秒后的套接字超时
我们已经确认该网站完全可以运行并且 DNS 配置正确,尽管外部工具(例如 Pingdom 的网站测试和http://www.downforeveryoneorjustme.com)有不同的结果(Pingdom 说它运行良好,Down for Everyone说它已关闭)。
在我们的调查中,我们注意到有几十个 TIME_WAIT 来自同一个 IPv6 地址(位于我们的同一个 /64 块中,并且是由托管服务提供商运营的 IP)。
现在我明白 TIME_WAIT 状态意味着连接实际上已关闭,并且该过程将很快消失。也就是说,这是我能在服务器上找到的唯一奇怪的东西。我们还看到负载持续增加(~0.5,即使当前访问者为 0)。
我担心的是,我们还没有在其他支持 IPv6 的服务器上看到这种行为(尽管允许,我们的其他 IPv6 服务器可能比这个特定的客户端接收到的流量要少得多)。
你有什么建议我调查的吗?显然我可以重新启用并禁用 IPv6,但这是一个废话。我想找出问题并正面解决。
迈克尔 - 感谢您的回复。我相信我已经找到了 Nagios 投诉的原因,以及我看到的大量 TIME_WAIT(因为我刚刚对 /etc/sysconfig/network-scripts/ifcfg-eth0 进行了更改),尽管我不明白为什么会有所作为,我不明白为什么会解决这个问题。
问题是服务器正在下拉 IPv6 的 DHCP 地址(我们没有在 ifcfg-eth0 中专门设置它)。也就是说,我们确实在该文件中包含以下行:
直到几分钟前,我才将该文件逐行与我们另一台运行 IPv6 的服务器上的文件进行比较,因为有问题的服务器仍然存在问题,其 TIME_WAITs 比我认为是正确的,负载仍然很高,客户抱怨他们的网站非常慢(今天早些时候有时会出现故障)。
当我没有将该行插入到启用 IPv6 的其他服务器上的文件中时,我发现我已将该 IPV6INIT 行插入到他们的文件中。
当我删除该行并重新启动网络服务时,所有 TIME_WAIT 都消失了,服务器负载下降,Nagios 立即针对过去 3 天一直抱怨的严重状态发出“恢复”警报。
我们将继续密切关注我们的情况,但看起来问题已经解决。