美文网首页
LVS的工作模式

LVS的工作模式

作者: rockops | 来源:发表于2016-12-25 23:41 被阅读61次

对LVS只做了粗浅的了解,LVS的工作模式主要分

  • VS-NAT
  • VS-DRouting
  • VS-IPTunneling

其中用的最多的是NAT模式,下面分别来阐述下

VS-NAT

原理图


natnat

请求到达lvs之后,lvs会重写数据包的目的地址到real server ip:port,并将请求转发给real server,real server处理完之后,将请求包反馈给lvs,lvs修改数据包的源地址为vip:port.

假设202.100.1.2:3456是客户端的地址,202.103.106.5:80是LVS的虚拟地址,172.16.0.3:8000是内网真实server地址。

The incoming packet for web service would has source and destination addresses as:

SOURCE 202.100.1.2:3456 DEST 202.103.106.5:80
The load balancer will choose a real server, e.g. 172.16.0.3:8000. The packet would >be rewritten and forwarded to the server as:

SOURCE 202.100.1.2:3456 DEST 172.16.0.3:8000
Replies get back to the load balancer as:

SOURCE 172.16.0.3:8000 DEST 202.100.1.2:3456
The packets would be written back to the virtual server address and returned to the client as:

SOURCE 202.103.106.5:80 DEST 202.100.1.2:3456

疑问1:对于返回的数据包怎么DEST是202.100.1.2:3456,还是会请求到LVS呢?
解答:这个其实是因为后端的real server没有独立的公网IP,在real server上有配置路由规则,LVS是该机器上所有外网请求的网关。

VS-DRouting

原理图


droutingdrouting

在dr模式下:

  1. lvs只是接收client的请求,response是直接由后端的real server返回给client的,相当于lvs只是做了负载均衡。
  2. 要求所有的real server都必须要有公网IP。
  3. lvs和real server都需要共享这个虚IP,所以lvs和real server必须要在同一个物理网段下。

疑问1: 为什么lvs和real server必须要在同一个物理网段?因为要共享一个虚拟IP。为什么只有同一个物理网段才能共享同一个虚拟IP呢?

疑问2:这是通过MAC地址转发吗,走的数据链路层?

流程图


drouting-flowdrouting-flow

VS-IPTunneling

原理图


ipTunnelingipTunneling

在ip-tunneling模式下:

  1. lvs只是接收client的请求,response是直接由后端的real server返回给client的,相当于lvs只是做了负载均衡(与dr模式一致)。
  2. 这个要求所有的real server都必须要有公网IP(与dr模式一致)。
  3. real server不需要跟lvs在同一个网段下,也不需要共享一个虚拟IP。

流程图


ipTunneling-flowipTunneling-flow

疑问1: client请求的时候dest是lvs的外网地址,但接收包的src变成real server的外网地址了,client还会认这个包吗,不会认为这个是伪造的请求回复包?

疑问2:IP封包技术,走IP层的转发?对下层透明

其他说明

echo 1 > /proc/sys/net/ipv4/ip_forward作用?

相关文章

网友评论

      本文标题:LVS的工作模式

      本文链接:https://www.haomeiwen.com/subject/bmmlvttx.html