我在NAT模式下使用LVS(ipvsadm)来为多个“真实服务器”负载均衡UDPstream量。 我正在使用单包调度,以便来自客户端上的单个源端口的stream量分发到不同的realserver。
但是,我所看到的是,源于真实服务器并发送回客户端的UDP数据报将其源IP /端口设置为真实服务器的一个,这使得客户端感到困惑,因为它希望接收源IP /端口匹配的,他发送原始数据报。
这确实很奇怪,因为LVS应该“隐藏”虚拟IP /端口背后的服务器。
看来,如果我closures单包调度,传出数据报的源IP /端口由LVS正确地重写。
有没有人遇到过这个? 如果是的话,这是怎么回事?
如果你还有兴趣:
我认为一个数据包调度并不期望来自刚刚调度的数据包的响应,因此不存储连接信息。 然后,当响应回来,LVS无法find它的连接,所以不知道什么源IP /端口使用。
这似乎是devise。 在这里search“OPS是为原始数据包没有回复的设置而实现的”,您将看到一些解释。
http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.UDP.html
解决方法是为UDP连接设置持久性超时(如果您期望快速响应,可以将其设置为低),从而明确设置连接时间。 既然你可以做到这一点,OPS记住连接是没有意义的。