在asic中实现nvgre报文转发的方法和装置的制作方法

文档序号:7862459阅读:177来源:国知局
专利名称:在asic中实现nvgre报文转发的方法和装置的制作方法
技术领域
本发明涉及网络通信领域,尤其涉及在以太网交换芯片设计中实现NVGRE报文转发的方法和装置。
背景技术
随着虚拟化和云计算的逐步发展,未来的数据中心将大量部署虚拟机的应用。为了控制不同虚拟机和虚拟机之间,以及虚拟机和租户之间的通信,VLAN (Virtual LocalArea Network,虚拟局域网)便顺理成章的成为隔离不同局域网的手段。但是由于虚拟技术的广泛应用,一个数据中心中可支持的租户数量也大大增加,二层MAC地址将出现爆发式的增长,并且在理论上不同虚拟局域网中的MAC地址是可以重叠的。因此,原有的4KVLAN数量已经捉襟见肘。 NVGRE (Network Virtualization using Generic Routing Encapsulation,使用通用路由封装的虚拟网络)正是在这样的背景下,由IETF提出的一个解决VLAN空间不足的方案,由一个24bit的虚拟转发域来代替VLAN参与转发查表,大大扩展了虚拟局域网的数量。GRE (Generic RoutingEncapsulation,通用路由封装)由 RFC 2784 定义和 RFC 2890扩展的通道协议中提供了一种封装方法,将数据包发送到2层或3层网络目的地址。NVGRE提议使用GRE来创建一个独立的虚拟2层网络,限制物理2层网络或扩展超过子网边界。NVGRE目前随还在草案阶段,但是其清晰的网络层次和良好的扩展性,使得NVGRE成为一个很有可能被大众所认可的解决方案。然在网络交换芯片中,如何实现NVGRE报文的转发技术还未得到解决。

发明内容
本发明的目的在于提供一种在ASIRC中实现NVGRE报文转发的方法和装置,即在ASIC中对NVGRE报文进行处理,其完全遵循IETF目前所制定的NVGRE草案,以实现NVGRE报文的单播、组播以及协议报文上送CPU等一系列行为,且通过逻辑固化在ASIC中后,可以实现NVGRE报文的快速转发。为实现上述目的,本发明提出如下技术方案一种在ASIC中实现NVGRE报文转发的方法,其包括以下步骤a.对NVGRE接入点收到的报文进行解析,判断是否需要进行转发处理;b.对需要转发的报文,获取其对应的虚拟转发域;c.使用虚拟转发域和报文目的MAC查表获得报文的处理信息和转发端口信息;d.对待转发报文进行封装或编辑处理后进行转发。更进一步地,所述NVGRE报文包括从服务器发送至IP网络的上行报文和从IP网络发送至服务器的下行报文。在转发上行报文时,所述步骤c中虚拟转发域的获取是根据收到报文的端口和VLAN得到当前报文所属的虚拟机,以及和虚拟机对应的虚拟转发域;
所述步骤c中的处理信息包括获得目的端口和封装信息;所述步骤d中对待转发报文进行的是封装处理。在转发下行报文时,所述步骤c中虚拟转发域的获取是通过解封装NVGRE报文获得报头中所携带的虚拟转发域信息;所述步骤c中的处理信息包括获得目的端口和编辑信息;所述步骤d中对待转发报文进行的是编辑处理。在步骤c中,如果查表结果是组播的话,则进行组播复制,并获得每一组播成员的处理信息。本发明还揭示了一种在ASIC中实现NVGRE报文转发的装置,包括a.报文解析及判断模块,用于对收到的报文进行解析,判断是否需要进行转发处 理;b.虚拟转发域获取模块,用于对需要转发的报文,获取其对应的虚拟转发域;c.转发表查表模块,用于通过虚拟转发域和报文目的MAC查表获得报文的处理信息和转发端口信息;d.报文转发模块,对待转发报文进行封装或编辑处理后进行转发。更进一步地,所述NVGRE报文的转发由设置在服务器和IP网络间的NVGRE接入点处理完成的,所述服务器上支持有多台虚拟机,所述虚拟机上对应有所述虚拟转发域。所述装置还包括获取NVGRE接入点的报文入接口信息的入接口信息处理模块,获取出接口信息的出接口信息模块,对报文进行解封装的解封装模块,以及对报文进行编辑的编辑模块。与现有技术相比,本发明提出的在ASIC中实现NVGRE报文转发的方法和装置实现了 NVGRE报文的单播、组播以及协议报文上送CPU等一系列行为,且通过逻辑固化在ASIC中后,实现了 NVGRE报文的快速转发。同时,本发明作为以太网交换芯片的一个子特性,与其他以太网交换芯片的特性相结合,适用于数据中心等对NVGRE有需求的以太网交换机中,降低部署NVGRE的费用。


