Hello,
I just setup a LVS-Tun config. The director seem to works fine, but the
real server doesn't answer.
The director IP is x.x.x.127
The real server IP is x.x.x.49
The virtual IP is x.x.x.140
The client IP is y.y.y.170
I look with tcpdump, on real server from packets from the director : (
tcpdump -ln -i eth0 host x.x.x.127 -vvv )
02:16:05.073877 IP (tos 0x0, ttl 120, id 0, offset 0, flags [DF],
length: 68) x.x.x.127 > x.x.x.49: IP (tos 0x0, ttl 120, id 55160, offset
0, flags [DF], length: 48) y.y.y.170.4041 > x.x.x.140.80: S [tcp sum ok]
2144114072:2144114072(0) win 65535 <mss 1460,nop,nop,sackOK>
02:16:08.047795 IP (tos 0x0, ttl 120, id 0, offset 0, flags [DF],
length: 68) x.x.x.127 > x.x.x.49: IP (tos 0x0, ttl 120, id 55166, offset
0, flags [DF], length: 48) y.y.y.170.4041 > x.x.x.140.80: S [tcp sum ok]
2144114072:2144114072(0) win 65535 <mss 1460,nop,nop,sackOK>
02:16:10.071981 arp who-has x.x.x.49 tell x.x.x.127
02:16:10.071987 arp reply x.x.x.49 is-at 00:30:18:22:60:49
So, the director seems to work. "y.y.y.170.4041 > x.x.x.140.80" is what
I need.
But on the tunl0 interface, I don't see any packet. ( tcpdump -ln -i tunl0 )
To set up the real server, I use this :
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 3 > /proc/sys/net/ipv4/conf/all/arp_ignore
modprobe ipip
ifconfig tunl0 0.0.0.0 up
echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 3 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
ifconfig tunl0 x.x.x.140 netmask 255.255.255.255 broadcast x.x.x.140 up
So, what did I forget ?
Thanks in advance,
Olivier
|