虚拟路由装置及其路由方法

文档序号:7714723阅读:331来源:国知局
专利名称:虚拟路由装置及其路由方法
技术领域
本发明涉及互联网技术领域,尤其涉及一种虚拟路由装置及其路由方法。
背景技术
互联网在过去几十年的产生与发展过程中,取得了举世瞩目的成功。基于互联网, 出现了越来越多的用户,越来越多的应用,越来越多的服务。然而,也正是因为互联网的广泛性,愈发显现出与原始的设计初衷不一致性,固有的弊端和新生的缺陷不断涌现。因此, 众多学者纷纷加入到对未来互联网的研究中,产生了一系列研究成果。然而,大部分的研究成果都是基于原有互联网体系结构的修改,并没有有效解决其固有的顽疾。另一些研究成果涉及到对互联网的彻底创新,但遗憾的是没有一个行之有效的大规模的平台来验证其正确性。因此,未来互联网的研究迫切需要可支持并行网络创新实验平台。这个创新实验平台,需要在不影响现网这个前提下,可以并行进行各种互联网的创新研究和实验,互不影响。网络虚拟化技术允许在同一个底层网络资源上同时并行运行多个虚拟网络,被认为是搭建未来创新网络实验平台的一种重要和有效的技术。网络虚拟化通过节点虚拟化技术和链路虚拟化技术在同一底层物理网络上虚拟出多个虚拟网络,从而提供不同的服务,运行不同的协议和应用。例如不同虚拟网络可以运行特点鲜明的不同应用VoIP、视频点播、组播、文件共享等。作为网络虚拟化的核心设备虚拟路由器,对其的研究便显得格外的重要。在过去的研究中成果,有两种虚拟路由器的方案第一种方案是基于软件的虚拟路由器,其最大的特点是配置灵活,可编程性强,然而软件虚拟路由器有其难以逾越的瓶颈转发速率低,这是因为其转发功能是由软件来实现的缘故。第二种方案是基于硬件的虚拟路由器,其最大的特点在于转发速率高,甚至可达线速,然而其灵活性和可配置性很难和软件虚拟路由器相比拟。另外,目前关于硬件虚拟路由器的研究成果在隔离性上也有一定缺陷,各个平面之间无法做到完全的隔离。路由器的功能架构主要包括控制平面、数据平面和管理平面,因此虚拟路由器的设计需要综合考虑各个平面之间的特点和性能要求。同时兼顾考虑到软件虚拟路由器和硬件虚拟路由器各自的优势和缺点,最终实现出高性能的虚拟路由器。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是提供一种虚拟路由装置及其路由方法,其能够同时支持多张并行的虚拟网络来运行不同的应用;所建立的不同虚拟网络之间应能做到完全的隔离,互不影响;且转发速率高,可以达到线速;本发明还具备深度可编程、配置灵活及扩展性良好的特点。( 二)技术方案
为解决上述问题,本发明提供了一种虚拟路由装置,包括可编程硬件和主机;其中,所述可编程硬件用于完成数据平面的数据包转发功能;所述主机用于完成控制平面和管理平面的功能,包括主机控制单元和多个虚拟机单元;所述主机控制单元用于对数据平面和虚拟机单元进行管理和控制,并周期性更新数据平面中的路由表和ARP表;所述虚拟机单元用于实现路由协议处理和数据包处理的功能,实时产生路由表和 ARP表并提供给 主机控制单元。其中,所述数据平面包括所述可编程硬件中的数据包转发控制模块、以及存储在寄存器中的路由表、ARP表和端口表,且所述数据平面与所述虚拟机单元一一对应。其中,所述控制平面包括所述主机控制单元中的管理配置模块以及所述虚拟机单元中的路由协议模块和数据包处理模块。其中,所述虚拟机单元包括N张虚拟网卡,分别桥接到所述可编程硬件的N个CPU 队列上。N为自然数。其中,所述可编程硬件为FPGA。一种利用前述的虚拟路由装置进行虚拟路由的方法,包括以下步骤Sl 主机控制单元通过PCI接口对可编程硬件进行初始化配置,并产生与可编程硬件中数据平面对应的虚拟机单元;S2 虚拟机单元对收到的数据包进行处理,实时产生并更新路由表和ARP表;S3 主机控制单元通过定时器,周期性地将虚拟机单元中产生的路由表和ARP表更新到数据平面中;S4 可编程硬件将接收到的数据包转发。其中,所述的步骤S4进一步包括,判断数据包的格式;对于VLAN格式的数据包,首先通过VLAN标签对其进行过滤,而后将与VLAN标签相匹配的数据包发送到标签对应的数据平面,丢弃与VLAN标签不匹配的数据包;在数据包进入数据平面后根据其目的MAC地址进行过滤;对于与MAC地址匹配的数据包,根据其目的IP地址从路由表和ARP表查找下一跳IP地址以及对应的端口,若查到则进行转发,否则通过CPU队列送到相应虚拟机单元中处理。(三)有益效果本发明通过将可编程硬件与主机虚拟化技术相结合,并在数据平面采用VLAN隔离技术,因而能够在同一底层物理网络之上支持多种并行虚拟网络,且具有好的隔离特性。 通过可编程硬件(FPGA)进行数据包转发具有较高的转发速率,可达到线速转发。本发明由于在控制平面中采用了主机虚拟化技术和可编程硬件,具有深度可编程性,主机虚拟化技术产生相互隔离的虚拟机,各个虚拟机可以根据不同的应用场景来选择不同的路由协议, 同时可编程硬件(FPGA)中的数据包处理流程也是高度可编程的。本发明的主机控制单元可以根据需要调整配置策略,表项更新策略,虚拟节点资源分配策略等。


图1为本发明实施例中所述虚拟路由装置的结构图;图2为本发明实施例中所述虚拟路由方法的流程图;图3为本发明实施例中所述可编程硬件的数据转发流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。如图1所示,本发明所述的虚拟路由装置,包括可编程硬件,例如FPGA和主机;其中,所述可编程硬件,例如FPGA用于完成数据平面的数据包转发功能;所述数据平面包括所述可编程硬件,例如FPGA中的数据包转发控制模块、以及存储在寄存器中的路由表、ARP表和端口表,且所述数据平面与所述虚拟机单元一一对应;所述数据平面包括一般数据平面和VLAN数据平面;所述主机用于完成控制平面和管理平面的功能,包括主机控制单元和多个虚拟机单元;所述控制平面包括所述主机控制单元中的管理配置模块以及所述虚拟机单元中的路由协议模块和数据包处理模块;所述主机控制单元用于对数据平面和虚拟机单元进行管理和控制,并周期性更新数据平面中的路由表和ARP表;所述虚拟机单元用于实现路由协议处理和数据包处理的功能,实时产生路由表和 ARP表并提供给主机控制单元;所述虚拟机单元包括N张虚拟网卡,所述N张虚拟网卡通过网桥分别桥接到所述可编程硬件的N个CPU队列上。所述网桥由管理配置模块建立。其中, N为自然数。如图2所示,本发明所述利用前述的虚拟路由装置进行虚拟路由的方法,包括以下步骤Sl 主机控制单元通过PCI接口对可编程硬件,例如FPGA进行初始化配置,并产生与可编程硬件中数据平面对应的虚拟机单元;S2 虚拟机单元对收到的数据包进行处理,实时产生并更新路由表和ARP表;S3 主机控制单元通过定时器,周期性地将虚拟机单元中产生的路由表和ARP表更新到数据平面中;S4 可编程硬件,例如FPGA将接收到的数据包转发。本步骤中,可编程硬件的数据转发流程如图3所示,首先判断数据包的格式;对于VLAN格式的数据包,首先通过VLAN标签对其进行过滤,而后将与VLAN标签相匹配的数据包发送到标签对应的数据平面,丢弃与VLAN标签不匹配的数据包;在数据包进入数据平面后根据其目的MAC地址进行过滤;对于与MAC地址匹配的数据包,根据其目的IP地址从路由表和ARP表查找下一跳IP地址以及对应的端口,若查到则进行转发,否则通过CPU队列送到相应虚拟机单元中处理。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种虚拟路由装置,其特征在于,包括可编程硬件和主机;其中,所述可编程硬件用于完成数据平面的数据包转发功能;所述主机用于完成控制平面和管理平面的功能,包括主机控制单元和多个虚拟机单元;所述主机控制单元用于对数据平面和虚拟机单元进行管理和控制,并周期性更新数据平面中的路由表和ARP表;所述虚拟机单元用于实现路由协议处理和数据包处理的功能,实时产生路由表和ARP 表并提供给主机控制单元。
2.如权利要求1所述的虚拟路由装置,其特征在于,所述数据平面包括所述可编程硬件中的数据包转发控制模块、以及存储在寄存器中的路由表、ARP表和端口表,且所述数据平面与所述虚拟机单元一一对应。
3.如权利要求1所述的虚拟路由装置,其特征在于,所述控制平面包括所述主机控制单元中的管理配置模块以及所述虚拟机单元中的路由协议模块和数据包处理模块。
4.如权利要求1所述的虚拟路由装置,其特征在于,所述虚拟机单元包括N张虚拟网卡,分别桥接到所述可编程硬件的N个CPU队列上。
5.如权利要求1所述的虚拟路由装置,其特征在于,所述可编程硬件为FPGA。
6.一种利用权利要求1-5中任一项所述的虚拟路由装置进行虚拟路由的方法,其特征在于,包括以下步骤51主机控制单元通过PCI接口对可编程硬件进行初始化配置,并产生与可编程硬件中数据平面对应的虚拟机单元;52虚拟机单元对收到的数据包进行处理,实时产生并更新路由表和ARP表;S3:主机控制单元通过定时器,周期性地将虚拟机单元中产生的路由表和ARP表更新到数据平面中;S4 可编程硬件将接收到的数据包转发。
7.如权利要求6所述的虚拟路由方法,其特征在于,所述的步骤S4进一步包括,判断数据包的格式;对于VLAN格式的数据包,首先通过VLAN标签对其进行过滤,而后将与VLAN标签相匹配的数据包发送到标签对应的数据平面,丢弃与VLAN标签不匹配的数据包;在数据包进入数据平面后根据其目的MAC地址进行过滤;对于与MAC地址匹配的数据包,根据其目的IP地址从路由表和ARP表查找下一跳IP地址以及对应的端口,若查到则进行转发,否则通过CPU队列送到相应虚拟机单元中处理。
全文摘要
本发明公开了一种虚拟路由装置及其路由方法,涉及互联网技术领域,所述装置包括可编程硬件和主机;其中,所述可编程硬件用于完成数据平面的数据包转发功能;所述主机完成控制平面和管理平面的功能,包括主机控制单元和虚拟机单元;所述主机控制单元用于使可编程硬件和虚拟机单元初始化,并周期性更新可编程硬件中的表项;所述虚拟机单元用于实现路由协议处理和数据包处理的功能,实时产生和更新路由表和ARP表并提供给主机控制单元。本发明能够同时支持多张并行的虚拟网络来运行不同的应用;所建立的不同虚拟网络之间能做到完全的隔离,互不影响;且转发速率高,可以达到线速;本发明还具备深度可编程、配置灵活及扩展性良好的特点。
文档编号H04L12/56GK102231708SQ20111018531
公开日2011年11月2日 申请日期2011年7月4日 优先权日2011年7月4日
发明者刘中金, 曾烈光, 李勇, 杨懋, 苏厉, 金德鹏 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1