网络中的报文处理方法、转发设备和报文处理系统与流程

文档序号:17009331发布日期:2019-03-02 02:10阅读:230来源:国知局
本发明涉及信息
技术领域
:,并且更具体地,涉及网络中的报文处理方法、转发设备和报文处理系统。
背景技术
::开放流(OpenFlow)/软件定义网络(SoftwareDefinedNetwork,SDN)是开放网络基金会(OpenNetworkFoundation,ONF)定义的一种新的网络架构,旨在以个人计算机(PersonalComputer,PC)计算领域的架构和方法来重新定义网络计算,将转发面看成一个执行指令的中央处理器(CentralProcessingUnit,CPU),控制面看成集中的网络操作系统,网络计算通过在网络操作系统上编程来实现。正如PC计算领域有虚拟机的概念,在网络计算领域也提出网络虚拟化概念,其目的在于将实体转发面资源虚拟为多个虚拟的转发面,可以由多个控制面各自控制这些虚拟的转发面进行网络转发。在OpenFlow/SDN的转发模型里,采用流视图(Flowvisor)来实现虚拟化。类比计算机的虚拟化,FlowVisor就是位于硬件结构元件和软件之间的网络虚拟层。FlowVisor允许多个控制器同时控制一台OpenFlow交换机,但是每个控制器仅仅可以控制经过这个OpenFlow交换机的某一个虚拟网络,即切片(slice)。Flowvisor来源于计算领域的虚拟机概念Hypervisor(虚拟机监视器)。Hypervisor监听要运行的CPU指令,如果指令中有虚拟化资源,则需要更改此资源的值,映射到实际硬件资源再运行。Flowvisor原理同其类似,监听所有控制器下发的OpenFlow协议,如果协议中有虚拟化资源则更改之,使之映射到实际的硬件资源上。在实际的数据传输网络架构下,转发流程特别复杂,flowvisor也会特别复杂,这增加了网络管理维护的复杂度,导致网络效率比较低。技术实现要素:本发明实施例提供了一种网络中的报文处理方法、转发设备和报文处理系统,能够提高网络效率。第一方面,提供了一种网络中的报文处理方法,该网络包括资源管理器、转发设备以及多个控制器,该转发设备分别与该资源管理器和该多个控制器相连;该方法包括:该转发设备按照该资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备;该转发设备按照控制器的建立流表消息在对应的虚拟设备中建立流表;保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系;该转发设备接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;该转发设备接收数据报文,用预设的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。结合第一方面,在第一种可能的实现方式中,该转发设备按照该资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备具体包括:接收该资源管理器的建立虚拟设备消息,该建立虚拟设备消息携带有控制器的标识以及所分配的资源信息;按照该资源信息在该转发设备上给该建立虚拟设备消息中标识的控制器建立虚拟设备。结合第一方面或其上述任一种可能的实现方式,在第二种可能的实现方式中,该资源信息包括转发带宽、流表所占的内存空间、CPU占用率、包缓存大小、以及队列数中的一个或多个。结合第一方面或其上述任一种可能的实现方式,在第三种可能的实现方式中,该转发设备按照控制器的建立流表消息在对应的虚拟设备中建立流表具体包括:接收控制器的建立流表消息,该建立流表消息中携带有欲建立的流表的第一标识以及控制器的标识;在控制器的标识对应的虚拟设备中建立流表,所建立的流表拥有第二标识。结合第一方面或其上述任一种可能的实现方式,在第四种可能的实现方式中,该建立流条目消息还携带有控制器的标识,则根据该对应关系得到该第一标识对应的第二标识具体包括:根据该建立流条目消息中的控制器的标识定位到对应的第一标识;根据该对应关系得到该第一标识对应的第二标识。结合第一方面或其上述任一种可能的实现方式,在第五种可能的实现方式中,该报文识别规则包括数据报文特征信息和流表的对应关系;该数据报文特征信息包括虚拟局域网VLAN、IP地址段、端口、以及数据报文中的某个固定偏移量的字段中的一个或多个。结合第一方面或其上述任一种可能的实现方式,在第六种可能的实现方式中,该用预设的报文识别规则对该数据报文进行匹配之前还包括:接收该资源管理器的报文识别规则。第二方面,提供了一种转发设备,包括:第一端口,用于连接资源管理器;第一处理器,连接该第一端口,用于按照该资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备;第二端口,用于连接多个控制器,接收控制器的建立流表消息;第二处理器,连接该第二端口,用于按照控制器的建立流表消息在对应的虚拟设备中建立流表,将建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系保存到存储器中;以及接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;数据处理器,用于接收数据报文,用存储器中存储的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。结合第二方面,在第一种可能的实现方式中,该第一端口具体用于接收该资源管理器的建立虚拟设备消息,该建立虚拟设备消息携带有控制器的标识以及所分配的资源信息;该第一处理器具体用于按照该资源信息在该转发设备上给该建立虚拟设备消息中标识的控制器建立虚拟设备。结合第二方面或其上述任一种可能的实现方式,在第二种可能的实现方式中,该第一端口还用于接收该资源管理器的报文识别规则,将收到的报文识别规则保存到存储器中。第三方面,提供了一种报文处理系统,其特征在于,包括资源管理器、多个控制器以及转发设备,该转发设备分别与该资源管理器和该多个控制器相连;该资源管理器,用于指示该转发设备在该转发设备上分别为每个控制器建立对应的虚拟设备;该转发设备,用于按照控制器的建立流表消息在对应的虚拟设备中建立流表;保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系;接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;以及接收数据报文,用预设的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。结合第三方面,在第一种可能的实现方式中,该控制器还用于向该资源管理器发送分配资源请求消息,则该资源管理器用于根据该分配资源请求消息将所分配的资源信息发送给该转发设备。结合第三面或其上述任一种可能的实现方式,在第二种可能的实现方式中,该资源信息包括:转发带宽、流表所占的内存空间、CPU占用率、包缓存大小、以及队列数中的一个或多个。基于上述技术方案,本发明实施例通过建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,可以降低网络管理维护的复杂度,从而能够提高网络效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例的网络的一个示意图。图2是根据本发明实施例的网络中的报文处理方法的示意性流程图。图3是本发明实施例的网络中的报文处理方法的交互流程图。图4是根据本发明实施例的转发设备的示意性框图。图5是根据本发明实施例的报文处理系统的示意性框图。图6是根据本发明实施例的转发设备的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。图1是本发明实施例的网络的一个示意图。如图1所示,网络100包括一个或多个转发设备(图中以多个转发设备作为示例,如转发设备110,112,114,116,118,119),多个控制器121,123和资源管理器103。每个转发设备可以分别与资源管理器103和多个控制器相连。在图1中,一个控制器可以对应一个虚拟运营商,因此不同的控制器可以对应不同的虚拟运营商。控制器可以向资源管理器申请资源,资源管理器可以指示转发设备给控制器划分一定的资源来生成虚拟设备(即虚拟机)。应理解,在本发明实施例中,“流表”也可以表述为“转发流表”、“转发表”或“表(table)”。图2示出了根据本发明实施例的网络中的报文处理方法200的示意性流程图。该网络包括资源管理器、转发设备以及多个控制器,转发设备分别与资源管理器和多个控制器相连,例如,该网络可以是图1所示的网络。该方法200由转发设备(例如图1中的转发设备110)执行。如图2所示,该方法200包括:S210,该转发设备按照该资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备;S220,转发设备按照控制器的建立流表消息在对应的虚拟设备中建立流表;保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系;其中,第一标识用于标识所述欲建立的流表,该标识可以被发送所述建立流表消息的控制器所识别,可以是索引或者其他能标识该控制器欲建立的流表的信息等;第二标识用于在转发设备上唯一标识所建立的流表,能被转发设备所识别,也可以是索引或者其他能标识转发设备上的流表的信息等。S230,转发设备接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;S240,该转发设备接收数据报文,用预设的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。在本发明实施例中,转发设备按照资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备,然后接收控制器发送的建立流表消息和建立流条目消息,在控制器对应的虚拟设备中建立该控制器的流表和流条目,按照建立的流条目转发收到的数据报文。这样,每个控制器在转发设备中有对应的虚拟设备,可以直接对虚拟设备进行管理,从而降低了网络管理维护的复杂度,提高了网络效率。因此,本发明实施例的网络中的报文处理方法,通过建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,可以降低网络管理维护的复杂度,从而能够提高网络效率。在S210中,转发设备接收资源管理器的指示,比如建立虚拟设备消息等,按照资源管理器的指示在该转发设备上分别为每个控制器建立每个控制器对应的虚拟设备。可选地,作为本发明的一个实施例,该转发设备按照该资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备具体可以包括:接收该资源管理器的建立虚拟设备消息,该建立虚拟设备消息携带有控制器的标识以及所分配的资源信息;其中,控制器的标识可以是控制器的设备标识、MAC(MediaAccessControl,媒体访问控制)地址、IP地址或者其他的可以唯一标识该控制器的信息等。按照该资源信息在该转发设备上给该建立虚拟设备消息中标识的控制器建立虚拟设备。该资源信息指示该建立虚拟设备消息中标识的控制器需要的资源,可选地,该资源信息可以包括转发带宽、流表所占的内存空间(以下简称流表空间)、CPU占用率、包缓存大小、以及队列数中的一个或多个。例如,资源管理器发送给转发设备的建立虚拟设备消息指示为控制器121建立虚拟设备,该建立虚拟设备消息携带控制器121的标识以及控制器121所分配的资源信息,如控制器121的流表空间为1024K比特(bit),转发带宽为5G,包缓存为6K。转发设备按照该资源信息在该转发设备上给该建立虚拟设备消息中标识的控制器建立虚拟设备。也就是说,转发设备为该控制器创建虚拟设备,并分配该资源信息指示的资源。例如,转发设备在该转发设备上为控制器121建立虚拟设备,分配控制器121的流表空间为1024Kbit,转发带宽为5G,包缓存为6K。可选地,资源管理器向转发设备发送建立虚拟设备消息可以基于控制器的申请,也可以主动发起。可选地,在为控制器建立了虚拟设备后,转发设备还可以向资源管理器发送虚拟设备建立完成消息,相应地,资源管理器还可以向控制器发送建立虚拟设备的响应消息。在S220中,转发设备按照控制器的建立流表消息在对应的虚拟设备中建立流表;保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系。在建立控制器对应的虚拟设备后,控制器可以向转发设备发送建立流表消息,转发设备按照控制器的建立流表消息在对应的虚拟设备中建立流表。在本发明实施例中,流表的第一标识表示建立流表消息中携带的欲建立的流表的标识,第一标识用于控制器识别流表。例如,以第一标识为索引作为举例,控制器121向转发设备发送建立table1的建立流表消息,欲建立的table1的第一标识为1,该第一标识用于控制器121识别该table。流表的第二标识表示建立的流表在转发设备上的标识,第二标识用于转发设备识别流表。同样以第二标识为索引作为举例,例如,控制器下发的建立流表消息中携带的欲建立的流表为table1,转发设备在收到该建立流表消息之前已经存在了多个table,由于索引不能重复,因此转发设备实际上根据控制器121的建立table1的建立流表消息为控制器121建立的流表为转发设备上的所有流表中的table5,即建立的流表为全局table5,因此建立的流表的第二标识为5,该第二标识用于转发设备识别该流表。由于流表的第一标识与第二标识的具体内容可能不同,因此,转发设备需要保存流表的第一标识和第二标识的对应关系,即保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系。例如,转发设备根据控制器121的建立table1的建立流表消息建立全局table5,转发设备保存的第一标识和第二标识的对应关系可以为控制器121table1对应全局table5。可选地,作为本发明的一个实施例,该转发设备按照控制器的建立流表消息在对应的虚拟设备中建立流表具体包括:接收控制器的建立流表消息,该建立流表消息中携带有欲建立的流表的第一标识以及控制器的标识;在控制器的标识对应的虚拟设备中建立流表,所建立的流表拥有第二标识。具体而言,控制器的建立流表消息中携带有欲建立的流表的第一标识以及控制器的标识,转发设备接收到该建立流表消息后,在该控制器的标识对应的虚拟设备中建立流表。在另一个实施例中,控制器发送的建立流表消息中还可以指示所要建立的流表的流条目(entry)数、entry宽度以及流表的查找方式。例如,控制器121向转发设备发送建立table1的建立流表消息,指示table1占用4096个entry,每个entry宽度为32bit,查找方式为使用虚拟局域网(VirtualLocalAreaNetwork,VLAN)进行线性查找。转发设备根据该建立流表消息在控制器121对应的虚拟设备中的流表空间中申请4096*32bit的流表空间建立table5。控制器121再向转发设备发送建立table2的建立流表消息,指示table2占用32个entry,entry宽度为16bit,查找方式为源端口号。转发设备根据该建立流表消息在控制器121对应的虚拟设备中的流表空间中申请32*16bit的流表空间建立table6,并保存控制器121table2对应全局table6的对应关系。在S230中,转发设备接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目。在建立了控制器的流表后,控制器向转发设备发送建立流条目消息,指示在该控制器的流表中建立流条目。该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识。转发设备接收到控制器发送的建立流条目消息后,根据对应关系得到第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目。控制器发送的建立流条目消息针对的是流表的第一标识,即控制器识别流表所用的标识。例如,控制器121向转发设备发送在table1上建立entry的消息:当VLAN等于100时,动作为添加VLAN10,跳转到查询table2。该消息中的table1和table2是控制器121的table1和table2,它们分别是全局table5和全局table6。转发设备先根据第一标识和第二标识的对应关系,确定建立流条目消息中的第一标识对应的第二标识,再根据第二标识建立流条目。可选地,作为本发明的一个实施例,该建立流条目消息还携带有控制器的标识,则根据该对应关系得到该第一标识对应的第二标识具体包括:根据该建立流条目消息中的控制器的标识定位到对应的第一标识;根据该对应关系得到该第一标识对应的第二标识。具体而言,建立流条目消息携带有控制器的标识,例如,控制器121发送的建立流条目消息携带控制器121的标识。转发设备根据该建立流条目消息中的控制器的标识定位到对应的第一标识,即确定哪个控制器对应的第一标识再根据该对应关系得到第一标识对应的第二标识。以上述控制器121的建立entry的消息为例,转发设备在收到该消息后,查对应关系得到控制器121的table1为全局table5,控制器121的table2为全局table6,因此在table5的VLAN等于100的entry,即entry100上建立动作:添加VLAN10,跳转到查询table6。控制器121再向转发设备发送在table2上建立entry的消息:当源端口号为1时,动作为转发到端口6,并将报文发送出去。转发设备在收到该消息后,查对应关系得到控制器121的table2为全局table6,因此在table6的源端口号为1的entry,即entry1上建立动作:转发到端口6,并将报文发送出去。根据控制器发送的建立流表消息和建立流条目消息,转发设备可以为该控制器建立多个table以及相应的entry,以实现该控制器的转发流程。当然,如果事先已经规划好了每个控制器欲建立的流表的第一标识,使得每个控制器欲建立的流表的第一标识均不同,则转发设备可以直接使用第一标识以及第一标识和第二标识的对应关系找到第二标识,从而得到第二标识所指的流表,进而存储流条目。在本发明实施例中,可选地,建立虚拟设备消息中携带控制器的认证信息。在这种情况下,该方法200还包括:转发设备根据该控制器的认证信息建立该控制器对应的配置接口。相应地,转发设备通过该配置接口接收该控制器发送的建立流表消息,通过该配置接口接收该控制器发送的建立流条目消息。控制器的认证信息指示该控制器的命令消息(建立流表消息和建立流条目消息)的认证参数,例如,用户名和密码,或者该控制器的命令消息的互联网协议(InternetProtocol,IP)地址等。例如,资源管理器发送给转发设备的建立虚拟设备消息中携带控制器121的命令消息的IP地址为192.168.1.1。转发设备根据控制器的认证信息建立该控制器对应的配置接口。然后,该转发设备通过该配置接口接收该控制器发送的建立流表消息和建立流条目消息。也就是说,该控制器可以通过该配置接口对该控制器对应的虚拟设备进行管理。在S240中,转发设备接收数据报文,用预设的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。报文识别规则用于识别报文。可选地,报文识别规则可以包括数据报文特征信息和流表的对应关系。例如,报文识别规则可以为数据报文特征信息和各控制器的流表的对应关系,具体地,可以为数据报文特征信息和各控制器的第一个流表的对应关系。可选地,该数据报文特征信息包括VLAN、IP地址段、端口、以及数据报文中的某个固定偏移量的字段中的一个或多个。以数据报文特征信息为端口作为举例,假设转发设备上有1-12个端口,则控制器121下发的报文识别规则可以是端口1-6收到的数据报文对应的处理流表是控制器121的table1。转发设备接收数据报文后,用预设的报文识别规则对该数据报文进行匹配,得到处理该数据报文的流表的第一标识。例如,得到处理该数据报文的控制器的第一个流表的第一标识。转发设备再根据对应关系得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对数据报文进行处理。例如,在转发设备已为控制器121建立前述table1和table2以及相应的entry的情况下,从端口1进入的报文(源端口号为1,VLAN为100)到达转发设备后,转发设备获取该报文的源端口号,符合控制器121的报文识别规则(源端口号为1~6的报文对应控制器121的流表),确定报文对应的控制器121的流表。转发设备根据对应关系确定控制器121的table1为全局的table5,进而根据VLAN为100查找table5(控制器121的table1),命中entry100后,根据entry100的动作将报文添加VLAN10,并跳转到table6(控制器121的table2);转发设备根据源端口号为1查找table6,命中entry1后,根据entry1的动作将报文从端口6发送出去。可选地,作为本发明的一个实施例,在用预设的报文识别规则对该数据报文进行匹配之前,该方法200还包括:接收该资源管理器的报文识别规则。具体而言,报文识别规则可以由资源管理器发送给转发设备。例如,建立虚拟设备消息中携带控制器对应的报文识别规则。在这种情况下,转发设备记录该控制器的报文识别规则。例如,可以在转发设备中设置分类器,在分类器中添加控制器的报文识别规则。因此,本发明实施例的网络中的报文处理方法,通过在转发设备上建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,按照该流表和该流条目实现的转发流程转发报文,可以降低网络管理维护的复杂度,从而能够提高网络效率。下面将结合具体的例子详细描述本发明实施例。应注意,这只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。图3是本发明实施例的网络虚拟化的方法的交互流程图。图3中的转发设备可以是图1中的任意一个转发设备;控制器可以是图1中的任意一个控制器(下文以控制器A、控制器B和控制器C为例进行说明);资源管理器可以是图1中的资源管理器103。301,控制器向资源管理器发送建立虚拟设备的申请消息。例如,控制器A向资源管理器发送建立虚拟设备的申请消息,并携带源端口号为1~6的报文为控制器A的报文,控制器A的流表空间为1024Kbit,转发带宽为5G,包缓存为6K。控制器B向资源管理器发送建立虚拟设备的申请消息,并携带源端口为10~12,VLAN为100,IP段为192.168.1.x的报文为控制器B的报文,控制器B的流表空间为1Kbit,转发带宽为5G,包缓存为2K。控制器C向资源管理器发送建立虚拟设备的申请消息,并携带第1个字节(byte)为0x05,源端口号为15~20的报文为控制器C的报文,控制器C的流表空间为1Kbit,转发带宽为5G,包缓存为2K。302,资源管理器向转发设备发送建立虚拟设备消息。例如,资源管理器发送给转发设备的建立虚拟设备消息指示为控制器A建立虚拟设备,该建立虚拟设备消息指示源端口号为1~6的报文为控制器A的报文,控制器A的流表空间为1024Kbit,转发带宽为5G,包缓存为6K。资源管理器发送给转发设备的建立虚拟设备消息指示为控制器B建立虚拟设备,该建立虚拟设备消息指示源端口为10~12,VLAN为100,IP段为192.168.1.x的报文为控制器B的报文,控制器B的流表空间为1Kbit,转发带宽为5G,包缓存为2K。资源管理器发送给转发设备的建立虚拟设备消息指示为控制器C建立虚拟设备,该建立虚拟设备消息指示第1个byte为0x05,源端口号为15~20的报文为控制器C的报文,控制器C的流表空间为1Kbit,转发带宽为5G,包缓存为2K。303,转发设备建立控制器对应的虚拟设备。例如,转发设备根据控制器A对应的资源信息建立控制器A对应的虚拟设备,建立控制器A对应的配置接口,记录源端口号为1~6的报文对应控制器A的流表的规则。转发设备根据控制器B对应的资源信息建立控制器B对应的虚拟设备,建立控制器B对应的配置接口,记录源端口为10~12,VLAN为100,IP段为192.168.1.x的报文对应控制器B的流表的规则。转发设备根据控制器C对应的资源信息建立控制器C对应的虚拟设备,建立控制器C对应的配置接口,记录第1个byte为0x05,源端口号为15~20的报文对应控制器C的流表的规则。304,控制器向转发设备发送建立流表消息。例如,控制器A向转发设备发送建立流表消息,建立table1,即控制器A的table1,指示table1占用4096个entry,entry宽度为32bit,查找方式为使用VLAN进行线性查找。控制器A向转发设备发送建立流表消息,建立table2,即控制器A的table2,指示table2占用32个entry,entry宽度为16bit,查找方式为源端口号。控制器B向转发设备发送建立流表消息,建立table1,即控制器B的table1,指示table1占用32个entry,entry宽度为16bit,查找方式为源端口号。控制器C向转发设备发送建立流表消息,建立table1,即控制器C的table1,指示table1占用32个entry,entry宽度为16bit,查找方式为源端口号。305,转发设备在控制器对应的虚拟设备中建立控制器的流表,并建立控制器的流表的第一标识与第二标识的对应关系。例如,转发设备根据控制器A的建立流表消息在控制器A对应的虚拟设备中的流表空间中申请4096*32bit的流表空间建立table5,并建立控制器Atable1为全局table5的对应关系;转发设备根据控制器A的建立流表消息在控制器A对应的虚拟设备中的流表空间中申请32*16bit的流表空间建立table6,并建立控制器Atable2为全局table6的对应关系。转发设备根据控制器B的建立流表消息在控制器B对应的虚拟设备中的流表空间中申请32*16bit的流表空间建立table9,并建立控制器Btable1为全局table9的对应关系。转发设备根据控制器C的建立流表消息在控制器C对应的虚拟设备中的流表空间中申请32*16bit的流表空间建立table10,并建立控制器Ctable1为全局table10的对应关系。306,控制器向转发设备发送建立流条目消息。例如,控制器A向转发设备发送在table1上建立entry的消息:当VLAN等于100时,动作为添加VLAN10,跳转到查询table2。控制器A向转发设备发送在table2上建立entry的消息:当源端口号为1时,动作为转发到端口6,并将报文发送出去。控制器B向转发设备发送在table1上建立entry的消息:当源端口号为10时,动作为转发到端口11,并将报文发送出去。控制器C向转发设备发送在table1上建立entry的消息:当源端口号为15时,动作为转发到端口20,并将报文发送出去。307,转发设备根据对应关系建立控制器的流条目。例如,转发设备在收到控制器A的上述在table1上建立entry的消息后,查对应关系得到控制器A的table1为全局table5,控制器A的table2为全局table6,因此在table5的VLAN等于100的entry,即entry100上建立动作:添加VLAN10,跳转到查询table6。转发设备在收到控制器A的上述在table2上建立entry的消息后,查对应关系得到控制器A的table2为全局table6,因此在table6的源端口号为1的entry,即entry1上建立动作:转发到端口6,并将报文发送出去。转发设备在收到控制器B的上述在table1上建立entry的消息后,查对应关系得到控制器B的table1为全局table9,因此在table9的源端口号为10的entry,即entry10上建立动作:转发到端口11,并将报文发送出去。转发设备在收到控制器C的上述在table1上建立entry的消息后,查对应关系得到控制器C的table1为全局table10,因此在table10的源端口号为15的entry,即entry15上建立动作:转发到端口20,并将报文发送出去。308,转发设备转发报文。例如,从端口1进入的报文(源端口号为1,VLAN为100)到达转发设备后,转发设备根据报文的源端口号为1符合控制器A的报文识别规则(源端口号为1~6的报文对应控制器A的流表),确定报文对应的控制器A的流表。转发设备根据VLAN为100查找table5(控制器A的table1),命中entry100后,根据entry100的动作将报文添加VLAN10,并跳转到table6(控制器A的table2);转发设备根据源端口号为1查找table6,命中entry1后,根据entry1的动作将报文从端口6发送出去。从端口10进入的报文(源端口号为10,VLAN为100,IP为192.168.1.8)到达转发设备后,转发设备根据报文的源端口号为10,VLAN为100,IP为192.168.1.8符合控制器B的报文识别规则(源端口为10~12,VLAN为100,IP段为192.168.1.x的报文对应控制器B的流表),确定报文对应的控制器B的流表。转发设备根据源端口号为10查找table9(控制器B的table1),命中entry10后,根据entry10的动作将报文从端口11发送出去。从端口15进入的报文(源端口号为15,第1个byte为0x05)到达转发设备后,转发设备根据报文的源端口号为15,第1个byte为0x05符合控制器C的报文识别规则(第1个byte为0x05,源端口号为15~20的报文对应控制器C的流表),确定报文对应的控制器C的流表。转发设备根据源端口号为15查找table10(控制器C的table1),命中entry15后,根据entry15的动作将报文从端口20发送出去。本发明实施例的网络中的报文处理方法,通过在转发设备上建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,按照该流表和该流条目实现的转发流程转发报文,可以降低网络管理维护的复杂度,从而能够提高网络效率。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上文详细描述了根据本发明实施例的网络虚拟化的方法,下面将描述根据本发明实施例的转发设备和报文处理系统。图4示出了根据本发明实施例的转发设备400的示意性框图。如图4所示,该转发设备400包括:第一端口410,用于连接资源管理器;第一处理器420,连接该第一端口410,用于按照该资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备;第二端口430,用于连接多个控制器,接收控制器的建立流表消息;第二处理器440,连接该第二端口430,用于按照控制器的建立流表消息在对应的虚拟设备中建立流表,将建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系保存到存储器中,第二标识用于在转发设备上唯一标识所建立的流表;以及接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;数据处理器450,用于接收数据报文,用存储器中存储的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。本发明实施例的转发设备,通过建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,可以降低网络管理维护的复杂度,从而能够提高网络效率。在本发明实施例中,可选地,该第一端口410具体用于接收该资源管理器的建立虚拟设备消息,该建立虚拟设备消息携带有控制器的标识以及所分配的资源信息;该第一处理器420具体用于按照该资源信息在该转发设备上给该建立虚拟设备消息中标识的控制器建立虚拟设备。在本发明实施例中,可选地,该第一端口410还用于接收该资源管理器的报文识别规则,将收到的报文识别规则保存到存储器中。根据本发明实施例的转发设备400可对应于根据本发明实施例的网络中的报文处理方法中的转发设备,并且转发设备400中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。本发明实施例的转发设备,通过建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,按照该流表和该流条目实现的转发流程转发报文,可以降低网络管理维护的复杂度,从而能够提高网络效率。图5示出了根据本发明实施例的报文处理系统500的示意性框图。如图5所示,该报文处理系统500包括资源管理器530、多个控制器520以及转发设备510,该转发设备510分别与该资源管理器530和该多个控制器520相连。该资源管理器530,用于指示该转发设备510在该转发设备510上分别为每个控制器520建立对应的虚拟设备;该转发设备510,用于按照控制器520的建立流表消息在对应的虚拟设备中建立流表;保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备510上的第二标识的对应关系,第二标识用于在转发设备上唯一标识所建立的流表;接收控制器520的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;以及接收数据报文,用预设的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。在本发明实施例中,可选的,该控制器520还用于向该资源管理器530发送分配资源请求消息,则该资源管理器530用于根据该分配资源请求消息将所分配的资源信息发送给该转发设备510。在本发明实施例中,可选的,该资源信息包括:转发带宽、流表所占的内存空间、CPU占用率、包缓存大小、以及队列数中的一个或多个。根据本发明实施例的报文处理系统500中的转发设备510、控制器520和资源管理器530可分别对应于根据本发明实施例的网络中的报文处理方法中的转发设备、控制器和资源管理器,并且转发设备510、控制器520和资源管理器530的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。本发明实施例的报文处理系统,可以降低网络管理维护的复杂度,从而能够提高网络效率。图6示出了本发明的又一实施例提供的转发设备的结构,包括至少一个处理器602(例如CPU),至少一个网络接口605或者其他通信接口,存储器606,和至少一个通信总线603,用于实现这些装置之间的连接通信。处理器602用于执行存储器606中存储的可执行模块,例如计算机程序。存储器606可能包含高速随机存取存储器(RAM:RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口605(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。在一些实施方式中,存储器606存储了程序6061,处理器602执行程序6061,用于执行以下操作:按照资源管理器的指示在该转发设备上分别为每个控制器建立对应的虚拟设备;按照控制器的建立流表消息在对应的虚拟设备中建立流表;保存建立流表消息中携带的欲建立的流表的第一标识和按照建立流表消息建立的流表在转发设备上的第二标识的对应关系;第二标识用于在转发设备上唯一标识所建立的流表;通过网络接口接收控制器的建立流条目消息,该建立流条目消息携带有欲建立的流条目以及欲存储该流条目的流表的第一标识;根据该对应关系得到该第一标识对应的第二标识,在得到的第二标识对应的流表中存储该流条目;通过网络接口接收数据报文,用预设的报文识别规则对该数据报文进行匹配从而得到处理该数据报文的流表的第一标识,从该对应关系中得到该第一标识对应的第二标识,按照第二标识对应的流表中的流条目对所述数据报文进行处理。可选地,该处理器具体用于,通过网络接口接收该资源管理器的建立虚拟设备消息,该建立虚拟设备消息携带有控制器的标识以及所分配的资源信息;按照该资源信息在该转发设备上给该建立虚拟设备消息中标识的控制器建立虚拟设备。可选地,该资源信息包括转发带宽、流表所占的内存空间、CPU占用率、包缓存大小、以及队列数中的一个或多个。可选地,该处理器具体用于,通过网络接口接收控制器的建立流表消息,该建立流表消息中携带有欲建立的流表的第一标识以及控制器的标识;在控制器的标识对应的虚拟设备中建立流表,所建立的流表拥有第二标识。可选地,该建立流条目消息还携带有控制器的标识;该处理器具体用于,根据该建立流条目消息中的控制器的标识定位到对应的第一标识,根据该对应关系得到该第一标识对应的第二标识。可选地,该报文识别规则包括数据报文特征信息和流表的对应关系;该数据报文特征信息包括虚拟局域网VLAN、IP地址段、端口、以及数据报文中的某个固定偏移量的字段中的一个或多个。可选地,该处理器还用于,通过网络接口接收该资源管理器的报文识别规则。从本发明实施例提供的以上技术方案可以看出,本发明实施例通过建立控制器对应的虚拟设备,在控制器对应的虚拟设备中建立控制器的流表和流条目,可以降低网络管理维护的复杂度,从而能够提高网络效率。应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1