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

[经验分享] LVS解析及NAT、DR模型配置详解

[复制链接]

尚未签到

发表于 2019-1-6 06:59:07 | 显示全部楼层 |阅读模式
一、lvs简介
Lvs:linux virtual server(linux虚拟服务器)是一个虚拟的服务器负载均衡系统。
目前有四种IP负载均衡技术:
NAT、DR、TUN、FNAT:FullNAT
十种调度算法:
静态四种:rr、wrr、SH、DH
动态六种:lc、wlc、sed、nq、lblc、lblcr
二、四种模型&&十种调度算法

1、四种模型拓扑及特点

NAT模型

解析:客户端向Director(调度器)发出请求,调度器接到客户端请求,由调度器选择后端real_server回复客户端请求,回复报文经调度器返回给客户端。
特点及配置要点:
1>real_server应该使用私有IP地址
2>real_server的网关应该指向DIP
3>RIP和DIP应该在同一个网段内
4>进出的报文都要经过Director,在高负载下Director会成为系统性能的瓶颈
5>支持端口映射
6>real_server可以是任意OS
DR模型DirectorRouting:直接路由

解析:客户端向Director(调度器)发出请求,调度器接到客户端请求,由调度器选择后端real_server回复客户端请求,回复报文不经过经调度器直接返回给客户端,由于回复报文不经过调度器,因此大大降低了调度器的压力,系统系能得到了大大的提升。
特点及配置要点:
1>real_server可以使用私有IP地址
2>real_server的网关一定不能指向DIP
3>RIP和DIP应该在同一个网段内
4>进站的报文经过Director,出站则有real_server直接回应client
5>不支持端口映射
6>real_server可以为大多数常见的OS
TUN模型Tuneling:和DR模型相近,但必须支持IP隧道
解析:客户端向Director(调度器)发出请求,调度器接到客户端请求,由调度器选择后端real_server回复客户端请求,回复报文不经过经调度器直接返回给客户端,由于回复报文不经过调度器,因此大大降低了调度器的压力,系统系能得到了大大的提升。
特点及配置要点:
1>real_server不能是私有IP地址
2>real_server的网关一定不能指向DIP
3>RIP和DIP应该在同一个网段内
4>进站的报文经过Director,出站则有real_server直接回应client
5>不支持端口映射
6>real_server必须支持IP隧道

2、十种调度算法及应用场景

静态四种:
rr:round-robin轮调;对待每一台服务器是均等的,而不管服务器上实际的连接数和系统负载。
wrr:weight加权轮调;根据真实服务器的不同处理能力来调度访问请求,可以保证处理能力强的服务器能处理更多的访问流量。
sh:source hashing源地址哈希算法;根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
dh:目标地址哈希算法;根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。(主要用于缓存服务器)
动态六种:
lc:最少连接;Active(活动)+Inactive(非活动)=overload(负载);调度器动态地将网络请求调度到已建立的链接数最少的服务器上(用于系统性能相似的服务器)。
wlc:加权最少连接;overload/weight;具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值(用于系统性能相差较大的服务器)。
sed:最短期望延迟;(Active+1)*256/weight;
nq:永不排队;
lblc:基于本地的最少连接;dh+lc
lblcr:带复制的基于本地的最少连接;


三、LVS/NAT实战
1.环境规划
Director(前端调度器)
eth0:192.168.1.15(DIP)
eth1:172.16.15.15
eth1:0:172.16.15.119(VIP)

# sysctl -w net.ipv4.ip_forward=1  #打开IP转发
Server1:(后端服务1)
IP:192.168.1.5
GW:192.168.1.15(DIP)
Server2:(后端服务2)
IP:192.168.1.6
GW:192.168.1.15(DIP)
2.安装ipvsadm添加规则

#yum -y install ipvsadm
#规则:调度算法rr
#ifconfig eth1:0 172.16.15.119
[root@stu_yxm15 ~]# ipvsadm -A -t 172.16.15.119:80 -s rr
[root@stu_yxm15 ~]# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.5 -m
[root@stu_yxm15 ~]# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.6 -m查看状态

[root@stu_yxm15 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
-> RemoteAddress:Port
TCP  172.16.15.119:80                   28      129      128    13341    12547
-> 192.168.1.5:80                     14       57       57     5053     4779
-> 192.168.1.6:80                     14       72       71     8288     7768
调度算法wrr


[root@stu_yxm15 ~]# ipvsadm -A -t 172.16.15.119:80 -s wrr
[root@stu_yxm15 ~]# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.5 -m -w 2
[root@stu_yxm15 ~]# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.6 -m -w 3
查看状态


[root@stu_yxm15 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
-> RemoteAddress:Port
TCP  172.16.15.119:80                   20       96       94    10866     9800
-> 192.168.1.5:80                     12       58       57     6568     6154
-> 192.168.1.6:80                      8       38       37     4298     3646

四、LVS/DR实战
1.环境规划
Director(前端调度器)
eth1:172.16.15.15(DIP)
eth1:0:172.16.15.108(VIP)
#sysctl-wnet.ipv4.ip_forward=1#打开IP转发
Server1:(后端服务1)
IP:172.16.15.5
lo:0:172.16.15.108(VIP)
Server2:(后端服务2)
IP:192.168.1.6
lo:0:172.16.15.108(VIP)
2.配置
后端Real_server
修改内核参数禁止Real_servers上的VIP和前端路由直接通信

#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
####配置VIP
#ifconfig lo:0 172.16.15.108 broadcast 172.16.15.108 netmask 255.255.255.255 up
####添加路由
#route add -host 172.16.15.108 dev lo:0
Director(前端调度器)

##### 配置VIP
#ifconfig eth1:0 172.16.15.108 broadcast 172.16.15.108 netmask 255.255.255.255 up
#####添加路由
route add -host 172.16.15.108 dev eth1:0
####  打开路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
#### 添加规则:(调度算法wlc)
[root@stu_yxm15 ~]# ipvsadm -A -t 172.16.15.108:80 -s wlc
[root@stu_yxm15 ~]# ipvsadm -a -t 172.16.15.108:80 -r 172.16.15.5 -g -w 2
[root@stu_yxm15 ~]# ipvsadm -a -t 172.16.15.108:80 -r 172.16.15.6 -g -w 4  

  查看状态
  

[root@stu_yxm15 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
-> RemoteAddress:Port
TCP  172.16.15.108:80                  258     1272        0   143824        0
-> 172.16.15.5:80                     90      435        0    44927        0
-> 172.16.15.6:80                    168      837        0    98897        0


  





运维网声明 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-659789-1-1.html 上篇帖子: LVS基础详解和NAT/DR模型的实现 下篇帖子: LVS搭建过程中需要用到的命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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