一种获取对应关系的方法和路由设备与流程

文档序号:17585434发布日期:2019-05-03 21:16阅读:177来源:国知局
一种获取对应关系的方法和路由设备与流程
本发明涉及通信领域,特别是涉及一种获取对应关系的方法和路由设备。
背景技术
:一般而言,在网络中进行转发的多个报文(packet)属于一种或多种类型的业务流。举例来说,不同类型的业务流,需要通过不同的业务功能节点(servicefunction,sf)进行处理。现有技术对业务报文进行处理的流程一般为,当网络接收到用户发送的报文时,分类器根据预先设定的分类规则确定出所述报文所属的业务流的类型。然后根据确定出的业务流的类型,选择合适的业务链对所述报文进行处理。以图1为例,图1为转发业务报文的网络示意图,图1所示的网络包括路由设备1、与路由设备1相连的sf1、sf2和sf3、路由设备2、与路由设备2相连的sf4和sf5。当报文到达分类器时,所述分类器确定出所述报文所属的业务流的类型,假定该类型的业务流需要依次通过sf1和sf4进行处理,所述分类器确定所述业务报文经过的路径报文为从分类器→路由设备1→sf1→路由设备1→路由设备2→sf4→路由设备2。所述分类器为所述报文添加业务链首部(servicechainheader)得到修改后的报文。所述业务链首部包含确定出的所述业务链的标识(identification,id)。分类器转发所述修改后的报文使之依次经过所述业务链上的所有节点,完成对所述修改后的报文的处理。路由设备1和路由设备2为了能够转发业务链上的修改后的报文,不仅需要知道sf的id和业务链id的对应关系,还需要知道在所述业务链上的下一跳sf的id和所述下一跳sf所连接的网络地址信息。也就是说,每个路由设备都需要建立转发表项,该转发表项包括所述业务链的id、sf的id和相连路由设备的网络地址信息三者之间的对应关系。所述转发表项均由控制器统一配置及下发。而所述控制器在网络中的主要功能是用于监控各个sf与业务链之间的关系,并不会关注路由设备的相关信息。但是为了给路由设备配置转发表项,所述控制器必须额外获取路由设备的网络地址信息来配置所述转发表项,由此导致所述控制器在为所述路由设备配置所述转发表项时需要额外消耗网络资源且为所述控制器带来额外数据处理的负担。技术实现要素:为了解决上述技术问题,本发明实施例提供了一种获取对应关系的方法和路由设备,不再需要所述控制器额外获取路由设备的网络地址信息。第一方面,本发明实施例提供了一种处理修改后的报文的方法,包括:第一路由设备获取第二路由设备发送的第一报文,所述第一报文携带第一对应关系,所述第一对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的对应关系,所述第二路由设备与所述第一路由设备相连;所述第一路由设备建立转发表项,所述转发表项包括所述第一对应关系,所述转发表项中的所述第二路由设备的网络地址信息表示所述第一路由设备在业务链上的下一跳路由设备的地址信息;所述第一路由设备接收修改后的报文并确定所述修改后的报文的目的sfid;所述第一路由设备根据所述目的sfid查询所述转发表项,从与所述目的sfid匹配的所述第一对应关系中获得所述第二路由设备的网络地址信息,确定所述目的sfid所标识的sf为所述第二路由设备所连接的sf;所述第一路由设备根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文。在第一方面的第一种可能的实现方式中,所述方法还包括:所述第一路由设备获取第二对应关系,所述第二对应关系为所述第一路由设备的网络地址信息和所述第一路由设备所连接的sf的id的对应关系;所述第一路由设备向与所述第一路由设备相连的第三路由设备发送第二报文,所述第二报文中携带所述第二对应关系。结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:所述第一路由设备向与所述第一路由设备相连的第三路由设备发送第三报文,所述第三报文中携带所述第一对应关系,所述第三路由设备和所述第二路由设备不同。结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一路由设备获取的所述第一报文中还携带第三对应关系,所述第三对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所处网络的网络类型的对应关系,所述网络类型包括udp网络或gre网络;所述第一路由设备建立的所述转发表项中还包括所述第三对应关系。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一路由设备根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文,包括:所述第一路由设备根据所述第二路由设备的网络地址信息,并且使用对应所述第二路由设备所处网络的网络类型的转发隧道向所述第二路由设备转发所述修改后的报文,所述第二路由设备所处网络的网络类型的转发隧道是根据所述第三对应关系确定的。第二方面,本发明实施例提供了一种处理修改后的报文的装置,包括:接收单元,用于获取第二路由设备发送的第一报文,所述第一报文携带第一对应关系,所述第一对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的对应关系,所述第二路由设备与所述处理修改后的报文的装置相连;处理单元,用于建立转发表项,所述转发表项包括所述第一对应关系,所述转发表项中的所述第二路由设备的网络地址信息表示所述处理修改后的报文的装置在业务链上的下一跳路由设备的地址信息;所述接收单元,还用于接收修改后的报文并确定所述修改后的报文的目的sfid;所述处理单元,还用于根据所述目的sfid查询所述转发表项,从与所述目的sfid匹配的所述第一对应关系中获得所述第二路由设备的网络地址信息,确定所述目的sfid所标识的sf为所述第二路由设备所连接的sf;发送单元,用于根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文。在第二方面的第一种可能的实现方式中,所述接收单元,还用于获取第二对应关系,所述第二对应关系为所述处理修改后的报文的装置的网络地址信息和所述处理修改后的报文的装置所连接的sf的id的对应关系;所述发送单元,还用于向与所述处理修改后的报文的装置相连的第三路由设备发送第二报文,所述第二报文中携带所述第二对应关系。结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述发送单元,还用于向与所述处理修改后的报文的装置相连的第三路由设备发送第三报文,所述第三报文中携带所述第一对应关系,所述第三路由设备和所述第二路由设备不同。结合第二方面或者第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述接收单元获取的所述第一报文中还携带第三对应关系,所述第三对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所处网络的网络类型的对应关系,所述网络类型包括udp网络或gre网络;所述处理单元建立的所述转发表项中还包括所述第三对应关系。结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述发送单元,还用于根据所述第二路由设备的网络地址信息,并且使用对应所述第二路由设备所处网络的网络类型的转发隧道向所述第二路由设备转发所述修改后的报文,所述第二路由设备所处网络的网络类型的转发隧道是根据所述第三对应关系确定的。由上述技术方案可以看出,用于路由设备之间转发修改后的报文的所述转发表项不需要由控制器额外为第一路由设备配置并下发,第一路由设备可以获取与所述第一路由设备相连的第二路由设备发送的第一报文,获取所述第一报文携带的所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的第一对应关系,并建立包括所述第一对应关系的所述转发表项。由此当所述第一路由设备需要向所述第二路由设备转发目的sfid为所述第二路由设备所连接的所述sf的id的修改后的报文时,可以查询所述转发表项,通过匹配所述第一对应关系获得所述第二路由设备的网络地址信息来完成转发。从而节约了网络资源,简化了建立所述转发表项的过程。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为转发修改后的报文的网络示意图;图2为本发明实施例提供的一种处理修改后的报文的方法的流程图;图3为本发明实施例提供的一种转发修改后的报文的网络示意图;图4为本发明实施例提供的一种建立转发表项的方法的流程图;图5为本发明实施例提供的一种建立转发表项的方法的流程图;图6为本发明实施例提供的一种处理修改后的报文的装置的结构图;图7为本发明实施例提供的一种第一路由设备的硬件结构示意图。具体实施方式为了能够更清楚的描述本发明实施例中的技术方案,先对如何在业务链中转发修改后的报文进行描述。以所示图1为例,报文的业务链为依次经过sf1和sf4,业务链id为55,具体的一种实现方式是,所述分类器通过分析报文所包含的业务流的类型,确定所述报文经过的路径为从分类器→路由设备1→sf1→路由设备1→路由设备2→sf4→路由设备2,所述分类器为所述报文添加业务链首部得到修改后的报文,所述业务链首部中可以包括所述业务链id和sfid,所述sfid可以是源sfid也可以使目的sfid,当为目的sfid时,即是所述业务链的sf1的id,所述目的sfid是指当前修改后的报文的下一跳sf的id。所述修改后的报文到达所述路由设备1时,所述路由设备1根据所述业务链id以及sf1的id将所述修改后的报文发送到所连接的sf1。在sf1对所述修改后的报文进行处理后,所述修改后的报文被返回至所述路由设备1。所述路由设备1通过所述业务链id确定出下一跳sf4的id,通过所述业务链id和sf4的id确定对应的转发表项,匹配出所述sf4对应的路由设备2的网络地址信息。所述路由设备1根据所述路由设备2的网络地址信息将所述修改后的报文向所述路由设备2发送。所述转发表项中包括业务链id、sfid和路由设备的网络地址信息三者之间的对应关系,可以如表1所示:业务链idsfid下一跳sf所连接路由设备的网络地址信息55sf1id路由设备1的网络地址信息55sf4id路由设备2的网络地址信息表1控制器可以负责为路由设备配置并下发所述转发表项,但是所述控制器需要额外消耗网络资源获取路由设备的网络地址信息,并带来额外的数据处理负担。在本发明实施例中,用于路由设备之间转发修改后的报文的所述转发表项可以不需要由控制器额外为第一路由设备配置并下发,第一路由设备可以通过与所述第一路由设备相连的第二路由设备发送的第一报文,获取所述第一报文携带的所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的第一对应关系,并建立包括所述第一对应关系的所述转发表项。由此当所述第一路由设备需要向所述第二路由设备转发目的sfid为与所述第二路由设备连接的所述sf的id的修改后的报文时,可以查询所述转发表项,通过匹配所述第一对应关系获得所述第二路由设备的网络地址信息来完成转发。从而节约了网络资源,简化了建立所述转发表项的过程。所述第一路由设备除了可以根据所述第二路由设备发送的第一报文建立针对所述第二路由设备的所述转发表项以外,还可以通过第二报文将第二对应关系发送给相连的第三路由设备,所述第二对应关系包括与自身链接的sf的id和自身网络地址信息的对应关系。所述第三路由设备可以根据所述第二报文中第二对应关系建立转发表项,所述转发表项可以理解为针对所述第一路由设备的。所述第一路由设备还可以将从所述第二路由设备获取所述第一对应关系通过第三报文发送给所述第三路由设备,使得所述第三路由设备还可以建立转发表项,所述转发表项可以理解为针对所述第二路由设备的。通过这种在路由设备之间扩散sfid和所连接路由设备的对应关系的方式,使得路由设备不仅可以获取相连路由设备的网络地址信息和与所述相连路由设备连接sf的id的对应关系,还可以获取网络拓扑中连接的其他路由设备的网络地址信息和与所述其他路由设备连接sf的id的对应关系,并以此建立针对其他路由设备的转发表项,提高了路由设备在网络拓扑中的兼容性和转发修改后的报文的能力。同时,所述第一路由设备接收的所述第一报文中还可以包括第三对应关系,所述第三对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所在网络的网络类型的对应关系,使得所述第一路由设备在建立针对所述第二路由设备的所述转发表项中还包括所述第三对应关系。当所述第一路由设备向所述第二路由设备转发修改后的报文时,可以选择所述第二路由设备的网络类型,比如说用户数据报协议(userdatagramprotocol,udp)网络或通用路由封装(genericroutingencapsulation,gre)网络,对应的隧道转发所述修改后的报文,进一步提高了修改后的报文转发的效率。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2为本发明实施例提供的一种处理修改后的报文的方法的流程图。如图2所示的方法包括如下内容。s201:第一路由设备获取第二路由设备发送的第一报文,所述第一报文携带第一对应关系,所述第一对应关系包括所述第二路由设备的网络地址信息和与所述第二路由设备连接的sf的id的对应关系,所述第二路由设备与所述第一路由设备相连。这里需要说明的是,sf与路由设备连接的这种连接关系可以参阅如图1所示的连接关系,如图1所示,sf1、sf2和sf3均与路由设备1连接,sf4和sf5均与路由设备2连接,sf与路由设备连接的这种连接关系不能理解为sf1与路由设备2相连接,sf与路由设备连接的这种连接关系在本领域中也可以被称为附着。当一个sf与所述第二路由设备建立连接,所述第二路由设备可以通过在所述第二路由设备和所述sf上交互的发现协议报文或者握手协议报文获取所述第二路由设备连接所述sf的所述第二路由设备接口的接口信息和所述sf的id的对应关系。可选的,所述第二路由设备一般将sfid和连接所述sf的所述第二路由设备接口的接口信息间的对应关系保存在本地sf附着表中。假设所述第二路由设备共连接了三个sf,这三个sf的id分别为sf1、sf2和sf3,那么所述第二路由设备的所述本地sf附着表可以如表2所示:表2在所述第二路由设备准备发送所述第一报文时,所述第二路由设备可以从所述本地sf附着表中提取出与所述第二路由设备连接的三个sf的id,确定所述与所述第二路由设备连接的三个sf的id与所述第二路由设备的网络地址信息的第一对应关系,再通过所述第一报文携带所述第一对应关系。所述第二路由设备的网络地址信息可以是用于标识所述第二路由设备的网络地址,也可以是用于标识所述第二路由设备连接其他路由设备的网络接口的网络地址,所述网络地址可以是ip地址、mac地址等,还可以是所述第二路由设备与所述第一路由设备建立的转发隧道的隧道端口地址,比如说gre隧道地址、udp端口地址等。s202:所述第一路由设备建立转发表项,所述转发表项包括所述第一对应关系,所述转发表项中的所述第二路由设备的网络地址信息表示所述第一路由设备在业务链上的下一跳路由设备的地址信息。假设所述第二路由设备共连接了三个sf,这三个sf的id分别为sf1、sf2和sf3,那么所述第一路由设备建立的所述转发表项可以如表3所示:sfid与sf连接的路由设备的网络地址信息sf1第二路由设备的网络地址信息sf2第二路由设备的网络地址信息sf3第二路由设备的网络地址信息表3通过s202,所述第一路由设备建立起所述转发表项,所述转发表项可以理解为针对所述第二路由设备的。当所述第一路由设备需要向所述第二路由设备转发修改后的报文时,可以通过查询所述转发表项确定出所述第二路由设备的网络地址信息。接下来将通过所述第一路由设备使用所述转发表项转发修改后的报文来进一步对所述转发表项进行说明。s203:所述第一路由设备接收修改后的报文并确定所述修改后的报文的目的sfid。这里需要说明的是,本发明实施例中提到的所述修改后的报文主要是指被添加了业务链首部、并在业务链(servicechain)中转发的报文。接下来将通过几种转发修改后的报文的情况来描述所述第一路由设备如何确定所述修改后的报文的目的sfid,图3为本发明实施例提供的一种转发修改后的报文的网络示意图,如图3所示,包括分类器、路由设备a、b和c、每个路由设备分别连接两个sf,共六个sf分别为sf1至sf6。第一种转发修改后的报文的情况:假设分类器发出的修改后的报文需要通过的路径包括:路由设备a→sf1→路由设备a→路由设备b→sf3→路由设备b。假设所述路由设备a为所述第一路由设备,所述路由设备b为所述第二路由设备。所述修改后的报文从所述分类器发送到所述路由设备a时,所述修改后的报文的业务链首部中包括业务链id和sf1的id。所述路由设备a上还具有针对所述业务链id的sf转发表项,所述sf转发表项中包括业务链id和sf的对应关系。假设所述业务链id为100,则所述sf转发表项可以如表4a所示,当目的sfid为sf1时,与其对应的源sfid在表4a中没有指出。sf1是修改后的报文需要通过的所述路径上的第一个sf,因此修改后的报文在到达sf1之前还没有被sf处理过,因此没有源sfid,在其他可能的实现方式中,也可以将与所述目的sfid为sf1时对应的源sfid设定为预置的特定标识来表示。业务链id源sfid目的sfid100sf1100sf1sf3表4a所述路由设备a将所述修改后的报文发送至sf1,所述路由设备a接收从所述sf1返回的所述修改后的报文。此时所述修改后的报文的业务链首部中包括业务链id:100和源sfid:sf1,所述第一路由设备通过查询如表4a所示的所述sf转发表项确定下一跳sfid也就是目的sfid为sf3。第二种转发修改后的报文的情况:假设分类器发出的修改后的报文需要通过的路径包括:路由设备a→路由设备b→sf3→路由设备b。假设所述路由设备a为所述第一路由设备,所述路由设备b为所述第二路由设备。所述路由设备a上具有sf转发表项,假设业务链id为110,则所述sf转发表项为如表4b所示,当目的sfid为sf3时,与其对应的源sfid在表4a中没有指出,sf3是修改后的报文需要通过的所述路径上的第一个sf,因此修改后的报文在到达sf3之前还没有被sf处理过,因此没有源sfid:业务链id源sfid目的sfid110sf3表4b所述修改后的报文从所述分类器发送到所述路由设备a时,所述修改后的报文的业务链首部中包括业务链id和sf3的id,所述路由设备a可以直接通过所述业务链首部中包括的sf3id以及所述表4b确定所述修改后的报文的目的sfid。还需要注意的是,图3所示的网络拓扑结构只是一种举例,并不是限定所述网络拓扑结构只包括三个路由设备,也不是限定路由设备之间连接关系只能是如图3所示的链状相连,也可以是网状结构等,本发明对路由设备形成的网络拓扑结构中的路由设备个数和连接关系不进行限定。s204:所述第一路由设备根据所述目的sfid查询所述转发表项,从与所述目的sfid匹配的所述第一对应关系中获得所述第二路由设备的网络地址信息,确定所述目的sfid所标识的sf为所述第二路由设备所连接的sf。以图3为例,所述路由设备a(也就是所述第一路由设备)根据所述目的sfid:sf3查询所述转发表项,所述转发表项如表5所示:sfid与sf连接的路由设备的网络地址信息sf3路由设备b的网络地址信息sf4路由设备b的网络地址信息表5从与所述sf3匹配的所述第一对应关系中获得所述路由设备b(也就是所述第二路由设备)的网络地址信息,由此确定sf3(所述目的sfid)为所述第二路由设备所连接的sf中的一个sf的id。s205:所述第一路由设备根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文。在路由设备中执行转发业务链的修改后的报文功能的可以是业务转发实体(serviceforwardingentities,sfe)。由与图2对应的实施例可以看出,用于路由设备之间转发修改后的报文的所述转发表项不需要由控制器额外为第一路由设备配置并下发,第一路由设备可以通过相连的第二路由设备发送的第一报文获取所述第一对应关系,并建立包括所述第一对应关系的所述转发表项。由此当所述第一路由设备需要向所述第二路由设备转发目的sfid为所述第二路由设备所连接的所述sf的id的修改后的报文时,可以查询所述转发表项,通过匹配所述第一对应关系获得所述第二路由设备的网络地址信息来完成转发,节约了网络资源,简化了建立所述转发表项的过程。所述第一路由设备除了可以根据所述第二路由设备发送的第一报文建立针对所述第二路由设备的所述转发表项以外,还可以将与自身连接的sf的id和自身网络地址信息的第二对应关系通过第二报文发送给相连的第三路由设备,以使得所述第三路由设备可以根据所述第二报文中第二对应关系建立针对所述第一路由设备的转发表项。在所述图2所示实施例的基础上,图4为本发明实施例提供的一种建立转发表项的方法的流程图,如图4所示,包括:s401:所述第一路由设备获取第二对应关系,所述第二对应关系为所述第一路由设备的网络地址信息和所述第一路由设备所连接的sf的id的对应关系。和所述s201的描述相似,所述第一路由设备也可以在与一个sf相连时获取所述第一路由设备连接所述sf的所述第一路由设备端口的端口信息和所述sf的id的对应关系。可选的,所述第一路由设备也可以保存和所述表2类似的本地sf附着表。在所述第一路由设备准备发送所述第二报文时,所述第一路由设备可以从所述本地sf附着表中提取出与所述第一路由设备连接的sf的id,确定所述与所述第一路由设备连接的sf的id与所述第一路由设备的网络地址信息的第二对应关系。s402:所述第一路由设备向与所述第一路由设备相连的第三路由设备发送第二报文,所述第二报文中携带所述第二对应关系。当所述第三路由设备接收到所述第二报文,所述第三路由设备可以建立包括所述第二对应关系的转发表项,当所述第三路由设备需要向所述第一路由设备转发修改后的报文时,可以通过查询所述包括所述第二对应关系的转发表项确定出所述第一路由设备的网络地址信息。需要注意的是,在s402中,并没有限定所述第二路由设备和所述第三路由设备是否为相同的路由设备,故当所述第二路由设备和所述第三路由设备为相同的路由设备时,所述s402可以视为所述第一路由设备向所述第二路由设备发送了携带所述第二对应关系的第二报文。所述第二路由设备可以建立包括所述第二对应关系的转发表项,当所述第三路由设备,即所述第二路由设备,需要向所述第一路由设备转发的业务链的修改后的报文时,可以通过查询所述包括所述第二对应关系的转发表项确定出所述第一路由设备的网络地址信息。在所述第三设备和所述第二设备是不同的设备的情况下,所述第一路由设备还可以将从所述第二路由设备获取的所述第一对应关系通过第三报文发送给所述第三路由设备,使得所述第三路由设备还可以建立针对所述第二路由设备的转发表项。在这种情况下,所述第二报文和所述第三报文可以是相同的报文,所述第三报文(也就是第二报文)可以同时携带所述第一对应关系和所述第二对应关系。也就是说,可选的,所述第一路由设备向与所述第一路由设备相连的第三路由设备发送第三报文,所述第三报文中携带所述第一对应关系,所述第三路由设备和所述第二路由设备不同。这里需要注意的是,由于第一对应关系是所述第二路由设备的网络地址信息和与所述第二路由设备连接的sf的id的对应关系。如果还将包括所述第一对应关系的第三报文发送给所述第二路由设备的话,那么将会在由路由设备组成的网络拓扑中形成报文的广播风暴。因此,当所述第一路由设备向所述第三路由设备发送所述第三报文时,所述第三路由设备不是原本就有所述第一对应关系的第二路由设备。通过所述图3举例说明,假设路由设备a为第三路由设备,路由设备b为第一路由设备,路由设备c为第二路由设备。所述路由设备b获取相连的路由设备c发送的携带所述第一对应关系的所述第一报文,所述路由设备b由此建立的针对所述路由设备c的转发表项如表6所示:sfidsf所连接的路由设备的网络地址信息sf5路由设备c的网络地址信息sf6路由设备c的网络地址信息表6所述路由设备b向相连的所述路由设备a发送携带所述第二对应关系的所述第二报文,由此使得所述路由设备a建立针对所述路由设备b的转发表项,所述针对所述路由设备b的转发表项可以如所述表5所示。所述路由设备b还可以向所述路由设备a发送携带所述第一对应关系的所述第三报文,由此使得所述路由设备a建立针对所述路由设备c的转发表项,所述针对所述路由设备c的转发表项可以入所述表6所示。假设分类器发出的修改后的报文需要通过的路径包括:路由设备a→sf1→路由设备a→路由设备b→路由设备c→sf5→路由设备c。所述修改后的报文从所述分类器发送到所述路由设备a时,所述修改后的报文的业务链首部中包括业务链id和sf1的id,假设所述业务链id为120,所述路由设备a上针对所述业务链id的所述sf转发表项可以如表7所示:业务链id源sfid目的sfid120sf1120sf1sf5表7所述路由设备a将所述修改后的报文发送至sf1,所述路由设备a接收从所述sf1返回的所述修改后的报文,此时所述修改后的报文的业务链首部中包括业务链id:120和源sfid:sf1,所述第一路由设备通过查询如表7所示的所述sf转发表项确定下一跳sfid也就是目的sfid为sf5,所述路由设备a通过查询所述表6确定所述sf5所连接的所述路由设备c的网络地址信息,由此确定所述修改后的报文的目的sfid为路由设备c(也就是所述第二路由设备)所连接的所述sf的id。所述路由设备a可以根据连接关系,通过ip路由的方式将所述修改后的报文向所述路由设备c发送。通过这种在路由设备之间扩散路由设备的网络地址信息和与所述路由设备连接的sfid的对应关系的方式,使得所述路由设备不仅可以获取直接相连的路由设备的网络地址信息和与所述直接相连的路由设备连接sf的id的对应关系,还可以获取网络拓扑中其他路由设备的网络地址信息和与所述其他利用设备连接sf的id的对应关系,并以此建立针对其他路由设备的转发表项,提高了路由设备在网络拓扑中的兼容性和转发修改后的报文的能力。接下来将对所述第一报文、第二报文和第三报文的类型进行描述。为了节约网络资源,所述第一报文、第二报文和第三报文可以为路由设备之间的控制协议报文。以所述第一报文为例说明,比如说当所述第一路由器和所述第二路由器运行的控制协议为边界网关协议(bordergatewayprotocol,bgp)时,所述第一报文可以为bgp报文。所述bgp报文的多协议网络层可达信息(mp_reach_nlri)部分可以用于携带所述第一对应关系。所述mp_reach_nlri部分用于携带所述第一对应关系的格式可以如表8所示:第二路由设备的网络地址信息sfid列表表8其中,所述sfid列表中包括与所述第二路由设备连接的一个或多个sf的id,当存在多个sf的id且为sf1至sfn时,所述mp_reach_nlri部分用于携带所述第一对应关系的具体格式可以如表8a或表8b所示:第二路由设备的网络地址信息sf1sf2…sfn表8a第二路由设备的网络地址信息sf1第二路由设备的网络地址信息sf2…第二路由设备的网络地址信息sfn表8b比如说当所述第一路由器和所述第二路由器运行的控制协议为标签分发协议(labeldistributionprotocol,ldp)时,可以通过扩展定义一种新的类型-长度-值(type-length-value,tlv)类型来携带所述第一对应关系,也可以在现有ldpmapping消息基础上扩展一种新的转发等价类(forwardingequivalenceclass,fec)来携带所述第一对应关系。为了进一步减少所述第一报文、第二报文和第三报文携带的数据量,还可以对所述sf的id进行聚合。以所述第一报文为例说明,比如说,在一些情况下,与所述第二路由设备相连的多个sf,分别为sf1、sf2和sf3,这三个sf的id被定义为:sf1的id为00000001,其中前4位0000为前缀,后四位0001为后缀;sf2的id为00000002,其中前4位0000为前缀,后四位0002为后缀;sf3的id为00000003,其中前4位0000为前缀,后四位0003为后缀。与所述第二路由设备连接的sf的id的前缀均相同,且与第一路由设备连接的sf的id的前缀和与第一路由设备连接的sf的id的前缀不同。三个sf具有相同的前缀,因此所述第二路由设备可以将所述第一对应关系中的sfid用所述sfid的前缀来表示,减少第一报文携带的数据量。所述第二路由设备除了可以在所述第一报文中携带所述第一对应关系外,还可以进一步携带第二路由设备所在网络的网络类型,比如gre网络等,这样在所述第一路由设备向所述第二路由设备转发业务链的修改后的报文时,还可以根据所述第二路由设备所在网络的网络类型选择相应的转发隧道进行转发。可选的,在如所述图2或图4所示实施例的基础上,图5为本发明实施例提供的一种建立转发表项的方法的流程图,如图5所示:s501:所述第一路由设备获取的所述第一报文中还携带第三对应关系,所述第三对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所处网络的网络类型的对应关系,所述网络类型包括udp网络或gre网络。s502:所述第一路由设备建立的所述转发表项中还包括所述第三对应关系。需要注意的是,所述第二报文也可以携带所述第一路由设备的网络地址信息和所述第一路由设备所处网络的网络类型的对应关系,所述第三报文也可以携带所述第一路由设备的网络地址信息和所述第一路由设备所处网络的网络类型的对应关系。本发明对此不进行限定。以图3为例说明,所述路由设备a为所述第一路由设备,所述路由设备b为所述第二路由设备。所述由设备a获取所述路由设备b发送的携带所述第一对应关系和所述第三对应关系的所述第一报文。假设所述路由设备b所在网络的网络类型为gre网络,则所述路由设备a根据所述第一对应关系和所述第三对应关系建立的所述转发表项可以如表9所示:表9这样当所述路由设备a需要向所述路由设备b转发业务链的修改后的报文时,比如确定出所述修改后的报文的目的sfid为sf3时,所述路由设备a通过查询所述表9,确定出所述sf3所连接的路由设备b的网络地址信息和所述路由设备b所在的网络为gre网络,所述路由设备a可以通过对应gre网络的转发隧道向所述路由设备b转发所述修改后的报文。也就是说,在如所述图5所示实施例的基础上,可选的,所述第一路由设备根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文,包括:所述第一路由设备根据所述第二路由设备的网络地址信息,并且使用对应所述第二路由设备所处网络的网络类型的转发隧道向所述第二路由设备转发所述修改后的报文,所述第二路由设备所处网络的网络类型的转发隧道是根据所述第三对应关系确定的。可以看出,用于路由设备之间转发修改后的报文的所述转发表项不需要由控制器额外为第一路由设备配置并下发,第一路由设备可以获取与所述第一路由设备相连的第二路由设备发送的第一报文,获取所述第一报文携带的所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的第一对应关系,并建立包括所述第一对应关系的所述转发表项,由此当所述第一路由设备需要向所述第二路由设备转发目的sfid为与所述第二路由设备连接的所述sf的id的修改后的报文时,可以查询所述转发表项,通过匹配所述第一对应关系获得所述第二路由设备的网络地址信息来完成转发。从而节约了网络资源,简化了建立所述转发表项的过程。通过这种在路由设备之间扩散sfid和所连接路由设备的对应关系的方式,使得路由设备不仅可以获取相连路由设备的网络地址信息和所连接sf的id的对应关系,还可以获取网络拓扑中连接的其他路由设备的网络地址信息和所连接sf的id的对应关系,并以此建立针对其他路由设备的转发表项,提高了路由设备在网络拓扑中的兼容性和转发修改后的报文的能力。同时,所述第一路由设备接收的所述第一报文中还可以包括所述第二路由设备的网络地址信息和网络类型的第三对应关系,使得所述第一路由设备可以选择对应的转发隧道向所述第二路由设备转发所述修改后的报文,进一步提高了修改后的报文转发的效率。图6为本发明实施例提供的一种处理修改后的报文的装置的结构图,如图6所示,所述处理修改后的报文的装置600包括:接收单元601,用于获取第二路由设备发送的第一报文,所述第一报文携带第一对应关系,所述第一对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的对应关系,所述第二路由设备与所述处理修改后的报文的装置600相连。这里需要说明的是,sf与路由设备连接的这种连接关系可以参阅如图1所示的连接关系,如图1所示,sf1、sf2和sf3均与路由设备1连接,sf4和sf5均与路由设备2连接,sf与路由设备连接的这种连接关系不能理解为sf1与路由设备2相连接,sf与路由设备连接的这种连接关系在本领域中也可以被称为附着。当一个sf与所述第二路由设备建立连接,所述第二路由设备可以通过在所述第二路由设备和所述sf上交互的发现协议报文或者握手协议报文获取所述第二路由设备连接所述sf的所述第二路由设备接口的接口信息和所述sf的id的对应关系。可选的,所述第二路由设备一般将sfid和连接所述sf的所述第二路由设备接口的接口信息间的对应关系保存在本地sf附着表中。假设所述第二路由设备共连接了三个sf,这三个sf的id分别为sf1、sf2和sf3,那么所述第二路由设备的所述本地sf附着表可以如所述表2所示。在所述第二路由设备准备发送所述第一报文时,所述第二路由设备可以从所述本地sf附着表中提取出与所述第二路由设备连接的三个sf的id,确定所述与所述第二路由设备连接的三个sf的id与所述第二路由设备的网络地址信息的第一对应关系,再通过所述第一报文携带所述第一对应关系。所述第二路由设备的网络地址信息可以是用于标识所述第二路由设备的网络地址,也可以是用于标识所述第二路由设备连接其他路由设备的网络接口的网络地址,所述网络地址可以是ip地址、mac地址等,还可以是所述第二路由设备与所述处理修改后的报文的装置600建立的转发隧道的隧道端口地址,比如说gre隧道地址、udp端口地址等。处理单元602,用于建立转发表项,所述转发表项包括所述第一对应关系,所述转发表项中的所述第二路由设备的网络地址信息表示所述处理修改后的报文的装置600在业务链上的下一跳路由设备的地址信息。假设所述第二路由设备共连接了三个sf,这三个sf的id分别为sf1、sf2和sf3,那么所述处理修改后的报文的装置600建立的所述转发表项可以如所述表3所示。所述处理单元602建立起的所述转发表项,所述转发表项可以理解为针对所述第二路由设备的。当发送单元603需要向所述第二路由设备转发修改后的报文时,可以通过查询所述转发表项确定出所述第二路由设备的网络地址信息。接下来将通过如何使用所述转发表项转发修改后的报文来进一步对所述转发表项进行说明。所述接收单元601,还用于接收修改后的报文并确定所述修改后的报文的目的sfid。关于所述接收单元601如何确定所述修改后的报文的目的sfid的描述,与所述图2所对应的实施例中的s203中的描述相似,这里不再赘述。所述处理单元602,还用于根据所述目的sfid查询所述转发表项,从与所述目的sfid匹配的所述第一对应关系中获得所述第二路由设备的网络地址信息,确定所述目的sfid所标识的sf为所述第二路由设备所连接的sf。以图3为例,所述路由设备a建立的所述转发表项可以如所述表5所示。假设确定出所述修改后的报文的目的sfid为sf3时,通过查询所述表5,从与所述sf3匹配的所述第一对应关系中获得所述路由设备b(也就是所述第二路由设备)的网络地址信息,由此确定sf3(所述目的sfid)为所述第二路由设备所连接的sf中的一个sf的id。发送单元603,用于根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文。在路由设备中执行转发业务链的修改后的报文功能的可以是sfe。由与图6对应的实施例可以看出,用于路由设备之间转发修改后的报文的所述转发表项不需要由控制器额外为处理修改后的报文的装置600配置并下发,处理修改后的报文的装置600可以通过相连的第二路由设备发送的第一报文获取所述第一对应关系,并建立包括所述第一对应关系的所述转发表项,由此当所述处理修改后的报文的装置600需要向所述第二路由设备转发目的sfid为所述第二路由设备所连接的所述sf的id的修改后的报文时,可以查询所述转发表项,通过匹配所述第一对应关系获得所述第二路由设备的网络地址信息来完成转发,节约了网络资源,简化了建立所述转发表项的过程。所述处理修改后的报文的装置600除了可以根据所述第二路由设备发送的第一报文建立针对所述第二路由设备的所述转发表项以外,还可以将与自身连接的sf的id和自身网络地址信息的第二对应关系通过第二报文发送给相连的第三路由设备,以使得所述第三路由设备可以根据所述第二报文中第二对应关系建立针对所述处理修改后的报文的装置600的转发表项。也就是说,可选的,所述接收单元601,还用于获取第二对应关系,所述第二对应关系为所述处理修改后的报文的装置600的网络地址信息和所述处理修改后的报文的装置600所连接的sf的id的对应关系。所述接收单元601也可以在与一个sf相连时获取所述处理修改后的报文的装置600连接所述sf的所述处理修改后的报文的装置600端口的端口信息和所述sf的id的对应关系。可选的,所述处理修改后的报文的装置600也可以保存和所述表2类似的本地sf附着表。在所述处理修改后的报文的装置600准备发送所述第二报文时,所述接收单元601可以从所述本地sf附着表中提取出与所述处理修改后的报文的装置600连接的sf的id,确定所述与所述处理修改后的报文的装置600连接的sf的id与所述处理修改后的报文的装置600的网络地址信息的第二对应关系。所述发送单元603,还用于向与所述处理修改后的报文的装置600相连的第三路由设备发送第二报文,所述第二报文中携带所述第二对应关系。当所述第三路由设备接收到所述第二报文,所述第三路由设备可以建立包括所述第二对应关系的转发表项,当所述第三路由设备需要向所述处理修改后的报文的装置600转发修改后的报文时,可以通过查询所述包括所述第二对应关系的转发表项确定出所述处理修改后的报文的装置600的网络地址信息。需要注意的是,这里并没有限定所述第二路由设备和所述第三路由设备是否为相同的路由设备,故当所述第二路由设备和所述第三路由设备为相同的路由设备时,所述发送单元603可以视为向所述第二路由设备发送了携带所述第二对应关系的第二报文。所述第二路由设备可以建立包括所述第二对应关系的转发表项,当所述第三路由设备,即所述第二路由设备,需要向所述处理修改后的报文的装置600转发的业务链的修改后的报文时,可以通过查询所述包括所述第二对应关系的转发表项确定出所述处理修改后的报文的装置600的网络地址信息。在所述第三设备和所述第二设备是不同的设备的情况下,所述发送单元603还可以将从所述第二路由设备获取的所述第一对应关系通过第三报文发送给所述第三路由设备,使得所述第三路由设备还可以建立针对所述第二路由设备的转发表项。在这种情况下,所述第二报文和所述第三报文可以是相同的报文,所述第三报文(也就是第二报文)可以同时携带所述第一对应关系和所述第二对应关系。也就是说,可选的,所述发送单元603,还用于向与所述处理修改后的报文的装置600相连的第三路由设备发送第三报文,所述第三报文中携带所述第一对应关系,所述第三路由设备和所述第二路由设备不同。这里需要注意的是,由于第一对应关系是所述第二路由设备的网络地址信息和与所述第二路由设备连接的sf的id的对应关系。如果所述发送单元603还将包括所述第一对应关系的第三报文发送给所述第二路由设备的话,那么将会在由路由设备组成的网络拓扑中形成报文的广播风暴。因此,当所述发送单元603向所述第三路由设备发送所述第三报文时,所述第三路由设备不是原本就有所述第一对应关系的第二路由设备。所述第二路由设备除了可以在所述第一报文中携带所述第一对应关系外,还可以进一步携带第二路由设备所在网络的网络类型,比如gre网络等,这样在所述处理修改后的报文的装置600向所述第二路由设备转发业务链的修改后的报文时,还可以根据所述第二路由设备所在网络的网络类型选择相应的转发隧道进行转发。也就是说,可选的,所述接收单元601获取的所述第一报文中还携带第三对应关系,所述第三对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所处网络的网络类型的对应关系,所述网络类型包括udp网络或gre网络。所述处理单元602建立的所述转发表项中还包括所述第三对应关系。需要注意的是,所述第二报文也可以携带所述处理修改后的报文的装置600的网络地址信息和所述处理修改后的报文的装置600所处网络的网络类型的对应关系,所述第三报文也可以携带所述处理修改后的报文的装置600的网络地址信息和所述处理修改后的报文的装置600所处网络的网络类型的对应关系。本发明对此不进行限定。当所述接收单元601获取的所述第一报文中还携带第三对应关系时,所述发送单元603,还用于根据所述第二路由设备的网络地址信息,并且使用对应所述第二路由设备所处网络的网络类型的转发隧道向所述第二路由设备转发所述修改后的报文,所述第二路由设备所处网络的网络类型的转发隧道是根据所述第三对应关系确定的。可以看出,用于路由设备之间转发修改后的报文的所述转发表项不需要由控制器额外为处理修改后的报文的装置600配置并下发,处理修改后的报文的装置600可以获取与所述第一路由设备相连的第二路由设备发送的第一报文,获取所述第一报文携带的所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的第一对应关系,并建立包括所述第一对应关系的所述转发表项,由此当所述处理修改后的报文的装置600需要向所述第二路由设备转发目的sfid为与所述第二路由设备连接的所述sf的id的修改后的报文时,可以查询所述转发表项,通过匹配所述第一对应关系获得所述第二路由设备的网络地址信息来完成转发,节约了网络资源,简化了建立所述转发表项的过程。通过这种在路由设备之间扩散sfid和所连接路由设备的对应关系的方式,使得路由设备不仅可以获取相连路由设备的网络地址信息和所连接sf的id的对应关系,还可以获取网络拓扑中连接的其他路由设备的网络地址信息和所连接sf的id的对应关系,并以此建立针对其他路由设备的转发表项,提高了路由设备在网络拓扑中的兼容性和转发修改后的报文的能力。同时,所述处理修改后的报文的装置600接收的所述第一报文中还可以包括所述第二路由设备的网络地址信息和网络类型的第三对应关系,使得所述处理修改后的报文的装置600可以选择对应的转发隧道向所述第二路由设备转发所述修改后的报文,进一步提高了修改后的报文转发的效率。参阅图7,图7为本发明实施例提供的一种第一路由设备的硬件结构示意图,所述第一路由设备700包括存储器701、接收器702和发送器703,以及分别与所述存储器701、所述接收器702和所述发送器703连接的处理器704,所述存储器701用于存储一组程序指令,所述处理器704用于调用所述存储器701存储的程序指令执行如下操作:触发所述接收器702获取第二路由设备发送的第一报文,所述第一报文携带第一对应关系,所述第一对应关系包括所述第二路由设备的网络地址信息和所述第二路由设备所连接的sf的id的对应关系,所述第二路由设备与所述第一路由设备相连;建立转发表项,所述转发表项包括所述第一对应关系,所述转发表项中的所述第二路由设备的网络地址信息表示所述第一路由设备在业务链上的下一跳路由设备的地址信息;触发所述接收器702接收修改后的报文并确定所述修改后的报文的目的sfid;根据所述目的sfid查询所述转发表项,从与所述目的sfid匹配的所述第一对应关系中获得所述第二路由设备的网络地址信息,确定所述目的sfid所标识的sf为所述第二路由设备所连接的sf;触发所述发送器703根据所述第二路由设备的网络地址信息向所述第二路由设备转发所述修改后的报文。可选地,所述处理器704可以为中央处理器(centralprocessingunit,cpu),所述存储器701可以为随机存取存储器(randomaccessmemory,ram)类型的内部存储器,所述接收器702和所述发送器703可以包含普通物理接口,所述物理接口可以为以太(ethernet)接口或异步传输模式(asynchronoustransfermode,atm)接口。所述处理器704、发送器703、接收器702和存储器701可以集成为一个或多个独立的电路或硬件,如:专用集成电路(applicationspecificintegratedcircuit,asic)。本发明实施例中提到的第一路由设备、第一报文和第一对应关系的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”和“第三”。需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上对本发明所提供的一种建立转发表项方法和装置进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1