昨天,我们遇到了一些服务器(或可能是网络问题),这些问题升级为实际的连接问题(通过 ssh)以及 DNS 问题。
在此期间,除了上述情况外,一切似乎都正常:所有服务器都响应 ping,服务器负载(据我们所知)没有异常。日志文件中没有显示任何异常。几个小时后,这个问题自行解决,我可以访问我们所有的服务器。查看日志文件、sar 活动日志等,没有发现任何问题。
我们的服务器位于同一位置,我们的合作伙伴查看了交换机和防火墙,没有发现任何异常。网络流量似乎正常,一切都响应 ping 和 traceroute。但是:似乎没有 ssh 连接正常工作!
这就是我目前掌握的全部事实:
服务器最初似乎对通过 ssh 和 ftp 的连接响应“很慢”。但是一旦连接,一切似乎都很好。所有其他应用程序似乎都正常运行。Ping 没有发现任何异常。
昨天 19:05 DNS 查找停止工作,我可以在我的应用程序日志中看到这一点。
我尝试通过 ssh 访问我们的服务器几个小时,但只能访问 3 个服务器中的 1 个。尝试连接似乎超时了,大约一分钟后,我得到了:
$ ssh myusername@local_ip_address
Connection closed by <remote ip>
我们不使用域名进行 ssh,所以这里不需要 DNS,对吧?但也许远程服务器会进行某种远程 DNS 来验证连接?
如果是这样的话,我们在连接两个具有不同 DNS 设置的不同服务器时遇到了同样的问题(见下文),这很奇怪。
不过,ping 其他服务器没有问题。我联系了管理所有设备、服务器、交换机和防火墙的托管商。除了无法 ssh 之外,他们没有发现任何异常。ping、网络指标等看起来都很好。
大约一个小时后,我又可以再次使用 ssh 连接到之前没有响应的两台服务器。登录这些服务器并检查系统统计信息、日志文件等,什么也没发现!
沒什么?
我在这里很盲目,下一步该去哪里?我想知道发生了什么,这样我们才能确保它不会再发生!
如果您需要更多信息,我会尽可能提供!我专注于下面的 DNS 设置等,因为到目前为止这是我目前唯一的想法……
服务器设置
以下是我们在 3 台服务器中的 2 台上的 DNS 设置:
$ more /etc/resolv.conf
nameserver intentionally_changed_server_ip_1
nameserver intentionally_changed_server_ip_2
options rotate
这些 DNS 服务器不是由我们管理的,而是由我们的共同托管商管理的。我昨天问过他们是否有 DNS 问题,但还没有得到任何答复。一旦知道,我会尽快更新!
在第三台服务器上,DNS由于某种原因指向我们自己的Windows域控制器:
$ more /etc/resolv.conf
nameserver intentionally_changed_server_local_ip_3
dig
按照下面注释中的建议运行将返回轮换数量的外部名称服务器:
$ dig @intentionally_changed_server_ip_1 +short NS ourdomain
ns3.our-co-locators-domain.
ns5.our-co-locators-domain.
ns4.our-co-locators-domain.
$ dig @intentionally_changed_server_ip_1 +short NS ourdomain
ns4.our-co-locators-domain.
ns5.our-co-locators-domain.
ns3.our-co-locators-domain.
如果我以“intentionally_changed_server_ip_2”为目标,也会发生同样的事情!
服务器数据
所有服务器都是运行 RHEL-6 的 HP DL 380 G7 服务器:
$ more /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)