LVS接入层技术以及LVS四种转发模式

LVS(Linux Virtual Server,Linux虚拟服务器)是一个虚拟的服务器集群系统,从Linux 2.6开始成为了Linux内核的一部分,即LVS运行于操作系统层面。

LVS和Nginx在转发请求时的区别

  • 代理:Nginx基于OSI七层(应用层)进行异步转发。会与客户端和业务服务器各建立一个连接,可以进行失败转移。
  • 转发:LVS基于OSI四层(网络层)进行同步转发。修改数据包的地址信息,让下游服务器与客户端直接连接。

LVS免去了请求到应用层的层层解析工作,工作在操作系统层面,相比于Nginx有更高的性能。

1.LVS的四种转发模式

转发模式:客户端向DS公网VIP发起请求,然后DS负责将请求转发给RS的过程。

常用名词概念

  • DR,Director Server,四层负载均衡器节点,运行LVS的服务器。DS和LVS作为角色是一个意思
  • RS,Real Server,真实的工作服务器
  • VIP,Virtual Server IP,客户端请求的目的IP地址
  • DIP,Director Server IP,用于DS与RS通信的IP地址,实际指的是DS内网IP地址
  • RIP,Real Server IP,后端服务器的IP地址
  • CIP,Client IP,客户端IP地址

1.1 NAT模式

通过修改请求报文的目标IP地址和目标端口号实现DS到某个RS的请求转发。此模式下,网络报文的请求与响应都要经过DS的处理,DS是RS的网关。

要求:

  • DS需要两块网卡,一块网卡面向公网提供VIP,一块网卡面向内部网络提供DIP
  • DS需要和所有RS处于同一个局域网内,并将DS设置为局域网的网关,否则RS的响应数据将无法传输到DS

缺点:
客户端请求和服务器响应都会经过DS重写,而服务器响应数据的长度一般远大于客户端请求的长度,响应数据会对DS造成网络带宽压力,成为性能瓶颈。

1.2 FULLNAT模式

不要求DS与RS处于同一局域网且作为网关。DS在NAT模式基础上做了一次源IP地址转化,当RS返回响应时,根据IP地址可以正常路由到DS,不需要强行指定DS为网关。

缺点:

  • 请求到达RS后丢失客户端IP地址

1.3 TUN(IP隧道)模式

原理:

  • DS通过IP隧道加密技术将请求报文封装到一个新的数据包中,并选择一个RS的地址作为新数据包的目的IP地址,然后将它发送到RS
  • RS基于IP隧道解密技术解析出原来的数据包内容,查看RS本地是否绑定了原数据包的目的IP地址,如果是,则处理请求并将响应结果通过网关返回给客户端

TUN模式的特点

  • DIP和RIP不一定非要在同一个网络环境中,IP隧道技术可以根据IP地址找到RS
  • RS和DS所在的网络环境必须支持IP隧道技术
  • 除了DS,RS也需要配置VIP,只有这样,RS解析出原数据包内容后才能确认数据包的目的IP地址是自己。另外,需要将VIP绑定到RS的lo网卡,这样才能防止对ARP(地址解析协议)进行响应
  • DS仅负责将请求转发到RS,但是RS的响应数据不通过DS转发,而是直接发往客户端,所以TUN模式的性能高于NAT模式

1.4 DR模式

与TUN模式类型(DS仅转发请求并不转发响应数据),DR模式通过改写请求报文的MAC地址将请求转发到RS,然后RS将响应数据通过网关返回给客户端。

DR模式特点:

  • 由于DS经过数据链路层(OSI第二层),所以需要把RS的RIP和DS的DIP配置到同一个物理网络中
  • 除了DS,RS也需要在lo网卡上配置VIP,理由与TUN模式的一致
  • 所有的响应数据都不经过DS转发,与TUN模式一致,但是TUN模式涉及加解密IP隧道,性能不如DS模式

2.四种模式对比以及如何选择

NAT模式

  • 优势:RS无需配置VIP
  • 劣势:DS需要作为网关,性能一般

FULLNAT模式

  • 优势:RS无需配置VIP,对网络环境要求较低
  • 劣势:丢失客户端IP地址,性能一般

TUN

  • 优势:性能好
  • 劣势:服务器需要支持IP隧道协议,RS需要配置VIP

DR:

  • 优势:性能好
  • 劣势:DS和RS需要再同一个物理网络中,RS需要配置VIP

选择策略

  • 如果希望LVS有更强的网络环境适应性,可选择FULLNAT模式
  • 如果希望LVS有更高的性能,可以选择DR模式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容