报文转发方法、装置及服务提供商网络边缘pe设备的制造方法

文档序号:10666349
报文转发方法、装置及服务提供商网络边缘pe设备的制造方法
【专利摘要】本发明提供了一种报文转发方法、装置及服务提供商网络边缘PE设备,其中,该方法包括:获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,该私网路由具备两个或两个以上的下一跳;从上述私网路由中确定具备迭代到主机路由的能力的下一跳;依据确定的上述下一跳转发报文,通过本发明,解决了相关技术中存在的转发报文时,报文丢失率高的问题,进而达到了降低报文丢失率的效果。
【专利说明】
报文转发方法、装置及服务提供商网络边缘PE设备
技术领域
[0001]本发明涉及通信领域,具体而言,涉及一种报文转发方法、装置及服务提供商网络边缘PE设备。
【背景技术】
[0002]随着科技的发展,报文转发技术的应用越来越广泛,下面以L3虚拟专用网络(Virtual Private Network,简称为vpn)中的报文转发为例进行说明:图1是相关技术中的L3vpn私网路由迭代到网段路由形成的标签交换路径(Lable Switched Path,简称为lsp)转发正确的示意图,如图1所示,服务提供商网络边缘设备(Provider Edge,简称为PE) I 和 PE2 形成边界网关协议(Border Gateway Protocol,简称为 BGP)邻居,PE1、P1、PE2上使能内部网关协议(Inter1r Gateway Protocol,简称为IGP)和标签分配协议(LabelDistribute Protocol,简称为LDP)来通告公网路由和为公网路由分配标签形成lsp。
[0003]私网路由由BGP协议通告,私网路由的下一跳为BGP协议使能的BGP邻居的一个接口的地址。假设PEl上接收到的私网BGP路由的下一跳为邻居PE2上接口 Fei_2的IP地址10.3.4.1,此下一跳为远端的下一跳(不与本设备直连的下一跳为远端下一跳),报文不能直达,必须有公网的Isp存在作为承载隧道才能到达PE2。
[0004]设备会根据下一跳地址10.3.4.1,在设备PEl进行最长匹配寻找外层公网路由。由于Fei_2的IP地址10.3.4.1为24位掩码的,网络地址就是10.3.4.0,PE2上会形成本地网段路由10.3.4.0,经过IGP协议通告后,在PEl会有10.3.4.0这个公网路由存在,根据下一跳10.3.4.1最长匹配的公网路由是10.3.4.0,且LDP协议会为10.3.4.0这个路由前缀分配标签,从而在PEl头和PE2尾之间形成连续的lsp,如图1中虚线所示,它可以作为BGP路由的承载隧道来使BGP路由可达,完成私网报文的转发。
[0005]上述情况是一个比较理想的情况,有时也是可用的,但是不可靠。
[0006]图2是相关技术中的L3vpn私网路由迭代到网段路由形成的I sp转发错误的示意图,如图2所示,Pl的fei_2接口和PE2的fei_l接口直连,接口地址分别是10.2.3.1/24(地址/掩码长度)和10.2.3.2/24,假设PEl上接收到的BGP路由的下一跳为BGP邻居PE2上接口 Fei_l的IP地址10.2.3.2,由于Pl和PE2是直连的,Pl上会有本地网段路由10.2.3.0,经过IGP协议通告后,在PEl会有10.2.3.0这个公网路由存在,而且LDP协议会为这个路由前缀分配标签形成公网Isp转发隧道,根据上述的迭代原则,私网路由会迭代到这个Isp进行转发。可是,对PEl来说10.2.3.0是由Pl产生的,这个Isp的尾是P1,不是PE2,那私网报文若使用这个Isp作为承载,只能将报文运载到P1,不能到边缘设备PE2,势必造成报文的丢失。
[0007]更为严重的是,在迭代到这个Isp转发错误的时候,BGP协议并不知晓,不会进行路由的重新下发或撤销,造成一个转发不通的BGP路由长期用于报文的转发,无法实现BGP路由的快速收敛,影响报文转发。
[0008]针对相关技术中存在的转发报文时,报文丢失率高的问题,目前尚未提出有效的解决方案。

