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

科技   2024-11-12 07:34   陕西  


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

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和端口可以映射到不同的机器上。

工作流程:

发送报文请求时: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地址进行转发。

工作流程:

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模式

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

特点:

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

  • RS的操作系统需要支持隧道功能

LVS的FULLNAT模式:

工作流程:

通过同时修改请求报文的源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网络,但要能通信



招已经开始啦,大家如果不做好充足准备的话,招很难找到好工作。


送大家一份就业大礼包,大家可以突击一下春招,找个好工作!


良许Linux
良许,自学转行IT并顺利进入500强外企担任Linux开发工程师。公众号分享大量Linux干货,包括Linux基础、Linux应用、Linux工具软件,以及Git、数据库、树莓派等方面技术知识(后台回复 Linux 获取必备Linux资源)
 最新文章