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

[经验分享] LVS 配置详解之NAT

[复制链接]

尚未签到

发表于 2019-1-5 13:17:59 | 显示全部楼层 |阅读模式
  
  LVS 有3种模式:
      NAT模式、IP TUN模式和DR模式。
  LVS调度算法分为静态类型和动态类型,共计10种:
  rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
  
  常用的调度算法:
  固定调度算法:rr,wrr,dh,sh
  动态调度算法:wlc,lc,lblc,lblcr
  
算法
说明
rr
轮询算法,它将请求依次分配给不同的rs节点,也就是RS节点中均摊分配。这种算法简单,但只适合于RS节点处理性能差不多的情况
wrr
加权轮训调度,它将依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
Wlc
加权最小连接数调度,假设各台RS的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS
Dh
目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得需要的RS
SH
源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS
Lc
最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS.
Lblc
基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。
LVS调度算法的生产环境选型:
1、一般的网络服务,如http,mail,mysql等常用的LVS调度算法为:
        a.基本轮询调度rr
        b.加权最小连接调度wlc
        c.加权轮询调度wrc
2、基于局部性的最小连接lblc和带复制的给予局部性最小连接lblcr主要适用于web cache和DB cache
3、源地址散列调度SH和目标地址散列调度DH可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一。
实际适用中这些算法的适用范围很多,工作中最好参考内核中的连接调度算法的实现原理,然后根据具体的业务需求合理的选型。
  
  
  
LVS Nat模式
这个是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
调度过程IP包详细图:



原理图简述:
       1)客户端请求数据,目标IP为VIP
       2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。
       3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。
       4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。
       5)客户端收到的就只能看到VIP\DIP信息。

NAT模式优缺点:
      1、NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点
     2、只需要在LB上配置一个公网IP地址就可以了。
     3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。
     4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致。

实验环境图:


其中LVS需要2块网卡:eth0和eth1,eth1与真实服务器处在同一网段,真实服务器的网关需指向LVS的内网卡:eth1。
LVS配置:
     # yum install -y ipvsadm
     # modprobe ip_vs                            #加载IPVS模块
     # lsmod |grep ip_vs
     # echo 1 >/proc/sys/net/ipv4/ip_forward      #开启IP转发模式
     # ipvsadm -C
     # ipvsadm -At 10.6.2.193:80 -s rr
     # ipvsadm -at 10.6.2.193:80 -r 192.168.1.2:80 -m
     # ipvsadm -at 10.6.2.193:80 -r 192.168.1.3:80 -m
     # ipvsadm -Ln

在Real-Server上做如下配置:
     # route add default gw 192.168.1.1
  




运维网声明 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-659689-1-1.html 上篇帖子: Linux集群系列之六——LVS持久连接 下篇帖子: LVS基本概念杂记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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