最近,我问了一个关于负载平衡多个服务器(TCP非http流量,非常长的连接和非常一致的带宽速率)选项的问题:负载平衡长期运行的TCP连接
在这篇文章中,我被指示到LVS,只是尝试了一下。安装很简单,而且非常简单,我唯一的问题是我只能使用LVS(realserver是窗口,我不想改变它们的配置)。问题在于它重写了源IP,所以如果客户端登录,我只看到NAT‘’ed,而不是他原来的源IP。这在监管需求方面给我们带来了一个问题,因为我需要为每一个登录的客户端记录真正的源IP。
其他人如何处理这个问题?
谢谢,
汤姆
发布于 2010-09-28 17:49:30
您可以重新考虑您的Windows配置。我在Windows中成功地使用了LVS的直接路由。根据我的团队成员编写的文档:
首先安装适配器。启动> hdwwiz.exe单击下一步,然后“安装我手动从列表(高级)滚动选择的硬件,然后单击"Network”选择微软,然后完成Wizzard转到控制面板\Network和Internet\Network连接。将适配器重命名为它们的描述性名称。右键单击环回适配器并手动分配LVS。转到Start > cmd.exe (右击并选择run作为管理员),运行这些命令。拥有真正主机IP的ipv4接口的名称ipv4 ipv4设置接口“回环”weakhostreceive=enabled netsh接口ipv4集接口“回环”weakhostsend=enabled
这是一台Windows2008服务器,最初使用此网站作为指导进行配置。
就日志记录而言,通常唯一的解决方案是在客户机的实际IP仍在路由的情况下利用日志记录。
通过网络流量,可以使用X_FORWARDED_FOR环境变量。点是,在某个点之后,不能依赖网络层来获取这些信息。在这种情况下,您必须在堆栈上进一步移动以获得潜在的解决方案。
发布于 2010-12-14 12:11:17
是的,直接路由是一个很好的解决方案,但是为什么您对NAT模式有问题?默认情况下,具有内部和外部子网的NAT模式下的LVS是透明的,也就是说,服务器可以看到客户机源IP,就好像它是一个直接连接(就像防火墙一样)。在NAT模式下对LVS的简短描述在我们的站点上:负载平衡方法(NAT模式)。顺便说一句,如果你乱搞Windows路由表,你甚至可以单臂确认NAT .
发布于 2011-08-17 08:06:52
当LVS处于NAT模式时,LVS盒必须是来自实际服务器的流量的默认网关,这正是因为流量具有客户端真正的源IP。我不知道你怎么能让LVS在NAT模式下改变源IP。您应该有一个包含两个网卡(双臂配置)的LVS盒,VIP位于外部子网上,而实际服务器的默认网关位于内部子网上。默认情况下,流量是NAT透明的,也就是说,当它出现在真正的服务器上时,它看起来就像是直接来自客户端源IP地址。你能给我看一堆“ipvsadm-Ln”吗?另外,在您连接到VIP转储之后,'ipvsadm -Lnc‘会向您展示到底发生了什么。您确定不只是在日志中看到“健康检查”条目吗?这些可能来自负载平衡器IP,如果您使用ldirectord或备活进行健康检查?
https://serverfault.com/questions/185499
复制相似问题