LVS 的三种工作方式(TUN原理)(三)

2018-01-12 11:12:40来源:网络收集作者:纳米程序员人点击

分享

阿里云爆款

很多网络上的文章都为读者介绍DR和TUN的工作方式类似,要么就是直接讲解DR模式和TUN模式的安装配置方式,然后总结两种模式类似。那为什么有了DR模式后还需要TUN模式呢?为什么ipvsadmin针对两种模式的配置参数不一样呢?


实际上LVS-DR模式和LVS-TUN模式的工作原理完全不一样,工作场景完全不一样。DR基于数据报文重写,TUN模式基于IP隧道,后者是对数据报文的重新封装。下面我们就来讲解一下LVS-TUN模式的工作原理。


首先要介绍一个概念:IP隧道。将一个完整的IP报文封装成另一个新的IP报文的数据部分,并通过路由器传送到指定的地点。在这个过程中路由器并不在意被封装的原始协议的内容。到达目的地点后,由目的地方依靠自己的计算能力和对IP隧道协议的支持,打开封装协议,取得原始协议。如下图:


LVS 的三种工作方式(TUN原理)(三)


可以说隧道协议就是为了解决跨子网传输准备的,在生产环境中由于业务需要、技术需要或者安全需要,可能使用交换机进行VLAN隔离(即形成若干个虚拟的独立的局域网),我们可能需要LVS节点在局域网A,而需要进行负载的多台MySQL读服务器可能在局域网B中。这个时候,我们就要配置LVS的隧道方式。LVS-TUN模式如下图所示(注意,目标节点要能够解开隧道协议,好消息是linux支持IPIP隧道协议):


LVS 的三种工作方式(TUN原理)(三)


上图中的线优点多,您只需要关注关心“有箭头”的虚线就可以了。


一旦LVS节点发现来目标为192.168.100.10 VIP的请求,就会使用IP隧道协议对这个请求报文进行封装。而不是像LVS-DR模式重写数据报文的MAC信息。如果配置了多个Real Server,那么LVS会使用设置的调度算法确定一个Real Server(这里为了简单,就只画了一个Real Server节点);


重新封装后的IPIP隧道协议报文会重新被回发到路由器,路由器(或三层交换机)会根据设置的LVAN映射情况,找到目标服务器,并将这个IPIP隧道报文发送过去;


Real Server收到这个IP隧道报文后,会将这个报文进行解包。这里注意一下,一般情况下IPIP隧道报文会进行分片,就如同IP报文分片一样,只是为了讲解方便,我们假定这个报文不需要分片。解压后得到的数据报文就是原来发送给VIP的请求报文;


Real Server设置的回环IP,让Real Server认为原始的请求报文是从自己本地的某个应用程序发出的,完成原始报文的校验后,它会对这个报文进行处理。剩下的过程就和LVS-DR相同了,这里就不再进行复述了。


可以说LVS-TUN方式基本上具有LVS-DR的优点。在此基础上又支持跨子网间穿透。这样的方案能够给我们架构师足够的系统设计场景。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台