一种路由处理方法和装置与流程

文档序号:15845886发布日期:2018-11-07 09:00阅读:152来源:国知局
一种路由处理方法和装置与流程
本申请涉及通信
技术领域
,尤其是涉及一种路由处理方法和装置。
背景技术
网络拥塞是影响骨干网络性能的主要问题,拥塞原因可能是网络资源不足,也可能是网络资源负载不均衡导致的局部拥塞,te(trafficengineering,流量工程)可以用来解决负载不均衡导致的拥塞问题。te通过实时监控网络流量和网络节点负载,动态调整流量管理参数、路由参数和资源约束参数等,使网络运行状态迁移到理想状态,优化网络资源的使用,避免负载不均衡导致的拥塞。mpls(multi-protocollabelswitching,多协议标签交换)te技术结合mpls技术与te技术,建立沿着指定路径的te隧道。在te隧道经过的网络节点进行资源预留,从而使网络流量绕开拥塞节点,并平衡网络流量。通过mplste技术,服务提供商能够在已有的mpls骨干网建立te隧道,利用现有的网络资源提供多样化的服务,可以优化网络资源,并进行科学的网络管理。te隧道的自动路由发布功能是指:将te隧道作为连接隧道头节点(ingress节点)与隧道尾节点(egress节点)的链路,将te隧道引入到路由中,使te隧道参与路由计算。但是,若隧道头节点与隧道尾节点处于不同区域,隧道头节点无法获知隧道尾节点所处区域的拓扑信息,也就无法实现自动路由发布功能。技术实现要素:有鉴于此,本申请实施例提供了一种路由处理方法和装置,能够实现跨区域的te隧道自动路由发布功能,使te隧道参与路由计算,提高用户体验。第一方面,本申请提供一种路由处理方法,应用于处于第一区域内的隧道头节点,所述隧道头节点与处于第二区域内的隧道尾节点之间建立有流量工程te隧道,所述方法包括:接收所述第二区域的边界节点发送的路由通告消息,所述路由通告消息携带所述第二区域内的路由信息,所述隧道头节点与所述边界节点建立有邻居关系;根据所述第二区域内的路由信息,生成链路状态广播lsa信息;其中,所述lsa信息包括所述第二区域内网络节点的区域属性、链路状态和ip前缀;根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点;其中,在从所述隧道头节点到达所述下游网络节点的所有转发路径中,包括由所述te隧道组成的转发路径,且所述下游网络节点位于所述第二区域内;根据所述第二区域内网络节点的ip前缀,确定所述下游网络节点的ip前缀,并生成目的地址为所述下游网络节点的ip前缀的路由,并将所述路由的出接口设置为所述te隧道的标识。结合第一方面,在第一种可能的实现方式中,所述根据所述第二区域内的路由信息,生成lsa信息,包括:从所述路由信息中解析出网络节点信息、链路信息和前缀信息;根据所述网络节点信息、所述链路信息和所述前缀信息,生成lsa信息。结合第一方面和第一种可能的实现方式,在第二种可能实现方式中,所述根据所述网络节点信息、所述链路信息和所述前缀信息,生成lsa信息,包括:从所述网络节点信息中解析出设备标识和区域属性,根据所述设备标识确定网络节点,并为所述网络节点保存所述区域属性;从所述链路信息中解析出设备标识和链路状态,查询到所述设备标识对应的网络节点,并为所述网络节点保存所述链路状态;从所述前缀信息中解析出设备标识和ip前缀,查询到所述设备标识对应的网络节点,并为所述网络节点保存所述ip前缀;将所述网络节点的区域属性、链路状态和ip前缀组成lsa信息。结合第一方面,在第三种可能的实现方式中,所述生成目的地址为所述下游网络节点的ip前缀的路由,包括:生成目的地址为所述下游网络节点的接口ip前缀的路由;和/或,生成目的地址为所述下游网络节点的本地路由表中外部ip前缀的路由。结合第一方面,在第四种可能的实现方式中,所述根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点之前,还包括:若所述隧道头节点与所述隧道尾节点之间存在至少两条转发路径,且所述至少两条转发路径包括所述te隧道,则获取每条转发路径的开销值;判断所述te隧道的开销值是否为最小开销值,如果是,则根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点。结合第一方面,在第五种可能的实现方式中,所述方法还包括:获取所述隧道尾节点的ip地址,生成目的地址为所述隧道尾节点的ip地址的路由,并将所述路由的出接口设置为所述te隧道的标识;和/或,获取所述下游网络节点的ip地址,生成目的地址为所述下游网络节点的ip地址的路由,并将所述路由的出接口设置为所述te隧道的标识。第二方面,本申请提供一种路由处理装置,应用于处于第一区域内的隧道头节点,所述隧道头节点与处于第二区域内的隧道尾节点之间建立有流量工程te隧道,所述装置包括:接收模块,用于接收所述第二区域的边界节点发送的路由通告消息,所述路由通告消息携带所述第二区域内的路由信息,所述隧道头节点与所述边界节点建立有邻居关系;生成模块,用于根据所述第二区域内的路由信息,生成链路状态广播lsa信息;其中,所述lsa信息包括所述第二区域内网络节点的区域属性、链路状态和ip前缀;确定模块,用于根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点;其中,在从所述隧道头节点到达所述下游网络节点的所有转发路径中,包括由所述te隧道组成的转发路径,且所述下游网络节点位于所述第二区域内;路由处理模块,用于根据所述第二区域内网络节点的ip前缀,确定所述下游网络节点的ip前缀,并生成目的地址为所述下游网络节点的ip前缀的路由,并将所述路由的出接口设置为所述te隧道的标识。结合第二方面,在第一种可能的实现方式中,所述生成模块根据所述第二区域内的路由信息,生成lsa信息时具体用于:从所述路由信息中解析出网络节点信息、链路信息和前缀信息;根据所述网络节点信息、所述链路信息和所述前缀信息,生成lsa信息。结合第二方面和第一种可能的实现方式,在第二种可能的实现方式中,所述生成模块根据所述网络节点信息、所述链路信息和所述前缀信息,生成lsa信息时具体用于:从所述网络节点信息中解析出设备标识和区域属性,根据所述设备标识确定网络节点,并为所述网络节点保存所述区域属性;从所述链路信息中解析出设备标识和链路状态,查询到所述设备标识对应的网络节点,并为所述网络节点保存所述链路状态;从所述前缀信息中解析出设备标识和ip前缀,查询到所述设备标识对应的网络节点,并为所述网络节点保存所述ip前缀;将所述网络节点的区域属性、链路状态和ip前缀组成lsa信息。结合第二方面,在第三种可能的实现方式中,所述路由处理模块生成目的地址为所述下游网络节点的ip前缀的路由时具体用于:生成目的地址为所述下游网络节点的接口ip前缀的路由;和/或,生成目的地址为所述下游网络节点的本地路由表中外部ip前缀的路由。结合第二方面,在第四种可能的实现方式中,所述确定模块根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点之前还用于:若所述隧道头节点与所述隧道尾节点之间存在至少两条转发路径,且所述至少两条转发路径包括所述te隧道,则获取每条转发路径的开销值;判断所述te隧道的开销值是否为最小开销值,如果是,则根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点。结合第二方面,在第五种可能的实现方式中,所述路由处理模块还用于:获取所述隧道尾节点的ip地址,生成目的地址为所述隧道尾节点的ip地址的路由,并将所述路由的出接口设置为所述te隧道的标识;和/或,获取所述下游网络节点的ip地址,生成目的地址为所述下游网络节点的ip地址的路由,并将所述路由的出接口设置为所述te隧道的标识。第三方面,本申请提供一种隧道头节点,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述第一方面的方法步骤。第四方面,本申请提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述第一方面的方法步骤。基于上述技术方案,本申请实施例中,第二区域的边界节点可以与第一区域的隧道头节点建立邻居关系,边界节点可以向隧道头节点发送路由通告消息,该路由通告消息携带第二区域内的路由信息,而隧道头节点可以根据该路由信息生成lsa信息,该lsa信息包括网络节点的区域属性、链路状态和ip前缀,并根据该lsa信息中的链路状态,确定隧道尾节点的下游网络节点,生成目的地址为下游网络节点的ip前缀的路由,并将路由的出接口设置为te隧道的标识。这样,即使隧道头节点与隧道尾节点的下游网络节点处于不同区域,隧道头节点可以获知下游网络节点所处区域的lsa信息,并利用该lsa信息将te隧道引入到路由,使te隧道参与路由计算,实现te隧道的自动路由发布功能。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。图1是本申请一种实施方式中的应用场景示意图;图2是本申请一种实施方式中的路由处理方法的流程图;图3是本申请一种实施方式中的路由处理装置的结构图;图4是本申请一种实施方式中的隧道头节点的硬件结构图。具体实施方式在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种路由处理方法,该方法可以应用于包括隧道头节点(ingress节点)和隧道尾节点(egress节点)的网络,隧道头节点与隧道尾节点之间建立有te隧道,隧道头节点与隧道尾节点可以位于同一区域(如自治系统as等),也可以位于不同区域,后续以位于不同区域为例进行说明。参见图1所示,为本申请实施例的应用场景示意图,网络节点101的ip地址为1.1.1.1,网络节点102的ip地址为2.2.2.2,以此类推,网络节点109的ip地址为9.9.9.9,而上述ip地址也可以是网络节点的设备标识。网络节点101的接口ip前缀为8.1.1.1/24和9.1.1.1/24,接口ip前缀8.1.1.1/24与网络节点102连接,接口ip前缀9.1.1.1/24与网络节点104连接,网络节点102的接口ip前缀为8.1.1.2/24和10.1.1.1/24,接口ip前缀8.1.1.2/24与网络节点101连接,接口ip前缀10.1.1.1/24与网络节点103连接,以此类推,网络节点109的接口ip前缀为70.1.1.2/24,接口ip前缀70.1.1.2/24与网络节点108连接。当然,图1所示的应用场景,只是本申请的一个示例,对此不做限制。参见图1所示,网络节点101、网络节点102和网络节点104部署在区域1,网络节点102、网络节点104、网络节点103和网络节点105部署在区域0,网络节点103、网络节点105、网络节点106、网络节点107、网络节点108和网络节点109部署在区域2。由于网络节点102部署在区域1和区域0,因此,网络节点102可以称为边界节点(如abr(areaborderrouter,区域边界路由器)等),同理,网络节点104、网络节点103和网络节点105也可以称为边界节点。假设在网络节点101与网络节点106之间建立te隧道,对此建立方式不做限制,则网络节点101可以为隧道头节点,网络节点106可以为隧道尾节点。在传统方式中,由于网络节点101与网络节点106处于不同区域,并且网络节点101与网络节点106的下游网络节点(如网络节点108和网络节点109等)也处于不同区域,因此,网络节点101无法获知下游网络节点所处区域2的拓扑信息,也就不知道网络节点106的下游网络节点,无法将下游网络节点的路由的出接口设置为te隧道,从而无法实现te隧道的自动路由发布功能。针对上述发现,本申请实施例中,可以在网络节点103与网络节点101之间建立邻居关系,这样,网络节点103可以通过该邻居关系向网络节点101发送路由通告消息,路由通告消息可以携带区域2内的路由信息,而网络节点101接收到路由通告消息后,可以根据该路由信息生成lsa(linkstateadvertisement,链路状态广播)信息,并根据该lsa信息确定网络节点106的下游网络节点(如网络节点108和网络节点109等),这样,在存在多区域的情况下,网络节点101也可以将下游网络节点的路由的出接口设置为te隧道的标识,从而实现te隧道的自动路由发布功能,即将te隧道作为连接网络节点101与网络节点106的链路,将te隧道引入到路由,使te隧道参与路由计算,提高用户使用体验。以下结合具体实施例,对路由处理方法进行说明。本实施例中,可以在隧道头节点与边界节点之间建立邻居关系,如bgp(bordergatewayprotocol,边界网关协议)邻居关系,如跨区域的bgp-ls(link-state,链路状态)邻居关系。参见图1所示,在一个例子中,网络节点101可以与网络节点102、网络节点104、网络节点103和网络节点105分别建立邻居关系。在另一个例子中,考虑到网络节点102与网络节点101处于同一区域1,网络节点104与网络节点101处于同一区域1,因此,不在网络节点101与网络节点102和网络节点104之间建立邻居关系。又考虑到网络节点103和网络节点105均处于区域0和区域2,网络节点103可以收集区域0和区域2的路由信息,网络节点105可以收集区域0和区域2的路由信息,因此,网络节点101可以与网络节点103或网络节点105建立邻居关系,为了方便描述,后续以网络节点101与网络节点103建立邻居关系为例,如网络节点101与网络节点103建立bgp邻居关系。在上述应用场景下,参见图2所示,为本申请实施例中的路由处理方法的流程图,该方法可以应用于处于第一区域内的隧道头节点,所述隧道头节点与处于第二区域内的隧道尾节点之间建立有流量工程te隧道,该方法可以包括:步骤201,接收第二区域的边界节点发送的路由通告消息,该路由通告消息携带第二区域内的路由信息。其中,路由通告消息可以包括但不限于bgp消息。参见图1所示,网络节点103可以收集区域2内的路由信息、区域0内的路由信息,并生成携带区域2内的路由信息和区域0内的路由信息的bgp消息(如bgp-ls消息),又由于网络节点103与网络节点101之间建立有bgp邻居关系,因此,网络节点103可以将该bgp消息发送给网络节点101。由于区域2内的路由信息的处理方式与区域0内的路由信息的处理方式相同,因此,为方便描述,后续以bgp消息携带区域2内的路由信息为例。其中,路由信息可以包括但不限于网络节点信息、链路信息和前缀信息,网络节点信息可以包括但不限于设备标识和区域属性,链路信息可以包括但不限于设备标识和链路状态,前缀信息可以包括但不限于设备标识和ip前缀。例如,参见图1所示,bgp消息可以携带第一tlv、第二tlv和第三tlv。第一tlv的类型可以为第一标识,第一标识用于表示第一tlv中携带网络节点信息。例如,网络节点信息包括但不限于:3.3.3.3与区域0、区域2的对应关系,5.5.5.5与区域0、区域2的对应关系,6.6.6.6与区域2的对应关系,7.7.7.7与区域2的对应关系,8.8.8.8与区域2的对应关系,9.9.9.9与区域2的对应关系。第二tlv的类型可以为第二标识,第二标识用于表示第二tlv中携带链路信息。例如,链路信息可以包括但不限于:3.3.3.3的接口ip地址40.1.1.1与6.6.6.6的接口ip地址40.1.1.2连接,3.3.3.3的接口ip地址30.1.1.1与5.5.5.5的接口ip地址30.1.1.2连接,6.6.6.6的接口ip地址60.1.1.1与8.8.8.8的接口ip地址60.1.1.2连接,6.6.6.6的接口ip地址50.1.1.1与7.7.7.7的接口ip地址50.1.1.2连接,8.8.8.8的接口ip地址70.1.1.1与9.9.9.9的接口ip地址70.1.1.2连接。当然,上述链路信息只是为了方便描述的一个示例,还可以包括其它内容,对此不做限制。第三tlv的类型可以为第三标识,第三标识用于表示第三tlv中携带前缀信息。例如,前缀信息可以包括但不限于:3.3.3.3与40.1.1.1/24、30.1.1.1/24的对应关系,5.5.5.5与30.1.1.2/24的对应关系,6.6.6.6与40.1.1.2/24、50.1.1.1/24、60.1.1.1/24的对应关系,7.7.7.7与50.1.1.2/24的对应关系,8.8.8.8与60.1.1.2/24、70.1.1.1/24的对应关系,9.9.9.9与70.1.1.2/24的对应关系。当然,上述前缀信息只是为了方便描述的一个示例,还可以包括其它内容,对此不做限制。步骤202,根据第二区域内的路由信息,生成lsa信息。其中,该lsa信息可以包括第二区域内网络节点的设备标识、区域属性、链路状态和ip前缀。具体的,可以从该路由信息中解析出网络节点信息、链路信息和前缀信息,并根据该网络节点信息、该链路信息和该前缀信息,生成lsa信息。在一个例子中,根据该网络节点信息、该链路信息和该前缀信息,生成lsa信息,可以包括但不限于:从该网络节点信息中解析出设备标识和区域属性,并根据该设备标识确定网络节点,并为该网络节点保存该区域属性;从该链路信息中解析出设备标识和链路状态,并查询到该设备标识对应的网络节点,并为该网络节点保存该链路状态;从该前缀信息中解析出设备标识和ip前缀,并查询到该设备标识对应的网络节点,并为该网络节点保存该ip前缀。进一步的,还可以将该网络节点的区域属性、链路状态和ip前缀组成lsa信息。以下结合图1所示的应用场景,对lsa信息的生成过程进行说明。网络节点101在接收到bgp消息后,可以从bgp消息的第一tlv中解析出网络节点信息,从bgp消息的第二tlv中解析出链路信息,从bgp消息的第三tlv中解析出前缀信息,网络节点信息、链路信息和前缀信息参见步骤201。基于所述网络节点信息,网络节点101可以确定设备标识为3.3.3.3的网络节点,后续称为网络节点103,并为网络节点103保存区域属性,即区域0和区域2。网络节点101还可以确定设备标识为5.5.5.5的网络节点105,且为网络节点105保存区域0和区域2;确定设备标识为6.6.6.6的网络节点106,且为网络节点106保存区域2;确定设备标识为7.7.7.7的网络节点107,且为网络节点107保存区域2;确定设备标识为8.8.8.8的网络节点108,且为网络节点108保存区域2;确定设备标识为9.9.9.9的网络节点109,为网络节点109保存区域2。基于所述前缀信息,可以为设备标识为3.3.3.3的网络节点103保存ip前缀40.1.1.1/24和30.1.1.1/24,为设备标识为5.5.5.5的网络节点105保存ip前缀30.1.1.2/24,为设备标识为6.6.6.6的网络节点106保存ip前缀40.1.1.2/24、50.1.1.1/24、60.1.1.1/24,为设备标识为7.7.7.7的网络节点107保存ip前缀50.1.1.2/24,为设备标识为8.8.8.8的网络节点108保存ip前缀60.1.1.2/24、70.1.1.1/24,为设备标识为9.9.9.9的网络节点109保存ip前缀70.1.1.2/24。基于链路信息,为设备标识为3.3.3.3的网络节点103保存如下链路状态:接口ip地址40.1.1.1与接口ip地址40.1.1.2连接,接口ip地址30.1.1.1与接口ip地址30.1.1.2连接。为设备标识为5.5.5.5的网络节点105保存如下链路状态:接口ip地址30.1.1.2与接口ip地址30.1.1.1连接。为设备标识为6.6.6.6的网络节点106保存如下链路状态:接口ip地址40.1.1.2与接口ip地址40.1.1.1连接,接口ip地址60.1.1.1与接口ip地址60.1.1.2连接,接口ip地址50.1.1.1与接口ip地址50.1.1.2连接。为设备标识为7.7.7.7的网络节点107保存如下链路状态:接口ip地址50.1.1.2与接口ip地址50.1.1.1连接。为设备标识为8.8.8.8的网络节点108保存如下链路状态:接口ip地址60.1.1.2与接口ip地址60.1.1.1连接,接口ip地址70.1.1.1与接口ip地址70.1.1.2连接。为设备标识为9.9.9.9的网络节点109保存如下链路状态:接口ip地址70.1.1.2与接口ip地址70.1.1.1连接。经过上述处理,网络节点101可以得到网络节点103的lsa信息,该lsa信息可以包括但不限于:网络节点103的设备标识(即ip地址)为3.3.3.3,区域属性是区域0和区域2,链路状态是接口ip地址40.1.1.1与接口ip地址40.1.1.2连接,接口ip地址30.1.1.1与接口ip地址30.1.1.2连接,ip前缀是40.1.1.1/24和30.1.1.1/24。同理,可以得到网络节点105的lsa信息、网络节点106的lsa信息、网络节点107的lsa信息、网络节点108的lsa信息、网络节点109的lsa信息,对这些lsa信息不再赘述。在得到上述各网络节点的lsa信息后,网络节点101还可以利用这些lsa信息生成区域2的网络拓扑,其网络拓扑可以参见图1所示,对此网络拓扑的生成方式不做限制。在一个例子中,隧道头节点可以包括bgp功能模块和ospf(openshortestpathfirst,开放式最短路径优先)功能模块,该bgp功能模块在接收到路由通告消息后,可以从该路由通告消息中获取路由信息,并将该路由信息通知给该ospf功能模块,由ospf功能模块将该路由信息转换为ospf的lsa信息。步骤203,根据第二区域内网络节点的链路状态,确定隧道尾节点的下游网络节点;其中,在从隧道头节点到达下游网络节点的所有转发路径中,包括由所述te隧道组成的转发路径,且该下游网络节点可以位于第二区域内。在一个例子中,若从隧道头节点到达第二区域的某个网络节点的所有转发路径中,包括由所述te隧道组成的转发路径,则将该网络节点确定为隧道尾节点的下游网络节点。在另一个例子中,若从隧道头节点到达第二区域的某个网络节点的所有转发路径中,最短转发路径是由所述te隧道的转发路径组成,则将该网络节点确定为隧道尾节点的下游网络节点,后续以第二种情况为例。例如,网络节点101可以根据lsa信息得到图1所示的网络拓扑,从网络拓扑可以看出,网络节点108和网络节点109是网络节点106的下游网络节点。从图1的网络拓扑可以看出,对于网络节点108来说,在从网络节点101到达网络节点108的所有转发路径中,包括由te隧道(即网络节点101-网络节点102-网络节点103-网络节点106)组成的转发路径,而且,最短转发路径可以是:网络节点101-网络节点102-网络节点103-网络节点106-网络节点108,也就是说,最短转发路径由te隧道组成,因此,网络节点108是网络节点106的下游网络节点。同理,网络节点109也可以是网络节点106的下游网络节点。对于网络节点107来说,在从网络节点101到达网络节点107的所有转发路径中,包括由te隧道组成的转发路径,但是,最短转发路径可以是:网络节点101-网络节点104-网络节点105-网络节点107,即最短转发路径不是由te隧道组成的,因此,网络节点107可以不是网络节点106的下游网络节点。步骤204,根据第二区域内网络节点的ip前缀,确定该下游网络节点的ip前缀,生成目的地址为该下游网络节点的ip前缀的路由,将该路由的出接口设置为te隧道的标识。其中,下游网络节点的ip前缀可以包括但不限于:下游网络节点的接口ip前缀,和/或,下游网络节点的本地路由表中的外部ip前缀。在一个例子中,生成目的地址为该下游网络节点的ip前缀的路由,可以包括但不限于:生成目的地址为该下游网络节点的接口ip前缀的路由;和/或,生成目的地址为该下游网络节点的本地路由表中外部ip前缀的路由。例如,网络节点101根据上述lsa信息可以获取到网络节点108的ip前缀,如ip前缀60.1.1.2/24和70.1.1.1/24,并获取到网络节点109的ip前缀,如ip前缀是70.1.1.2/24,因此,网络节点101可以生成表1所示的路由。当然,表1只是一个示例,路由中还可以包括下一跳等其它内容,对此不做限制。表1目的ip地址出接口60.1.1.2/24te隧道的标识70.1.1.1/24te隧道的标识70.1.1.2/24te隧道的标识其中,上述60.1.1.2/24和70.1.1.1/24是网络节点108的接口ip前缀,在实际应用中,网络节点108可以学习到大量路由,并在本地路由表中记录这些路由,而这些路由的ip前缀可以称为外部ip前缀,外部ip前缀是其它网络节点发布给网络节点108的,而不是网络节点108自身的接口ip前缀,如网络节点108本地路由表中的一万条外部ip前缀。而且,在网络节点103发送的bgp消息的前缀信息中,还可以包括这些外部ip前缀,因此,网络节点101在生成lsa信息时,网络节点108的lsa信息还可以包括这些外部ip前缀,这样,网络节点101在生成路由时,可以生成目的地址为这些外部ip前缀的路由,且这些路由的出接口均为te隧道的标识,对此过程不再重复赘述。类似的,70.1.1.2/24是网络节点109的接口ip前缀,网络节点101在生成lsa信息时,网络节点109的lsa信息还可以包括网络节点109的外部ip前缀,这样,网络节点101在生成路由时,可以生成目的地址为这些外部ip前缀的路由,且这些路由的出接口均为te隧道的标识,对此过程不再重复赘述。在一个例子中,隧道头节点还可以获取隧道尾节点的ip地址,并生成目的地址为隧道尾节点的ip地址的路由,并可以将该路由的出接口设置为te隧道的标识。例如,网络节点101还可以获取网络节点106的ip地址(即上述设备标识),如6.6.6.6,并生成目的地址为ip地址6.6.6.6的路由,参见表2所示。表2目的ip地址出接口60.1.1.2/24te隧道的标识70.1.1.1/24te隧道的标识70.1.1.2/24te隧道的标识6.6.6.6te隧道的标识在一个例子中,隧道头节点还可以获取下游网络节点的ip地址(如lsa信息中的设备标识,也就是网络节点的ip地址),并生成目的地址为该下游网络节点的ip地址的路由,并可以将该路由的出接口设置为te隧道的标识。例如,网络节点101可以根据上述lsa信息获取到网络节点108的ip地址,如8.8.8.8,并可以根据上述lsa信息获取到网络节点109的ip地址,如9.9.9.9,然后,网络节点101可以生成表3所示的路由。表3在上述实施例中,已介绍网络节点106、网络节点108、网络节点109的路由计算过程,而其它网络节点(如网络节点107)的路由计算过程不再赘述。在一个例子中,若隧道头节点与隧道尾节点之间只存在一条转发路径,即该转发路径是te隧道,则可以执行步骤203和步骤204。若隧道头节点与隧道尾节点之间存在至少两条转发路径,且所述至少两条转发路径包括te隧道,则可以获取每条转发路径的开销值(cost),并判断te隧道的开销值是否为最小开销值,如果是,则可以执行步骤203和步骤204,如果否,则不再执行步骤203和步骤204,而是采用传统方式进行处理,对此处理过程不再赘述。参见图1所示,网络节点101与网络节点106之间可以存在如下转发路径:转发路径1(即网络节点101-网络节点102-网络节点103-网络节点106),转发路径2(即网络节点101-网络节点102-网络节点103-网络节点105-网络节点107-网络节点106),转发路径3(即网络节点101-网络节点104-网络节点105-网络节点107-网络节点106),转发路径4(即网络节点101-网络节点104-网络节点105-网络节点103-网络节点106),而且,所述转发路径1是te隧道。基于此,若转发路径1的开销值是最小开销值,则可以采用本实施例的计算方案,若转发路径1的开销值不是最小开销值,则可以采用传统方式。基于上述技术方案,本申请实施例中,第二区域的边界节点可以与第一区域的隧道头节点建立邻居关系,边界节点可以向隧道头节点发送路由通告消息,该路由通告消息携带第二区域内的路由信息,而隧道头节点可以根据该路由信息生成lsa信息,该lsa信息包括网络节点的区域属性、链路状态和ip前缀,并根据该lsa信息中的链路状态,确定隧道尾节点的下游网络节点,生成目的地址为下游网络节点的ip前缀的路由,并将路由的出接口设置为te隧道的标识。这样,即使隧道头节点与隧道尾节点的下游网络节点处于不同区域,隧道头节点可以获知下游网络节点所处区域的lsa信息,并利用该lsa信息将te隧道引入到路由,使te隧道参与路由计算,实现te隧道的自动路由发布功能。基于与上述方法同样的申请构思,本申请实施例中还提出一种路由处理装置,应用于处于第一区域内的隧道头节点,所述隧道头节点与处于第二区域内的隧道尾节点之间建立有流量工程te隧道,如图3所示,为所述装置的结构图,所述装置具体包括:接收模块301,用于接收所述第二区域的边界节点发送的路由通告消息,所述路由通告消息携带所述第二区域内的路由信息,所述隧道头节点与所述边界节点建立有邻居关系;生成模块302,用于根据所述第二区域内的路由信息,生成链路状态广播lsa信息;其中,所述lsa信息包括所述第二区域内网络节点的区域属性、链路状态和ip前缀;确定模块303,用于根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点;其中,在从所述隧道头节点到达所述下游网络节点的所有转发路径中,包括由所述te隧道组成的转发路径,且所述下游网络节点位于所述第二区域内;路由处理模块304,用于根据所述第二区域内网络节点的ip前缀,确定所述下游网络节点的ip前缀,并生成目的地址为所述下游网络节点的ip前缀的路由,并将所述路由的出接口设置为所述te隧道的标识。所述生成模块302根据所述第二区域内的路由信息,生成lsa信息时具体用于:从所述路由信息中解析出网络节点信息、链路信息和前缀信息;根据所述网络节点信息、所述链路信息和所述前缀信息,生成lsa信息。所述生成模块302根据所述网络节点信息、所述链路信息和所述前缀信息,生成lsa信息时具体用于:从所述网络节点信息中解析出设备标识和区域属性,根据所述设备标识确定网络节点,并为所述网络节点保存所述区域属性;从所述链路信息中解析出设备标识和链路状态,查询到所述设备标识对应的网络节点,并为所述网络节点保存所述链路状态;从所述前缀信息中解析出设备标识和ip前缀,查询到所述设备标识对应的网络节点,并为所述网络节点保存所述ip前缀;将所述网络节点的区域属性、链路状态和ip前缀组成lsa信息。所述路由处理模块304生成目的地址为所述下游网络节点的ip前缀的路由时具体用于:生成目的地址为所述下游网络节点的接口ip前缀的路由;和/或,生成目的地址为所述下游网络节点的本地路由表中外部ip前缀的路由。所述确定模块303根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点之前还用于:若所述隧道头节点与所述隧道尾节点之间存在至少两条转发路径,且所述至少两条转发路径包括所述te隧道,则获取每条转发路径的开销值;判断所述te隧道的开销值是否为最小开销值,如果是,则根据所述第二区域内网络节点的链路状态,确定所述隧道尾节点的下游网络节点。所述路由处理模块304还用于:获取所述隧道尾节点的ip地址,生成目的地址为所述隧道尾节点的ip地址的路由,并将所述路由的出接口设置为所述te隧道的标识;和/或,获取所述下游网络节点的ip地址,生成目的地址为所述下游网络节点的ip地址的路由,将所述路由的出接口设置为所述te隧道的标识。基于上述技术方案,本申请实施例中,第二区域的边界节点可以与第一区域的隧道头节点建立邻居关系,边界节点可以向隧道头节点发送路由通告消息,该路由通告消息携带第二区域内的路由信息,而隧道头节点可以根据该路由信息生成lsa信息,该lsa信息包括网络节点的区域属性、链路状态和ip前缀,并根据该lsa信息中的链路状态,确定隧道尾节点的下游网络节点,生成目的地址为下游网络节点的ip前缀的路由,并将路由的出接口设置为te隧道的标识。这样,即使隧道头节点与隧道尾节点的下游网络节点处于不同区域,隧道头节点可以获知下游网络节点所处区域的lsa信息,并利用该lsa信息将te隧道引入到路由,使te隧道参与路由计算,实现te隧道的自动路由发布功能。本申请实施例中提供的隧道头节点,从硬件层面而言,硬件架构示意图具体可以参见图4所示。可以包括:机器可读存储介质和处理器,其中:机器可读存储介质:存储指令代码。处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的路由处理操作。这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1