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

[经验分享] LVS实现负载均衡(nat,dr,tun)

[复制链接]

尚未签到

发表于 2019-1-6 07:25:04 | 显示全部楼层 |阅读模式
案例1:基于NAT的负载均衡
网卡配置这里就不在具体描述,在网络环境调通的情况下操作,具体的拓扑如图:
Director:10.10.10.133
                  |                                |
RS1: 10.10.10.131           RS2: 10.10.10.132
我在做实验的时候是采用yum的方式进行安装的LVS管理工具ipvsadm,yum安装非常简单这里也不在赘述,这里写一下源码的方式安装

#解压源码包,在下载源码包时注意内核版本,下载对应的配置工具。
[root@CentOSsoft]# tar xvf ipvsadm-1.26.tar.gz
#可直接编译
[root@CentOSipvsadm-1.26]# make
#安装
[root@CentOSipvsadm-1.26]# make install
#确认ipvsadm安装成功
[root@CentOSipvsadm-1.26]#  /sbin/ipvsadm -v
ipvsadm v1.262008/5/15 (compiled with popt and IPVS v1.2.1)
调度器配置
#启用路由转发功能
[root@ Director ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward 数值由0改成1,开启路由转发功能
退出文件执行[root@director ~]# sysctl –p 使内核参数生效
#清除ipvsadm
[root@ Director ~]# ipvsadm  -C
#使用ipvsadm 安装LVS 服务
[root@ Director ~]# /sbin/ipvsadm   -A   –t 10.10.10.133:80
#增加第1realserver
[root@ Director ~]# /sbin/ipvsadm -a -t 10.10.10.133:80-r 10.10.10.131:80 -m -w 1
#增加第2realserver
[root@ Director ~]# /sbin/ipvsadm -a –t 10.10.10.133:80-r 10.10.10.132:80 -m -w 1
[root@ Director ~]# service ipvsadm save
[root@ Director ~]# service ipvsadm start
真实服务器的设置 (两台服务器配置相同)
设置IP转发  echo "0">/proc/sys/net/ipv4/ip_forward
避免arp广播问题
  echo 1 >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
在两台服务器上都安装上http服务,分别在他们的index.html文件中写入各自的IP地址
最后在Director主机上进行测试
curlhttp:// 10.10.10.131
curlhttp:// 10.10.10.132

附:(一个Director端的配置脚本,可以直接使用)
#! /bin/bash
# director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forw
ard
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects

# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 10.10.10.0/24  -j MASQUERADE
# director设置ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 10.10.10.133:80 -s lc -p 300 (-p 代表的是超时时间)
$IPVSADM -a -t 10.10.10.133:80 -r 10.10.10.131:80 -m -w 1
$IPVSADM -a -t 10.10.10.133:80 -r 10.10.10.132:80 -m -w 1

案例2:基于DR的负载均衡

三台机器:
director(eth0 10.10.10.133, vip eth0:0: 10.10.10.100)
real server1(eth0 rip: 10.10.10.131, vip lo:0: 10.10.10.100)
real server2(eth0 rip: 10.10.10.135, vip lo:0: 10.10.10.100)
Director 上 vim/usr/local/sbin/lvs_dr.sh //增加

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=10.10.10.100
rs1=10.10.10.131
rs2=10.10.10.135
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1


两台rs上:vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=10.10.10.100
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
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


关于arp_ignore和 arp_announce 参考:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

然后director上执行: bash /usr/local/sbin/lvs_dr.sh
两台rs上执行: bash /usr/local/sbin/lvs_dr_rs.sh
Windows下浏览器测试访问

案例3:基于tun的负载均衡
VIP=10.10.10.100
Director配置
[root@director ~]#  ipvsadm -C
[root@director ~]#  ipvsadm -A -t 10.10.10.100:80 -s rr
[root@director ~]#  ipvsadm -a -t 10.10.10.100:80 -r10.10.10.131:80 -i -w 1
[root@director ~]#  ipvsadm -a -t 10.10.10.100:80 -r10.10.10.135:80 -i -w 1
[root@director ~]#  service ipvsadm save
[root@director ~]#  service ipvsadm start
[root@director ~]#  echo "1" >/proc/sys/net/ipv4/ip_forward
[root@director ~]#  ifconfig eth1:0 10.10.10.100 netmask255.255.255.0 up
RealServer配置
Vim   /usr/local/sbin/tun.sh
#!/bin/bash
if [ $# -ne1  ];
then
        echo "usage: $0 virtualIP"
        exit 0
fi

VIP=$1

echo"0" >/proc/sys/net/ipv4/ip_forward

/sbin/ifconfigeth0 mtu 1440

/sbin/ifconfigtunl0 up
/sbin/ifconfigtunl0 ${VIP} broadcast ${VIP} netmask 0xffffffff up
/sbin/route add-host ${VIP} dev tunl0

echo 1 >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

echo 0 >/proc/sys/net/ipv4/conf/tunl0/rp_filter
echo 0 >/proc/sys/net/ipv4/conf/all/rp_filter
[root@slave ~]#   bash /usr/local/sbin/tun.sh 10.10.10.100
[root@master ~]#   bash /usr/local/sbin/tun.sh 10.10.10.100
配置完成后通过IE浏览器访问http://10.10.10.100 刷新页面查看轮询效果
  





运维网声明 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-659799-1-1.html 上篇帖子: LVS DR模式安装配置 下篇帖子: LVS工作原理以及工作模式简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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