首页 Linux教程专家指南:Linux LVS四种工作模式及其最佳实践

专家指南:Linux LVS四种工作模式及其最佳实践

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

LVS:

lvs是一个负载调度器,由内核集成,性能强大,支持百万计并发。

LVS集群的相关概念:

  • VS:虚拟服务器,指LVS服务器自身
  • RS:提供服务的服务器
  • CIP:客户端ip地址
  • VIP:lvs服务器对外发布的ip地址,用户通过vip访问集群
  • DIP:LVS连内网的ip地址叫DIP,用于接收用户请求的ip叫做VIP

用户访问流程:   客户端通过 CIP—>VIP—>DIP—->RIP

LVS的四种工作模式:

  • lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
  • lvs-dr:操纵封装新的MAC地址
  • lvs-tun:在原请求IP报文之外新加一个IP首部
  • lvs-fullnat:修改请求报文的源和目标IP

LVS的NAT工作模式:

NAT:

NAT:网络地址转发,NAT分为SNAT和DNAT

  • SNAT:内部网络的报文发送出去时,报文的源IP会被修改,也就是源地址转换
  • DNAT:外部网络的报文响应时,响应报文的目标IP会再次被修改,也就是目标地址转换

区别:外网向内网发起请求就是DNAT,内网向外网发送请求就是SNAT

LVS-NAT:

lvs-nat:本质是多目标IP的DNAT,转发的ip和端口可以映射到不同的机器上。

工作流程:

专家指南:Linux LVS四种工作模式及其最佳实践插图
添加图片注释,不超过 140 字(可选)

发送报文请求时:CIP发送请求报文到VIP,通过lvs的DIP发送请求出去的时候将目标ip和port更改为内部网络的某一个rs的RIP。

回应报文请求时:RIP发送响应报文的时候,源地址和端口是自身的信息,经过lvs的时候,lvs的VIP将源ip和端口替换为自己的,最后发送给CIP

说明:

  • RIP和DIP要位于同一网络
  • 响应报文需要原路返回会造成lvs负载加大
  • VS必须是linux系统,RS可以是任意系统

LVS的DR工作模式

DR:Direct Routing,直接路由,LVS的默认模式,不更改报文的端口和ip信息,而是通过为请求报文重新封装一个MAC地址进行转发。

工作流程:

专家指南:Linux LVS四种工作模式及其最佳实践插图1
添加图片注释,不超过 140 字(可选)

CIP通过VIP发送请求给lvs的时候,请求报文的源MAC改为lsv的DIP网卡的MAC地址,目标MAC是局域网中选择的一RS的RIP地址,因为每个RS上都有一个VIP,所有VIP都一样,所以RS就可以直接通过VIP将响应报文发送给CIP

说明:

  • RS都有一个和lvs相同的VIP
  • 需要确保CIP向VIP发送请求的时候是发送给lvs(因为每个rs都有和lvs一样的vip)
  • RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director
  • lvs和rs需要处于同一个物理网络

确保CIP向VIP发送请求报文的时候发送给lvs的方法:

方法一:在路由器上配置arp绑定。设置ip和mac得静态绑定,查询到对应得mac,就把对应得mac解析为ip。

方法二:关闭RS得arp应答功能,请求报文要经由Director(lvs服务器),但响应报文不经由Director,而由RS直接发往Client

arp特殊报文:免费arp,用来探测网络中是否存在地址冲突。

arp响应和主动讯问:

响应:当接收到arp报文的时候,主机会进行回应,通过ip地址得到mac地址

主动讯问:主机会主动向外告诉别人自己的ip对应的mac地址

通过更改RS的内核参数实现:

#将VIP绑定在回环网卡上,通过设置内核的参数实现不响应arp报文和静默模式。
#不响应arp的免费报文
[root@data_server ~]# cat /proc/sys/net/ipv4/conf/lo/arp_ignore
0

#是否开启静默
[root@data_server ~]# cat /proc/sys/net/ipv4/conf/lo/arp_announce 
0

LVS的TUN模式

相当于可以不处于同一物理网络的DR模式

专家指南:Linux LVS四种工作模式及其最佳实践插图2
添加图片注释,不超过 140 字(可选)

工作流程: 不修改报文的原ip信息,而是在加一个IP首部(源:DIP,目标:RIP),RS处理完请求以后直接发送给CIP。因为TUN的RS上也是有VIP。

特点:

  • RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP, VIP, RIP可以是公网地址
  • RS的操作系统需要支持隧道功能

LVS的FULLNAT模式:

专家指南:Linux LVS四种工作模式及其最佳实践插图3
添加图片注释,不超过 140 字(可选)

工作流程:

通过同时修改请求报文的源IP地址和目标IP地址进行转发,请求报文通过CIP访问lvs的时候,将源地址由CIP替换为DIP,目标地址替换为RIP,RS的响应报文园路返回。

NAT模式只会修改目标地址

特点:

  • VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP
  • RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director(lvs服务器)还要将其发往Client
  • 请求和响应报文都经由Director(lvs服务器),支持端口映射

注意:此类型kernel默认不支持,需要修改内核代码才可以实现。

LVS四种工作模式的比较:

  • NAT:DIP与RIP在同一IP网络;RIP的网关要指向DIP,以确保响应报文经Director(lvs服务器)
  • DR:DIP与RIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经Director(速度最快、效率最高。)
  • TUN:RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。
  • FULLNAT:RIP和DIP未必在同一IP网络,但要能通信

链接:https://www.cnblogs.com/heyongshen/p/16827111.html

(版权归原作者所有,侵删)

文末福利 扫码无偿领取(备注运维入门到进阶)

专家指南:Linux LVS四种工作模式及其最佳实践插图4
添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

专家指南:Linux LVS四种工作模式及其最佳实践插图5

本文链接:https://www.yunweipai.com/46820.html

网友评论comments

发表回复

您的电子邮箱地址不会被公开。

暂无评论

Copyright © 2012-2022 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部