LVS部署问题(NAT模式)
在自己一台linux主机上搭建了两台xen虚拟机,打算搭建一个LVS的测试环境。
linux宿主机作为director,两台虚拟机作为real server!
原来使用keepalived老是实现不了负载均衡的分发效果。后来先不使用keepalived了,就只用LVS的功能,但结果还是如此。ipvsadm的工作状态如下:
[root@localhost1 Query_mount]# ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.44.128:http rr -> 11.1.1.4:http Masq 1 0 0 -> 11.1.1.3:http Masq 1 0 0其中11.1.1.3和11.1.1.4是虚拟机的IP,物理机添加了两块网卡,其中一块网卡IP是11.1.1.1,跟虚拟机互联互通,另一块网卡是192.168.44.128,作为VIP使用,提供给外部测试使用。
虚拟机都起了htttp服务,单独测试没问题!
现在的情况是访问VIP连接:无法访问(状态一直是SYN_RECV)
[root@localhost1 Query_mount]# ipvsadm -lcn IPVS connection entries pro expire state source virtual destination TCP 00:57 SYN_RECV 192.168.44.1:3521 192.168.44.128:80 11.1.1.3:80 TCP 00:46 SYN_RECV 192.168.44.1:3513 192.168.44.128:80 11.1.1.4:80 TCP 00:55 SYN_RECV 192.168.44.1:3519 192.168.44.128:80 11.1.1.3:80 TCP 00:55 SYN_RECV 192.168.44.1:3516 192.168.44.128:80 11.1.1.4:80 TCP 00:54 SYN_RECV 192.168.44.1:3515 192.168.44.128:80 11.1.1.3:80 TCP 00:55 SYN_RECV 192.168.44.1:3520 192.168.44.128:80 11.1.1.4:80 TCP 00:55 SYN_RECV 192.168.44.1:3518 192.168.44.128:80 11.1.1.4:80 TCP 00:55 SYN_RECV 192.168.44.1:3517 192.168.44.128:80 11.1.1.3:80
[root@localhost Query_mount]# ipvsadm -l --rate IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS -> RemoteAddress:Port TCP 192.168.44.128:http 1 1 0 46 0 -> 11.1.1.4:http 0 0 0 23 0 -> 11.1.1.3:http 0 0 0 22 0可以看到包进来了,没出去。也就是没扔给real server。。
网上找了很久的答案,还是找不到结果。
备注:iptables和selinux我都关闭了。
求指点,thanks!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
lvs 的发明人不都被你们老板招去了么
@皮总 呵呵,招去做高级研究员,相当于副总裁。。太牛狠了
皮总,你们公司是干嘛的呢。那么很
恩恩 IP转发我一开始就开启了
这答案来的真及时,确实如此。问题解决了!!感谢皮总:
给后来者看,添加网关:route add default gw 11.1.1.1 可以用route命令查看效果
我自己至今没装成功最新版的 lvs
呵呵,估计也很少人用NAT模式部署吧,官网说是效率相对低下。这一块刚接触,居然把这点细节给忽略了。太感谢提醒了
我也遇见这个问题,但是没有解决。 ip_forward=1 也增加了default gw 指向VIP。 但是在ipvsadm -lcn中依然是 SYN_RECV 。 realserver 中使用netstat -an 查看到,对应的TCP连接为SYN_RECV