我遇到了一个相当奇怪的问题,无论我做什么或搜索什么,我都无法纠正它,现在我决定首先在这里寻求帮助。
我有一个服务器集群,大约有 10 个服务器集群在一起。
几周前,其中一台服务器停止与主服务器通信。经过调查,我发现从服务器无法再 ping 通主服务器,但主服务器仍能 ping 通并从服务器通信,但它们不再处于集群状态。
我猜想这是主服务器上某处的防火墙问题,并搜索了可能导致此问题的规则。最后,我彻底刷新了规则并重新编写了规则,但即使刷新之后,从服务器仍然无法 ping 通主服务器,并且数据包丢失率为 100%。
经过进一步调查,在 netstat -a 中的 MASTER 上发现了一个奇怪的条目,显示从属设备正在本地监听,尽管该条目不应该出现在那里。
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:4084 0.0.0.0:* LISTEN
tcp 0 0 xxxxx.xxxxxxxxx.xx:5941 0.0.0.0:* LISTEN
tcp 0 0 dex.xxxxxxx.co.u:domain 0.0.0.0:* LISTEN
第三个条目是从属服务器,它是一个远程服务器,所以如果我没记错的话,它不应该位于本地地址下。据我所知,这似乎是锁定的原因。这里再来一次。
]# netstat -ntlp | grep 9954
tcp 0 0 xx.99.1x7.x:53 0.0.0.0:* LISTEN
9954/dnsmasq
~]# netstat -ntlp | grep 53
tcp 0 0 xx.99.1x7.x:53 0.0.0.0:* LISTEN
我需要帮助删除此条目,以便从属设备可以再次 ping 主设备。我试过了
tcpkill host xxx.xxxxxxxx.com
tcpkill host xx.99.1x7.x
但是这些都无法删除条目或允许 ping。
我是不是漏掉了什么?主服务器尚未重新启动,因为它是生产服务器。如有任何建议,我们将不胜感激。
答案1
这意味着从设备的地址在主设备中配置为本地地址。主设备不会 ping 从设备,而是在从设备的本地地址上 ping 自身。从设备无法 ping 主设备,因为主设备认为返回地址是本地地址,因此不会将答案发送回从设备。
使用ip addr
查看本地地址。您可以使用 删除地址ip addr del slave-ip dev device
,但您必须找出地址的设置位置,这样才能防止再次发生这种情况。