Linux服务器集群LVS(2)

这样,客户所看到的只是在Virtual IPAddress上提供的服务,而服务器集群的结构对用户是透明的。对改写后的报文,应用增量调整Checksum的算法调整TCP Checksum的值,避免了扫描整个报文来计算Checksum的开销。

在一些网络服务中,它们将IP地址或者端口号在报文的数据中传送,若我们只对报文头的IP地址和端口号作转换,这样就会出现不一致性,服务会中断。所以,针对这些服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号。我们所知道有这个问题的网络服务有FTP、IRC、H.323、CUSeeMe、Real Audio、Real Video、Vxtreme / Vosiac、VDOLive、VIVOActive、True Speech、RSTP、PPTP、StreamWorks、NTT AudioLink、NTT SoftwareVision、Yamaha MIDPlug、iChat Pager、Quake和Diablo。

下面,举个例子来进一步说明VS/NAT,如图3所示:

vs-net-example


图3:VS/NAT的例子

VS/NAT的配置如下表所示,所有到IP地址为202.103.106.5和端口为80的流量都被负载均衡地调度的真实服务器172.16.0.2:80和172.16.0.3:8000上。目标地址为202.103.106.5:21的报文被转移到172.16.0.3:21上。而到其他端口的报文将被拒绝。

Protocol   Virtual IP Address   Port   Real IP Address   Port   Weight  
TCP   202.103.106.5   80   172.16.0.2   80   1  
            172.16.0.3   8000   2  
TCP   202.103.106.5   21   172.16.0.3   21   1  

从以下的例子中,我们可以更详细地了解报文改写的流程。

访问Web服务的报文可能有以下的源地址和目标地址:

SOURCE   202.100.1.2:3456   DEST   202.103.106.5:80  

调度器从调度列表中选出一台服务器,例如是172.16.0.3:8000。该报文会被改写为如下地址,并将它发送给选出的服务器。

SOURCE   202.100.1.2:3456   DEST   172.16.0.3:8000  

从服务器返回到调度器的响应报文如下:

SOURCE   172.16.0.3:8000   DEST   202.100.1.2:3456  

响应报文的源地址会被改写为虚拟服务的地址,再将报文发送给客户:

SOURCE   202.103.106.5:80   DEST   202.100.1.2:3456  

这样,客户认为是从202.103.106.5:80服务得到正确的响应,而不会知道该请求是服务器172.16.0.2还是服务器172.16.0.3处理的。

Virtual Server via Direct Routing(VS/DR)

VS/DR利用大多数Internet服务的非对称特点,Director中只负责调度请求,而后台real_server服务器直接将响应返回给客户,不再通过Director进行转发。

DR方式是通过改写请求报文中的MAC地址部分来实现的。Director和RealServer必需在物理上有一个网卡通过不间断的局域网相连,如通过高速的交换机或者HUB相连。

VIP地址为Director和RealServer组共享,RealServer上绑定的VIP配置在各自Non-ARP的网络设备上(如eth0或lo),Director的VIP地址对外可见,而RealServer的VIP对外是不可见的,只是用于处理目标地址为VIP的网络请求,RealServer的地址即可以是内部地址,也可以是真实地址。

VS/DR的体系结构如图所示:

vs-dr


图4:VS/DR的体系结构

VS/DR 的工作流程如图5所示:它的连接调度和管理与VS/NAT和VS/TUN中的一样,它的报文转发方法又有不同,将报文直接路由给目标服务器。在VS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。

vs-dr-flow


图5:VS/DR的工作流程

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b93bcb8f76ce69e4d792837ff14aa848.html