通过IP隧道实现虚拟服务器(VS/TUN)

转载 2016年05月31日 13:02:22
附件 大小
Image icon vs-tun.jpg 45.14 KB
Image icon vs-tun-flow.jpg 27.24 KB
Image icon half-conn-state-trans.jpg 23.23 KB

在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。

IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

我们利用IP隧道技术将请求报文封装转发给后端服务器,响应报文能从后端服务器直接返回给客户。但在这里,后端服务器有一组而非一个,所以我们不可能静态地建立一一对应的隧道,而是动态地选择一台服务器,将请求报文封装和转发给选出的服务器。这样,我们可以利用IP隧道的原理将一组服务器上的网络服务组成在一个IP地址上的虚拟网络服务。VS/TUN的体系结构如图3.3所示,各个服务器将VIP地址配置在自己的IP隧道设备上。



图3.3:VS/TUN的体系结构

VS/TUN的工作流程如图3.4所示:它的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为VIP的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。



图3.4:VS/TUN的工作流程

在这里,请求报文的目标地址为VIP,响应报文的源地址也为VIP,所以响应报文不需要作任何修改,可以直接返回给客户,客户认为得到正常的服务,而不会知道是哪一台服务器处理的。

在VS/TUN中,响应报文根据服务器的路由表直接返回给客户,而不经过负载调度器,所以负载调度器只处于从客户到服务器的半连接中,VS/TUN的TCP状态迁移与VS/NAT的不同。我们给出半连接的TCP有限状态机,如图3.5所示,圈表示状态,箭头表示状态间的转换,箭头上的标识表示在当前状态上收到该标识的输入,迁移到下一个状态。VS/TUN的TCP状态迁移是按照半连接的TCP有限状态机进行的。



图3.5:半连接的TCP有限状态机

Comments

"即在负载调度器中只负责调度请求而响应直接返回给客户" -->
即在负载调度器中只负责调度请求,而响应由真实服务器直接返回给客户

Great stfuf, you helped me out so much!

An answer from an expert! Thanks for cobtrinuting.

服务器负载均衡的部署方式

负载均衡的部署方式,简单的可分为串接,单臂,透明和服务器直接返回4类。 1. 路 c1. 串联路由模式 (Routed)路由部串联路由部署方式中,通常服务器的网关需要指向负载均衡设备,这种情况下的流量...

大型网站架构系列:负载均衡详解(3)

本次分享大纲 软件负载均衡概述Ngnix负载均衡Lvs负载均衡Haproxy负载均衡本次分享总结 一、软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者...

通过IP隧道实现虚拟服务器(VS/TUN)

在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数Internet服务都有这样的特点:请求报文...

LVS之——ip-tun(ip隧道)技术的学习与实践

windows 200.168.10.4 lvs server  ip:200.168.10.1 因为IP隧道模式只需要一个网卡  所以就停掉其他网卡 web server1 ip:200.168...

调试uip网络协议栈之-tun虚拟设备模拟IP数据包

背景:开发0ip tcp/ip网络协议栈开发过程中需要测试每个协议层的正确性,我先写了最简单的传输层协议UDP。手上没有方便使用的以太网设备做数据包收发,而TAP/TUN分别是可以模拟以太网数据(ET...

隧道和网络虚拟化:NVGRE vs VXLAN

转载:http://www.sdnlab.com/11819.html 关于NVGRE和VXLAN隧道协议相信大家都不陌生,但是事实上隧道协议只是虚拟化网络中的一部分,它并不提供实质...

lvs-tun隧道模式搭建

  • 2013年09月17日 19:01
  • 167KB
  • 下载

python实现tun/tap虚拟设备

工作中用到了使用tap/tun设备实现虚拟网络,看到网上的例子都是用C实现的。便想试着用python实现一把,主要就是要重新用ctypes定义相关的结构定义。 代码github地址: https://...

linux下实现虚拟网卡TAP/TUN例子

http://blog.csdn.net/xuxinyl/article/details/6454119 我们在使用VMWARE的虚拟化软件时经常会发现它们能都能虚拟出一个网卡,貌似很神奇的...

linux下实现虚拟网卡TAP/TUN例子

原文地址:http://blog.csdn.net/xuxinyl/article/details/6454119   我们在使用VMWARE的虚拟化软件时经常会发现它们能都能虚拟出一个网卡,貌似很...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过IP隧道实现虚拟服务器(VS/TUN)
举报原因:
原因补充:

(最多只允许输入30个字)