我试图find隐藏在虚拟IP后面的问题服务器(使用LVS / ipvs)。 我有一个testing程序发送请求到虚拟IP,直到它得到不好的响应,但我怎么能告诉哪个真正的IP请求虚拟IP路由?
在虚拟IP魔术盒上,这里是虚拟IPconfiguration(对于我所关心的服务):
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn ... TCP 10.1.0.254:5025 nq -> 10.1.0.5:5025 Route 1 0 1 -> 10.1.0.6:5025 Route 1 0 5 -> 10.1.0.7:5025 Route 1 0 2 -> 10.1.0.9:5025 Local 1 0 3 -> 10.1.0.11:5025 Route 1 0 3 ...
我的客户端程序正在向10.1.0.254:5025发送TCP请求,通常会得到一个很好的响应,但是有时反应很糟糕。 有了这几台服务器,我可以依次发送我的请求到每个服务器,直到我发现罪魁祸首,但我不知道这种技术是否会随着我们添加服务器而扩展。 我有什么方法可以找出请求被路由的地方?
这是IPVS / ldirectord的一个相当典型的问题,你有几个select来尝试解决这个问题
X-Served-by或者一些提示 logfile="/var/log/ldirectord.log" LB上的ipvsadm -Lcn (也ipvsadm -Lcn “导演”)应该列出你的连接。 grep为您正在search的IP。
最好的办法是在真实服务器上运行tcpdump,看看你的请求在哪里。
疑难杂症。 LVS-TUN在虚拟接口上监听客户端地址,因为数据包被封装了,您将无法根据用户的IP识别数据包
$ tcpdump -i tunl0主机USER_IP