LVS-DR problem
现在情况如下, 希望制作一个 LVS-DR 模式
there is my topology, and I wanna setup the LVS network with DR mode.
client ( 192.168.20.1/24 )
|
|
director (vip eth0:0 192.168.20.10/24 ) (dip eth1 192.168.20.20/24) (ip_forward=yes)
|
|
|-----------------|
|
www1 www2
www1(rip eth0 192.168.20.12/24 gw:192.168.20.20 lo:0 192.168.20.10/32 ) (ip_forward=yes)
www2(rip eth0 192.168.20.13/24 gw:192.168.20.20 lo:0 192.168.20.10/32 ) (ip_forward=yes)
www1 & www2 --> arptable -A IN -d 192.168.20.10 -j DROP
director:
ipvsadm -A -t 192.168.20.10:80 -s rr
ipvsadm -a -t 192.168.20.10:80 -r 192.168.20.12 -g
ipvsadm -a -t 192.168.20.10:80 -r 192.168.20.13 -g
上面环境,客户端访问 VIP,能够做到访问真实电脑轮叫调度,问题如下。
in this topology, my client can browser www1 and www2 with round-robin. but there is my problem.
=================================================================
client ( 192.168.20.1/24 )
|
|
director (vip eth0:0 192.168.20.10/24 ) (dip eth1 10.10.10.1/24) (ip_forward=yes)
|
|
|-----------------|
|
www1 www2
www1(rip eth0 10.10.10.10/24 gw:10.10.10.1 lo:0 192.168.20.10/32 ) (ip_forward=yes)
www2(rip eth0 10.10.10.11/24 gw:10.10.10.1 lo:0 192.168.20.10/32 ) (ip_forward=yes)
www1 & www2 --> arptable -A IN -d 192.168.20.10 -j DROP
director:
ipvsadm -A -t 192.168.20.10:80 -s rr
ipvsadm -a -t 192.168.20.10:80 -r 10.10.10.11 -g
ipvsadm -a -t 192.168.20.10:80 -r 10.10.10.12 -g
================================================
当客户端访问的时候,我能够通过抓包知道客户端能够访问到真实电脑中,但无法返回数据到客户端,请问那里做错了?
when I test the network and use package capture, clinet's package can reach the real server, but real server can not return package to the client, what's wrong with my test?
Anonymous (没有被验证)
周三, 2008-08-13 06:18
Permalink
lvs直接路由
基于直接路由(DR)的LVS的配置
1.硬件需求和网络拓扑:
________
| |
| 客户端 | (互连网)
|________|
|
(router)
202.99.59.1(director GW)
|
__________ |
| | | (VIP=202.99.59.110, eth0:110)
| director |---| (控制器有一块网卡,且与realserver1和realserver2在同一网段)
|__________| | DIP=202.99.59.109 (eth0)
|
-----------------------------------
| |
RIP=202.99.59.108(eth0) RIP=202.99.59.107(eth0)
(VIP=202.99.59.110, lo:0) (VIP=202.99.59.110, lo:0)
____________ ____________
| | | |
|realserver1 | |realserver2 |
|____________| |____________|
2.安装软件:
在director(202.99.59.109)上安装上面的方法安装内核和管理软件。
3. 配置LVS
(1)、在202.99.59.109上:
修改内核运行参数,即修改/etc/sysctl.conf文件的内容如下:
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
然后执行下面的命令是对内核修改的参数立即生效:
sysctl -p
配置VIP地址:
/sbin/ifconfig eth0:0 202.99.59.110 broadcast 202.99.59.110 netmask 255.255.255.255 up
/sbin/route add -host 202.99.59.110 dev eth0:0
清除ipvsadm表:
/sbin/ipvsadm -C
使用ipvsadm安装LVS服务:
/sbin/ipvsadm -A -t 192.168.1.110:http -s rr
增加realserver:
#forward http to realserver using direct routing with weight 1
/sbin/ipvsadm -a -t 192.168.1.110:http -r 192.168.1.12 -g -w 1
/sbin/ipvsadm -a -t 192.168.1.110:http -r 192.168.1.12 -g -w 1
(2)在realserver1(202.99.59.108)和realserver2(202.99.59.107)上做下面的设置。
修改内核运行参数,即修改/etc/sysctl.conf文件的内容如下:
net.ipv4.ip_forward = 0
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
然后执行下面的命令是对内核修改的参数立即生效:
sysctl -p
配置VIP地址:
/sbin/ifconfig lo:0 202.99.59.110 broadcast 202.99.59.110 netmask 255.255.255.255 up
/sbin/route add -host 202.99.59.110 dev lo:0
p>在客户端使用浏览器多次访问:http://202.99.59.110/,然后再202.99.59.110上运行ipvsadm命令,应该有类似下面的输出:
IP Virtual Server version 1.0.12 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.100.254:http rr
-> 192.168.100.3:http Route 1 0 28
-> 192.168.100.2:http Route 1 0 29
从上面的结果可以看出,我们的LVS服务器已经成功运行。
上面的实例中ipvsadm用到的几个参数含义如下:
-A 增加一个虚拟服务,该服务由协议、IP地址和端口号组成,例如:
-A -t 202.99.59.110:80 (增加一格虚拟服务,其协议(-t表示tcp,-u表示udp)为TCP、IP为202.99.59.110、端口号为80。
-s 指定服务采用的算法,rr 轮叫(Round Robin)
/sbin/ipvsadm -a -t 192.168.1.110:http -r 192.168.1.12 -g -w 1
-a 表示往一个服务内增加一个real server
-r 指定real server的IP地址
-w 表示权重
-g 表示使用DR方式,-m表示NAT方式,-i表示tunneling方式。
Anonymous (没有被验证)
周一, 2011-02-21 08:57
Permalink
无法连接
lvs 已经配置完,并启动成功:
[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.121.122.63:80 wlc persistent 30
-> 10.121.122.56:80 Route 1 0 0
-> 10.121.122.55:80 Route 1 0 0
当时当我从浏览器访问10.121.122.63的时候
返回无法连接
直接访问10.121.122.55 10.121.122.56都正确返回页面。
rlogin
周六, 2011-11-12 18:05
Permalink
IPTABLES
检查防火墙!
Anonymous (没有被验证)
周三, 2011-11-16 07:29
Permalink
我也遇到这个问题,用
我也遇到这个问题,用命令ipvsadm -lcn 发现其状态一直为SYN_RECV
li_xiqing
周一, 2012-04-30 11:33
Permalink
同样的问题啊
http://zh.linuxvirtualserver.org/node/2671
看来ipvs得改进啊
Anonymous (没有被验证)
周五, 2014-12-19 22:02
Permalink
IntVcZFBERLh
Yup, that shluod defo do the trick!
Anonymous (没有被验证)
周二, 2008-08-26 04:13
Permalink
gw:192.168.20.20
gw:192.168.20.20 我觉得概念上有问题,第一个不是DR模式
Anonymous (没有被验证)
周一, 2008-12-08 08:01
Permalink
第二个也不是DR模式
第二个也不是DR模式
Anonymous (没有被验证)
周二, 2011-08-02 01:54
Permalink
你设置的realserver网关
你设置的realserver网关有问题,DR模式的网关应为路由器设备ip~如果你是通过DR转发上网的话那就不能DR模式~换成NAT模式吧