Lvs的DR工作模式原理及部署

######1、Lvs的DR工作模式原理:
用直接路由技术实现虚拟服务器
DR模式是通过改写请求报文的目的MAC地址,将请求发送给真实服务器,服务器将响应消息直接发送给客户端
这里写图片描述
<1>通过在调度器上修改数据包的目的MAC地址实现转发,注意源地址仍然是CIP,目的地址仍然是VIP地址;
<2>请求的报文经过调度器,而服务器响应处理后的报文无需经过调度器,因此并发访问量大时使用效率很高(和NAT模式比)
<3>因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器只能在一个局域网里面
<4>服务器主机需要有VIP地址,并且需要配置ARP抑制。
DR工作模式下的数据流走向:client -> VS -> RS -> client
######2、Lvs的部署
#########实验环境

  • server1 172.25.29.1 VS
  • server2 172.25.29.2 RS
  • server3 172.25.29.3 RS

#########Server1:

[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# vim rhel-source.repo 
[HighAvailability]	//高可用
name=HighAvailability
baseurl=http://172.25.29.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]		//负载均衡
name=LoadBalancer
baseurl=http://172.25.29.250/rhel6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]		//分布式存储
name=ResilientStorage
baseurl=http://172.25.29.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]		//大文件系统
name=ScalableFileSystem
baseurl=http://172.25.29.250/rhel6.5/ScalableFileSystem
gpgcheck=0
[root@server1 yum.repos.d]# yum install ipvsadm -y
[root@server1 yum.repos.d]# /etc/init.d/ipvsadm start
[root@server1 yum.repos.d]# ipvsadm -A -t 172.25.29.100:80 -s rr							//-s 调度算法,DR模式不支持端口转发
[root@server1 yum.repos.d]# ipvsadm -a -t 172.25.29.100:80 -r 172.25.29.2:80 -g					//-g	表示采用直连模式
[root@server1 yum.repos.d]# ipvsadm -a -t 172.25.29.100:80 -r 172.25.29.3:80 -g
[root@server1 yum.repos.d]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.29.100:http rr
  -> server2:http                 Route   1      0          0         
  -> server3:http                 Route   1      0          0 
[root@server1 yum.repos.d]# ip addr add 172.25.29.100/24 dev eth0
[root@server1 yum.repos.d]# ip addr
  link/ether 52:54:00:00:1d:66		//MAC地址

#########Server2:

[root@server2 ~]# /etc/init.d/httpd start
[root@server2 html]# cat index.html 
Server2
[root@server2 ~]# yum install arptables_jf -y
[root@server2 ~]# ip addr add 172.25.29.100/24 dev eth0
[root@server2 ~]# ip addr
 	link/ether 52:54:00:9e:c6:99 	

#########Server3:

[root@server3 ~]# /etc/init.d/httpd start
[root@server3 html]# cat index.html 
server3
[root@server3 ~]# yum install arptables_jf -y
[root@server3 ~]# ip addr add 172.25.29.100/24 dev eth0
[root@server3 ~]# ip addr		
 link/ether 52:54:00:04:a7:ee

DS会修改客户端的目的MAC地址为RS,数据包到达RS,由链路层向上封装,故RS上必须有vip才能建立连接

#########主机测试:

[root@foundation29 rhel6.5]# arp -an |grep 100
? (172.25.29.100) at 52:54:00:00:1d:66 [ether] on br0

[root@foundation29 rhel6.5]# arp -d 172.25.29.100
[root@foundation29 rhel6.5]# ping 172.25.29.100
[root@foundation29 rhel6.5]# arp -an |grep 100
? (172.25.29.100) at 52:54:00:9e:c6:99 [ether] on br0

[root@foundation29 rhel6.5]# arp -d 172.25.29.100
[root@foundation29 rhel6.5]# ping 172.25.29.100
[root@foundation29 rhel6.5]# arp -an |grep 100
? (172.25.29.100) at 52:54:00:04:a7:ee [ether] on br0

多次测试,可以看出其连接具有随机性,因为三台server在同一VLAN下具有相同的ip,因此并不能保证每次都访问的是调度器server1

######为了解决这个问题,需要对RS进行ARP抑制,进行如下操作:
#########Server2:

[root@server2 ~]# yum install arptables_jf -y
[root@server2 ~]# arptables -A IN -d 172.25.29.100 -j DROP
[root@server2 ~]# arptables -A OUT -s 172.25.29.100 -j mangle --mangle-ip-s 172.25.29.2		//以本身实际ip进行OUT
[root@server2 ~]# /etc/init.d/arptables_jf save

#########Server3:

[root@server3 ~]# yum install arptables_jf -y
[root@server3 ~]# arptables -A IN -d 172.25.29.100 -j DROP
[root@server3 ~]# arptables -A OUT -s 172.25.29.100 -j mangle --mangle-ip-s 172.25.29.3
[root@server3 ~]# /etc/init.d/arptables_jf save

#########主机测试:

[root@foundation29 rhel6.5]# arp -an |grep 100	
? (172.25.29.100) at 52:54:00:00:1d:66 [ether] on br0 //每次都访问VS
[root@foundation29 rhel6.5]# curl 172.25.29.100
server2
[root@foundation29 rhel6.5]# curl 172.25.29.100
server3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值