一种远程协助转发方法及系统的制作方法

文档序号:7869758阅读:223来源:国知局
专利名称:一种远程协助转发方法及系统的制作方法
技术领域
本发明涉及网络技术,尤其涉及一种远程协助转发方法及系统。
背景技术
云计算的兴起正在逐渐地改变整个计算机学术界和产业界,而虚拟化正迅速发展成为下一代数据中心的核心元素,而这种变化也给网络带来新的挑战。早期服务器20虚拟化部署大大节约了成本,而同时加强了部署灵活性和适应性。随着虚拟化软件逐渐成熟,简单的服务器20集成开始趋向涉及对服务器20环境进行完全重新架构的策略。下一代服务器20硬件将支持虚拟机,并且大部分软件在设计时就考虑了虚拟化。给网络带来的一些挑战是对带宽和交换能力的要求,大大提高了拓扑复杂性,并且使管理复杂化,因为虚拟化模糊了物理和虚拟、网络和服务器20以及数据和存储网络之间的区别。
虚拟机比传统操作系统或应用程序更加容易部署,企业还可以通过在单个服务器 20上运行多个虚拟机来减少成本。但是虚拟化也有缺点,在网络方面来看,虽然虚拟化减少了物理服务器20的数量,但是虚拟化也增加了虚拟设备和网络设备的数量。从交换机的角度来看,虚拟网络端口与物理网络端口存在一些差异。另外,虚拟机的增加使网络流量猛增,无论是在网络核心还是边缘,造成潜在网络瓶颈问题和管理难题。
服务器20的简洁化将导致网络的复杂化,首先,增加的网络复杂性会影响性能。 除了增加网络设备外,虚拟化增加了交换结构的层级,增加了延迟性、功能损耗和管理复杂度。大多数数据中心使用三层结构边缘交换机、汇聚交换机和机架顶交换机(TOR)或者布线方式交换机E0R。管理程序增加了一个具有软件交换机附件层来管理内部管理程序流量。有些服务器20可能会使用具有硬件端口虚拟化的智能NIC,而刀片机箱往往有交换机模块,每个模块都会增加另一个交换层。其次,物理服务器20上的虚拟 机器的集成会影响交换可扩展性和性能。此外,因为虚拟交换机在第2层运行,虚拟机的增加将会改变局域网拓扑,让其变得更大。这还使在边缘交换机出现之前局域网设计师遭遇的很多问题重新出现了,例如广播流量开销和地址表爆炸等问题。虚拟机集成率还限制了 VLAN分区的有效性。因为虚拟交换机在第2层运行,更像是连接到外部网络的桥梁,并且因为VLAN标签是基于端口的,任何特定应用程序VLAN对于系统上的虚拟机都是可见的。因此,如果更多虚拟机共享相同的以太网端口,并且这些虚拟机上的不同的应用程序源自不同VLAN,然后每个端口将需要对更多VLAN的访问权限,这大大限制了有效性。再次,软件交换机使管理和安全复杂化了。网络监控、管理、流量报告和安全工具使用标准协议在物理端口上运行,但是随着越来越多的流量在管理程序间交换,这些工具失去了对大量网络活动的可视性。一些供应商让其监控和分析软件能够在虚拟机上使用来重新获得可视性,但是这些都是专有解决方案,通常只能支持一个或两个管理程序供应商,并且通常需要额外的证书成本。
为解决以上虚拟化给网络带来的问题,各个厂商纷纷提出各种解决方案,最为传统的是虚拟交换机,其优点是纯靠软件来实现,不需要额外的硬件设备,但是性能和管理问题无法避免,一种替代方法就是虚拟以太桥(VEB),它将桥接功能移动到一个智能NIC (网卡,Network Interface Card)上,这个 NIC 支持所谓的单根 I/O 虚拟化(SR-1OV)。SR-1OV 将智能NIC划分为多个虚拟NIC,每个虚拟机分配一个NIC,它是通过为每个虚拟机提供独立的内存空间、中断和DMA流来实现的。这允许桥接发生在硬件,而不是在管理程序中。但是由于NIC之间较差的互操作性,以及随着每台服务器20承载的虚拟机数量增加而带来的可扩展性问题,这种解决方案没有赢得市场的青睐。另一个解决方案是完全摒弃虚拟交换机,而将交换功能移回到边缘设备。因而产生了两个IEEE标准802.1Qbg和802.1Qbh0在惠普推出其相关技术后,这个标准有时也被称为虚拟以太网端口聚合(VEPA),尽管惠普的 VEPA实际上包含额外的专有功能。
EVB (Edge Virtual Bridging,边缘虚拟桥)的目的是允许多个虚拟机共享一个共同端口,而同时从外部桥获取服务。通常情况下,以太网帧并不会转回它们进来的那个接口,这个动作会造成网络端口形成环路。EVB提供了一个标准方法来解决这个问题。作为一个相对简单的协议扩展,EVB较有吸引力,因为它可以部署在现有的硬件上,而只需对交换机和管理程序的软件进行升级。但是,EVB还只是起步阶段,它并不能解决政策管理问题, 而且会给交换机带来更多广播和组播流量的负担,802.1Qbh正是通过桥端口扩展来解决这个问题,虽然802.1Qbg并不能修改底层以太网数据包,不过802.1Qbh端口扩展标准增加了一个标签,就像是标准VLAN标签,允许网络流量被映射到特定虚拟机,并当虚拟机在网络移动时跟踪虚拟机。
如上所述,虚拟交换机虽然适合于小规模的数据中心,但是从长远的角度来看,依然存在延迟性、功能损耗、管理复杂、广播流量开销大、地址表爆炸、可扩展性差和性能差等问题。802.1Qbg和802.1Qbh能在一定程度上解决性能和管理问题,但是需要专门的硬件设备支持,成本较高,扩展性差等问题。发明内容
本发明所要解决的技术问题之一是需要提供一种能够有效解决安装有一个或一个以上虚拟机(尤其是安装有较多虚拟机)的主机网络转发负载过重的问题的远程协助转发方法及系统。
为了解决上述技术问题,本发明提供了一种远程协助转发方法,该方法包括
若客户端监听到有待转发报文,则分析并获取所述待转发报文中的敏感信息,根据敏感信息组装远程协助转发请求报文;
服务器接收所述远程协助转发请求报文,获取该请求报文中的敏感信息,根据所述敏感信息进行寻址,并将寻址结果发送至所述客户端;
所述客户端根据所述查找结果来转发所述待转发报文,
其中,所述敏感信息为待转发报文中与网络转发地址有关的信息。
进一步,所述数据转发负载可以为以下因素至少之一虚拟机的操作系统、客户端最近预设时长的数据转发量、当前系统运行的虚拟机数量、CPU使用率和内存使用率。
进一步,所述根据所述`敏感信息进行寻址的步骤进一步包括调用算法池中的算法对地址池中的地址表进行寻址。
进一步,所述算法池中的算法包括索引加分离算法和哈斯算法至少之一,所述地址池中地址的存储可采用按索引分离和哈斯链中至少一种存储结构。
此外,所述将寻址结果发送至所述客户端的步骤进一步包括所述服务器向所述客户端发送对所述远程协助转发请求的响应,所述响应包括根据所述敏感信息进行寻址的寻址结果。
此外,所述方法还可包括所述客户端向所述服务器发送自身的地址;所述服务器接收所述客户端发来的地址,关存储至所述地址池。
此外,所述方法还可包括在客户端的数据转发负载达到预设阈值时,所述客户端监听是否有待转发报文,反之,所述客户端不监听是否有待转发报文。
进一步,所述敏感信息可为待转发报文中的源地址和/或目标地址,其中,源地址和目标地址为mac地址和/或ip地址。
根据本发明另一方面,还提供了一种远程协助转发系统。该系统包括远程协助转发中心和一个或一个以上的客户端,所述远程协助转发中心包括一个或一个以上服务器, 所述客户端用于转发其包括的所述一个或多个虚拟机产生的报文,所述客户端还包括监听单元、第一交互单元和处理单元,所述服务器包括第二交互单元和寻址单元,其中,
所述客户端的监听单元用于,在客户端的数据转发负载达到预设阈值时,监听协议栈中是否有待转发报文,若监听到有待转发报文,分析并获取所述待转发报文中的敏感信息;
所述客户端的第一交互单元用于,根据敏感信息组装远程协助转发请求报文;
所述服务器的第二交互单元接收所述远程协助转发请求报文,获取该请求报文中的敏感信息,并将所述寻址单元的寻址结果发送至所述客户端;
所述服务器的寻址单元用于根据所述第二交互单元获取的敏感信息进行寻址,
其中,所述敏感信息为待转发报文中与网络转发地址有关的信息。
进一步,所述服务器还包括开关单元,其中,所述开关单元用于,在客户端的数据转发负载达到预设阈值时,允许所述客户端的监听单元监听协议栈中是否有待转发报文, 反之,禁止所述客户端的监听单元监听协议栈中是否有待转发报文。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点
根据本发明方法专门针对虚拟化环境,使得能够有效解决安装有一个或一个以上 (尤其是安装有较多虚拟机)的主机网络转发负载过重的问题。
此外,本发明结合了虚拟化环境的特点,采用服务器20对地址进行集中管理和集中协助转发,可以有效减少广播流量开销。具体地,若一客户端在报文转发时不知道目的ip 地址/下一跳ip地址对应的mac地址,则会以广播的形式发出ARP请求目标ip地址对应的MAC地址,同一子网内(没有VLAN隔离)的主机/虚拟机都会接收到广播报文,但只有ip 地址为所请求的目标ip地址的主机/虚拟机才会响应该ARP请求,而如果采用了根据本发明的远程协助转发方法,则没必要再发ARP请求了,因为转发需要的地址等 信息可由远程协助转发中心所提供,因此,根据本发明的方法能够减少广播流量的开销。
此外,由于当前MAC地址表由各个物理主机(也称计算节点)创建和维护,MAC地址表项包含了与该设备相连设备(物理主机或虚拟机)的MAC地址、端口号以及VLAN ID等信息。其中MAC表项包括静态MAC地址表项、动态MAC地址表项和黑洞MAC地址表项等。如果采用了根据本发明的远程协助转发方法,则甚至无需本地维护MAC地址表,所有的地址表包括路由表均可由远程协助转发中心维护。这避免了客户端的地址表爆炸、解决了交换可扩展性等由于虚拟化技术带来的网络问题。
此外,由于本发明在网络流量不至于影响主机性能的情况下,由主机自身来进行数据的转发,而当远程协助转发流程是在当网络流量到达一定的程度以至于影响主机性能的情况下,则进行根据本发明的集中协助转发,提高了灵活性,减少了网络流量。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中
图1示出根本发明的一实施例的远程协助转发系统的结构示意图2示出根据本发明一实施例的远程协助转发方法的流程图3为客户端10的监听单元12处理流程图4为远程协助转发客户端的结构示意图5为远程协助转发服务器的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合, 所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1示出根本发明的一实施例的远程协助转发系统的结构示意图。如图1所示, 该系统包括一个或一个以上远程协助转发服务器20和一个或一个以上远程协助转发客户端10,所述一个或一个以上远程协助转发服务器20构成远程协助转发中心2。在本发明的系统中,远程协助转发客户端10上往往设置有一个以上虚拟机。本系统能够解决由于各个虚拟机(VM)均共享同一物理机的网络端口而导致极易出现物理机的网络数据的转发处理量过大的问题。
远程协助转发客户端10 (以下简称客户端10)包括一个或多个虚拟机VM,用于转发这些虚拟机产生的报文,可包括开关单元11、监听单元12 、交互单元(第一交互单元)13 和处理单元14(参考图4)。客户端10监控其自身报文转发负担情况。客户端10在监控到转发负担相对重的情况下,向服务器20发送协助转发请求,处理服务器20对该请求的响应。
远程协助转发服务器20 (以下简称服务器20)负责协助客户端10进行报文转发, 其包括地址同步单元21、交互单元(第二交互单元)22、寻址单元23、地址池24和算法池 25(参考图5)。服务器20主要执行地址池的维护和同步、处理协助转发请求、调用算法池中存储的算法对地址池中的地址表进行寻址,以及把寻址结果发送给客户端10等。
其中,客户端10既可以为置于在网络上任意一台安装有用于实现根据本发明的客户端10功能的程序的物理服务器20 ;远程协助转服务器20可以为安装有用于实现根据本发明的服务器20的程序的物理实体或虚拟机,也可以为能够实现根据本发明服务器20 功能的逻辑实体。
客户端10启动后一直监控客户端10的数据转发负载情况。当客户端10监控到数据转发负载超过预定配额时,即转发对主机有性能影响时,就会向服务器20发出远程协助转发请求以加快转发速度和减少主机性能消耗,向服务器发送远程协助转发请求。服务器20 —直监听远程协助转发请求,当有远程协助转发请求到达时,服务器20响应远程协助转发请求后把执行结果返回给客户端10。
图2示出根据本发明一实施例的远程协助转发方法的流程图。下面结合图1和图 2来详细说明根据本发明一实施例的远程协助转发系统和方法。
步骤S210,若客户端10的数据转发负载达到预设阈值,则客户端10的监听单元 12监听客户端10是否有要转发的报文(简称待转发报文),若监听到有待转发报文,则分析并获取待转发报文中的敏感信息(敏感信息即与转发相关的网络转发地址等有关的信息), 进入步骤S220。
更具体地,作为节约系统资源的优选方式,客户端10的开关单元11用于在客户端的数据转发负载达到预设阈值时,允许客户端的监听单元监听协议栈中是否有待转发报文,反之,禁止客户端的监听单元监听协议栈中是否有待转发报文。
其中,数据转发负载可以为以下因素至少之一虚拟机的操作系统(和虚拟机的数量一般是等价的,除非一个虚拟机上装多个系统)、客户端10最近预设时长的数据转发量、 当前系统运行的虚拟机数量、CPU(中央处理器)使用率和内存使用率等。数据转发负载达到预设阈值可以指上述因素之一达到预设阈值,也可以指上述一个因素达到一个预设阈值且另一个或多个达到另一个或多个相应的阈值。
步骤S220,客户端10的交互单元13根据敏感信息组装远程协助转发请求报文,然后向服务器20发送远程协助转发请求。也就是说,客户端10的交互单元22负责接收协议栈监视单元传递的敏感信息,并组装成指定格式的远程协助转发请求报文,向服务器20发送远程协助转发请求。
步骤S230,服务器20的交互单元22接收远程协助转发请求报文,获取该请求报文中的敏感信息。
步骤S24 0,服务器20的寻址单元23根据该请求中的敏感信息进行寻址。更具体地,寻址单元23根据敏感信息,调用算法池25中相应的算法查找地址池24中的地址资源, 将寻址结果返回给交互单元22,以使得客户端能够根据所述查找结果来转发所述待转发报文。寻址结果可包括目的ip地址是否可达(有没有路由)、路由优先级、下一跳ip地址、以及缓存MAC地址、出端口、VLAN ID等与转发路径相关的信息。
算法池25是为加快查找速度而维护的各种时间复杂读较低的算法,这些算法依赖以地址池的组织结构,即地址池存储所采用的数据结构。知名的算法如索引加分离算法, 哈斯算法等。地址池24也是为了加快查找速度而设置,地址池24中地址的存储可采用按索引分离、哈斯链等多种存储结构。
步骤S250,服务器20的交互单元22向客户端10发送对该远程协助转发请求的响应,该响应包括步骤S240中的寻址结果。可见,交互单元22用于接收客户端10发来的远程协助转发请求,解析并提取敏感信息传递给寻址单元23,接收寻址单元23返回的寻址结果,并向客户端10发送响应。
步骤S260,客户端10的处理单元14接收服务器20的响应,提取该响应中的敏感信息。这样,客户端10可以在无需在本地进行地址查找处理便能够顺利地转发该待转发报文。
步骤S270,客户端10的处理单元14根据所获取的敏感信息填充待转发报文。也就是说,处理单元14接收服务器20返回的结果,解析提取敏感信息并将之合并到报文中, 以便协议栈能够进行正常转发。
步骤S280,客户端10转发填充后的所述待转发报文。
图3为客户端10的监听单元12处理流程图,包括
步骤S301 :客户端10的监听单元12监听主机协议栈是否有待转发的报文,如果有则进行步骤S302的处理,否则继续等待主机协议栈待转发报文的出现。
步骤S302 :客户端10的监听单元12分析、获取报文中敏信息,其中敏感信息指路由信息或者以太帧信息等待转发报文中与网络转发地址有关的信息,可以为源地址或目标地址。源地址和目标地址可以为mac地址和/或ip地址,当该系统用于与二层转发时,则为mac地址,此时的远程协助转发为二层转发,当该远程协助转发系统用于三层转发时,敏感信息还可为ip地址,此时的远程协助转发为三层转发。
步骤S303 :客户端10的监听单元12将步骤S302所获得的敏感信息传递给客户端10的交互单元23。
优选地,客户端10启动或首次启动时或者地址变动时向服务器20公布自己的地址。服务器20的地址同步单元21用于接收客户端10公布(发送)自身的地址,并根据接收到的地址更新地址池24。在接收客户端10公布的地址,并将接收到的该地址存储至地址池。当然,如果判断出接收到的地址已经存在于地址池,则不再重复存储该公布的地址。需要说明的是,也可以在服务器在设置客户端的地址,这种情况下,无需客户端公布其地址。
可选地,客户端10 还可包括开关单元11,开关单元11为一个实时监控例程,负责监控主机数据转发负载情况,根据主机的数据转发负载情况开启或关闭远程协助转发功倉泛。
优选地,客户端10在其数据转发负载低于预设阈值时,客户端10的监听单元12 不监听客户端10是否有要转发的报文。
此外,虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。该虚拟机可以为,可以采用Guest OSUinux 系统、windows系统或其他。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
权利要求
1.一种远程协助转发方法,其特征在于,包括若客户端监听到有待转发报文,则分析并获取所述待转发报文中的敏感信息,根据敏感信息组装远程协助转发请求报文;服务器接收所述远程协助转发请求报文,获取该请求报文中的敏感信息,根据所述敏感信息进行寻址,并将寻址结果发送至所述客户端;所述客户端根据所述查找结果来转发所述待转发报文,其中,所述敏感信息为待转发报文中与网络转发地址有关的信息。
2.根据权利要求1所述的方法,其特征在于,所述数据转发负载可以为以下因素至少之一虚拟机的操作系统、客户端最近预设时长的数据转发量、当前系统运行的虚拟机数量、中央处理器使用率和内存使用率。
3.根据权利要求1所述的方法,其特征在于,所述根据所述敏感信息进行寻址的步骤进一步包括调用算法池中的算法对地址池中的地址表进行寻址。
4.根据权利要求3所述的方法,其特征在于,所述算法池中的算法包括索引加分离算法和哈斯算法至少之一,所述地址池中地址的存储采用按索引分离、哈斯链中至少之一种存储结构。
5.根据权利要求1所述的方法,其特征在于,所述将寻址结果发送至所述客户端的步骤进一步包括所述服务器向所述客户端发送对所述远程协助转发请求的响应,所述响应包括根据所述敏感信息进行寻址的寻址结果。
6.根据权利要求5所述的方法,其特征在于,还包括所述客户端向所述服务器发送自身的地址;所述服务器接收所述客户端发来的地址,并存储至所述地址池。
7.根据权利要求1所述的方法,其特征在于,还包括在客户端的数据转发负载达到预设阈值时,所述客户端监听是否有待转发报文,反之, 所述客户端不监听是否有待转发报文。
8.根据权利要求1所述的方法,其特征在于,所述敏感信息为待转发报文中的源地址和/或目标地址,其中,源地址和目标地址为mac地址和/或ip地址。
9.一种远程协助转发系统,其特征在于,包括远程协助转发中心和一个或一个以上的客户端,所述远程协助转发中心包括一个或一个以上服务器,所述客户端用于转发其包括的所述一个或多个虚拟机产生的报文,所述客户端还包括监听单元、第一交互单元和处理单元,所述服务器包括第二交互单元和寻址单元,其中,所述客户端的监听单元用于,在客户端的数据转发负载达到预设阈值时,监听协议栈中是否有待转发报文,若监听到有待转发报文,分析并获取所述待转发报文中的敏感信所述客户端的第一交互单元用于,根据敏感信息组装远程协助转发请求报文;所述服务器的第二交互单元接收所述远程协助转发请求报文,获取该请求报文中的敏感信息,并将所述寻址单元的寻址结果发送至所述客户端;所述服务器的寻址单元用于根据所述第二交互单元获取的敏感信息进行寻址,其中,所述敏感信息为待转发报文中与网络转发地址有关的信息。
10.根据权利要求9所述的系统,其特征在于,所述服务器还包括开关单元,其中,所述开关 单元用于,在客户端的数据转发负载达到预设阈值时,允许所述客户端的监听单元监听协议栈中是否有待转发报文,反之,禁止所述客户端的监听单元监听协议栈中是否有待转发报文。
全文摘要
本发明公开了一种远程协助转发方法及系统。该方法包括若客户端监听到有待转发报文,则分析并获取所述待转发报文中的敏感信息,根据敏感信息组装远程协助转发请求报文;服务器接收所述远程协助转发请求报文,获取该请求报文中的敏感信息,根据所述敏感信息进行寻址,并将寻址结果发送至所述客户端;所述客户端根据所述查找结果来转发所述待转发报文,其中,所述敏感信息为待转发报文中与网络转发地址有关的信息。本发明能够有效解决安装有一个或一个以上虚拟机(尤其是安装有较多虚拟机)的主机网络转发负载过重的技术问题。
文档编号H04L29/12GK103067473SQ20121056435
公开日2013年4月24日 申请日期2012年12月21日 优先权日2012年12月21日
发明者陈漂评 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1