LVS之DR模式下SYN_RECV报错
LVS之DR模式下SYN_RECV报错-shou55-ChinaUnix博客
2023年了,没想到这个问题在2014-11-03的博客里找到解决方法。。。
- 报错关键字SYN_RECV
- [root@localhost network-scripts]# ipvsadm -lcn
- IPVS connection entries
- pro expire state source virtual destination
- TCP 00:58 SYN_RECV 192.168.0.132:49861 192.168.0.50:80 192.168.0.81:80
原因1:
由于是2台笔记本通过wifi连接组成的局域网进行测试, 但DR模式下是不能再经过其它路由器的, 所以问题出在网络线路上.在生产环境中是不会出现wifi连接的情况的, 所以在实际一般不会遇到. 另外, 这也说明了一个判断标准. 即DR模式的测试是可以完全断开路由器的, 如果在断开路由器后调度器与真实服务器之间还是可以互通, 这才满足DR模式的要求.
shou55小结简单环境测试可以如下:
断开路由器----相互ping DIP VIP RIP等可以互通-------可以访问RIP-----可以访问VIP或者telnet VIP 端口是通的
原因2:
参见VIP的80端口不通
- VIP的80端口不通
可以相互ping通, 可以访问RIP ,但不能访问VIP ,即VIP的80端口不通
原因:
RS上的脚本要运行后VIP的80端口才会通, 如果其它都正常, 但就是VIP的80端口不通, 则首先检查一下在RealServer上的脚本是否运行过, RealServer的回环接口上是否绑定了VIP
- 反向路由过滤(rp_filter)
LVS-DR, LVS-Tun need rp_filter=0 否则连接时会提示SYN_RECV(可能是所有的RIP都提示也可能只有部分RIP提示)
用下面的脚本可以设置
for i in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo "setting $i to 0"
echo 0 > $i
done