Linux LVS的四种工作模式

  • Linux LVS的四种工作模式已关闭评论
  • 21 次浏览
  • A+
所属分类:linux技术
摘要

lvs是一个负载调度器,由内核集成,性能强大,支持百万计并发。VS:虚拟服务器,指LVS服务器自身


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的四种工作模式

发送报文请求时: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的四种工作模式

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的四种工作模式

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

特点:

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

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

LVS的FULLNAT模式:

Linux LVS的四种工作模式

工作流程:

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