VPS的环境, 有内网IP,但是内网 外网IP都必须配置在eth0,只用一台REAL是为了测试。
网络结构是这样的。SERVER A当作Director eth0 106.x.1 (外网,只有一个IP,当作VIP) eth0:1 192.168.x.2 内网
lo 127.0.0.1
SERVER B eth0 106.x.2 (外网) eth0:1 192.168.x.2 内网
互相ping 192的,都可以通,无需网关。
_,,.----.,,,
.'` `'.,
/ Internet \
\ '
'., _,-`
/ ``'''---''`` \
/ \
/ \
/ \
+---------+ / \ +---------+
| | / ' | |
| |106.x.1(vip) 106.y.2 | |
| eth0-- --eth0 |
| |192.x.1 192.x.2 | |
| | | |
+---------+ \ / +---------+
\ /
\ /
\ /
\ /
\ /
\ /
' /
,,..---..,,
,-`` ``',
- '
| LAN |
. ,
`',, _,-`
``''---''``
两边都没有开防火墙
我安装别人的说明,配置了Director(Server A)
ipvsadm -A -t 106.x.1:8000 -s rr
ipvsadm -a -t 106.x.1:8000 -r 192.168.x.2 -g
后来也尝试添加了route add -host 106.x.1 dev eth0
在real server上面配置
ifconfig lo:0 106.x.1 netmask 255.255.255.255 broadcast 106.x.255
route add -host 106.x.1 dev lo:0
抑制了ARP响应
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
测试,在A机器上,可以看到有进来的包,但是B机器上看不到任何数据包
ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 106.x.1 rr
-> 192.168.x.2:8000 Route 1 0 1
1
myliyifei OP 哎,没人理我。。。
|