报文转发方法及装置与流程

文档序号:16199150发布日期:2018-12-08 06:26阅读:280来源:国知局
本发明涉及通信领域,具体而言,涉及一种信息发送方法及装置。
背景技术
:数据中心是全球协作的特定设备网络,用来在internet网络基础设施上传递、加速、展示、计算、存储数据信息。对于数据中心,相关网站给出的定义是“数据中心是一整套复杂的设施。它不仅仅包括计算机系统和其它与之配套的设备(例如通信和存储系统),还包含冗余的数据通信连接、环境控制设备、监控设备以及各种安全装置”。在已经发布的《thedatacenterasacomputer》一书中,将数据中心解释为“多功能的建筑物,能容纳多个服务器以及通信设备。这些设备被放置在一起是因为它们具有相同的对环境的要求以及物理安全上的需求,并且这样放置便于维护”,而“并不仅仅是一些服务器的集合”。一个数据中心的主要目的是运行应用来处理商业和运作的组织的数据。企业级的数据中心的发展趋势是具备高度的灵活性和适应性,比如能根据外部需求做出快速变化,如何实现这些技术,虚拟化技术,或是模块化数据中心的创建等,都是比较好的解决方法。随着数据中心的迅速发展,数据中心内部的流量占到整个网络的相当比例,比如数据中心的备份需求,内容同步需求等。这对数据中心的网络部署提出的新的挑战。以往只用二层互联的技术,已经不能满足数据中心的需求,因此现在的数据中心已经是三层或者三层加二层的网络方式。因为成本的原因数据中心网络架构很少采用全互联的方式,而是采用多级架构clos方式。如图1所示,是最常见的组网方式。这种方式里对设备分为三层,最核心的层为tier1层,其次是tier2层和tier3层,具有相同或者类似功能,或者相同地理位置的一组设备,由同一个管理设备进行管理,管理设备可以是tor(topofrack)设备,也可以是路由器网关设备,这一组设备与其管理设备统称为一个群(cluster)。tier3设备以下接入的就是各个vm(virtualmachine),在图1中以en的形式表示,该图为了简化,一个tier3设备以下只画了2台vm,在实际应用中,一台tier3设备以下的vm可以达到几十台。tier3设备是hypervisor,可能是虚拟程序也可能是物理设备,假设用编号hn表示。tier2设备假设用编号tn表示。通常vm发出的报文到达tier3设备后,会进行虚拟扩展局域网(virtualextensiblelocalareanetwork,简称为vxlan)、通用的网络虚拟化封装(genericnetworkvirtualizationencapsulation,简称为geneve)、使用通用的路由封装的网络虚拟化(networkvirtualizationusinggenericroutingencapsulation,简称为nvgre)或者通用的udp封装(genericudpencapsulation,简称为gue)等等形式的封装,封装入虚拟网络标识后,再通过数据中心核心网络进行交互。在分层互联的网络架构下,除了点到点的数据中心内容同步或者备份外,还有大量广播,不确定的单播,组播(broadcast、unknownunicast、multicast,简称为bum)的需求。在三层或者三层加二层的实现方式里,bum流量如何在数据中心网络内部交互成为必须解决的问题。为了实现这些bum需求,协议无关组播(protocolindependentmulticast,简称为pim)组播技术被引入到了数据中心的内部组网中。但随着部署与数据中心业务的复杂化,pim组播技术遇到了很多问题。比如图1中的vm设备e1,与e8、e10、e14和e16同属于一个虚拟网络(一个虚拟网络可以用一个vni(virtualnetworkidentifier,虚拟网络标识)来表示),假设其vni为1,这个虚拟网络中需要互通bum流量。解决方案是对于每个vni建立全互联的组播树,即分别以各个tier3节点为根,建立到其他tier3节点的组播树。在这个例子中则是首先以h1为根,分配一个组播地址g1,由pim信令逐跳建立从h1到叶子节点h4、h5和h7、h8的组播树。其次,以h4为根,再分配一个组播地址g2,由pim信令逐跳建立从h4到叶子节点为h1、h5和h7、h8的组播树。对于h5和h7、h8,重复同样的流程,分配组播地址,并由pim协议逐跳建立组播树。假设分配的组播地址是g1~g5。由此在vm的bum流量通过tier3设备封装后,能够按照正确的组播树到达目的tier3设备,再由tier3设备根据报文的虚拟网络标识,转发给正确的vm。假设vm设备e2、e9、e11和e13属于同一个虚拟网络,其vni为2,这个虚拟网络中也需要互通bum流量,则同样的需要以各个tier3节点为根,建立到其他tier3节点的组播树。首先以h1为根,分配一个组播地址g6,由pim协议逐跳建立从h1到叶子节点h5、h6、h7的组播树。其次以h5为根,分配一个组播地址g7,由pim协议逐跳建立从h5到叶子节点h1、h6和h7的组播树。再分别以h6和h7为根建立组播树。从而完成该虚拟网络内部的bum流量转发。因此可以看到,在数据中心应用pim组播树时,存在组播地址管理复杂,管理方式僵化不灵活的特点。并且由于pim协议本身组播树建立的信令交互时间长,拓扑变化时组播树重新建立缓慢的缺点,造成数据中心的bum流量无法在组播技术下得到高效的转发。很多数据中心因此不愿使用组播技术,而是将bum流量还原成单播流量进行发送,也就是对同一条数据流,直接复制发送多条流量到多个目的地。比如同样是图1的例子,e1、e8、e10、e14、e16直接需要互通bum流量时,e1发送报文给h1后,h1复制4份单播报文,发送目的分别是h4、h5和h7、h8。这种方式下,同样的流量占用了大量的tier3、tier2以及tier1设备带宽,并且对于复制点入h1的性能也造成极大影响,甚至会影响到数据中心的正常运营。因此可以看到,数据中心因为特殊的网络架构和需求,对组播技术的要求很高,传统组播技术并不能满足其需要,并且存在复杂性高,难以管理的缺点。针对相关技术中的上述技术问题,目前还没有有效的解决方案。技术实现要素:本发明实施例提供了一种报文转发方法及装置,以至少解决相关技术中数据中心因为特殊的网络架构和需求,传统组播技术并不能满足其需要,并且存在复杂性高,难以管理的缺点的问题。根据本发明的一个实施例,提供了一种报文转发方法,包括:接收源设备发送的位索引显示复制bier报文;根据所述bier报文的报文头所携带的集标识si,向目的设备转发所述bier报文,其中,所述集标识si用于指示所述目的设备所在的群。可选地,接收源设备发送的位索引显示复制bier报文之前,所述方法还包括:对数据中心的汇聚设备和接入设备进行分群处理,并为每个群分配集标识si;根据分配的si确定各个所述目的设备的bfr-id的值,其中,所述bfr-id携带于所述bier报文的报文头中,所述目的设备包括:汇聚设备和接入设备。可选地,至少根据以下方式之一确定所述bfr-id的值:通过接收数据中心的控制器通过指定的数据模型下发的命令来确定;通过接收控制器通过路径计算单元扩展pce协议发送的命令来确定;通过接收所述控制器通过边界网关协议bgp扩展下发的命令来确定;通过接收所述控制器通过边界网关协议-路径状态扩展下发的命令来确定;通过接收所述控制器通过openflow协议扩展下发的命令来确定。可选地,所述方法还包括:至少根据目的设备所在群的集标识si,虚拟网络标识和bfr-id将bier报文转发至所述目的设备。可选地,将数据中心中实现leaf之间转发的设备支持根据si进行转发的能力,或数据中心中汇聚设备支持根据si进行转发的能力上报至所述控制器。根据本发明的另一个实施例,还提供了一种报文转发装置,包括:接收模块,用于接收源设备发送的位索引显示复制bier报文;转发模块,用于根据所述bier报文的报文头所携带的集标识si,向目的设备转发所述bier报文,其中,所述集标识si用于指示所述目的设备所在的群。可选地,所述装置还包括:处理模块,用于对数据中心的汇聚设备和接入设备进行分群处理;分配模块,用于为每个群分配集标识si;确定模块,用于根据分配的si确定各个所述目的设备的bfr-id的值,其中,所述bfr-id携带于所述bier报文的报文头中,所述目的设备包括:汇聚设备和接入设备。可选地,所述确定模块,还用于至少根据以下方式之一确定所述bfr-id的值:通过接收控制器通过指定的数据模型下发的命令来确定;通过接收所述控制器通过路径计算单元扩展pce协议发送的命令来确定;通过接收所述控制器通过边界网关协议bgp扩展下发的命令来确定;通过接收所述控制器通过边界网关协议-路径状态扩展下发的命令来确定;通过接收所述控制器通过openflow协议扩展下发的命令来确定。可选地,所述转发模块,还用于至少根据目的设备所在群的集标识si,虚拟网络标识和bfr-id将bier报文转发至所述目的设备。根据本发明的另一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行以上任一项所述的报文转发方法。通过本发明实施例,由于根据目的设备所在群的集标识si,向所述目的设备转发bier报文,进而解决了相关技术中,数据中心因为特殊的网络架构和需求,传统组播技术并不能满足其需要,并且存在复杂性高,难以管理的缺点的问题,实现了根据目的设备所在群的集标识si来转发bier报文,提高了数据中心的转发性能。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是相关技术中常见的数据中心的组网示意图;图2是根据本发明实施例的报文转发方法的流程图;图3是根据本发明实施例的报文转发装置的结构框图;图4是根据本发明实施例的报文转发装置的另一结构框图;图5为根据本发明优选实施例的报文转发方法的流程示意图;图6为根据本发明优选实施例的bier头的封装示意图;图7为根据本发明优选实施例的一个可选的bier转发示意图;图8为根据本发明优选实施例的另一个可选的bier转发示意图;图9为根据本发明优选实施例的报文转发方法的实施示意图;图10为根据本发明优选实施例的报文转发方法的一个可选的实施示意图;图11为根据本发明优选实施例的报文转发方法的一个可选的转发表示意图;图12为根据本发明优选实施例的报文转发方法的另一个可选的转发表示意图;图13为根据本发明优选实施例的报文转发方法的另一个可选的实施示意图;图14为根据本发明优选实施例的一个可选的bier头的封装示意图;图15为根据本发明优选实施例的报文转发方法的又一个可选的实施示意图(一);图16为根据本发明优选实施例的另一个可选的bier头的封装示意图;图17为根据本发明优选实施例的报文转发方法的又一个可选的实施示意图(二);图18为根据本发明优选实施例的报文转发方法的又一个可选的转发表示意图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。在数据中心里,通常采用的拓扑将网络设备分为两部分,骨干spine设备和leaf设备。leaf设备通常指和vm所在服务器相连的接入设备。spine是实现leaf之间转发的设备。本发明里提到的3级tier设备,tier3设备通常对应接入设备,也就是leaf设备;tier2设备通常对应汇聚设备,tier1设备是实现leaf之间转发的设备,spine设备可以包括tier2设备和tier1设备。在实际应用中,也可能出现tier2和tier3设备,也就是汇聚设备和接入设备集中在同一台设备上的情况,这种情况下tier1设备作为spine设备,leaf设备则为和vm所在服务器相连的接入设备。根据具体部署情况而不同。本发明实施例为了方便起见,直接用tiern来表示各级设备。实施例一在本实施例中提供了一种报文转发方法,图2是根据本发明实施例的报文转发方法的流程图,如图2所示,该流程包括如下步骤:步骤s202,接收源设备发送的位索引显示复制bier报文;步骤s204,根据bier报文的报文头所携带的集标识si,向目的设备转发bier报文,其中,集标识si用于指示目的设备所在的群。通过本发明实施例,由于根据目的设备所在群的集标识si,向所述目的设备转发bier报文,进而解决了相关技术中,数据中心因为特殊的网络架构和需求,传统组播技术并不能满足其需要,并且存在复杂性高,难以管理的缺点的问题,实现了根据目的设备所在群的集标识si来转发bier报文,提高了数据中心的转发性能。可选地,接收源设备发送的位索引显示复制bier报文之前,方法还包括:对数据中心的tier2设备和tier3设备进行分群处理,并为每个群分配集标识si;根据分配的si确定各个目的设备的bfr-id的值,其中,bfr-id携带于bier报文的报文头中,目的设备包括:汇聚设备,接入设备。可选地,至少根据以下方式之一确定bfr-id的值:通过接收数据中心的控制器通过指定的数据模型下发的命令来确定;通过接收控制器通过路径计算单元扩展pce协议发送的命令来确定;通过接收控制器通过边界网关协议bgp扩展下发的命令来确定;通过接收控制器通过边界网关协议-路径状态扩展下发的命令来确定;通过接收控制器通过openflow协议扩展下发的命令来确定。可选地,上述方法还包括:至少根据目的设备所在群的集标识si,虚拟网络标识和bfr-id将bier报文转发至目的设备。可选地,将数据中心中实现leaf之间转发的设备支持根据si进行转发的能力,或数据中心中汇聚设备支持根据si进行转发的能力上报至控制器。以上实施例一的技术方案还可以通过以下示例的技术方案来理解:主要包括以下两个步骤:步骤1),接收源设备发送的位索引显示复制bier报文,其中,所述bier报文中携带有目的设备的虚拟网络标识和位转发路由器标识bfr-id,所述源设备和所述目的设备位于数据中心;步骤2),根据目的设备所在群的集标识si,所述虚拟网络标识和所述bfr-id将bier报文转发至所述目的设备,其中,所述bier报文用于指示所述目的设备根据所述bier报文中的虚拟网络标识将所述bier报文发送至虚拟网络标识对应的虚拟机vm。可选地,接收源设备发送的位索引显示复制bier报文之前,所述方法还包括:对数据中心的汇聚设备和接入设备进行分群处理,并为每个群分配集标识si;根据分配的si确定bfr-id的值。可选地,根据目的设备所在群的集标识si,所述虚拟网络标识和所述bfr-id将bier报文转发至所述目的设备,包括:在预先配置的配置信息的触发下,根据目的设备所在群的集标识si,所述虚拟网络标识和所述bfr-id将bier报文转发至所述目的设备;或在数据中心的控制器下发的命令的触发下,根据目的设备所在群的集标识si,所述虚拟网络标识和所述bfr-id将bier报文转发至所述目的设备;或直接根据目的设备所在群的集标识si,所述虚拟网络标识和所述bfr-id将bier报文转发至所述目的设备。可选地,至少根据以下方式之一接收所述控制器下发的命令:接收所述控制器通过指定的数据模型下发的命令,接收所述控制器通过路径计算单元扩展pce协议发送的命令,接收所述控制器通过边界网关协议bgp扩展下发的命令,接收所述控制器通过边界网关协议-路径状态扩展下发的命令,接收所述控制器通过openflow协议扩展下发的命令。可选地,将所述bfr-id封装入所述bier报文的bier报文头中。通过上述技术方案,不仅在数据中心应用bier技术,还能使bier部署更为优化,能够将用户对bier技术的使用变得更为容易,并且转发性能更为高效,进而对组播技术和数据中心网络的发展都有非常重要的促进作用。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例二在本实施例中还提供了一种报文转发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是根据本发明实施例的报文转发装置的结构框图,如图2所示,该装置包括:接收模块30,用于接收源设备发送的位索引显示复制bier报文;转发模块32,用于根据bier报文的报文头所携带的集标识si,向目的设备转发bier报文,其中,集标识si用于指示目的设备所在的群。通过本发明实施例,由于根据目的设备所在群的集标识si,向所述目的设备转发bier报文,进而解决了相关技术中,数据中心因为特殊的网络架构和需求,传统组播技术并不能满足其需要,并且存在复杂性高,难以管理的缺点的问题,实现了根据目的设备所在群的集标识si来转发bier报文,提高了数据中心的转发性能。可选地,图4是根据本发明实施例的报文转发装置的另一结构框图,如图4所示,该装置除包括图3所示的所有模块外,还包括:处理模块34,用于对数据中心的tier2设备和tier3设备进行分群处理;分配模块36,用于为每个群分配集标识si;确定模块38,用于根据分配的si确定各个目的设备的bfr-id的值,其中,bfr-id携带于bier报文的报文头中,目的设备包括:tier2设备,tier3设备。可选地,所述确定模块38,还用于至少根据以下方式之一确定所述bfr-id的值:通过接收所述控制器通过指定的数据模型下发的命令来确定;通过接收所述控制器通过路径计算单元扩展pce协议发送的命令来确定;通过接收所述控制器通过边界网关协议bgp扩展下发的命令来确定;通过接收所述控制器通过边界网关协议-路径状态扩展下发的命令来确定;通过接收所述控制器通过openflow协议扩展下发的命令来确定。可选地,所述转发模块32,还用于至少根据目的设备所在群的集标识si,虚拟网络标识和bfr-id将bier报文转发至目的设备。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。在本发明实施例中,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行以上任一项所述的报文转发方法。为了更好的理解上述报文转发流程,以下结合优选实施例对上述技术方案进行详细说明。优选实施例1图5为根据本发明优选实施例的报文转发方法的流程示意图,如图5所示,包括:步骤s502,根据数据中心的群(cluster)来进行bfr-id的划分与分配。其中,群的含义是具有相同或者类似功能,或者相同地理位置的一组设备,由同一个管理设备进行管理,管理设备可以是tor(topofrack)设备,也可以是路由器网关设备,这一组设备与其管理设备统称为一个群(cluster)。对应本发明中,管理设备则对应的是tier2设备,其管理的设备则是tier3设备。其中,对于bfr-id的分配,可以通过在设备上直接配置的方式来进行,还可以通过网管系统或者控制器来进行分配。进一步的,通过网管系统或者控制器来分配bfr-id时,可以采用通过数据模型下发的方式,pce(pathcomputationelement,路径计算单元)扩展或者bgp(bordergatewayprotocol,边界网关协议)、bgp-ls(bgp-linkstate)、openflow扩展等协议方式,具体内容可以采用tlv封装形式。其中,每个群的需要分配bfr-id的设备即tier3设备,可以是物理的路由器或者交换机转发设备,也可以是虚拟的转发模块。步骤s504,tier3设备在发送bum流量时,为报文封装bier头。其中,tier3设备根据虚拟网络标识将对应目的tier3设备的bfr-id封入bier头。其中,目的tier3设备属于的群有多个时,封装多个不同si的bier报文进行发送。步骤s506,骨干设备(至少包括tier1设备,还可以包括tier2设备)可以直接根据biersi进行转发。其中,骨干设备可以根据配置规定,或者控制器下发的命令,直接根据报文的biersi进行转发。其中,骨干设备之间可以进行biersi转发能力通告,或者与控制器之间进行biersi转发能力的通讯。进一步的,骨干设备之间进行biersi转发能力通告时,可以通过bgp/ospf/isis/babel等协议扩展方式进行。进一步的,骨干设备可以上报biersi转发能力的到控制器设备,可以采用通过数据模型下发的方式,pce(pathcomputationelement)扩展或者bgp(bordergatewayprotocol)、bgp-ls(bgp-linkstate)、openflow扩展等协议方式,具体内容可以采用tlv封装形式。进一步的,控制器下发biersi转发指令到骨干设备时,可以采用通过数据模型下发的方式,pce(pathcomputationelement)扩展或者bgp(bordergatewayprotocol)、bgp-ls(bgp-linkstate)扩展等协议方式,具体内容可以采用tlv封装形式。步骤s508,目的tier3设备收到bier报文时,去掉bier头,并根据虚拟网络标识转发给相应的vm。优选实施例2bier(bitindexedexplicitreplication,位索引显式复制)是一种组播数据转发技术,该将网络边缘的节点都只用一个bit位来表示,组播流量在中间网络传输,额外封装一个特定的bier头,这个报文头以bit位串的形式标注了该组播流的所有目的节点,中间网络转发节点根据bit位进行路由,保障流量能够发送到所有目的节点。中间节点转发设备事先通过内部协议,比如三层网络中的ospf(ospfopenshortestpathfirst,开放式最短路径优先)协议,isis(intermediatesystem-to-intermediatesystem,中间系统到中间系统)协议、bgp(bordergatewayprotocol)或者babel协议等来泛洪和发送节点信息,形成用于指导bier转发的bift(bitindexforwardingtable)表,在收到封装bier头的流量时,依据bift来完成报文到目的节点的转发。bier这种数据面转发技术因为没有组播树的建立问题,消除了组播树建立的时延,并且收敛速度同ospf和isis协议,比原来的组播树重建降低了巨大的时延。bier头的封装如图6所示,bier头封装里的bitstring即位串,上面标明了所有的目的节点bfr-id信息,这个位串是变长的,由转发bsl决定,假设bsl设置为64,则bier头中的位串长度为64,假设封装的目的节点bfr-id信息超过64,则si信息递增。比如si为1时,位串仍然是64位长度,但封装的bfr-id信息是65~128,以此类推。假设bsl是128,则si为0时,位串即可表示1~128的bfr-id。bier技术因其巨大的优势,对于数据中心的场景,可以部署在tier2和tier1设备上,如图7所示。tier2设备作为bier域的边缘设备,所有的tier2设备都会配置或者分配一个bfr-id(bit-forwardingrouteridentifier),tier2与tier1的设备都支持bier转发,能够完成tier2设备的点到多点发送,比如同样的例子,e1与e8,e10和e14、e16同属于一个虚拟网络,互相之间需要交互bum流量。具体转发流程如图8所示,该流量从e1发出,经过h1,到达t1时,由t1封装bier头目的地为t2和t3,通过tier2和tier1设备之间的bier转发,发送到t2和t3。t2和t3再转发给h4、h5、h7和h8设备。各tier3设备再转发给e8,e10和e14、e16几个vm。tier2与tier1设备中间的bier转发,无需分配组播组,也不需要pim信令建立组播树。因此bier技术在极大缓解单播重复发送所消耗巨大带宽的同时,还避免复杂的组播地址管理和传统组播pim信令交互,具有明显的优势。但这样的部署方式同时带来了一个问题,因为bier域的边缘设备部署到tier2层次,tier3的设备不属于bier域,因此tier3的设备看不到需要接收bum流量的bier目的地,只能发送报文到tier2设备上之后,通过特定的策略转换机制,由tier2设备将报文进行bier封装并转发,即bier报文的目的设置为t2和t3。到达t2和t3后,去掉bier封装需要再通过策略或者其他方式,才能转发给连接需要接收bum流量tier3设备h4、h5和h7、h8,再由tier3设备转发给vm。因此可以看出,因为tier3设备并不能直观的看到其他接收设备,tier2设备上必须存在特殊的策略转换处理流程,才能进行正确转发。但是tier2设备作为数据中心网络的核心部件,策略处理流程过多,可能会极大的影响tier2设备的处理效能。因此bier部署将tier2设备作为边缘设备存在策略管理复杂的问题,但是bier技术无法直接部署到tier3设备上,因tier3设备的数量众多,并且由于tier3设备的性质,普通的bier部署方法并不适用,可能导致不能优化网络管理的问题,并且在网络扩容时,对新增tier3设备也存在管理复杂等问题。对tier3的设备,从h1到hn,如果使用传统分配方法的话,则是顺序分配bfr-id为1、2、3到n。这种分配方式体现不出tier3设备的位置信息,也体现不出具有相同功能或者其他类似点的tier3设备信息。当网络进行升级时,增加vm的同时也会增加对应的tier3设备,如果不重新规划bfr-id,继续为新增tier3设备顺序分配bfr-id的话,整个网络的bfr-id分布混乱,如果要重新规划bfr-id,又带来用户额外管理开销。通过本发明实施例的技术方案,引入根据群来进行bfr-id划分的方式,即每个群内的tier3设备,都在同样的biersi(setidentifier,集标识)中,si的划分以网络中的边缘设备总数,也就是这里的tier3设备数量,以及该网络所使用的bsl长度为依据,比如在bsl长度为64时,si为0对应的bfr-id范围是从1~64;si为1对应的bfr-id范围是65~128;si为3对应的bfr-id范围是129~256,以此类推。假如这个数据中心的tier3设备数量总共有1000台,那么可以分成16个群,si从0一直分到15。以图9所示为例,为了描述方便,这个数据中心网络进行简化处理,并假设统一采用bsl(bitstringlength,位串长度)64来进行bier报文封装转发。各tier设备已经形成bier转发表。tier2设备t1及其所管辖的tier3设备包括h1、h2和h3,都在同一个si0中,为其分配的bfr-id分别为1,2,3。对于tier2设备t2及其管辖的tier3设备h4、h5和h6,则分配在另一个si1中,即为其bfr-id分别为65、66和67。对于tier2设备t3及其管辖的tier3设备h7、h8和h9,也分配在同一个si2中,即为其分配bfr-id分别为129、130、131。也就是以64作为步进范围进行区分。这样在后续网络进行升级时,tier3设备增加,只要没有超过bsl的步进范围,bfr-id直接在原来分配的基础上增加即可,比如t1所管辖的tier3设备又增加了一台h20,则可以分配bfr-id为4。如果某个数据中心的vm设备数量众多,相应tier3设备也数量众多,并采用bsl128来进行传输,则可以将每个群管理的tier3设备看作128台以内,即将t1设备管辖的tier3设备,分配bfr-id值为1~128,对t2设备管辖的tier3设备,分配bfr-id值为129~256,以此类推。这样所有设备分配的bfr-id值既可以包含具体的位置或者相同属性信息,即属于哪个群;又可以很容易的适应网络升级。假设现在vm设备e1、e8、e10、e14和e16属于同一个虚拟网络,互相之间有bum流量需要进行通讯,本数据中心采用的bier转发bsl为64,根据本发明的bfr-id分配原则,给相关的tier3设备h1、h4、h5、h7和h8分配的bfr-id分别为1、65、66、129和130。vm之间互通的bum报文将通过bier转发方式到达目的tier3设备并最终到达相应的vm设备。具体的报文转发流程如图10所示。假设该虚拟网络的标识为vni9,在s1发送二层或者三层报文到达h1时,h1根据该vm属于的虚拟网络,给报文打上虚拟网络标识,虚拟网络标识的封装可以是vxlan、geneve等方式;然后再封装bier头,因为bier转发bsl设置为64,根据目的tier3设备的bfr-id,报文复制为两个,第一个bier报文的bier头si为1,目的位串封装1和2,对应h4(65)和h5(66)。第二个bier报文头的si为2,目的位串封装1和2,对应h201(129)和h202(130)。两个报文经过tier2和tier1设备的转发(因为这里的tier2和tier1设备只根据bier头进行转发,不看内部封装的报文,因此只用bier报文来指代)时,假设这里的tier1设备都从控制器收到通过bgp-ls扩展下发的根据biersi进行转发的指令,tier1设备上的转发表类似图12所示,可以清晰的看出该表十分简单,对于si为0的情况,下一跳是tier2设备中的t1;对于si为1的情况,下一跳是t2,对于si为2的情况,下一跳是t3。需要注意的是,具有biersi转发能力的节点可以不止是tier1设备,tier2设备同样可以具有该能力,尤其是作为从tier3设备收到流量准备转发入骨干网络的入口tier2节点,同样可以生成类似tier1的biersi转发表,如图11所示,从而可以快速而准确的转发报文给tier1设备。因为所有的tier2设备都可能作为骨干网络的入口设备,所以所有的tier2设备都可以具有biersi能力。同样,也可以通过bgp/ospf/isis/babel等协议扩展与其他节点交互能力;也可以与控制器进行能力上报及接受使能指令。这里假设从控制器接受能力使能指令,开启依据biersi进行转发的功能。在该实施例中,tier2设备t1收到封装为si为1和2的两个bier报文后,因为已经使能直接根据biersi转发,因此根据图11所示的si转发表,不看bier头中的目的位串,而是直接根据si为1的情况,将第一个报文直接发往骨干节点,tier1的设备b;根据si为2的情况,将第二个报文直接发往设备c。骨干tier1设备b收到报文后,假设其转发表与图12一致,该节点因为使能直接根据biersi进行转发的功能,因此直接根据si为1将报文转发给t2设备。同理,c设备收到报文后,也直接根据biersi转发表将报文发往t3设备。tier1设备在开启了根据biersi进行转发的功能时,也可以保留按照传统bier转发表进行转发的能力,尤其在网络中还有其他bier转发设备存在的情况下。tier2的设备上除了可以有biersi转发表外,传统的bier转发表仍然存在,因此t2和t3设备根据自己的bier转发表,发送相应报文给h4、h5、h7和h8设备。到达目的tier3设备后,h4、h5、h7、h8将bier头去除,根据虚拟网络标识确定目的vm并转发报文给相应vm设备e8、e10、e14和e16。同样的,假设vm设备e8也需要发送bum流量到该虚拟网络的其他设备,在报文从e8发送到h4后,h4先采用vxlan或者geneve等方式进行虚拟网络标识的封装,再根据同一个虚拟网络的目的设备信息进行bier报文封装。在这个例子中,封装三个bier报文,第一个bier报文头是si为0,目的位串封装1,对应h1(1);第二个bier报文头是si为1,目的位串为2,对应h5(66);第三个bier报文头是si为2,目的位串封装1和2,对应h201(129)和h202(130)。同理对于e10、e14和e16也是同样的封装形式和处理流程。优选实施例3如图13所示,对于bfr-id的分配,除了直接在tier3设备上配置之外,还可以通过网管系统或者控制器下发的方式进行。因为在数据中心采用控制器是很常见的做法,因此假设该数据中心有控制器设备,该控制器设备负责对tier3的设备,根据本发明所述的分配方法进行bfr-id分配。控制器下发bfr-id到达tier3设备,可以通过数据模型下发的方式,pce扩展或者bgp、bgp-ls扩展等协议方式,具体内容可以采用tlv封装形式,类似图14所示,本发明优选实施例不做限定。如图15所示,对于骨干节点的biersi转发能力,除了用配置的方式使能外,也可以采用控制器交互的方式,骨干节点可以将自己支持biersi转发能力上报给控制器。上报格式如图16所示。控制器可以根据节点能力情况下发使能biersi转发的指令,下发指令格式也可采用类似图16的方式。也就是说骨干节点除默认支持bier普通转发,也就是根据bitstring进行转发外,可选支持直接根据biersi转发。对于某些网络,控制器不直接控制所有骨干设备时,骨干设备可以先通过互相之间的协议交互,比如ospf协议交互时,携带自身支持的biersi转发能力,扩展方式同样可以是tlv形式,如图16所示,这样控制器可以只通过一台设备,假设为t1设备,获得所有骨干设备的拓扑及其biersi转发能力,通过的方式可以是bgp-ls扩展方式,在t1设备通过bgp-ls上报ospf协议拓扑时,将其携带的biersi转发能力扩展一同上报。假设本数据中心网络的bier封装bsl为64,控制器对h1~h9设备,分别分配bfr-id为1,2,3,65,66,67,129,130和131,即让h1~h3在si0中,h4~h6在si1中,h7~h9在si2中。如图13所示,假设vm设备e3、e7和e11同属于一个虚拟网络,有交互bum流量的需求,在e3发出报文到达h2时,h2根据e3设备的接入封装其vni信息,假设为3,虚拟网络标识的封装可以是vxlan、geneve等方式;再根据目的vm分别接入在设备h4和h6的情况,封装一个bier报文,该bier报文头的目的设置为包含h4和h6的bfr-id,即封装bier报文头为si1,位串信息为1和3,分别对应h4(65)和h6(67)。h2设备根据bier转发表,将报文发送到t1设备,如果t1设备已通过配置使能biersi转发功能,则可以直接根据si为1将报文发送到b设备,如果不支持biersi转发功能,或者没有使能该功能,则同样可以根据bier转发表和bitstring转发报文到b设备。b设备在使能si转发功能时,可以直接根据si信息转发报文到t2设备,如果b设备不能支持si转发功能,或者没有使能该功能,则也可以根据传统的bier表项,根据bitstring转发报文到t2设备。t2设备根据报文封装的bitstring信息,转发报文到tier3设备h4和h6。h4和h6去掉bier头后,根据报文封装的vni信息,转发给相应的vm设备e7和e11。优选实施例4如图17所示网络,假设tier2设备所连tier3设备数量较多,一般在70~80台,假设本数据中心采用的转发bsl是64位,而非128位,这时每个cluster内的设备,会在多个si中。假设这里采用直接配置bfr-id的方式,t1设备与t2、t3设备所管辖的群,分别对应bfr-id范围为1~128,129~256,257~384。具体分配方式为,h1、h2的bfr-id分别为1,2,以此类推,h70的bfr-id为70。h101和h102的bfr-id分别为129,130。以此类推,h170的bfr-id为198。h201和h202的bfr-id分别为257,258。以此类推,h280的bfr-id为336。假设与vm设备e1同属于一个虚拟网络的vm设备分别接入到h101,h102,h170,h201和h202,在进行bum流量的发送时,流程如图10所示。假设该虚拟网络的标识为10,在s1发送二层或者三层报文到达h1时,h1根据该vm属于的虚拟网络,给报文打上虚拟网络标识,虚拟网络标识的封装可以是vxlan、geneve等方式;然后再封装bier头,因为bier转发bsl设置为64,根据目的tier3设备的bfr-id,报文复制为三个,第一个bier报文的bier头si为2,目的位串封装1和2,对应h101和h102。第二个bier报文头的si为3,目的位串封装6,对应h170。第三个bier报文头的si为4,目的位串封装1和2,对应h201和h202。h1根据自身的bier转发表,将报文发送到t1设备,假设t1设备没有使能biersi转发能力,t1设备根据bier转发表将报文发送到b设备和a设备;假设骨干网络支持biersi转发能力,a设备和b设备上的si转发表类似图18。因此a设备和b设备根据biersi转发表,将报文发送给t2和t3设备,t2和t3设备再根据自身的bier转发表,将报文发送给各tier3设备,h101、h102、h170、h201和h202将bier头去除,根据虚拟网络标识确定目的vm并转发报文给vm设备。对于接入h101的vm设备,发出的bum报文情况也是同理,报文到达h101后,根据目的tier3设备情况,封装多个bier报文。第一个bier报文头的si为0,目的位串封装1,对应h1;第二个报文的bier头si为2,目的位串封装2,对应h102;第三个bier报文头的si为3,目的位串封装6,对应h170;第四个报文头si为4,目的位串封装1和2,对应h201和h202。报文经过bier转发之后,到达目的tier3设备,tier3设备去掉bier头后,根据虚拟网络标识转发给相应的vm设备。对于h102,h170、h201、h202发送bum流量也是同理的封装形式和处理流程。通过上述各个实施例的技术方案,不仅能在数据中心应用bier技术,并能使bier部署更为合理化,能够将用户对bier技术的使用变得更为容易,转发效能更为高效,对组播技术和数据中心网络的发展都有非常重要的促进作用。本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:s1,接收源设备发送的位索引显示复制bier报文;s2,根据所述bier报文的报文头所携带的集标识si,向目的设备转发所述bier报文,其中,所述集标识si用于指示所述目的设备所在的群。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:s1,对数据中心的汇聚设备和接入设备进行分群处理,并为每个群分配集标识si;s2,根据分配的si确定各个所述目的设备的bfr-id的值,其中,所述bfr-id携带于所述bier报文的报文头中,所述目的设备包括:汇聚设备和接入设备。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1