我最近问了一个关于我的负载均衡多个服务器的选项的问题(TCP非HTTPstream量,运行时间非常长,连接带宽非常一致): 负载平衡长时间运行的TCP连接
在这篇文章中,我被引导到LVS,只是给了一个尝试。 安装非常简单,它的function非常强大,我唯一的问题就是我只能使用LVS-NAT(realserver是windows,我不想改变它们的configuration)。 问题在于它重写了源IP,所以如果客户端login,我只能看到NAT的IP,而不是他的原始源IP。 这在监pipe要求方面给我们带来了一个问题,因为我需要为login的每个客户端logging真实的源IP。
其他人如何处理这个问题?
谢谢,
汤姆
您可能会重新考虑您的Windowsconfiguration。 我在Windows中成功地用LVS直接路由。 根据我的团队成员的文档写道:
First install the Windows Loopback Adapter. Start > hdwwiz.exe Click Next then "Install the hardware that I manually select from a列表(高级)
Scroll Down and click "Network Adapters" Choose Microsoft, then Microsoft Loopback Adapter Finish the Wizzard Go to Control Panel\Network and Internet\Network Connections. Rename适配器的描述性名称。 右键单击回送适配器并手动将其分配给LVS VIP。
Go to Start > cmd.exe (right click and choose run as administrator) Run these Commands. netsh interface ipv4 set interface "Name of Adapter that holds the real主机IP“weakhostreceive =启用netsh接口ipv4设置接口”loopback“weakhostreceive =启用netsh接口ipv4设置接口”loopback“weakhostsend =启用
这是一个Windows 2008服务器,最初使用此Web站点进行configuration以获得指导。
就日志logging而言,通常唯一的解决scheme就是在客户端的真实IP仍然在路由的地方使用日志logging。
使用Webstream量时,可以使用X_FORWARDED_FOR环境variables。 就是说,在某个点之后,networking层不能依赖这个信息。 在这种情况下,你必须进一步向上堆栈寻找潜在的解决scheme。
是的,直接路由是一个很好的解决scheme,但为什么你有NAT模式的问题? 具有内部和外部子网的NAT模式下的LVS默认是透明的,即服务器可以看到客户端的源IP,就好像它是直接连接一样(就像防火墙一样)。 LVS在NAT模式下的简单描述在我们的网站: 负载平衡方法(NAT模式) 。 顺便说一句,你甚至可以做一个单臂确认的NAT,如果你绕过Windows路由表…..
当LVS处于NAT模式时,LVS盒必须是来自真实服务器的stream量的默认网关,因为stream量具有客户端的真实源IP。 我不知道如何让LVS在NAT模式下更改源IP。 您应该有一个带两个网卡(双臂configuration)的LVS盒,VIP位于外部子网上,而真实服务器的默认网关位于内部子网上。 stream量在默认情况下是透明的,也就是说,当它在真实服务器上出现时,它看起来好像直接来自客户端源IP地址。 你能告诉我一个'ipvsadm -Ln'的转储吗? 此外,在您与VIP倾销“ipvsadm -Lnc”连接之后,您将看到究竟发生了什么。 你确定你不只是看到日志中的“健康检查”条目? 如果您使用ldirectord或keepalive进行健康检查,这些来自负载平衡器IP?