LVS与NAT的结合问题

我们用LVS做过多个负载均衡集群,总体来说,最实用的还是NAT方式,DR方式不能改变RealServer的端口,也不能在一个RS上起多个服务多个端口;TUN方式对RS平台有要求。但是现在在NAT方式上也出现了一个问题,现在还没想到解决的方法,请各位帮助!
具体是这样的,NAT方式需要将RS的网关设为Director的IP地址,以便将返回包通过Director发送回客户端;但是我们在同一个局域网内有多个防火墙,通过防火墙做的NAT过来,直接在局域网内,RS发现了之后,就将包直接回给了防火墙。但是防火墙是向Director发的包,拒绝接受RS的反馈。因为这样的原因,同一个网段内的机器不能使用LVS了。而RS有访问后端数据库、中间件的需要,放在其他网段也不现实。不知道能通过什么方式或者参数解决?( 目前RS暂时都是Linux平台的,以后可能上AIX或者Windows平台的。)
我们使用的商用产品——Foundry负载均衡交换机使用了一个方法,就是将Director发送到RS的包,做一个SNAT,源地址转换成了Director的地址。这样RS的返回包肯定是会回到Director,由Director反馈回用户。这个方式我想通过iptables来实现,但是发现不起作用,似乎是被LVS屏蔽或者绕过了。如果按照这个思路,有没有别的办法能做NAT的?
各位有空帮想想,谢谢!

Forums:

不是很明白你的意思!

但我想可以把director和rs放到防火墙的内部,好像这样就需要多个director了,不知道对你的情况理解是否正确?

跟防火墙没关系,关键是同一个网段内的客户端不能访问LVS/NAT方式的Director,因为RS直接返回给了客户端了

同一网段要实现 NAT方式,需要修改REAL-SERVER的路由表,WINDOW系统也可以实现。详细操作可以参考 LVS 管方网站

文档地址: http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.LVS-NAT.html, 查看5.12. One Network LVS-NAT

但是跟我说的不是一回事。我想的是怎么能跟Foundry的方式一样,从DR到RS之间再做一次NAT,这样更灵活;实现了就能完全取代硬件负载均衡器了