LVS(Linux virtual server)理论-L2

在http://blog.csdn.net/dear_mywork/article/details/78892036介绍了arp是什么,并且简单的了解了lvs。


LVS的四种工作模式:

NAT(network address translation,这个模式在vmware虚拟机中的网络中很常见)、TUN(Tunneling,我当时知道这种模式的第一反应就是v*n)隧道模式、DR(Direct Routing)直接路由模式、FULLNAT(full network address translation)。


NAT和FULLNAT原理是不一样的,他有点像NAT和DR的优点集合,但是小集群会比较浪费,个人觉得没有必要。



DR直接路由模式:

LVS(Linux virtual server)理论-L2

LVS(Linux virtual server)理论-L2



1、客户端向VIP发起请求,LVS接收到请求后,有源地址为CIP,目的地址为VIP的数据包。

2、VIP通过修改mac,把mac地址修改为RIP中的一台,并将数据包的目的mac地址修改,并且发送过去。

3、RIP收到数据包,对数据包进行解包,二层mac地址和三层IP地址(这就是为什么要做arp抑制的原因),都为自身的,所以接收并且处理改请求。

4、处理玩请求后由RIP和CIP直接通信,但是原地址还是原来的VIP地址。

5、完成一次请求处理。


TUN隧道模式:

LVS(Linux virtual server)理论-L2


从图中可以看出TUN模式和DR模式差不多只不过,TUN模式可以跨网段。

1)客户请求数据包,目标地址VIP发送到LB上。

2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。

3)RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。

4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址。(RS节点服务器需要在本地回环接口配置VIP,后续会讲)


NAT模式:

LVS(Linux virtual server)理论-L2

1)客户端请求数据,目标IP为VIP

2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(此RIP地址是根据调度算法得出的。)并在连接HASH表中记录下这个连接。

3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver的网关必须是LB,然后将数据返回给LB服务器。

4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端口80.然后数据就从LB出发到达客户端。

5)客户端收到的就只能看到VIP\DIP信息。


FULL-NAT模式:

http://blog.csdn.net/mumumuwudi/article/details/47064281
这里说的很详细。

LVS(Linux virtual server)理论-L2

LVS(Linux virtual server)理论-L2

FULLNAT中的LVS也是一个集群看待,就很好理解了。


参考:

http://www.it165.net/admin/html/201401/2248.html

http://blog.csdn.net/mumumuwudi/article/details/47064281