一种支持多租户的数据转发方法和装置制造方法

文档序号:8003299阅读:376来源:国知局
一种支持多租户的数据转发方法和装置制造方法
【专利摘要】本发明实施例公开了一种支持多租户的数据转发方法和装置,本发明实施例方法包括:接收数据包,对接收到的数据包进行租户网络识别;根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表;对查询命中的数据包,根据对应的流表项操作进行处理。本发明实施例提供的技术方案,根据租户网络识别结果,将数据包转发至对应租户专属的一个或者一个以上流表中进行转发查询,将查询命中的数据包按照流表项操作进行处理,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
【专利说明】一种支持多租户的数据转发方法和装置

【技术领域】
[0001]本发明涉及通信【技术领域】,具体涉及一种支持多租户的数据转发方法和装置。

【背景技术】
[0002]多租户是云网络的一个典型应用场景,也是网络虚拟化技术在数据中心环境下的重要表现形式。目前的多租户虚拟化技术中,网络虚拟化主要依靠虚拟局域网(VLAN,Virtual Local Area Network)等方法来实现。通过设置不同的VLAN,对租户的网络进行隔离。VLAN是对连接到第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制,可以根据用户需求进行网络分段。
[0003]但是,VLAN技术也有明显的缺点。例如:当某一物理服务器或者虚拟服务器的网卡、媒体访问控制(MAC, Media Access Control)地址、互联网协议(IP, InternetProtocol)地址,或是物理位置发生变化时,需要对整个网络系统中多个相关的网络设备进行重新配置。在中等规模以上的网络环境中,虚拟机迁移技术的应用愈加普遍,VLAN技术在该环境下的配置和维护开销巨大,无法满足技术发展的需求。
[0004]软件定义的网络(SDN, Software Defined Network)技术的出现,提供了一种灵活应用的网络虚拟化技术。SDN技术的一个实例,即OpenFlow技术,在OpenFlow技术中,多流表技术被引入,多流表技术是指在OpenFlow交换机中存在多张流表,针对交换机的不用的匹配域进行设计,存储不同内容的流规则。对于接收到的数据报文,从流表的入口处(可以是TableO)开始进行流规则的匹配,根据表项中的指令集度后续流表进行查询。表间查找顺序只能是跳转至下一张流表或者下一个表序号大于当前表序号的流表中。在查找到匹配的流表后,根据流表进行数据转换或者丢弃等操作。
[0005]从上述对现有OpenFlow技术的说明可以看出,现有的OpenFlow交换机中多流表转发方案中,不能根据不同租户的需求为各租户网络提供转发服务,造成多租户环境下的租户共享流表空间造成冲突,并且转发性能降低,各租户无法根据自身业务进行灵活的流表方案定制。


【发明内容】

