设为首页 收藏本站
查看: 1139|回复: 0

[经验分享] LVS-DR负载均衡RIP和VIP在不同网络的实现

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-10-24 09:59:21 | 显示全部楼层 |阅读模式
2503a0288e717dad285e8c34223acc87.png-wh_500x0-wm_3-wmp_4-s_1642135086.png
实验前准备
均已关闭防火墙
centos7:
systemctl stopfirewalld
centos6:
serviceiptables stop

均已禁用SELinux
setenforce 0

web1、web2准备apache服务
web1和web2:
yum installhttpd -y
web1:
echo192.168.142.132 >/var/www/html/index.html
service httpdstart
web2:
echo192.168.142.130 >/var/www/html/index.html
systemctlstart httpd

网络拓扑在VMware中配置网段

442551a3a5e41078059fb7f01bacbda3.png-wh_500x0-wm_3-wmp_4-s_1449635771.png
客户端
2044974b1d2c014326496c62847adf1f.png-wh_500x0-wm_3-wmp_4-s_1304242381.png

路由端
b0dbd638ad60961d6d241c316d4eeb23.png-wh_500x0-wm_3-wmp_4-s_3922803121.png


lvs server
c7a705382d25cc832cd82d4d41ef75af.png-wh_500x0-wm_3-wmp_4-s_893135760.png
web1同web2
e77e4f6cae6f74436b74cd53da9e4ef2.png-wh_500x0-wm_3-wmp_4-s_2289059264.png


一.实验环境介绍
web1为centos6.9
其余均为centos7.3
二.地址规划
如图所示:
VIP使用172.18.0.0/16网络
RIP使用192.168.142.0/24网络

1.Real Server的RIP的规划:
eth0-->RS1:192.168.142.132/24
ens33-->RS2:192.168.142.130/24

2.Direcotr的LVSServer的地址规划:
ens33-->DIP:192.168.142.129/24
ens33:0-->VIP:172.18.253.53/16

3.客户端IP规划:
ens33-->192.168.244.128/24
4.路由:
ens33-->192.168.244.129/24
ens37-->172.18.253.251/16
ens38-->192.168.142.133/24
三.   DR模型实现负载均衡的工作原理
     NAT模型的实现方式,因为进出的每个数据包都要经过DirectorServer,当集群系统负载过大的时候Director Server将会成为整个集群系统的瓶颈,那么DR模型就避免了这样的情况发生,DR模型在只有请求的时候才会经过Director Server, 回应的数据包由RealServer 直接响应用户不需要经过Director Server,其实三种模型中最常用的也就是RIP和VIP在不同网络的DR模型了,下面来说DR模型具体是怎么实现负载均衡的,根据上图,
1.首先客户端用户用CIP请求VIP;
2.根据上图可以看到,不管是DirectorServer还是Real Server上都需要配置VIP,那么当用户请求到达我们的集群网络的前端路由器的时候,请求数据包的源地址为CIP目标地址为VIP,此时路由器会发广播问谁是VIP,那么我们集群中所有的节点都配置有VIP,此时谁先响应路由器那么路由器就会将用户请求发给谁,这样一来我们的集群系统是不是没有意义了,那我们可以在网关路由器上配置静态路由指定VIP就是Director Server,或者使用一种机制不让Real Server 接收来自网络中的ARP地址解析请求,这样一来用户的请求数据包都会经过DirectorServre;
3.当DirectorServer收到用户的请求后根据此前设定好的调度算法结果来确定将请求负载到某台Real Server上去,假如说此时根据调度算法的结果,会将请求负载到Real Server 1上面去,此时Director Server 会将数据帧中的目标MAC地址修改为RealServer1的MAC地址,然后再将数据帧发送出去;
4.当Real Server1 收到一个源地址为CIP目标地址为VIP的数据包时,RealServer1发现目标地址为VIP,而VIP是自己,于是接受数据包并给予处理,当Real Server1处理完请求后,会将一个源地址为VIP目标地址为CIP的数据包发出去,此时的响应请求就不会再经过DirectorServer了,而是直接响应给用户;
四.架构实现

1.客户端配置
[iyunv@www ~]#route adddefault gw 192.168.244.129
[iyunv@www ~]# route -n
Kernel IP routing table
Destination    Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0      192.168.244.129      255.255.255.0  UG    0      0     0 ens33
192.168.244.0   0.0.0.0         255.255.255.0   U    0      0     0 ens33

2.路由配置
echo 1>/proc/sys/net/ipv4/ip_forward #开启路由转发功能

3.lvs配置
DIP设置:
[iyunv@lvs network-scripts]# pwd
/etc/sysconfig/network-scripts
[iyunv@lvs network-scripts]# cat ifcfg-ens33
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.142.129
NETMASK=255.255.255.0
GATEWAY=172.18.253.251

VIP设置:
(1).不同网络:
[iyunv@lvs network-scripts]#ifconfig ens33:0 172.18.253.53/16 up
(2).同一网络的只广播给自己;本实验不需要设置广播
[iyunv@lvs network-scripts]#ifconfigens33:0 172.18.253.53 netmask255.255.255.255 broadcast 172.18.253.53 up

配置路由:
[iyunv@node1 network-scripts]#route add -host 172.18.253.53 dev lo:0
[iyunv@lvs network-scripts]#route add default gw 192.168.142.133 devens33
4.Real Server设置:
web1的网卡的ip配置:
[iyunv@node1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[iyunv@node1 network-scripts]# cat ifcfg-ens33
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.142.132
NETMASK=255.255.255.0
GATEWAY=172.18.253.251

需要指定网关:
[iyunv@node1 network-scripts]#route add default gw 192.168.142.133
在RS上配置内核参数,抑制ARP:
[iyunv@node1 network-scripts]#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
[iyunv@node1 network-scripts]#echo 2 >/proc/sys/net/ipv4/conf/ens33/arp_announce
[iyunv@node1 network-scripts]#echo 1 >/proc/sys/net/ipv4/conf/ens33/arp_ignore
[iyunv@node1 network-scripts]#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
在RS上设置VIP地址:
[iyunv@node1 network-scripts]#ifconfig lo:0 172.18.253.53 netmask 255.255.255.255 broadcast 172.18.253.53 up
在RS上添加路由:
[iyunv@node1 network-scripts]#route add -host 172.18.253.53 devlo:0

5.web2的配置:跟web1一致
设置RIP地址:
#ifconfig eth0 192.168.142.130/24 up
#route add default gw 192.168.142.133
配置arptables:
#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
#echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
#echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore
#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
设置VIP地址:
#ifconfig lo:0 172.18.253.53 netmask 255.255.255.255 broadcast 172.18.253.53 up
添加路由:
#route add -host 172.18.253.53 dev lo:0

6.LVS Server上定义集群服务:
#ipvsadm  -A -t 172.18.253.53:80 -s rr
#ipvsadm  -a -t  172.18.253.53:80 -r 192.168.142.130 -g
#ipvsadm  -a -t  172.18.253.53:80 -r 192.168.142.132 -g
#systemctl  restart ipvsadm
测试实现http均衡负载
3ff6d8a86e45473e3b605ca738ab4d92.png-wh_500x0-wm_3-wmp_4-s_2647606105.png

另外LVS还可以根据连接类型,比如长连接和短连接,来设置相关超时时间,总之,根据应用场景来选择!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-405817-1-1.html 上篇帖子: LVS中DR类型集群实现 下篇帖子: 利用LVS-NAT和DR模型分别负载均衡一个php应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表