LVS(Linux virtual server)理论-L2
在http://blog.****.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直接路由模式:
1、客户端向VIP发起请求,LVS接收到请求后,有源地址为CIP,目的地址为VIP的数据包。
2、VIP通过修改mac,把mac地址修改为RIP中的一台,并将数据包的目的mac地址修改,并且发送过去。
3、RIP收到数据包,对数据包进行解包,二层mac地址和三层IP地址(这就是为什么要做arp抑制的原因),都为自身的,所以接收并且处理改请求。
4、处理玩请求后由RIP和CIP直接通信,但是原地址还是原来的VIP地址。
5、完成一次请求处理。
TUN隧道模式:
从图中可以看出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模式:
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.****.net/mumumuwudi/article/details/47064281
这里说的很详细。
FULLNAT中的LVS也是一个集群看待,就很好理解了。
参考:
http://www.it165.net/admin/html/201401/2248.html
http://blog.****.net/mumumuwudi/article/details/47064281