请问章博士现在的ipvs版本支持透明代理的负载均衡吗?

从LVS-HOWTO看到的资料,使用iptables的REDIRECT加上fwmark来实现透明代理,但我试验了一下,似乎不成功。

以前的透明代理实现,仅仅通过REDIRECT到本地的squid来实现,有两个步骤,进来的时候改变目标IP为本地IP,出去的时候将源IP恢复为进来时候的目标IP(也就是客户请求的web站点IP)。但对于ipvs来说,跳过了后面一步而直接转发给RS,因为ip_vs_post_routing()在NAT hook fn处理前返回NF_STOP。这样一来,作为RS的squid收到包并处理完后,就直接发出响应给客户,但客户收到的响应的源IP却是分发器的IP,而不是客户请求的web站点的IP,透明代理当然无法实现。

或许可以在规则表中加多一个选项,指明透明代理,使得这种情况下不返回NF_STOP,让NAT hook fn能恢复ipvs转发出去的包的源IP,那样估计问题就解决了。

请章博士解答!谢谢。

Forums: