CN102957619B - 虚拟路由系统及方法 - Google Patents

虚拟路由系统及方法 Download PDF

Info

Publication number
CN102957619B
CN102957619B CN201110247229.1A CN201110247229A CN102957619B CN 102957619 B CN102957619 B CN 102957619B CN 201110247229 A CN201110247229 A CN 201110247229A CN 102957619 B CN102957619 B CN 102957619B
Authority
CN
China
Prior art keywords
packet
address
plane
mac
output end
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110247229.1A
Other languages
English (en)
Other versions
CN102957619A (zh
Inventor
刘中金
杨懋
李勇
苏厉
金德鹏
曾烈光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201110247229.1A priority Critical patent/CN102957619B/zh
Publication of CN102957619A publication Critical patent/CN102957619A/zh
Application granted granted Critical
Publication of CN102957619B publication Critical patent/CN102957619B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种虚拟路由系统及方法,涉及互联网技术领域,所述系统包括:数据平面,所述数据平面包括:MAC输入/输出端口、输入仲裁模块、以及至少两个数据转发平面;所述MAC输入/输出端口,用于接收数据包,并发送至所述输入仲裁模块;所述输入仲裁模块,用于解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;所述数据转发平面,用于对所述数据包进行解析,通过解析获得所述数据包相应的目的MAC地址,将所述数据包发送至相应的MAC输入/输出端口并转发。本发明通过对数据包的VLAN标签做处理,使具有不同VLAN标签的数据包在不同的转发平面中进行处理,实现了连接虚拟路由器各个虚拟网络之间的完全隔离。

Description

虚拟路由系统及方法
技术领域
本发明涉及互联网技术领域,特别涉及一种虚拟路由系统及方法。
背景技术
互联网在过去几十年的产生与发展过程中,取得了举世瞩目的成功,随着互联网的发展,出现了越来越多的用户,越来越多的应用,越来越多的服务。互联网的快速发展使得现有的网络架构难以满足用户的迫切需求,同时,固有的弊端和新生的缺陷不断涌现。因此,这就迫使研究人员不得不考虑下一代网络的架构,并产生了一系列研究成果。然而,大量的研究成果没有一个行之有效的大规模的平台来验证其正确性。
因此,未来互联网的研究迫切需要一个创新实验平台。这个创新实验平台,需要在不影响现有网络的前提下,并行进行各种互联网的创新研究和实验。网络虚拟化技术允许在同一个底层网络资源上同时并行运行多个虚拟网络,被认为是搭建未来创新网络实验平台的一种重要和有效的技术。网络虚拟化通过节点虚拟化技术和链路虚拟化技术在同一底层物理网络上虚拟出多个虚拟网络,不同的虚拟网络提供不同的服务,运行不同的协议和应用。例如不同虚拟网络可以运行特点鲜明的不同应用:网络电话(VoiceoverInternetProtocol,VoIP)、视频点播、组播、文件共享等。
支持虚拟化的路由器是虚拟化网络的关键设备,所以在网络虚拟化这一课题中,虚拟路由器的研究便显得格外重要。为了突破基于软件转发的虚拟路由器的转发速率低的瓶颈:研究人员提出了基于硬件的虚拟路由器,主要分为两类,一种为基于网络处理器(NetworkProcessor),虽然它可以达到较高的转发速率,但是对于研究人员而言,网络处理器的内部结构无法改变,对它的开发只能局限于设备厂商提供的接口,在可编程性上有较大的局限性。另一种方案是基于现场可编程门阵列(Field-ProgrammableGateArray,FPGA),其最大的特点在于不仅可以达到高的转发速率,同时提供完全的可编程性,内部结构可以任意更改。然而,目前关于硬件虚拟路由器的方案隔离性上仍存在缺陷,各个虚拟网络之间无法做到完全的隔离。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现连接虚拟路由器的各个虚拟网络之间的完全隔离。
(二)技术方案
为解决上述技术问题,本发明提供了一种虚拟路由系统,所述系统包括:数据平面,所述数据平面包括:MAC输入/输出端口、输入仲裁模块、以及至少两个数据转发平面;
所述MAC输入/输出端口,用于接收数据包,并发送至所述输入仲裁模块;
所述输入仲裁模块,用于解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;
所述数据转发平面,用于对所述数据包进行解析,通过解析获得所述数据包相应的目的MAC地址,将所述数据包发送至相应的MAC输入/输出端口并转发。
优选地,所述系统还包括:控制平面,与所述数据平面连接,所述控制平面包括与所述数据转发平面数量相同个数的虚拟机,且与所述数据转发平面一一对应,每个虚拟机包括虚拟网卡、控制模块和路由配置输出端,所述虚拟网卡的数量与所述MAC输入/输出端口的数量相同,且一一对应,相对应的虚拟网卡和MAC输出/输出端口的MAC地址和IP地址相同;
所述虚拟网卡,用于接收对应数据转发平面发送来的数据包,并转发至所述控制模块;
所述控制模块,用于接收由所述虚拟网卡转发来的数据包,并对所述数据包进行解析,以调整与本虚拟机对应的数据转发平面的路由表、ARP表、以及端口映射表,所述端口映射表为存储了所属数据转发平面对应的虚拟机上所有虚拟网卡的MAC地址和IP地址;
所述路由配置输出端,用于将所述路由表、ARP表、以及端口映射表发送至与所述虚拟机对应的数据转发平面,以更新与所述虚拟机对应的数据转发平面上的路由表、ARP表、以及端口映射表。
优选地,每个数据转发平面均包括:端口映射地址匹配模块和输出端口查找模块,并设有路由表、ARP表、以及端口映射表;
所述端口映射地址匹配模块,用于解析所述数据包,判断所述数据包的包类型,若包类型为单播包,则获取所述数据包的目的MAC地址,根据所述端口映射表判断所述目的MAC地址是否属于本数据转发平面,若所述目的MAC地址不属于本数据转发平面,则丢弃所述数据包,若所述目的MAC地址属于本数据转发平面或所述包类型为组播包或广播包,则获取所述数据包的目的IP地址,根据所述端口映射表判断所述目的IP地址是否与该数据转发平面对应的虚拟机的虚拟网卡的IP地址匹配,若所述目的IP地址与所述虚拟网卡的IP地址匹配,则将所述数据包发送至对应的虚拟机,若所述目的IP地址与所述虚拟网卡的IP地址不匹配,则判断所述数据包是否为IPV4包以及所述数据包中是否有选项,若所述数据包是IPV4包且没有选项,则将所述数据包发送至所述输出端口查找模块,若所述数据包不是IPV4包或所述数据包有选项,则将所述数据包发送至对应的虚拟机;
所述输出端口查找模块,用于根据所述路由表进行查找匹配,若在路由表中未查找到目的IP地址,则将所述数据包发送至对应的虚拟机,若在路由表中查找到了目的IP地址,则根据路由表获得路由路径,获得下一跳的IP地址,根据所述ARP表进行查找匹配,在所述ARP表中未查找到下一跳的IP地址,则将所述数据包发送至对应的虚拟机,若在所述ARP表中查找到下一跳的IP地址,则将所述下一跳的IP地址转换为所述下一跳IP地址对应的MAC地址,将所述目的MAC地址替换为数据包的源MAC地址,将根据查找获得的下一跳的MAC地址替换为数据包的目的MAC地址,并将所述数据包发送至替换前的目的MAC地址相应的MAC输入/输出端口。
优选地,每个数据转发平面还包括:时序调整模块,用于对所述数据包进行调整,以使得包括VLAN标签的数据包和不包括VLAN标签的普通数据包的处理时序同步。
优选地,所述MAC输入/输出端口为至少两个;
优选地,所述MAC输入/输出端口通过队列的方式进行数据交互。
优选地,所述数据平面通过FPGA板卡实现。
优选地,所述控制平面通过主机和安装于所述主机中的虚拟机实现。
本方面还公开了一种基于所述虚拟路由系统的方法,包括以下步骤:
S1:MAC输入/输出端口接收数据包;
S2:解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;
S3:所述数据转发平面对所述数据包进行解析,以获得所述数据包相应的目的MAC地址,并将所述数据包发送至相应的MAC输入/输出端口;
S4:所述MAC输入/输出端口将所述数据包发送至所述目的地址。
(三)有益效果
本发明通过对数据包的虚拟局域网(VirtualLocalAreaNetwork,VLAN)标签做处理,使得具有不同VLAN标签的数据包在不同的转发平面中进行处理,这样不同VLAN标签的数据包在硬件中也是相互隔离的,因此实现了连接虚拟路由器各个虚拟网络之间的完全隔离。
附图说明
图1是按照本发明一种实施方式的虚拟路由系统的结构框图;
图2是按照本发明一种实施方式的虚拟路由系统中数据平面的结构示意图;
图3是图1中所示的虚拟路由系统的包处理规则流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1是按照本发明一种实施方式的虚拟路由系统的结构框图,参照图1,本实施方式的虚拟路由系统包括:数据平面,所述数据平面包括:介质访问控制层(MediumAccessControl,MAC)输入/输出端口、输入仲裁模块、以及至少两个数据转发平面,本实施方式中,采用了4个MAC输入/输出端口,但不限制本发明的保护范围;
所述MAC输入/输出端口,用于接收数据包,并发送至所述输入仲裁模块;
所述输入仲裁模块,用于解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;所述输入仲裁模块的具体的仲裁规则为:每个数据转发平面均对应一个VLAN标签(可根据需要进行相应设置,参照图2的实施方式,所述数据平面包括四个数据转发平面,则可将其中的三个分别对应一定的VLAN标签,依次为VLAN1、VLAN2和VLAN3的标签,并依次成为VLAN转发平面1、VLAN转发平面2和VLAN转发平面3,还有一个则可对应非VLAN标签,称为普通转发平面),若所述数据包中的VLAN标签与一个数据转发平面对应,则将该数据包发送到该数据转发平面中进行处理,否则该数据包将被丢弃;
所述数据转发平面,用于对所述数据包进行解析,通过解析获得所述数据包相应的目的MAC地址,将所述数据包发送至相应的MAC输入/输出端口并转发。
为便于对所述数据转发平面进行更新,优选地,所述系统还包括:控制平面,与所述数据平面连接,所述控制平面包括与所述数据转发平面数量相同个数的虚拟机(本实施方式中,所述虚拟机采用OpenVZ技术,虚拟机作为路由协议的载体,可以根据用户需求运行路由协议,比如:OSPF协议,RIP协议,BGP协议等;同时,为了提供对所述数据转发平面的路由配置,每个虚拟机将运行路由协议产生的路由表,ARP表实时更新并存储在主机的配置文件中;所述虚拟机之间没有任何数据交互,即在控制平面具有良好的资源隔离性),且与所述数据转发平面一一对应,每个虚拟机包括虚拟网卡、控制模块和路由配置输出端,所述虚拟网卡的数量与所述MAC输入/输出端口的数量相同,且一一对应,相对应的虚拟网卡和MAC输出/输出端口的MAC地址和IP地址相同;
所述虚拟网卡,用于接收对应数据转发平面发送来的数据包,并转发至所述控制模块(虚拟网卡接收数据包时,采用队列的方式,本实施方式中,所述虚拟网卡和数据转发平面之间通过PCI总线和网桥连接);
所述控制模块,用于接收由所述虚拟网卡转发来的数据包,并对所述数据包进行解析,以调整与本虚拟机对应的数据转发平面的路由表、地址解析协议(AddressResolutionProtocol,ARP)表、以及端口映射表,所述端口映射表为存储了所属数据转发平面对应的虚拟机上所有虚拟网卡的MAC地址和IP地址;
所述路由配置输出端,用于将所述路由表、ARP表、以及端口映射表发送至与所述虚拟机对应的数据转发平面,以更新与所述虚拟机对应的数据转发平面上的路由表、ARP表、以及端口映射表(通过主机上的配置软件、以及数据转发平面上的控制接口,来更新与所述虚拟机对应的数据转发平面上的路由表、ARP表、以及端口映射表)。
在路由环境发生变化时,所述控制模块将本虚拟机的路由表、ARP表、以及端口映射表进行组包,通过虚拟网卡将组成的数据包发送至相应的MAC输入/输出端口,发送该数据包时,通过队列的方式进行发送,由所述MAC输入/输出端口发送至其它虚拟路由系统的数据平面的MAC输入/输出端口。
参照图2的实施方式,优选地,每个数据转发平面均包括:端口映射地址匹配模块和输出端口查找模块,并设有路由表、ARP表、以及端口映射表(该表项图2未示出);
所述端口映射地址匹配模块,用于解析所述数据包,判断所述数据包的包类型,若包类型为单播包,则获取所述数据包的目的MAC地址,根据所述端口映射表判断所述目的MAC地址是否属于本数据转发平面,若所述目的MAC地址不属于本数据转发平面,则丢弃所述数据包,若所述目的MAC地址属于本数据转发平面或所述包类型为组播包或广播包,则获取所述数据包的目的IP地址,根据所述端口映射表判断所述目的IP地址是否与该数据转发平面对应的虚拟机的虚拟网卡的IP地址匹配,若所述目的IP地址与所述虚拟网卡的IP地址匹配,则将所述数据包发送至对应的虚拟机,若所述目的IP地址与所述虚拟网卡的IP地址不匹配,则判断所述数据包是否为IPV4包以及所述数据包中是否有选项,若所述数据包是IPV4包且没有选项,则将所述数据包发送至所述输出端口查找模块,若所述数据包不是IPV4包或所述数据包有选项,则将所述数据包发送至对应的虚拟机;
所述输出端口查找模块,用于根据所述路由表进行查找匹配,若在路由表中未查找到目的IP地址,则将所述数据包发送至对应的虚拟机,若在路由表中查找到了目的IP地址,则根据路由表获得路由路径,获得下一跳的IP地址,根据所述ARP表进行查找匹配,在所述ARP表中未查找到下一跳的IP地址,则将所述数据包发送至对应的虚拟机,若在所述ARP表中查找到下一跳的IP地址,则将所述下一跳的IP地址转换为下一跳的MAC地址,将所述目的MAC地址替换为数据包的源MAC地址,将根据查找获得的下一跳的MAC地址替换为数据包的目的MAC地址,并将所述数据包发送至替换前的目的MAC地址相应的MAC输入/输出端口。
优选地,每个数据转发平面还包括:时序调整模块(所述普通转发平面不包括所述时序调整模块),用于对所述数据包进行调整(由于包括了VLAN标签的数据包多了VLAN标签的字符,因此需要较长时间),以使得包括VLAN标签的数据包和不包括VLAN标签的普通数据包的处理时序同步。
优选地,所述MAC输入/输出端口通过队列的方式进行数据交互。
本实施方式中,所述虚拟路由系统主要可以分为两个部分:第一,由主机和安装于所述主机中的虚拟机所构成的控制平面,第二,FPGA和外围设备所构成的数据平面。通过这种纵向扩展的方法,一方面,我们实现了虚拟路由系统的控制功能与转发功能的分离,使得两者相互独立,路由协议与数据转发互不影响,易于进一步实现转发能力的扩展;另一方面,通过主机的交互软件及接口,使得控制平面和数据平面有机得耦合在一起,控制平面可对数据平面进行实时的控制。
优选地,所述数据平面通过FPGA板卡实现。
优选地,所述控制平面通过主机和安装于所述主机中的虚拟机实现。
主机部分除了提供FPGA板卡的驱动程序外,还扮演着十分重要的角色,主机部分的配置软件可以将所有虚拟机维护的端口映射表、路由表及ARP表实时地配置到数据平面相对应的转发实例中;同时,主机还通过桥接的方式将虚拟机的虚拟网卡与FPGA板卡的数据转发平面相连接,允许虚拟机通过FPGA板卡发送和接受控制数据包。这样,主机将控制平面和数据平面有机得结合在一起。
每个转发平面中的处理流程是基于一个流水线结构,参照图3,当有数据包被所述MAC输入/输出端口接收后,先判断该数据包是否由对应的虚拟机发送而来,若是,则通过所述MAC输入/输出端口发送至其它虚拟路由系统,若否,则检查其VLAN标签,如果数据包中不存在VLAN标签,数据包会被转送到普通转发模块中进行处理;否则,数据包会被送到有VLAN标签表项匹配的VLAN转发模块中进行处理,如果最终没有匹配项被找到,该数据包就会被丢弃。
在选定的数据转发平面中,具体的包处理规则为:数据包的目的MAC地址首先被检查,组播包和广播包一般为控制数据包(控制数据包即包括了路由表、ARP表、以及端口映射表的数据包,且由虚拟机进行处理),包括转发信息包和ARP信息包等,这些包将由所述输出端口直接发送到对应的虚拟机里进行处理,单播包的目的MAC地址必须和该数据转发平面对应的虚拟机的虚拟网卡的MAC地址相匹配,否则直接被认为非本虚拟路由系统地址,将该数据包直接丢弃。若所述目的MAC地址属于本数据转发平面或所述包类型为组播包或广播包,则获取所述数据包的目的IP地址(获取目的IP地址时,先进行IP和校验,校验通过后,再进行匹配,若校验未通过则丢弃该数据包),根据所述端口映射表判断所述目的IP地址是否与该数据转发平面对应的虚拟机的虚拟网卡的IP地址匹配,若所述目的IP地址与所述虚拟网卡的IP地址匹配,则将所述数据包发送至对应的虚拟机,若所述目的IP地址与所述虚拟网卡的IP地址不匹配,则判断所述数据包是否为IPV4包以及所述数据包中是否有选项,若所述数据包不是IPV4包或所述数据包有选项,则将所述数据包发送至对应的虚拟机,若所述数据包是IPV4包且没有选项,则检查所述数据包的生存时间(TimeToLive,TTL),若TTL小于1,则将所述数据包发送至对应的虚拟机,若TTL大于1,则根据所述路由表进行查找匹配,若在路由表中未查找到目的IP地址,则将所述数据包发送至对应的虚拟机,若在路由表中查找到了目的IP地址,则根据路由表获得路由路径,获得下一跳的IP地址,根据所述ARP表进行查找匹配,在所述ARP表中未查找到下一跳的IP地址,则将所述数据包发送至对应的虚拟机,若在所述ARP表中查找到下一跳的IP地址,则将所述下一跳的IP地址转换为下一跳的MAC地址,将所述目的MAC地址替换为数据包的源MAC地址,将根据查找获得的下一跳的MAC地址替换为数据包的目的MAC地址,将所述数据包的TTL减1,再更新所述数据包的IP校验和(CHECKSUM),并将所述数据包发送至替换前的目的MAC地址相应的MAC输入/输出端口(虚拟机接收到的数据包,若数据包的所述目的IP地址与所述虚拟网卡的IP地址匹配或所述数据包不是IPV4包或所述数据包有选项,则对该数据包进行解析;否则直接丢弃)。
本发明的虚拟路由系统的优点为:
1.资源的隔离性
在传统的虚拟路由系统中,大多是基于MAC地址进行虚拟网络划分。在这种方案中,所有与路由器相连的网络中不会允许两个不同的主机具有相同的IP地址,多个虚拟网络之间不能共享网络层的资源。为了解决问题,本发明提出了一种虚拟路由系统,该虚拟路由系统对数据包的VLAN标签做处理,进行二层的划分,具有不同VLAN标签的数据包在不同的转发平面中进行处理,这样不同VLAN标签的数据包在硬件中也是相互隔离的,不同VLAN的转发处理是在不同的模块中进行的,因此可以实现网络层的隔离性。
2.多个并行的高速转发数据平面
由于数据转发速率应该尽量的高,转发峰值速率至少要达到1Gbps,为了实现这个目标,本发明在硬件上建立了多个相同结构的数据转发平面,从以太网口到达的大部分的包不会进入操作系统处理,而是直接进行硬件转发。硬件中的数据总线位宽为64位,工作频率在125MHz,这样硬件的最大转发速率可达到8Gbps,当并行的转发模块数少于8个时,可以保证每个数据转发平面的转发速率。
3.灵活的配置机制
每个数据转发模块中都存储有各自的转发表及ARP表,每个表项都可通过控制平面进行访问或修改,这样控制平面的路由软件产生的转发表及ARP表可被配置到不同的转发平面中,使得硬件可以按照不同的转发规则并行处理多个平面的数据包。
4.不同类型的包转发规则
对于每种不同类型的包,比如:转发信息包、ARP信息包、以及组播包等,都有不同的包处理规则与其对应,使得虚拟路由系统对所有到来的数据包都可以进行处理。
本发明还公开了一种基于所述虚拟路由系统的方法,包括以下步骤:
S1:MAC输入/输出端口接收数据包;
S2:解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;
S3:所述数据转发平面对所述数据包进行解析,以获得所述数据包相应的目的MAC地址,并将所述数据包发送至相应的MAC输入/输出端口;
S4:所述MAC输入/输出端口将所述数据包发送至所述目的地址。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (7)

1.一种虚拟路由系统,其特征在于,所述系统包括:数据平面,所述数据平面包括:MAC输入/输出端口、输入仲裁模块、以及至少两个数据转发平面;
所述MAC输入/输出端口,用于接收数据包,并发送至所述输入仲裁模块;
所述输入仲裁模块,用于解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;
所述数据转发平面,用于对所述数据包进行解析,通过解析获得所述数据包相应的目的MAC地址,将所述数据包发送至相应的MAC输入/输出端口并转发;
其中,所述系统还包括:控制平面,与所述数据平面连接,所述控制平面包括与所述数据转发平面数量相同个数的虚拟机,且与所述数据转发平面一一对应,每个虚拟机包括虚拟网卡、控制模块和路由配置输出端,所述虚拟网卡的数量与所述MAC输入/输出端口的数量相同,且一一对应,相对应的虚拟网卡和MAC输出/输出端口的MAC地址和IP地址相同;
所述虚拟网卡,用于接收对应数据转发平面发送来的数据包,并转发至所述控制模块;
所述控制模块,用于接收由所述虚拟网卡转发来的数据包,并对所述数据包进行解析,以调整与本虚拟机对应的数据转发平面的路由表、ARP表、以及端口映射表,所述端口映射表为存储了所属数据转发平面对应的虚拟机上所有虚拟网卡的MAC地址和IP地址;
所述路由配置输出端,用于将所述路由表、ARP表、以及端口映射表发送至与所述虚拟机对应的数据转发平面,以更新与所述虚拟机对应的数据转发平面上的路由表、ARP表、以及端口映射表;
其中,每个数据转发平面均包括:端口映射地址匹配模块和输出端口查找模块,并设有路由表、ARP表、以及端口映射表;
所述端口映射地址匹配模块,用于解析所述数据包,判断所述数据包的包类型,若包类型为单播包,则获取所述数据包的目的MAC地址,根据所述端口映射表判断所述目的MAC地址是否属于本数据转发平面,若所述目的MAC地址不属于本数据转发平面,则丢弃所述数据包,若所述目的MAC地址属于本数据转发平面或所述包类型为组播包或广播包,则获取所述数据包的目的IP地址,根据所述端口映射表判断所述目的IP地址是否与该数据转发平面对应的虚拟机的虚拟网卡的IP地址匹配,若所述目的IP地址与所述虚拟网卡的IP地址匹配,则将所述数据包发送至对应的虚拟机,若所述目的IP地址与所述虚拟网卡的IP地址不匹配,则判断所述数据包是否为IPV4包以及所述数据包中是否有选项,若所述数据包是IPV4包且没有选项,则将所述数据包发送至所述输出端口查找模块,若所述数据包不是IPV4包或所述数据包有选项,则将所述数据包发送至对应的虚拟机;
所述输出端口查找模块,用于根据所述路由表进行查找匹配,若在路由表中未查找到目的IP地址,则将所述数据包发送至对应的虚拟机,若在路由表中查找到了目的IP地址,则根据路由表获得路由路径,获得下一跳的IP地址,根据所述ARP表进行查找匹配,在所述ARP表中未查找到下一跳的IP地址,则将所述数据包发送至对应的虚拟机,若在所述ARP表中查找到下一跳的IP地址,则将所述下一跳的IP地址转换为所述下一跳IP地址对应的MAC地址,将所述目的MAC地址替换为数据包的源MAC地址,将根据查找获得的下一跳的MAC地址替换为数据包的目的MAC地址,并将所述数据包发送至替换前的目的MAC地址相应的MAC输入/输出端口。
2.如权利要求1所述的系统,其特征在于,每个数据转发平面还包括:时序调整模块,用于对所述数据包进行调整,以使得包括VLAN标签的数据包和不包括VLAN标签的普通数据包的处理时序同步。
3.如权利要求1~2中任一项所述的系统,其特征在于,所述MAC输入/输出端口为至少两个。
4.如权利要求1~2中任一项所述的系统,其特征在于,所述MAC输入/输出端口通过队列的方式进行数据交互。
5.如权利要求1~2中任一项所述的系统,其特征在于,所述数据平面通过FPGA板卡实现。
6.如权利要求1~2中任一项所述的系统,其特征在于,所述控制平面通过主机和安装于所述主机中的虚拟机实现。
7.一种基于权利要求1~6任一项所述虚拟路由系统的方法,其特征在于,包括以下步骤:
S1:MAC输入/输出端口接收数据包;
S2:解析所述数据包,并通过所述数据包中的VLAN标签,将所述数据包发送至相应的数据转发平面;
S3:所述数据转发平面对所述数据包进行解析,以获得所述数据包相应的目的MAC地址,并将所述数据包发送至相应的MAC输入/输出端口;
S4:所述MAC输入/输出端口将所述数据包发送至所述目的MAC地址。
CN201110247229.1A 2011-08-25 2011-08-25 虚拟路由系统及方法 Expired - Fee Related CN102957619B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110247229.1A CN102957619B (zh) 2011-08-25 2011-08-25 虚拟路由系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110247229.1A CN102957619B (zh) 2011-08-25 2011-08-25 虚拟路由系统及方法

Publications (2)

Publication Number Publication Date
CN102957619A CN102957619A (zh) 2013-03-06
CN102957619B true CN102957619B (zh) 2016-05-18

Family

ID=47765868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110247229.1A Expired - Fee Related CN102957619B (zh) 2011-08-25 2011-08-25 虚拟路由系统及方法

Country Status (1)

Country Link
CN (1) CN102957619B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3087696B1 (en) * 2013-12-23 2019-09-04 Netlinkz Technology PTY Ltd System and method for multiple concurrent virtual networks
WO2015106461A1 (zh) * 2014-01-20 2015-07-23 华为技术有限公司 地址获取方法及网络虚拟化边缘设备
US10050867B2 (en) * 2014-10-29 2018-08-14 Pismo Labs Technology Limited Methods and systems for transmitting broadcast data
CN105635332A (zh) * 2015-12-21 2016-06-01 国云科技股份有限公司 一种多虚拟机共用单外网ip的方法
CN107145337B (zh) * 2016-03-01 2021-06-29 中兴通讯股份有限公司 一种数据流处理芯片的表项访问方法及装置
CN106059964B (zh) * 2016-07-28 2020-01-21 锐捷网络股份有限公司 报文转发方法及装置
CN107171953B (zh) * 2017-05-22 2020-04-28 浙江工商大学 一种虚拟路由器实现方法
CN107656894A (zh) * 2017-09-25 2018-02-02 联想(北京)有限公司 一种多主机处理系统和方法
CN107743095A (zh) * 2017-11-30 2018-02-27 新华三技术有限公司 报文转发方法和装置
CN111585791B (zh) * 2020-04-14 2022-09-20 深圳震有科技股份有限公司 一种数据同步配置方法、系统及存储介质
CN112995177B (zh) * 2021-02-25 2021-11-19 中国电子科技集团公司第五十四研究所 一种适用于天基网络的单播寻址转换方法
CN116599892B (zh) * 2023-07-17 2023-10-03 浪潮电子信息产业股份有限公司 一种服务器系统、路由方法、装置及电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777148A (zh) * 2005-12-13 2006-05-24 港湾网络有限公司 一种路由表下一跳ip地址到mac地址解析方法
CN101877671A (zh) * 2009-12-02 2010-11-03 北京星网锐捷网络技术有限公司 镜像报文的发送方法、交换芯片及以太网路由器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777148A (zh) * 2005-12-13 2006-05-24 港湾网络有限公司 一种路由表下一跳ip地址到mac地址解析方法
CN101877671A (zh) * 2009-12-02 2010-11-03 北京星网锐捷网络技术有限公司 镜像报文的发送方法、交换芯片及以太网路由器

Also Published As

Publication number Publication date
CN102957619A (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
CN102957619B (zh) 虚拟路由系统及方法
JP3645734B2 (ja) ネットワーク中継装置及びネットワーク中継方法
CN105706400B (zh) 在网络上转发分组的方法和装置
US7558268B2 (en) Apparatus and method for combining forwarding tables in a distributed architecture router
US8284776B2 (en) Recursive packet header processing
CN105706398B (zh) 重叠网络中的虚拟端口信道弹回的方法和系统
CN100382529C (zh) 用于提供网络虚拟化的方法和装置
US8005084B2 (en) Mirroring in a network device
US9973422B2 (en) Traffic interconnection between virtual devices
US9401876B2 (en) Method of data delivery across a network fabric in a router or Ethernet bridge
US7660265B2 (en) Network packet inspection and forwarding
US20170104679A1 (en) Service Function Bundling for Service Function Chains
US20140079058A1 (en) Method of routing multicast traffic
US20130242718A1 (en) Method and apparatus providing network redundancy and high availability to remote network nodes
CN105391635B (zh) 一种基于sdn的网络虚拟化方法
CN101151851A (zh) 用于服务器环境中的联网卸载的主机以太网适配器
CN103444135A (zh) 网络虚拟化
CN101789949B (zh) 一种实现负荷分担的方法和路由设备
JP4182180B2 (ja) ネットワーク中継装置及びネットワーク中継方法
CN101692669A (zh) 虚拟私有网的路由标签分配方法与装置
US20110222538A1 (en) Method and System for L3 Bridging Using L3-To-L2 Mapping Database
CN103138955A (zh) 在第2层网络中使用多个igmp查询器
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
Unnikrishnan et al. Reconfigurable data planes for scalable network virtualization
CN102394828A (zh) 一种跨vpn访问时的报文传输方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160518