[0006]本发明实施例提供了一种支持多租户的数据转发方法和装置,能够根据不同租户的需求为各租户网络提供转发服务。
[0007]本发明实施例第一方面,一种支持多租户的数据转发方法,包括:
[0008]接收数据包,对接收到的数据包进行租户网络识别;
[0009]根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表;
[0010]对查询命中的数据包,根据对应的流表项操作进行处理。
[0011]在第一种可能的实现方式中,根据第一方面,所述对接收到的数据包进行租户网络识别,具体包括:
[0012]根据交换机中存储的第一张流表中的匹配域与数据包进行匹配,其中,根据所述第一张流表中的匹配域用于确定租户网络;
[0013]或者,根据数据包中包含的租户标识确定所述数据包所属的租户网络。
[0014]在第二种可能的实现方式中,根据第二种可能的实现方式,所述第一张流表中的匹配域包括:源媒体接入控制地址和虚拟局域网标识,
[0015]或者,所述第一张流表中的匹配域包括:源媒体接入控制地址和隧道标识。
[0016]在第三种可能的实现方式中,根据第一方面,所述方法还包括:
[0017]将查询未命中的数据包信息转发至控制器;
[0018]接收控制器发送的所述数据包所属的租户对应的转发策略,
[0019]并将所述转发策略存储在所述租户专属的流表组中。
[0020]在第四种可能的实现方式中,根据第一方面,所述将数据包转发至对应租户专属的流表组中进行查询,其中,所述对应租户专属的流表组中包括:一个以上流表,具体包括:
[0021]对于租户专属的流表组中包括一个以上流表时,将所述数据包依照流表在所述流表组中的排列顺序,依次进行查询。
[0022]在第五种可能的实现方式中,根据第一方面,所述方法还包括:
[0023]接收控制器发送的删除租户与所述租户专属流表组的对应关系的命令;
[0024]根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
[0025]第二方面,提供了一种支持多租户的数据转发方法,包括:
[0026]通过用户接口,获取租户定制的业务相关的流表方案;
[0027]将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表。
[0028]在第一种可能的实现方式中,根据第二方面,所述将流表方案下发给交换机之后,所述方法还包括:
[0029]接收交换机发送的数据包信息,
[0030]根据物理网络拓扑和租户的虚拟网络拓扑,计算所述数据包所属的数据流的转发路径信息;并根据所述数据包所属租户的流表规则定义,将所述转发路径信息转换为符合租户流表方案的转发策略;
[0031]将所述转发策略发送给所述交换机,使得所述转发策略存储于所述租户在交换机中对应的流表中。
[0032]在第二种可能的实现方式中,根据第二方面或者第一种可能的实现方式,所述方法还包括:
[0033]当租户离开,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机,使得所述交换机清空所述租户专属流表组中每个流表中的流表项。
[0034]第三方面,提一种通信设备,包括:第一接收单元,识别单元,查询单元,和处理单元,
[0035]所述第一接收单元,用于接收数据包,
[0036]所述识别单元,用于对接收到的数据包进行租户网络识别;
[0037]所述查询单元,用于根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表;
[0038]所述处理单元,用于对查询命中的数据包,根据对应的流表项操作进行处理。
[0039]在第一种可能的实现方式中,根据第三方面,所述识别单元,具体用于根据交换机中存储的第一张流表中的匹配域与数据包进行匹配,其中,根据所述第一张流表中的匹配域确定租户网络;
[0040]或者,所述识别单元,具体用于根据数据包中包含的租户标识确定所述数据包所属的租户网络。
[0041]在第二种可能的实现方式中,根据第一种可能的实现方式,所述第一张流表中的匹配域包括:源媒体接入控制地址和虚拟局域网标识,
[0042]或者,所述第一张流表中的匹配域包括:源媒体接入控制地址和隧道标识。
[0043]在第三种可能的实现方式中,根据第三方面,所述装置还包括:
[0044]第一发送单元,第二接收单元,和存储单元,
[0045]所述第一发送单元,用于将查询未命中的数据包信息转发至控制器;
[0046]所述第二接收单元,用于接收控制器发送的所述数据包所属的租户对应的转发策略;
[0047]所述存储单元,用于将所述转发策略存储在所述租户对应的流表中。
[0048]在第四种可能的实现方式中,根据第三方面,所述查询单元,具体用于对于租户专属的流表组中包括一个以上流表时,将所述数据包依照流表在所述流表组中的排列顺序,依次进行查询。
[0049]在第五种可能的实现方式中,根据第三方面,所述装置还包括:
[0050]第三接收单元,和删除单元,
[0051]所述第三接收单元,用于接收控制器发送的删除租户流表命令;
[0052]所述删除单元,用于根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
[0053]第四方面,提供了一种通信装置,所述装置包括:获取单元,和第一发送单元,
[0054]所述获取单元,用于通过用户接口,获取租户定制的业务相关的流表方案;
[0055]所述第二发送单元,用于将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表。
[0056]在第一种可能的实现方式中,根据第四方面,所述装置还包括:
[0057]第四接收单元,获取策略单元,和第三发送单元,
[0058]所述第四接收单元,用于接收交换机发送的数据包信息,
[0059]所述获取策略单元,用于根据物理网络拓扑和租户的虚拟网络拓扑,计算所述数据包所属的数据流的转发路径信息;并根据所述数据包所属租户的流表规则定义,将所述转发路径信息转换为符合租户流表方案的转发策略;
[0060]所述第三发送单元,用于将所述转发策略发送给所述交换机,使得所述转发策略存储于所述租户在交换机中对应的流表中。
[0061]在第二种可能的实现方式中,根据第一种可能的实现方式,所述获取策略单元,具体包括:
[0062]路由模块,用于承载路由算法,根据拓扑模块中包含的物理网络拓扑信息和租户虚拟网络拓扑信息对该数据包所属的流进行路径计算,并将计算结果发送至策略转换模块;
[0063]拓扑模块,用于存储物理网络拓扑和租户的虚拟网络拓扑,为路由模块提供路径计算的拓扑支持;
[0064]策略转换模块,用于接收来自路由模块的路径信息,并根据所属租户的流表规则定义,将其转换为符合租户流表方案的转发策略。
[0065]在第三种可能的实现方式中,根据第四方面,或者第一种可能的实现方式,或者第二种可能的实现方式任一项所述的方法,所述装置还包括:第四发送单元;
[0066]第四发送单元,用于当租户离开,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机,使得所述交换机清空所述租户专属流表组中流表项。
[0067]本发明实施例提供的技术方案,根据租户网络识别结果,将数据包转发至对应租户专属流表组中流表进行转发查询,将查询命中的数据包按照流表中流表项操作进行处理,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受不同策略冲突的影响,相互之间没有干扰。

【专利附图】

