LVS四种模型(二)

LVS(二)

nat模式

lvs-nat本质是多目标IP的DNAT,通过将请求报文中的目标IP地址和目标端口修改为某挑出的RS的RIP和PORT实现转发。

  1. RIP和DIP应该在同一个IP网段,且应使用私网地址;RS的网关要指向DIP。
  2. 请求报文和响应报文都必须经由director转发,director易于成为系统瓶颈
  3. 支持端口映射,可修改请求报文的目标PORT
  4. VS必须是linux,RS可以是任何OS系统

CIP XXXXX------------------------->VIP 80/tcp

CIP XXXXX------------------------->RIP 80/tcp #去的时候把目标地址VIP替换成了RIP,去的时候替换的是目标地址

RIP1 80/tcp--------------------------->CIP XXXXX #回来的时要把源地址RIP再替换成VIP,回来的时候替换的是源地址,相像一下,很好理解。

VIP 80/tcp---------------------------->CIP XXXXX

NOTE:

数据来回都要走LVS,压力比较大,很有可能会成为瓶颈

LVS与服务器之间通常是有交换机相连,当然用路由器也是可以的。

DNAT也可以改端口的,根据自己的需要

DR模式(默认)

LVS-DR,DR(direct routing直连路由),LVS的默认模式,应用最为广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变。

  1. director和各RS都配置有VIP
  2. 确保前端路由器将目标VIP的请求报文发往director

既然RS和VS的VIP是一样的,如何确保路由器将客户端的请求报文发送给真正的VS呢?三种方法,如下:

  1. 在前端网关做静态绑定VIP和director的MAC地址

  2. 在RS上使用arptables工具

  3. 阻塞RS上发送和响应arp报文,默默的占用这个IP地址.

DR模式最大的特点就是来回路径不一致,用户的请求一定会通过LVS的转发,而RS的回应报文不用经过LVS(包括三次握手),这么做有啥子好处吗?来回路径不一致会减轻LVS的压力,这样的可以接待更多的用户请求。

物理上是一个网段,逻辑是两个网段,路由器的内网接口需要两个地址,为什么需要两个地址呢?一个地址不行吗?假如说用一个地址的话,arp广播的时候访问谁是VIP的时候就好玩了!因为好几台主机都有VIP,所以路由器的内网接口一定要有两个地址,当路由器把用户请求扔给LVS需要一个单独的网段,当LVS再将请求给RS的时候又需要另一个网段,所以不仅路由器需要两个地址,LVS也需要两个地址,那么RS需要几个地址?RS只需要一个地址就够了。

  1. RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一网络;RIP的网关不能指向DIP,以确保响应报文不会经由LVS。

  2. RS和LVS要在同一个物理网段

  3. 请求报文要经由LVS,但响应报文不经由lvs,而由RS直接发往client

  4. 不支持端口映射(端口不能修改),为什么不能修改呢?因为DR模式只能更改MAC地址,而不能更改IP和端口。

LVS-tun模式

转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在源IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP)

(1)DIP、VIP、RIP都应该是公网地址

(2)RS的网关一般不能指向DIP

(3)请求报文要经由LVS,但响应不经过LVS

(4)不支持端口映射

(5)RS的OS需要支持隧道功能。

再封装一个新的头部,类似VPN隧道。

是否应该是公网地址取决于是否是专线。

加源dip,目标是RIP,dip必须再配置vip,不配置就会扔了,不用考虑地址冲突,因为往往中间会陋路由器,正常给cip回应,不用原路返回。

好处就是跨机房远程调度,大企业,在全国各地都有服务器。

LVS-fullnat模式

此类型内核默认不支持,应用场景比较少。

lvs-fullnat:通过同时修改请求报文的源IP地址和目标IP地址进行转发

CIP-----DIP

VIP-----RIP

  1. VIP是公网地址,RIP和DIP的私网地址,且通常不在同一个网络;因此,RIP的网关一般不会指向DIP。
  2. RS收到的请求报文源地址是DIP,因此,只需要响应给DIP;但director还要将其发往client。
  3. 请求和响应报文都经由derctor
  4. 支持端口映射

NOTE:DNAT只替换目标地址,源不动;full-nat的模式下全部替换,如下所示:

  1. DNAT和FULL-NAT都只可以隔路由器。

  2. 小项目用LVS,有钱的企业用F5。

  3. DR模型有一个局限性,DR模型只能在一个机房里面。

猜你喜欢

转载自www.cnblogs.com/yizhangheka/p/12349991.html