【发明内容】

[0009]本发明提供了一种报文转发方法、装置及服务提供商网络边缘PE设备,以至少解决相关技术中存在的转发报文时,报文丢失率高的问题。
[0010]根据本发明的一个方面,提供了一种报文转发方法,包括:获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,所述私网路由具备两个或两个以上的下一跳;从所述私网路由中确定具备迭代到主机路由的能力的下一跳;依据确定的所述下一跳转发报文。
[0011]进一步地,从所述私网路由中确定具备迭代到主机路由的能力的所述下一跳包括:按照预定路由选择策略从所述私网路由中选择一个下一跳;判断公网路由表中是否存储有目的地址与选择的所述下一跳的地址匹配,且掩码长度为32位的主机路由条目;在判断结果为是的情况下,确定选择的所述下一跳具备迭代到所述主机路由的能力。
[0012]进一步地,所述方法还包括:在判断结果为否的情况下,重新选择所述私网路由的下一跳。
[0013]进一步地,当所述私网路由中不存在具备迭代到所述主机路由的能力的下一跳时,所述方法还包括:将所述私网路由标记为无效的私网路由;将用于撤销所述无效的私网路由的撤销消息通告给上游设备,其中,所述撤销消息用于所述上游设备撤销所述无效的私网路由并重新选择用于转发所述报文的私网路由。
[0014]进一步地,所述预定路由选择策略包括以下至少之一:选择所述私网路由中所包括的下一跳对应的花费值Cost中最小Cost对应的下一跳;选择所述私网路由中所包括的下一跳对应的本地优先级L0CAL_PREF中最高L0CAL_PREF对应的下一跳;选择所述私网路由中所包括的下一跳对应的路由器标识0RIGINAT0R_ID中最小0RIGINAT0R_ID对应的下一跳;选择所述私网路由中所包括的下一跳对应的优选首选值Preferred_value中最大Preferred_value 对应的下一跳。
[0015]根据本发明的另一方面,提供了一种报文转发装置,包括:获取模块,用于获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,所述私网路由具备两个或两个以上的下一跳;确定模块,用于从所述私网路由中确定具备迭代到主机路由的能力的下一跳;转发模块,用于依据确定的所述下一跳转发报文。
[0016]进一步地,所述确定模块包括:第一选择单元,用于按照预定路由选择策略从所述私网路由中选择一个下一跳;判断单元,用于判断公网路由表中是否存储有目的地址与选择的所述下一跳的地址匹配,且掩码长度为32位的主机路由条目;确定单元,用于在所述判断单元的判断结果为是的情况下,确定选择的所述下一跳具备迭代到所述主机路由的能力。
[0017]进一步地,所述确定模块还包括:第二选择单元,用于在所述判断单元的判断结果为否的情况下,重新选择所述私网路由的下一跳。
[0018]进一步地,所述装置还包括:标记模块,用于当所述私网路由中不存在具备迭代到所述主机路由的能力的下一跳时,将所述私网路由标记为无效的私网路由;通告模块,用于将用于撤销所述无效的私网路由的撤销消息通告给上游设备,其中,所述撤销消息用于所述上游设备撤销所述无效的私网路由并重新选择用于转发所述报文的私网路由。
[0019]进一步地,所述预定路由选择策略包括以下至少之一:选择所述私网路由中所包括的下一跳对应的花费值Cost中最小Cost对应的下一跳;选择所述私网路由中所包括的下一跳对应的本地优先级L0CAL_PREF中最高L0CAL_PREF对应的下一跳;选择所述私网路由中所包括的下一跳对应的路由器标识0RIGINAT0R_ID中最小0RIGINAT0R_ID对应的下一跳;选择所述私网路由中所包括的下一跳对应的优选首选值Preferred_value中最大Preferred_value 对应的下一跳。
[0020]根据本发明的另一方面,提供了一种服务提供商网络边缘PE设备,包括上述任一项所述的装置。
[0021]通过本发明,采用获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,所述私网路由具备两个或两个以上的下一跳;从所述私网路由中确定具备迭代到主机路由的能力的下一跳;依据确定的所述下一跳转发报文,解决了相关技术中存在的转发报文时,报文丢失率高的问题,进而达到了降低报文丢失率的效果。
【附图说明】
[0022]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0023]图1是相关技术中的L3vpn私网路由迭代到网段路由形成的Isp转发正确的示意图;
[0024]图2是相关技术中的L3vpn私网路由迭代到网段路由形成的Isp转发错误的示意图;
[0025]图3是根据本发明实施例的报文转发方法的流程图;
[0026]图4是根据本发明实施例的报文转发装置的结构框图;
[0027]图5是根据本发明实施例的报文转发装置中确定模块44的结构框图;
[0028]图6是根据本发明实施例的报文转发装置中确定模块44的优选结构框图;
[0029]图7是根据本发明实施例的报文转发装置的优选结构框图;
[0030]图8是根据本发明实施例的服务提供商网络边缘PE设备的结构框图;
[0031]图9是根据本发明实施例的PE设备中的模块结构框图;
[0032]图10是根据本发明实施例的私网BGP路由下一跳有效可达的控制方法流程图;
[0033]图11是根据本发明实施例一的报文转发的流程图;
[0034]图12是根据本发明实施例二的报文转发的流程图。
【具体实施方式】
[0035]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0036]在本实施例中提供了一种报文转发方法,图3是根据本发明实施例的报文转发方法的流程图,如图3所示,该流程包括如下步骤:
[0037]步骤S302,获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,该私网路由具备两个或两个以上的下一跳;
[0038]步骤S304,从上述私网路由中确定具备迭代到主机路由的能力的下一跳;
[0039]步骤S306,依据确定的上述下一跳转发报文。
[0040]通过上述步骤,在进行报文转发时,确定能够迭代到主机路由的下一跳进行报文转发,可以保证将报文转发至确定的设备,降低报文丢失率,解决了相关技术中存在的转发报文时,报文丢失率高的问题,进而达到了降低报文丢失率的效果。
[0041]在确定具备迭代到主机路由的能力的下一跳时,可以有多种确定方法,在一个可选的实施例中,从上述私网路由中确定具备迭代到主机路由的能力的下一跳包括:按照预定路由选择策略从私网路由中选择一个下一跳;判断公网路由表中是否存储有目的地址与选择的下一跳的地址匹配,且掩码长度为32位的主机路由条目;在判断结果为是的情况下,确定选择的下一跳具备迭代到主机路由的能力。在确定了下一跳之后,便可以利用该下一跳进行报文转发。
[0042]在一个可选的实施例中,当公网路由表中未存储有目的地址与选择的下一跳的地址匹配,且掩码长度为32位的主机路由条目时,可以确定上述选择的下一跳不能够迭代到主机路由,在该情况下,可以重新选择私网路由的下一跳,继续对该下一跳进行判断,直到找到能够迭代到主机路由的下一跳为止。
[0043]当上述私网路由中不存在具备迭代到主机路由的能力的下一跳时,说明该私网路由是无效的,此时,需要重新选择新的私网路由进行报文的转发,在一个可选的实施例中,当上述私网路由中不存在具备迭代到主机路由的能力的下一跳时,还将该私网路由标记为无效的私网路由;将用于撤销该无效的私网路由的撤销消息通告给上游设备,其中,该撤销消息用于上游设备撤销上述无效的私网路由并重新选择用于转发报文的私网路由。
[0044]上述的预定路由选择策略可以至少包括以下至少之一:选择私网路由表中所包括的下一跳对应的花费值Cost中最小Cost对应的下一跳;选择私网路由表中所包括的下一跳对应的本地优先级L0CAL_PREF中最高L0CAL_PREF对应的下一跳;选择私网路由表中所包括的下一跳对应的路由器标识0RIGINAT0R_ID中最小0RIGINAT0R_ID对应的下一跳;选择私网路由表中所包括的下一跳对应的优选首选值Preferred_value中最大Preferred_value对应的下一跳。
[0045]需要说明的是,上述私网路由也可以只具备一个下一跳,当确定该下一跳能够迭代到主机路由时,直接利用该下一跳转发报文,当确定该下一跳不能够迭代到主机路由时,说明该私网路由无效,可以首先将该私网路由标记为无效,再将用于撤销该无效的私网路由的撤销消息通告给上游设备,由上游设备撤销该无效的私网路由,再由该上游设备选择新的用于转发报文的私网路由。
[0046]在本实施例中还提供了一种报文转发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0047]图4是根据本发明实施例的报文转发装置的结构框图,如图4所示,该装置包括获取模块42、确定模块44和转发模块46,下面对该装置进行说明。
[0048]获取模块42,用于获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,该私网路由具备两个或两个以上的下一跳;确定模块44,连接至上述获取模块42,用于从私网路由中确定具备迭代到主机路由的能力的下一跳;转发模块46,连接至上述确定模块44,用于依据确定的下一跳转发报文。
[0049]图5是根据本发明实施例的报文转发装置中确定模块44的结构框图,如图5所示,该确定模块44包括第一选择单元52、判断单元54和确定单元56,下面对该确定模块44进行说明。
[0050]第一选择单元52,用于按照预定路由选择策略从私网路由中选择一个下一跳;判断单元54,连接至上述第一选择单元52,用于判断公网路由表中是否存储有目的地址与选择的下一跳的地址匹配,且掩码长度为32位的主机路由条目;确定单元56,连接至上述判断单元54,用于在判断单元54的判断结果为是的情况下,确定选择的下一跳具备迭代到主机路由的能力。
[0051]图6是根据本发明实施例的报文转发装置中确定模块44的优选结构框图,如图6所示,该确定模块44除包括图5所示的所有单元外,还包括第二选择单元62,下面对该确定模块44进行说明。
[0052]第二选择单元62,连接至上述判断单元54,用于在判断单元54的判断结果为否的情况下,重新选择私网路由的下一跳。
[0053]图7是根据本发明实施例的报文转发装置的优选结构框图,如图7所示,该装置除包括图4所示的所有模块外,还包括标记模块72、通告模块74,下面对该装置进行说明。
[0054]标记模块72,连接至上述确定模块44,用于当私网路由中不存在具备迭代到主机路由的能力的下一跳时,将该私网路由标记为无效的私网路由;通告模块74,连接至上述标记模块72,用于将用于撤销该无效的私网路由的撤销消息通告给上游设备,其中,该撤销消息用于上游设备撤销上述无效的私网路由并重新选择用于转发报文的私网路由。
[0055]在一个可选的实施例中,上述预定路由选择策略包括以下至少之一:选择私网路由表中所包括的下一跳对应的花费值Cost中最小Cost对应的下一跳;选择私网路由表中所包括的下一跳对应的本地优先级L0CAL_PREF中最高L0CAL_PREF对应的下一跳;选择私网路由表中所包括的下一跳对应的路由器标识0RIGINAT0R_ID中最小0RIGINAT0R_ID对应的下一跳;选择私网路由表中所包括的下一跳对应的优选首选值Preferred_value中最大Preferred_value 对应的下一跳。
[0056]图8是根据本发明实施例的服务提供商网络边缘PE设备的结构框图,如图8所示,该PE设备82包括上述任一项的报文转发装置84。
[0057]下面以L3vpn组网环境下的报文转发为例对本发明进行说明。
[0058]通过上述的分析,可知,造成报文转发失败的根本原因是网段路由,如10.2.3.0它一般代表一个网段,网段上至少连着两个设备,而不能代表一个PE设备。如图2所示,若这个网段与到PEl的路径重合,那这个网段形成的Isp就会到达PE2设备的前一个设备Pl终止,不是一个PE到PE的隧道,是不能作为私网承载隧道使用的。只有32位掩码的接口地址形成的本地主机路由才能唯一确定一个设备,这个路由形成的Isp才能是端到端的。
[0059]在本发明实施例中,在根据BGP路由的下一跳迭代公网路由寻找公网Isp的时候,路由迭代结果必须是一个掩码长度为32位的主机路由形成的LSP,否则,BGP协议寻找其它的下一跳继续进行迭代尝试,若一直没有能迭代到,则将该路由标记为无效。让网络重新收敛。
[0060]图9是根据本发明实施例的PE设备中的模块结构框图,如图9所示,该PE设备包括OAM配置模块92,BGP协议模块94 (相当于上述的获取模块42、第一选择单元52、第二选择单元62、标记模块72、通告模块74、接收模块76),支撑模块96 (相当于上述的判断单元54、确定单元56)和转发模块46,图中箭头表示可能的数据流向。
[0061]OAM配置模块92用于配置命令next-hop host-only,表不L3vpn实例下的BGP私网路由的迭代结果必须为主机路由。
[0062]配置的结果通过图9中箭头I传递到支撑模块96,支撑模块96保存这个配置,用于后续判断BGP下发的路由是否需要迭代到主机路由。
[0063]BGP协议模块94从BGP邻居接收BGP路由,择优通过图9中箭头2发送到支撑模块96,支撑模块96根据next-hop host-only配置,进行下一跳的迭代处理,若迭代到主机路由,则绑定Isp通过箭头4下发转发模块46,若没有迭代到主机路由,则通过箭头3通告BGP协议模块94,BGP协议模块94若发现还有其它有效的下一跳,则选择其它下一跳下发支撑模块96继续上述流程,若没有其它有效下一跳了,则BGP协议模块94将该路由标记为无效。
[0064]在本发明实施例中,还提供了一种L3vpn组网环境下,私网BGP路由下一跳有效可达的控制方法,该方法应用于L3vpn组网环境中服务提供商网络边缘设备PE,该PE使能了BGP协议,IGP协议、LDP协议等路由通告协议和标签分配协议,并执行以下步骤:
[0065]A.L3vpn的实例下增加一个配置next-hop host-only。表示此私网下的BGP路由进行迭代时,必须迭代到主机路由,否则此下一跳无效。
[0066]B.BGP协议模块94接收所有邻居通告的私网路由保存,对具有多个下一跳的路由,根据路由选择策略选择一个“最优”的下一跳下发到支撑模块96,如图9支撑模块96的位置。
[0067]C.支撑模块96存储BGP下发的BGP路由,首先拿此路由的下一跳在公网路由表中进行最长匹配(最长匹配就是,首先寻找前缀地址完全匹配,掩码长度为32 (掩码是255.255.255.255)的路由,若有,说明匹配到了主机路由;若无,继续寻找网段路由,且此网段能包含所要匹配的下一跳地址,例如网段路由10.3.2.0就匹配包含主机地址10.3.2.1) O
[0068]D.若上述的过程匹配到了主机路由且主机路由绑定了 lsp,则路由根据匹配结果用于转发;若没有匹配到主机路由,进一步包括:
[0069]E.支撑模块96把此私网BGP路由及其下一跳打包发送BGP协议模块94,并告诉BGP协议模块94此下一跳匹配不到主机路由,进一步包括:
[0070]F.BGP协议模块94收到支撑模块96的通告后,把此下一跳标记为无效,并检查本路由是否有除了上述下一跳之外的其它有效下一跳,若有,则把这个“次优”的下一跳下发到支撑模块96,继续上述过程,若没有剩余的下一跳了,进一步包括:
[0071]G.BGP协议模块94将这个路由标记为无效的私网路由,并把用于撤销该无效的私网路由的撤销消息通告给上游设备(该上游设备可以为用户边缘(Customer Edge,简称为CE)网络设备)。
[0072]H.当此PE作为L3vpn网络中用户边缘网络设备CE的众多归属中的一个归属时,CE会根据上述撤销消息调整路由。
[0073]图10是根据本发明实施例的私网BGP路由下一跳有效可达的控制方法流程图,其中,该方法应用于L3vpn组网中的PE,如图1和图2中的PEl。
[0074]如图10所示,该方法包括如下步骤:
[0075]步骤S1002,L3vpn的实例下增加一个配置next-hop host-only。表示此私网下的BGP路由进行迭代时,必须迭代到主机路由,否则无效。
[0076]步骤S1004,BGP协议模块94接收所有邻居通告的私网路由保存,对具有多个下一跳的路由,根据路由选择策略选择一个“最优”的下一跳下发到支撑模块96。
[0077]其中,“最优”的路由的选择一般可以采用以下一些原则:
[0078]优选下一跳花费(Cost)值最低的;
[0079]优选本地优先级(L0CAL_PREF)最高的;
[0080]优选0RIGINAT0R_ID 最小的;
[0081]优选首选值(Preferred-value)最大的;
[0082]......
[0083]步骤S1006,支撑模块96保存BGP协议模块94下发的路由,并拿路由的下一跳进行最长匹配公网路由。
[0084]地址最长匹配,就是在路由表中首先寻找目的地址与本地址完全匹配,且掩码长度是32位(掩码是255.255.255.255)的主机路由条目,若没有,再依次寻找网段路由,需保证网段地址能包含要匹配的地址,如10.3.2.0这个网段地址就能包含地址10.3.2.1,10.3.0.0 就能包含 10.3.2.0 和 10.3.2.1。
[0085]匹配公网路由的目的是寻找公网的lsp,公网Isp就是公网的隧道,可作为私网路由的承载,是由LDP协议为公网路由分配的连续的标签形成的。一般是公网路由先形成公网路径,LDP再为这个公网路径分配连续标签形成lsp,Isp尾就是这个公网路由的源,若公网路由是个网段,那Isp的尾也是一个网段,不能确定一个设备,若公网路由是个32位主机地址形成的,那Isp的尾就是这个主机。
[0086]步骤S1008,判断最长匹配的公网路由是否是32位掩码的主机路由,若是,说明已经匹配到了,可直接从主机路由再找到lsp,作为承载,实现私网报文透传,转至步骤S1016,若没有,则执行步骤S1010:
[0087]步骤S1010,支撑模块96把此路由及其下一跳发送给BGP协议模块94,并告诉BGP协议模块94此下一跳匹配不到主机路由,执行步骤S1012:
[0088]步骤S1012,BGP协议模块94收到通告后,把此路由下一跳标记为无效,检查本路由是否有除了上述下一跳之外的其它有效下一跳,若有,继续寻找路由的其它有效下一跳下发至支撑模块96,继续执行步骤S1006,若无,则执行步骤S1014。
[0089]步骤S1014,BGP协议模块94没有其它有效的下一跳了,说明这个路由不再有意义,就向上游通告请求撤销这个路由,一般PE上游就是CE设备(也有可能是PE设备)。若CE设备双归到PE设备,CE从一个PE上接收到用于撤销上述路由的撤销消息后,还可以通过收敛,将有效下一跳指向另一个PE,从这个PE上转发报文。
[0090]步骤S1016,应用匹配的结果进行报文的转发。
[0091]下面默认以L3vpn组网中的PE执行图10所示的流程,通过两个例子的实施来对这个流程进行描述:
[0092]实施例一
[0093]图11是根据本发明实施例一的报文转发的流程图,如图11所示的L3vpn简单组网,PEl、Pl和PE2上配置有IGP和LDP,Pl上的fei_2 口配置接口地址10.3.4.1/24,PE2上的fei_l的接口地址为10.3.4.2/24,这个地址会在Pl和PE2上形成本地网段路由10.3.4.0,IGP协议会把这个路由通告给PEl,从而PElPlPE2之间形成路由转发路径,然后LDP再为这个路由路径分配标签,由于这个路由的源是一个网段,从PEl侧来说,Pl就是这个路由的源了,所以Isp路径只在PEl--Pl之间建立,假设为lspl。
[0094]然后,PEl和PE2之间建立BGP邻居,BGP的远端下一跳地址使能为10.3.4.2,使之能通告BGP私网路由。
[0095]同理,PE1、P2和PE3上配置有IGP和LDP,与上述不同的是,我们在PE3上配置一个loopback逻辑接口,地址为3.3.3.9/32,这个地址的掩码是32位的,不能形成网段路由,只能有一个本地主机路由3.3.3.9,通过IGP和LDP协议,PElP2PE3之间建立了一个依赖于路由3.3.3.9的lsp2。
[0096]然后,PEl和PE3之间建立BGP邻居,BGP的远端下一跳地址使能为3.3.3.9,使之能通告BGP私网路由。
[0097]上述组网完成后,在PEl上,对CE2侧的一个BGP私网路由,就会有两个下一跳10.3.4.2 和 3.3.3.9。
[0098]执行步骤S1004,假设BGP协议模块94首先下发给支撑模块96包含下一跳为10.3.4.2的路由,执行步骤S1006,支撑模块96拿下一跳10.3.4.2进行最长匹配操作,发现寻找到的路由为10.4.3.0,没有匹配到主机路由。
[0099]执行步骤S1010,支撑模块96把路由及下一跳发送给BGP协议模块94,执行步骤S1012,BGP协议模块94发现还有另一个下一跳3.3.3.9,把这个下一跳下发给支撑模块96后,执行S1006,进行最长匹配操作,这次可以匹配到主机路由3.3.3.9,继续执行步骤S1016,完成外层隧道的选择。
[0100]至此,完成实施例一的描述,实施例一说明本发明能使设备在多个BGP的下一跳中,选择一个能迭代到主机路由的下一跳作为最终的转发。
[0101]实施例二
[0102]图12是根据本发明实施例二的报文转发的流程图,如图12所示的L3vpn组网,CEl双归至Ij PEl和PE4,CE2双归到PE2和PE3,PEl和PE2之间与实施例一相同,PEl和Pl之间生成依赖于路由10.3.4.0的lspl, PEl和PE2之间建立BGP邻居,BGP的远端下一跳地址使能为10.3.4.2,使之能通告BGP私网路由。
[0103]PE4和PE3之间使能IGP和LDP,PE4P2PE3之间建立依赖于主机路由3.3.3.9的lsp2,PE4和PE3之间建立BGP邻居,BGP的远端下一跳地址使能为3.3.3.9,使之能通告BGP私网路由。
[0104]在上述环境基础上,PEl上,BGP会接收一个CE2侧的私网路由Rtl,其下一跳为10.3.4.2,执行步骤102,BGP协议模块94首先下发支撑模块96包含的下一跳为10.3.4.2的路由,执行步骤S1006,支撑模块96拿下一跳10.3.4.2进行最长匹配操作,发现寻找到的路由为10.4.3.0,没有匹配到主机路由。
[0105]执行步骤S1010,支撑模块96把路由及下一跳发送给BGP协议模块94,执行步骤S1012,路由不再有其它有效的下一跳,执行步骤S1014,BGP协议模块94将这个路由标记为无效,再将用于撤销该路由的撤销消息通告到CE1。
[0106]与此同时,PE4上,BGP也会接收一个CE2侧的私网路由Rtl,其下一跳为3.3.3.9,执行步骤S1004,BGP协议模块94下发给支撑模块96包含的下一跳为3.3.3.9的路由,执行步骤S1006,支撑模块96拿下一跳3.3.3.9进行最长匹配操作,发现寻找到的路由为
3.3.3.9,匹配到主机路由,执行步骤S1016,用于转发处理。
[0107]在CEl上的BGP路由,在收到PEl的用于撤销上述路由的撤销消息后,协议就会优选PE4作为下一跳路由器,能够及时替换失效的下一跳,完成路由的收敛。
[0108]至此,完成实施例二的描述,此实施例说明本发明在CE双归到PE的环境下,CE可以选择PE,条件是这个PE接收的BGP路由能够迭代到主机路由。
[0109]与相关技术相比较,相关技术中,对于BGP下发的L3vpn私网路由,支撑模块96只做最长匹配迭代,可能出现迭代到网络路由的情况,造成转发失效。而本发明的上述实施例可以通过配置,保证迭代时只能迭代到主机路由,若没有迭代到,还可以告诉BGP进行下一跳的重新选择,能尽最大可能迭代到主机路由生成的Isp做转发隧道。
[0110]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0111]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种报文转发方法,其特征在于,包括: 获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,所述私网路由具备两个或两个以上的下一跳; 从所述私网路由中确定具备迭代到主机路由的能力的下一跳; 依据确定的所述下一跳转发报文。2.根据权利要求1所述的方法,其特征在于,从所述私网路由中确定具备迭代到主机路由的能力的所述下一跳包括: 按照预定路由选择策略从所述私网路由中选择一个下一跳; 判断公网路由表中是否存储有目的地址与选择的所述下一跳的地址匹配,且掩码长度为32位的主机路由条目; 在判断结果为是的情况下,确定选择的所述下一跳具备迭代到所述主机路由的能力。3.根据权利要求2所述的方法,其特征在于,还包括: 在判断结果为否的情况下,重新选择所述私网路由的下一跳。4.根据权利要求3所述的方法,其特征在于,当所述私网路由中不存在具备迭代到所述主机路由的能力的下一跳时,所述方法还包括: 将所述私网路由标记为无效的私网路由; 将用于撤销所述无效的私网路由的撤销消息通告给上游设备,其中,所述撤销消息用于所述上游设备撤销所述无效的私网路由并重新选择用于转发所述报文的私网路由。5.根据权利要求2所述的方法,其特征在于,所述预定路由选择策略包括以下至少之 选择所述私网路由中所包括的下一跳对应的花费值Cost中最小Cost对应的下一跳;选择所述私网路由中所包括的下一跳对应的本地优先级LOCAL_PREF中最高L0CAL_PREF对应的下一跳; 选择所述私网路由中所包括的下一跳对应的路由器标识0RIGINAT0R_ID中最小0RIGINAT0R_ID对应的下一跳; 选择所述私网路由中所包括的下一跳对应的优选首选值Preferred_value中最大Preferred_value 对应的下一跳。6.一种报文转发装置,其特征在于,包括: 获取模块,用于获取邻居服务提供商网络边缘PE设备通告的用于转发报文的私网路由,其中,所述私网路由具备两个或两个以上的下一跳; 确定模块,用于从所述私网路由中确定具备迭代到主机路由的能力的下一跳; 转发模块,用于依据确定的所述下一跳转发报文。7.根据权利要求6所述的装置,其特征在于,所述确定模块包括: 第一选择单元,用于按照预定路由选择策略从所述私网路由中选择一个下一跳; 判断单元,用于判断公网路由表中是否存储有目的地址与选择的所述下一跳的地址匹配,且掩码长度为32位的主机路由条目; 确定单元,用于在所述判断单元的判断结果为是的情况下,确定选择的所述下一跳具备迭代到所述主机路由的能力。8.根据权利要求7所述的装置,其特征在于,所述确定模块还包括: 第二选择单元,用于在所述判断单元的判断结果为否的情况下,重新选择所述私网路由的下一跳。9.根据权利要求8所述的装置,其特征在于,还包括: 标记模块,用于当所述私网路由中不存在具备迭代到所述主机路由的能力的下一跳时,将所述私网路由标记为无效的私网路由; 通告模块,用于将用于撤销所述无效的私网路由的撤销消息通告给上游设备,其中,所述撤销消息用于所述上游设备撤销所述无效的私网路由并重新选择用于转发所述报文的私网路由。10.根据权利要求7所述的装置,其特征在于,所述预定路由选择策略包括以下至少之 选择所述私网路由中所包括的下一跳对应的花费值Cost中最小Cost对应的下一跳; 选择所述私网路由中所包括的下一跳对应的本地优先级LOCAL_PREF中最高L0CAL_PREF对应的下一跳; 选择所述私网路由中所包括的下一跳对应的路由器标识0RIGINAT0R_ID中最小0RIGINAT0R_ID对应的下一跳; 选择所述私网路由中所包括的下一跳对应的优选首选值Preferred_value中最大Preferred_value 对应的下一跳。11.一种服务提供商网络边缘PE设备,其特征在于,包括权利要求6至10中任一项所述的装置。
【文档编号】H04L12/741GK106034072SQ201510125248
【公开日】2016年10月19日
【申请日】2015年3月20日
【发明人】李黄, 韩杰
【申请人】中兴通讯股份有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1