【附图说明】
[0068]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0069]图1是本发明实施例一提供种支持多租户的数据转发方法流程简图;
[0070]图2是本发明实施例二提供一种支持多租户的数据转发方法流程简图;
[0071]图3是不同租户在交换机中具有专属的流表组,交换机将来自控制器的转发策略存储到租户专属的流表组中处理示意简图,
[0072]图4是控制器与交换机中处理示意简图;
[0073]图5是控制器中对接收到交换机发送的数据包信息的处理示意简图;
[0074]图6是本发明实施例三提供一种通信设备示意简图;
[0075]图7是本发明实施例四提供一种通信装置示意简图;
[0076]图8是本发明实施例五提供一种通信装置示意简图;
[0077]图9是本发明实施例六提供一种通信装置示意简图。

【具体实施方式】
[0078]本发明实施例提供了一种支持多租户的数据转发方法、装置及系统。该方案可以是建立在SDN环境下的控制器和交换机之上,利用OpenFlow交换机的多流表技术,动态实现针对不同租户的定制转发策略,可以解决不同租户的业务分流及网络精细化调度,并将不同租户网络分配给相对于的租户网络控制设置进行处理。另外,利用多流表技术为每个租户网络定制转发规则,随着租户网络内的虚拟服务器因需要而进行迁移时,其业务部署和配置在交换机层面上的变化,相对于现有VLAN技术中虚拟机迁移技术中的变化非常少。
[0079]本方案基于SDN环境下的多流表技术的特点和多租户网络的需求,根据租户自定义其流表规则,或者采用网络默认多流表规则,对交换机的多个流表进行按租户的划分,将多张流表分别划分为不同的租户组。依据流表入口的TableO或者其他相关的租户网络检测单元进行流划分,将不同租户的流转至对应的租户流表组中,并根据租户定义的流规则进行转发。
[0080]实施例一
[0081]本发明实施例提供一种支持多租户的数据转发方法,如图1所示,该方法包括:
[0082]步骤101,接收数据包,并对接收到的数据包进行租户网络识别。
[0083]其中,对租户网络的识别可以是根据交换机中,多流表中的第一张流表(可以是TableO)进行租户网络区分,也可以根据预定义的租户标识(Tenant_ID)进行租户网络区分,其中此处所说的预定义是租户网络中预定义,在租户网络中拥有统一的租户标识。
[0084]其中,第一种流表TableO中包含的匹配域可以是源MAC地址(即Src MAC)和虚拟局域网标识(VLAN_ID),或者匹配域可以是隧道标识(Tunnel_ID)。其中,隧道标识包括但不仅限于多协议标签交换标签(MPLS, Mult1-Protocol Label Switching Lable),可扩展 VLAN 标识(VXLAN, Virtual Extensible VLAN, ID),通用路由封装隧道(GRE, GenericRouting Encapsulat1n, Tunnel),以及其他现有或自定义的隧道技术标签。
[0085]步骤102,根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表;
[0086]其中,步骤102中所说的对应租户专属的流表组,包括一个或者一个以上流表,可以理解为交换机在配置时,流表被根据不同的租户划分为独立的流表,属于不同租户网络的流表可以是一张流表,也可以是一组流表(即一个以上流表)。
[0087]因此,各租户可以根据自身的业务需求向控制器定制所需要的流表(或者多流表),控制器可以根据租户所属的虚拟网络进行路由决策,制定适合于租户网络的转发规则的流表,控制器将制定的流表发送给交换机中,在交换机存储属于不同租户的一个或者一组流表(所述说的一组流表可以理解为一个以上的流表)。
[0088]步骤103,对查询命中的数据包,根据对应的流表项操作进行处理。具体的处理可以是丢弃数据包,或者直接转发至交换机的物理端口。
[0089]通过上述本发明实施例一提供的一种支持多租户的数据转发方法,该方法根据租户网络识别结果,将数据包转发至对应租户专属的一个或者一个以上流表中进行转发查询,将查询命中的数据包发送至对应物理端口或者丢弃该数据包,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
[0090]进一步,由于租户网络相对单一,对于每一个租户网络中流表中转发表项数量较少,当交换机完成了对租户网络识别后,就可以快速定位到租户网络的流表中的流转发规贝U,因此大大提高了数据转发的效率。
[0091]优选的,该方法还可以包括:
[0092]步骤104,将查询未命中的数据包信息转发至控制器。
[0093]其中查询未命中的数据包,可以理解为该数据包所属的租户网络在交换机中并未存储流表,或者该数据包所属的流在专属于租户网络的流表中未记载。因此,交换机将该类数据包发送给控制器,由控制器进行处理,为该类数据包所属的租户或者流制定转发策略,并将转发策略下发给交换机。
[0094]因此,优选的,该方法在不在104之后,还可以包括:
[0095]步骤105,接收控制器发送的租户对应的转发策略,并将该转发策略存储在该租户对应的流表组中,该流表组可以是一个流表或者一以上流表。
[0096]还需要理解的是,步骤105也可以是在步骤101之前,可以理解为每个租户的流表中的转发策略都是由控制器生成的,因此,交换机在执行数据转发业务之前,可以接收控制器发送的租户对应的转发策略,并将该流表存储在该租户对应的流表中。其中,租户对应的转发策略是由租户通过用户接口在控制器中定制的,由控制器下发给交换机。
[0097]通过上述增加的步骤104和105,可以使得交换机中动态增加租户对应的流表,交换机将接收到控制器发送的转发策略存储到该租户对应额一个或者一组流表中。
[0098]实施例二
[0099]本发明实施例提供一种支持多租户的数据转发方法,该方法与上述实施例一提供的方法属于相同的发明构思,不同之处在于,本实施例中将会说明更多控制器与交换机协同工作为租户转发数据包。如图2所示,该方法包括:
[0100]步骤201,租户加入网络,控制器为新租户分配租户标识(ID),控制器通过用户接口,获取租户定制的业务相关的流表方案,或者获取到租户采用默认的流表方案。其中,租户定制的业务相关的流表方案可以是由采用单流表方案,或是多流表方案在交换机中体现。
[0101]步骤202,控制器将租户的定制的业务相关的流表方案,或者获取到租户采用默认的流表方案,下发给交换机;其中,流表方案中还可以包括租户ID。
[0102]步骤203,交换机接收到控制器下发的流表方案,将隶属于该租户的流表方案存储到该租户专属的流表组中,其中,租户专属的流表组中包括一个或者一个意思流表。
[0103]如图3中,若租户ID为001,则将隶属于租户0001的转发策略发送租户0001专属的一个或一组流表Setl中。租户ID为n,则将租户η的转发策略发送至其专属的一个或一组流表Set η中。
[0104]为了更清楚的理解各控制器中租户定制的转发策略,与交换机中隶属于租户的一个或者一组流表的对应关系,如图4所示,在控制器中租户定制的转发策略被下发到交换机,在交换机中专属于不同租户的流表被独立划分为一张流表或者一组流表。数据包命中对应的流表后,按照流表项操作进行处理。若租户选定默认转发策略作为转发策略,则控制器将默认策略下发到交换机中的共享流表中,作为该租户网络中数据转发的依据。
[0105]其中,还需要理解的是,若在交换机中存储有拥有租户识别的第一张流表(gpTableO)的情况下,在步骤203中交换机接收到控制器下发的转发策略时,不经将转发策略存储在对应租户专属的流表中,还可以在TableO中,存储用于识别该租户的匹配域,使得当交换机中接收到数据包后,根据该TableO中的匹配域,跳转到对应的租户流表中进行匹配。
[0106]步骤204,交换机接收到数据包,对接收到的数据包进行租户网络识别。
[0107]其中,步骤204中对接收到的数据包进行租户网络识别可以通过数据包中包含的租户ID (Tenant_ID)确认数据包所属的租户网络。该Tenant_ID可以是数据包在其服务器出处增加的新标签。在某些网络中,对租户网络初始化之后,可在虚拟主机或物理主机之上增加为数据包封装租户ID的功能,用以区分不同数据流所属的租户网络。该封装的租户ID,即Tenant_ID,可用于区分不同租户间的数据流。
[0108]或者,步骤204中对接收到的数据包进行租户网络识别可以通过设置多流表中的TableO (即交换机入口处的第一张流表),根据数据包的匹配域确认数据包所属的租户网络。
[0109]在采用VLAN技术的情况下,TableO所包含的匹配域可以是源Mac地址与VLAN_ID的组合。以VLAN为例,在物理网络中,各租户通过VLAN做第一步的隔离,各租户组成分属其自己的虚拟网络。属于租户网络的各虚拟主机或物理主机可能存在MAC地址重叠的情况,但源MAC地址和VLAN ID的组合为全网唯一标识,可以定位一台主机或一个数据流所属的租户网络。
[0110]在采用隧道技术的情况下,TableO的匹配域可以是源Mac地址与Tunnel_ID的组合。在采用其他技术时,可以根据需求和技术特征进行自定义,此处不应该理解为对本发明实施例的限制。
[0111]步骤205,若交换机若未能识别出该数据包所属的租户网络,将该数据包信息转发至控制器请求转发策略。其中,数据包信息具体可以是数据包的包头,也可以是数据包本身,但本申请不限定其他数据包信息的形式。
[0112]其中,步骤205中若交换机若未能识别出该数据包所属的租户网络,具体体现可以是交换机通过TableO进行转发策略匹配,如果没有命中,则表明交换机首次接收到该流所属的数据包,交换机将其该数据包信息转发至控制器请求策略。
[0113]或者,步骤205中若交换机若未能识别出该数据包所属的租户网络,具体体现可以是交换机识别出数据包封装的租户ID,并未在交换机中存储有对应的流表,则表明交换机首次接收到该流所属的数据包。
[0114]步骤206,控制器接收到交换机发送的数据包信息,根据物理网络拓扑和租户的虚拟网络拓扑,获取该数据包的路径信息,并根据所属租户的流表规则定义,将该路径信息转换为符合租户流表方案的转发策略;
[0115]其中,如图5所示,步骤206中的详细操作过程可以包括:
[0116]控制器中核心决策模块,接收交换机端发送的数据包信息并将转发策略下发至交换机端;
[0117]控制器中路由模块用于承载路由算法,根据拓扑模块中包含的物理网络拓扑信息和租户虚拟网络拓扑信息对该数据包所属的流进行路径计算,并将计算结果发送至策略转换模块;
[0118]控制器中拓扑模块中包含物理网络拓扑和租户的虚拟网络拓扑,为路由模块提供路径计算的拓扑支持;
[0119]控制器中策略转换模块,接收来自路由模块的路径信息,并根据所属租户的流表规则定义,将其转换为符合租户流表方案的转发策略;
[0120]控制器中规则存储模块,用于存储各个租户的自定义流表方案以及默认的流表方案。
[0121]步骤207,控制器将转换获得的转发策略下发给交换机,
[0122]步骤208,交换机接收控制器下发的转发策略,将该转发策略存储在该租户对应的流表中。若该租户是新租户在交换机中没有存储有流表,则分配流表资源给该新租户,该新租户的转发策略以流表项的形式,存储在该租户对应的流表中。若该转发策略是属于租户的新流,则在租户隶属的源流表中增加该流的流表项。
[0123]步骤209,若在步骤204中交换机识别出该租户网络,将数据包转发至对应租户专属流表组中进行转发查询。
[0124]其中,交换机识别该租户网络的具体操作可以是在TableO匹配后,确认该数据包所属的租户网络,根据匹配结果跳转到该租户专属的一个或者一组流表中,若该租户有一组流表,则跳转到该租户专属的流表组中的第一张流表,进行转发策略匹配。
[0125]步骤210,对查询命中的数据包,根据对应的流表项操作进行处理。具体的处理可以是丢弃数据包,或者直接转发至交换机的物理端口。
[0126]步骤211,当控制器获知租户离开网络时,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机;
[0127]步骤212,交换机接收控制器发送的删除租户与所述租户专属流表组的对应关系的命令;根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
[0128]其中,当租户离开网络时,属于该租户的规则将被删除,且属于该租户的交换机端流表组中内容被清空,该组流表资源将被交换机收回,属于空闲流表资源,用于后续另有新租户加入网络后进行重新分配。
[0129]通过上述本发明实施例二提供的一种支持多租户的数据转发方法,该方法根据租户网络识别结果,将数据包转发至对应租户专属的一个或者一个以上流表中进行转发查询,将查询命中的数据包按照流表项操作进行处理,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
[0130]进一步,由于租户网络相对单一,对于每一个租户网络中流表中转发表项数量较少,当交换机完成了对租户网络识别后,就可以快速定位到租户网络的流表中的流转发规贝U,因此大大提高了数据转发的效率。
[0131]进一步,本方案的优点包括:在交换机中资源一定的情况下,可以存储的流表数量固定,由于租户网络所需的流表数量可以根据租户业务动态调整,因此,交换机支持的租户数量可以动态调节。
[0132]进一步,本方案中每个租户可以通过控制器中用户接口,根据各租户业务在该租户专属的流表集合中自定义流表规则,对租户的关键业务可以进行优先级较高的流表设置。
[0133]实施例三
[0134]本发明实施例提供一种通信设备,如图6所示,该通信设备可以是Openflow交换机,但不限于此交换机。该通信设备包括:第一接收单元601,识别单元602,查询单元603,和处理单元604,
[0135]第一接收单元601,用于接收数据包,
[0136]识别单元602,用于对接收到的数据包进行租户网络识别;
[0137]其中,对租户网络的识别可以是根据交换机中,多流表中的第一张流表(可以是TableO)进行租户网络区分,也可以根据预定义的租户标识(Tenant_ID)进行租户网络区分,其中此处所说的预定义是租户网络中预定义,在租户网络中拥有统一的租户标识。
[0138]其中,第一种流表TableO中包含的匹配域可以是源MAC地址(即Src MAC)和虚拟局域网标识(VLAN_ID),或者匹配域可以是隧道标识(Tunne 1_ID)。
[0139]查询单元603,用于根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表;
[0140]其中,查询单元603中所说的对应租户专属的流表组,包括一个或者一个以上流表,可以理解为交换机在配置时,流表被根据不同的租户划分为独立的流表,属于不同租户网络的流表可以是一张流表,也可以是一组流表(即一个以上流表)。
[0141]因此,各租户可以根据自身的业务需求向控制器定制所需要的流表(或者多流表),控制器可以根据租户所属的虚拟网络进行路由决策,制定适合于租户网络的转发规则的流表,控制器将制定的流表发送给交换机中,在交换机存储属于不同租户的一个或者一组流表(所述说的一组流表可以理解为一个以上的流表)。
[0142]处理单元604,用于对查询命中的数据包,根据对应的流表项操作进行处理。
[0143]通过上述本发明实施例三提供的一种通信设备的说明,该通信设备中识别单元602根据租户网络识别结果,将数据包转发至对应租户专属的一个或者一个以上流表中,由查询单元603进行转发查询,将查询命中的数据包发送至对应物理端口或者丢弃该数据包,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
[0144]优选的,所述识别单元602,具体用于根据交换机中存储的第一张流表中的匹配域与数据包进行匹配,其中,根据所述第一张流表中的匹配域确定租户网络;
[0145]或者,所述识别单元,具体用于根据数据包中包含的租户标识确定所述数据包所属的租户网络。
[0146]优选的,所述第一张流表中的匹配域包括:源媒体接入控制地址和虚拟局域网标识,
[0147]或者,所述第一张流表中的匹配域包括:源媒体接入控制地址和隧道标识。
[0148]优选的,所述设备还包括:
[0149]第一发送单元605,第二接收单元606,和存储单元607,
[0150]所述第一发送单元605,用于将查询未命中的数据包信息转发至控制器;
[0151]所述第二接收单元606,用于接收控制器发送的所述数据包所属的租户对应的转发策略;
[0152]所述存储单元607,用于将所述转发策略存储在所述租户对应的流表中。
[0153]优选的,所述查询单元602,具体用于对于租户专属的流表组中包括一个以上流表时,将所述数据包依照流表在所述流表组中的排列顺序,依次进行查询。
[0154]优选的,所述设备还包括:
[0155]第三接收单元608,和删除单元609,
[0156]所述第三接收单元608,用于接收控制器发送的删除租户流表命令;
[0157]所述删除单元609,用于根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
[0158]实施例四
[0159]本发明实施例提供一种通信装置,该通信装置可以SDN网络中的控制器,如图7所示,该装置包括:获取单元701,和第一发送单元702,
[0160]获取单元701,用于通过用户接口,获取租户定制的业务相关的流表方案;
[0161]第二发送单元702,用于将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表。
[0162]通过上述本发明实施例提供的一种通信装置,该装置通过用户接口,获取租户定制的业务相关的流表方案,将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
[0163]优选的,所述装置还包括:
[0164]第四接收单元703,获取策略单元704,和第三发送单元705,
[0165]所述第四接收单元703,用于接收交换机发送的数据包信息,
[0166]所述获取策略单元704,用于根据物理网络拓扑和租户的虚拟网络拓扑,计算所述数据包所属的数据流的转发路径信息;并根据所述数据包所属租户的流表规则定义,将所述转发路径信息转换为符合租户流表方案的转发策略;
[0167]所述第三发送单元705,用于将所述转发策略发送给所述交换机,使得所述转发策略存储于所述租户在交换机中对应的流表中。
[0168]优选的,所述获取策略单元704,具体包括:
[0169]路由模块,用于承载路由算法,根据拓扑模块中包含的物理网络拓扑信息和租户虚拟网络拓扑信息对该数据包所属的流进行路径计算,并将计算结果发送至策略转换模块;
[0170]拓扑模块,用于存储物理网络拓扑和租户的虚拟网络拓扑,为路由模块提供路径计算的拓扑支持;
[0171]策略转换模块,用于接收来自路由模块的路径信息,并根据所属租户的流表规则定义,将其转换为符合租户流表方案的转发策略。
[0172]优选的,所述装置还包括:第四发送单元705 ;
[0173]第四发送单元705,用于当租户离开,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机,使得所述交换机清空所述租户专属流表组中流表项。
[0174]实施例五
[0175]本发明实施例还提供另一种通信设备,结构示意图如图8所示,包括分别连接到总线上的存储器40、处理器41、输入装置43和输出装置44,其中:
[0176]存储器40中用来储存从输入装置43输入的数据,且还可以储存处理器41处理数据的必要文件等信息;
[0177]输入装置43和输出装置44是通信设备与其他设备通信的端口,还可以包括数据分析设备外接的输出设备比如显示器、键盘、鼠标和打印机等,在本实施例中输入装置43可以包括鼠标和键盘等,而输出装置44包括显示器等;
[0178]输入装置43,用于接收数据包,
[0179]处理器41,用于对接收到的数据包进行租户网络识别;根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表;对查询命中的数据包,根据对应的流表项操作进行处理。
[0180]通过上述本发明实提供的装置,根据租户网络识别结果,将数据包转发至对应租户专属的一个或者一个以上流表中进行转发查询,将查询命中的数据包发送至对应物理端口或者丢弃该数据包,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
[0181]进一步,由于租户网络相对单一,对于每一个租户网络中流表中转发表项数量较少,当交换机完成了对租户网络识别后,就可以快速定位到租户网络的流表中的流转发规贝U,因此大大提高了数据转发的效率。
[0182]优选的,处理器中对接收到的数据包进行租户网络识别,具体用于根据交换机中存储的第一张流表中的匹配域与数据包进行匹配,其中,根据所述第一张流表中的匹配域确定租户网络;
[0183]或者,所述识别单元,具体用于根据数据包中包含的租户标识确定所述数据包所属的租户网络。
[0184]优选的,处理器中所述第一张流表中的匹配域包括:源媒体接入控制地址和虚拟局域网标识,
[0185]或者,所述第一张流表中的匹配域包括:源媒体接入控制地址和隧道标识。
[0186]优选的,所述装置中:
[0187]输出装置,还用于将查询未命中的数据包信息转发至控制器;
[0188]输入装置,还用于接收控制器发送的所述数据包所属的租户对应的转发策略;
[0189]所述存储单元,还用于将所述转发策略存储在所述租户对应的流表中。
[0190]优选的,所述处理器中根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表,具体用于对于租户专属的流表组中包括一个以上流表时,将所述数据包依照流表在所述流表组中的排列顺序,依次进行查询。
[0191]优选的,所述装置中,
[0192]所述输入装置,还用于接收控制器发送的删除租户流表命令;
[0193]所述处理器,还用于根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
[0194]实施例六
[0195]本发明实施例还提供另一种通信设备,结构示意图如图9所示,包括分别连接到总线上的存储器50、处理器51、输入装置53和输出装置54,其中:
[0196]存储器50中用来储存从输入装置53输入的数据,且还可以储存处理器51处理数据的必要文件等信息;
[0197]输入装置53和输出装置54是通信设备与其他设备通信的端口,还可以包括数据分析设备外接的输出设备比如显示器、键盘、鼠标和打印机等,在本实施例中输入装置53可以包括鼠标和键盘等,而输出装置54包括显示器等;
[0198]所述输入装置,用于通过用户接口,获取租户定制的业务相关的流表方案;
[0199]所述输出装置,用于将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表。
[0200]通过上述本发明实施例提供的一种通信装置,该装置通过用户接口,获取租户定制的业务相关的流表方案,将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表,由于租户间转发规则通过不同的流表进行完全隔离,租户间的转发不受到不同策略冲突的影响,相互之间没有干扰。
[0201]优选的,所述输入装置,还用于接收交换机发送的数据包信息,
[0202]所述处理器,用于根据物理网络拓扑和租户的虚拟网络拓扑,计算所述数据包所属的数据流的转发路径信息;并根据所述数据包所属租户的流表规则定义,将所述转发路径信息转换为符合租户流表方案的转发策略;
[0203]所述输出装置,还用于将所述转发策略发送给所述交换机,使得所述转发策略存储于所述租户在交换机中对应的流表中。
[0204]优选的,所述处理器,具体包括:
[0205]路由模块,用于承载路由算法,根据拓扑模块中包含的物理网络拓扑信息和租户虚拟网络拓扑信息对该数据包所属的流进行路径计算,并将计算结果发送至策略转换模块;
[0206]拓扑模块,用于存储物理网络拓扑和租户的虚拟网络拓扑,为路由模块提供路径计算的拓扑支持;
[0207]策略转换模块,用于接收来自路由模块的路径信息,并根据所属租户的流表规则定义,将其转换为符合租户流表方案的转发策略。
[0208]优选的,所述输出装置,还用于当租户离开,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机,使得所述交换机清空所述租户专属流表组中流表项。
[0209]领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0210]以上对本发明所提供的一种支持多租户的数据转发方法和装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种支持多租户的数据转发方法,其特征在于,包括: 接收数据包,对接收到的数据包进行租户网络识别; 根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表; 对查询命中的数据包,根据对应的流表项操作进行处理。
2.根据权利要求1所述的方法,其特征在于,所述对接收到的数据包进行租户网络识别,具体包括: 根据交换机中存储的第一张流表中的匹配域与数据包进行匹配,其中,根据所述第一张流表中的匹配域用于确定租户网络; 或者,根据数据包中包含的租户标识确定所述数据包所属的租户网络。
3.根据权利要求2所述的方法,其特征在于, 所述第一张流表中的匹配域包括:源媒体接入控制地址和虚拟局域网标识, 或者,所述第一张流表中的匹配域包括:源媒体接入控制地址和隧道标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 将查询未命中的数据包信息转发至控制器; 接收控制器发送的所述数据包所属的租户对应的转发策略, 并将所述转发策略存储在所述租户专属的流表组中。
5.根据权利要求1所述的方法,其特征在于,所述将数据包转发至对应租户专属的流表组中进行查询,其中,所述对应租户专属的流表组中包括:一个以上流表,具体包括: 对于租户专属的流表组中包括一个以上流表时,将所述数据包依照流表在所述流表组中的排列顺序,依次进行查询。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收控制器发送的删除租户与所述租户专属流表组的对应关系的命令; 根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
7.一种支持多租户的数据转发方法,其特征在于,包括: 通过用户接口,获取租户定制的业务相关的流表方案; 将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表。
8.根据权利要求7所述的方法,其特征在于,所述将流表方案下发给交换机之后,所述方法还包括: 接收交换机发送的数据包信息, 根据物理网络拓扑和租户的虚拟网络拓扑,计算所述数据包所属的数据流的转发路径信息;并根据所述数据包所属租户的流表规则定义,将所述转发路径信息转换为符合租户流表方案的转发策略; 将所述转发策略发送给所述交换机,使得所述转发策略存储于所述租户在交换机中对应的流表中。
9.根据权利要求7或者8任一项所述的方法,其特征在于,所述方法还包括: 当租户离开,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机,使得所述交换机清空所述租户专属流表组中每个流表中的流表项。
10.一种通信设备,其特征在于,包括:第一接收单元,识别单元,查询单元,和处理单元, 所述第一接收单元,用于接收数据包, 所述识别单元,用于对接收到的数据包进行租户网络识别; 所述查询单元,用于根据租户网络识别结果,将数据包转发至对应租户专属的流表组中进行查询;其中,所述对应租户专属的流表组中包括:一个或者一个以上流表; 所述处理单元,用于对查询命中的数据包,根据对应的流表项操作进行处理。
11.根据权利要求10所述的装置,其特征在于,所述识别单元,具体用于根据交换机中存储的第一张流表中的匹配域与数据包进行匹配,其中,根据所述第一张流表中的匹配域确定租户网络; 或者,所述识别单元,具体用于根据数据包中包含的租户标识确定所述数据包所属的租户网络。
12.根据权利要求11所述的装置,其特征在于,所述第一张流表中的匹配域包括:源媒体接入控制地址和虚拟局域网标识, 或者,所述第一张流表中的匹配域包括:源媒体接入控制地址和隧道标识。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括: 第一发送单元,第二接收单元,和存储单元, 所述第一发送单元,用于将查询未命中的数据包信息转发至控制器; 所述第二接收单元,用于接收控制器发送的所述数据包所属的租户对应的转发策略; 所述存储单元,用于将所述转发策略存储在所述租户对应的流表中。
14.根据权利要求10所述的装置,其特征在于,所述查询单元,具体用于对于租户专属的流表组中包括一个以上流表时,将所述数据包依照流表在所述流表组中的排列顺序,依次进行查询。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括: 第三接收单元,和删除单元, 所述第三接收单元,用于接收控制器发送的删除租户流表命令; 所述删除单元,用于根据所述删除租户与所述租户专属流表组的对应关系的命令,清空所述租户专属流表组中每个流表中的流表项。
16.一种通信装置,其特征在于,所述装置包括:获取单元,和第一发送单元, 所述获取单元,用于通过用户接口,获取租户定制的业务相关的流表方案; 所述第二发送单元,用于将所述流表方案下发给交换机,使得交换机根据所述流表方案建立所述租户专属的流表组,其中,所述专属于租户的流表组包括:一个或者一个以上流表。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括: 第四接收单元,获取策略单元,和第三发送单元, 所述第四接收单元,用于接收交换机发送的数据包信息, 所述获取策略单元,用于根据物理网络拓扑和租户的虚拟网络拓扑,计算所述数据包所属的数据流的转发路径信息;并根据所述数据包所属租户的流表规则定义,将所述转发路径信息转换为符合租户流表方案的转发策略; 所述第三发送单元,用于将所述转发策略发送给所述交换机,使得所述转发策略存储于所述租户在交换机中对应的流表中。
18.根据权利要求17所述的装置,其特征在于,所述获取策略单元,具体包括: 路由模块,用于承载路由算法,根据拓扑模块中包含的物理网络拓扑信息和租户虚拟网络拓扑信息对该数据包所属的流进行路径计算,并将计算结果发送至策略转换模块; 拓扑模块,用于存储物理网络拓扑和租户的虚拟网络拓扑,为路由模块提供路径计算的拓扑支持; 策略转换模块,用于接收来自路由模块的路径信息,并根据所属租户的流表规则定义,将其转换为符合租户流表方案的转发策略。
19.根据权利要求16至18任一项所述的方法,其特征在于,所述装置还包括:第四发送单元; 第四发送单元,用于当租户离开,发送删除所述租户与所述租户专属流表组的对应关系的命令到交换机,使得所述交换机清空所述租户专属流表组中流表项。
【文档编号】H04L12/741GK104348724SQ201310328933
【公开日】2015年2月11日 申请日期:2013年7月31日 优先权日:2013年7月31日
【发明者】王蛟, 宋昆鹏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1