事情的起因是在前几天公司在海外的服务器工作不正常,国内用户访问该服务器上的网站要么只显示一个标题,然后一直处于加载之中,要么就是无法连接到服务 器。经过自己的试验,发现一旦访问了服务器的网站(或者连接了服务器的SSH),五分钟之内便无法和服务器进行通讯,五分钟之内PING全部超时,过了五 分钟后恢复。而且经常是网页传输到一半就无法和服务器进行通讯了,所以出现了有时候网站要么只显示一个标题,然后一直处于加载之中,有时候无法连接到服务 器的情况。如果五分钟后再次访问服务器上的网站,则此现象就再次重复出现。
为此,为了诊断故障原因,在无法访问服务器的五分钟内,关闭了服务器的iptables并使用了路由跟踪工具,结果如下:
经过思考,猜想是否有可能是防火墙进行了反向屏蔽:如果网络数据包中的源IP为国内,目标IP在国外,则放行;如果网络数据包中的源IP为国外五分钟内 临时被屏蔽的IP,目标IP为国内,防火墙则丢弃该数据包。如果是这样,也就能解释通为什么最后一跳是在美国,但却是防火墙的屏蔽。因为国内发往国外的数 据包永远被放行,所以海外服务器可以收到数据包,而在前13跳中返回数据包的IP地址都不在防火墙的黑名单之内,所以TTL超时的数据包仍旧可以发回国内 的IP地址(路由跟踪工具的原理就是每次TTL加一,每次经过路由器则TTL减一,如果减到零那么路由器会发送TTL超时的数据包给源IP)。最后一跳之 后由于海外的IP地址被屏蔽,则数据包无法送达国内的IP地址。这么解释就可以解释得通为什么最后一跳在美国,但却是防火墙的屏蔽了。
但猜测归猜测,证据在哪里呢?
为此,使用了其他代理工具连接上服务器的SSH,在被临时屏蔽的五分钟内反向路由追踪国内无法访问网站的IP地址,结果如下:
之后,又再次在五分钟临时被屏蔽的时间内反向追踪了上海的其他IP地址,显示可以正常访问,并不影响服务器访问国内的网站,只有国内的IP地址首先对国外被屏蔽的IP地址发起通讯才能触发被五分钟临时屏蔽:
没有评论:
发表评论