图I是本发明在ASIC中实现NVGRE报文转发的示意图;图2是本发明转发上行NVGRE报文的转发流程图;图3是本发明转发下行NVGRE报文的转发流程图。
具体实施例方式下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。图I所示是本发明揭示的在ASIC中实现NVGRE报文转发的示意图,NVGRE接入点连接在服务器和IP网络间进行网络报文及数据的传输,每一NVGRE接入点上连接有多台服务器,每一服务器上设置有多台虚拟机。NVGRE接入点能够接收从服务器发送至IP网络的上行报文及从IP网络发送至服务器的下行报文,其对所收到的报文进行处理后则转发至目的地址,而NVGRE接入点对上行报文的处理和对下行报文的处理流程分别介绍如下一、上行报文处理
上行报文是指NVGRE接入点收到的从服务器侧发来的报文。当NVGRE接入点收到服务器发过来的上行报文时,对其封装NVGRE的报文头以及外层IP和以太网头,送入IP网络进行转发,如图I中的NVGRE接入点I,其接收到的从服务器I或服务器2上发送至IP网路的报文,该报文在NVGRE接入点I处理后转发至IP网络。而NVGRE接入点中对上行报文进行处理的上行报文处理装置包括报文解析模块,入接口信息获取模块,虚拟转发域确定模块,二层转发查表模块,组播模块,组播成员复制模块,出口信息获取模块,报文封装模块以及报文转发模块。上行报文的具体处理过程如图2所示,报文解析模块对收到的报文进行解析,得到后续处理所需要的各种信息;入接口信息获取模块根据报文接收端口的配置信息来决定是否需要进行NVGRE上行报文处理;虚拟转发域模块根据收到报文的端口和VLAN,确定当前报文所属的虚拟机,以及该虚拟机所对应的虚拟转发域,通过这一处理,实现了 VLAN到NVGRE虚拟转发域映射的过程,VLAN不再参与转发,而是作为虚拟机的一个标识符。在本发明中,每个NVGRE接入点下挂的服务器上,可以支持最多4096个虚拟机。
二层转发表查表模块使用虚拟转发域和报文目的MAC进行转发表的查表,并得到报文的处理信息,这些处理信息包括目的端口的信息和封装信息。当经过二层转发表查表得到的结果是组播的话,则还需要进行组播复制,然后获取每一个组播成员的目的端口和封装信息;否则直接由出接口信息获取模块根据查表的结果,得到需要转发出去的端口信息。报文封装模块将原始以太网报文封装上NVGRE报头,外层IP和以太网报头,然后交给报文转发模块进行转发。更进一步地,在二层转发表查表模块中,需要设置一条默认条目,这样在查表的时候必然可以返回结果。通常情况下,广播、组播和未知单播报文都可以使用该条目,其目的是使当前报文洪泛到虚拟转发域中的所有成员。二、下行报文处理下行报文是指NVGRE接入点收到从IP网络发来的带有NVGRE封装的报文。NVGRE接入点中对下行报文的处理包括接收到下行报文后,然后将其解封装,并且使用内部MAC地址查表并转发给本地服务器的处理过程,如图I中的NVGRE接入点I接到的从IP网络发送至服务器I或服务器2中的报文。NVGRE接入点中的下行报文处理装置中包括报文解析模块,入接口信息获取模块,解封装模块,二层转发表查表模块,组播模块,组播成员复制模块,出接口信息获取模块,报文编辑模块以及报文转发模块。下行报文的处理过程如图3所示,报文解析模块对收到的报文进行解析,得到后续处理所需要的各种信息;入接口信息获取模块根据报文接收端口的配置信息以及当前报文的封装结构,来决定是否需要进行NVGRE下行报文处理,只有当报文具有NVGRE封装,并且外层目的IP是本接入点需要处理的时候,才会进入后续的解封装模块;否则仅仅执行路由处理。解封装模块去掉报文的外层IP头、以太网头,以及NVGRE报头,并且获得NVGRE报头中所携带的虚拟转发域信息。二层转发表查表模块使用虚拟转发域和报文内层目的MAC进行查表,得到报文的处理信息,该处理信息包括目的端口和编辑信息,由于此时不需要对报文进行封装,因此只可能有一些编辑信息,如VLAN。当查表结果是组播的话,则需要进行组播复制,然后获取每一个组播成员的目的端口和编辑信息;出接口信息获取模块根据查表的结果,得到需要转发出去的端口信息。在报文编辑模块中,将根据配置对内层报文进行必要的编辑,然后交给报文转发模块进行转发。在报文编辑模块中,最主要的作用是根据NVGRE虚拟转发域映射出在目的端口虚拟机上所对应的VLAN信息,以便使服务器可以识别,发送给对应的虚拟机。在二层转发表查表模块中,和上行报文处理一样,需要设置一条默认条目,使报文洪泛到本地服务器中虚拟转发域中的所有成员。 此外,对于NVGRE接入点收到的协议报文来说,其与所述NVGRE上行报文和下行报文的处理不同,如果一侧是普通的三层网络,协议报文的处理和普通三层网络协议报文处理一致;如果一侧是普通的二层网络,协议报文的处理和普通二层网络协议报文处理一致。本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基 于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
权利要求
1.一种在ASIC中实现NVGRE报文转发的方法,其特征在于包括以下步骤 a.对NVGRE接入点收到的报文进行解析,判断是否需要进行转发处理; b.对需要转发的报文,获取其对应的虚拟转发域; c.使用虚拟转发域和报文目的MAC查表获得报文的处理信息和转发端口信息; d.对待转发报文进行封装或编辑处理后进行转发。
2.根据权利要求I所述的在ASIC中实现NVGRE报文转发的方法,其特征在于所述NVGRE报文包括从服务器发送至IP网络的上行报文和从IP网络发送至服务器的下行报文。
3.根据权利要求2所述的在ASIC中实现NVGRE报文转发的方法,其特征在于在转发上行报文时,所述步骤c中虚拟转发域的获取是根据收到报文的端口和VLAN得到当前报文 所属的虚拟机,以及和虚拟机对应的虚拟转发域。
4.根据权利要求2所述的在ASIC中实现NVGRE报文转发的方法,其特征在于在转发下行报文时,所述步骤c中虚拟转发域的获取是通过解封装NVGRE报文获得报头中所携带的虚拟转发域信息。
5.根据权利要求2所述的在ASIC中实现NVGRE报文转发的方法,其特征在于在转发上行报文时,所述步骤c中的处理信息包括获得目的端口和封装信息;所述步骤d中对待转发报文进行的是封装处理。
6.根据权利要求2所述的在ASIC中实现NVGRE报文转发的方法,其特征在于在转发下行报文时,所述步骤c中的处理信息包括获得目的端口和编辑信息;所述步骤d中对待转发报文进行的是编辑处理。
7.根据权利要求I至6任意一项所述的在ASIC中实现NVGRE报文转发的方法,其特征在于在步骤c中,如果查表结果是组播的话,则进行组播复制,并获得每一组播成员的处理信息。
8.一种在ASIC中实现NVGRE报文转发的装置,其特征在于包括 a.报文解析及判断模块,用于对收到的报文进行解析,判断是否需要进行转发处理; b.虚拟转发域获取模块,用于对需要转发的报文,获取其对应的虚拟转发域; c.转发表查表模块,用于通过虚拟转发域和报文目的MAC查表获得报文的处理信息和转发端口信息; d.报文转发模块,对待转发报文进行封装或编辑处理后进行转发。
9.根据权利要求8所述的在ASIC中实现NVGRE报文转发的装置,其特征在于所述NVGRE报文的转发由设置在服务器和IP网络间的NVGRE接入点处理完成的,所述服务器上支持有多台虚拟机,所述虚拟机上对应有所述虚拟转发域。
10.根据权利要求8所述的在ASIC中实现NVGRE报文转发的装置,其特征在于所述装置还包括获取NVGRE接入点的报文入接口信息的入接口信息处理模块,获取出接口信息的出接口信息模块,对报文进行解封装的解封装模块,以及对报文进行编辑的编辑模块。
全文摘要
本发明揭示了一种在ASIC中实现NVGRE报文转发的方法和装置,所述NVGRE报文的转发由设置在服务器和IP网络间的NVGRE接入点处理完成的,所述转发的NVGRE报文包括上行报文和下行报文,所述上行报文是从服务器侧发送至IP网络的报文,其处理过程包括对收到的报文进行解析,判断是否需要进行转发处理;对需要转发的报文,获取其对应的虚拟转发域;使用虚拟转发域和报文目的MAC查表获得报文的处理信息和转发端口信息;对待转发报文进行封装处理后进行转发。本发明实现了NVGRE报文的单播、组播以及协议报文上送CPU等行为,且通过逻辑固化在ASIC中后,实现了NVGRE报文的快速转发。
文档编号H04L12/931GK102868642SQ20121037969
公开日2013年1月9日 申请日期2012年10月9日 优先权日2012年10月9日
发明者方沛昱, 廖继平 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1