Others--LVS学习

发布时间 2023-06-19 15:07:23作者: TeyGao

LVS学习

LVS工作模式

  • NAT(网络地址转换模式),进站/出站的数据流量都经过网络分发器,通过在网络层修改IP地址来实现负载均衡。
  • DR(直接路由模式),只有进站的数据流量经过网络分发器,通过在数据链路层修改MAC地址来实现负载均衡。
  • TUN(隧道模式),只有进站的数据流量经过网络分发器,通过将请求报文封装一层IP报文来实现负载均衡。
  • FULL-NAT(双向网络地址转换模式),进站/出站的数据流量都经过网络分发器,通过修改请求和响应报文中的源地址和目标地址来实现请求转发功能。

网络地址转换模式(NAT)

网络地址转换模式(NAT)实现原理:

1、Direct Server收到请求报文后,将请求报文中的目标地址改为RIP,再将新的请求报文转发给Real Server。

2、Real Server收到请求报文后,处理请求并根据请求报文中的源地址将响应报文发给Direct Server。

3、Direct Server收到Real Server返回的响应报文后,并将响应报文中的源地址改为VIP,再将响应报文发送给请求客户端。

网络地址转换模式(NAT)实现要求:

  • DIP和RIP必须在同一个网段,且Real Server的网关必须指向Director Server。
  • RIP通常为私有地址,Real Server可以使用任意操作系统。
  • Direct Server需要支持端口映射。

网络地址转换模式(NAT)优缺点:

  • 缺点:Direct Server需要修改请求报文和响应报文,且响应报文通常远大于请求报文,因此Direct Server的CPU和网络带宽都可能成为性能瓶颈。
  • 缺点:不能跨机房和跨网段。

直接路由模式(DR)

直接路由模式(DR)实现原理:

1、Direct Server收到请求报文后,在数据链路层修改请求报文的MAC地址为Real Server的MAC地址,再将请求报文转发给Real Server。

2、Real Server收到请求后,处理请求并根据请求报文中的源地址将处理结果直接返回给请求客户端,由于Direect Server和Real Server都拥有相同的VIP,因此可以直接将处理结果返回给请求客户端。

直接路由模式(DR)实现要求:

  • 需要Direct Server和Real Server持有相同的VIP,因此需要Direct Server和Real Server都有一块物理网卡连接在同一局域网中的同一物理网段上。
  • 需要Direct Server持有VIP,接受对外请求报文,并根据ARP协议获取到Real Server的物理地址,在数据链路层修改请求报文的MAC地址将请求报文按照MAC地址转发给对应的Real Server。
  • 需要Real Server持有VIP,处理请求报文并直接向请求客户端返回请求结果。
  • 需要Real Server进行特殊配置,抑制Real Server进行ARP广播,保证只有Direct Server能接收客户端请求。

直接路由模式(DR)优缺点:

  • 优点:请求报文经过Direct Server,响应报文不经过Direct Server,Direct Server能处理更多请求。
  • 缺点:需要针对Real Server进行特殊配置
  • 缺点:不能跨机房和跨网段。

隧道模式(TUN)

隧道模式(TUN)实现原理:

1、Direct Server收到请求报文后,将请求报文进行一次封装,增加一层IP报文(将源IP设置为DIP,将目标IP设置为RIP),然后转发给Real Server。

2、Real Server收到请求报文后,拆掉Direct Server封装的IP报文后,得到原始的请求报文,处理请求并根据请求报文中的源地址将处理结果直接返回给请求客户端。

隧道模式(TUN)实现要求:

  • 要求Real Server系统支持隧道模式

隧道模式(TUN)优缺点:

  • 优点:请求报文经过Direct Server,响应报文不经过Direct Server,Direct Server能处理更多请求。
  • 优点:RIP/VIP/DIP都是公网地址,不要求Direct Server和Real Server在相同网段,能实现多机房高可用。

双向网络地址转换模式(FULL-NAT)

目前没有正式版的双向网络地址转换模式。

在网络地址转换模式(NAT)中,Real Server接收的请求报文中源地址是请求客户端的IP,Real Server返回的响应报文中的目标地址是请求客户端的IP,因此Real Server处理过程中能明确知道该请求的真实客户端IP。

在双向网络地址转换模式(FULL-NAT)中,Direct Server会将请求报文中的源地址信息改为VIP,Real Server接收到请求后无法明确知道该请求的真实客户端IP,仅知道该请求来自Direct Server。

阿里巴巴内部实现了双向网络地址转换模式(FULL-NAT),并通过在请求报文中增加额外字段来存储真实客户端的信息,使得Real Server处理过程中能明确知道该请求的真实客户端IP。

参考资料