一种IS-IS协议跨层次路径计算的方法及装置与流程

文档序号:12376272阅读:193来源:国知局
一种IS-IS协议跨层次路径计算的方法及装置与流程

本发明涉及一种运行中间系统到中间系统路由协议(Intermediate System to Intermediate System,ISIS)路由协议的网络设备,特别涉及一种ISIS协议跨层次路径计算的方法及装置。



背景技术:

ISIS是一种动态的、基于链路状态的内部网关协议(Interior Gateway Protocol,IGP)。ISIS协议通过hello报文交互协商建立邻居后,每一个中间系统(Intermediate System,IS)都产生链路状态协议数据包(Link-State Packet,LSP)描述本IS的链路状态信息发送到网络中,并且也会存储网络拓扑上所有IS设备发送过来的LSP,形成链路状态数据库(Link State DataBase,LSDB)。在支持流量工程(Traffic Engineer,TE)中,ISIS使用的LSDB称为流量工程链路状态数据库(Traffic Engineer-Link State DataBase,TE-LSDB),依据TE-LSDB通过受限最短路径优先算法(Constrained Shortest Path First,CSPF)计算出到达目的节点的最佳隧道路径。

基于流量工程的资源预留协议(Resource Reservation Protocol-Traffic Engineer,RSVP-TE)是一种基于多协议标签交换(Multi-Protocol Label Switching,MPLS)的流量工程技术。通过信息发布、路径计算、信令交互(RSVP-TE)、流量的转发四个部件实现业务流量在TE隧道中的转发。

RSVP-TE隧道的计算就是依赖于ISIS的TE-LSDB进行计算,在路径计算的过程中大致分为两类,一类是动态算路,一类是通过配置的显式路径算路。动态算路是一种没有其他约束条件的一种算路机制,只要一条路径能够满足隧道建立所需要的资源即可。如果是动态算路,只会在头节点提交一次CSPF计算,算出从隧道头节点到隧道尾节点的完整路径。显式路径算路是一种具有配置约束的一种算路机制,可以配置隧道路径必须排除某个接口或者节点,可以配置隧道必须严格或者松散的经过某个接口或者节点。如果是显式路径算路,隧道头节点提交 CSPF计算时,算出的是从隧道头节点到显示路径中的第一个松散点的路径(如果显示路径中都是严格的配置,那么算出来的也是从隧道头节点到隧道尾节点的完整路径),当PATH消息到达第一个松散点后,会再次进行CSPF计算,算到下一个松散点,这样最终计算到隧道尾节点。

ISIS协议是一种分层次(level)路由协议,分为level 1和level 2两个层次:level 2形成的域为骨干域,形成的ISIS拓扑为level 2拓扑;level 2网络连接到网络上的多个区域(area),每个area形成的ISIS拓扑为level 1拓扑。每个level拓扑独立进行邻居建立和LSP洪泛,形成各自的TE-LSDB。因此,各个area形成的多个level 1拓扑已经骨干域的level 2拓扑都相互隔离,TE-LSDB也相互隔离,相互不知道其他域或区域的链路状态信息。如果RSVP-TE要求计算一条在ISIS协议拓扑中跨层次(level)的隧道路径,如:隧道路径第一部分在level 1中,第二部分在level 2中。那么,并不能采用动态算路从处于level 1中的头节点算至处于level 2中的尾节点。这时,通常采用人为设置的显式路径算路,配置一个松散节点到level 1和level 2边界的同时支持level 1和level 2的路由器,这样,从处于level 1中的头节点使用level 1的TE-LSDB算至这个松散节点,再由松散节点使用level 2的TE-LSDB算至处于level 2中的尾节点。

此时,存在如下问题:

1、网络中这样的隧道路径非常庞大,一一配置符合条件的松散节点,配置和维护人力成本太高;

2、人为配置容易出错;

3、当level 1和level 2边界的同时支持level 1和level 2的路由器存在多个时,人力配置可能选择不到最优的隧道路径松散节点。



技术实现要素:

本发明的目的在于提供一种IS-IS协议跨层次路径计算的方法及装置,能更好地解决在不需要人力干预的情况下自动计算可以满足要求的最优的跨层次隧道路径的问题。

根据本发明的一个方面,提供了一种IS-IS协议跨层次路径计算的方法,包 括:

同时处于两个层次的中间网络设备将一个层次的路由标识数据泄露至另一个层次的所有网络设备;

当两个层次中任意一个层次的网络设备作为源节点收到路径计算请求时,利用所述请求中的目的地路由标识数据,确定是否进行跨层次路径计算;

若确定进行跨层次路径计算,则利用所述请求中的目的地路由标识数据,确定用于跨层次路径计算的松散节点;

利用所确定的松散节点,进行跨层次路径计算。

优选地,所述的同时处于两个层次的中间网络设备将一个层次的路由标识数据泄露至另一个层次的所有网络设备的步骤包括:

同时处于两个层次的中间网络设备将一个层次的路由标识数据添加至另一个层次的链路状态数据包中,并以洪泛方式将所述链路状态数据包泄露至另一个层次。

优选地,在源节点收到路径计算请求之前,还包括:

所述源节点接收中间网络设备以洪泛方式泄露的链路状态数据包;

将所述链路状态数据包中的路由标识数据标识为泄露的路由标识数据,保存至其链路状态协议数据库。

优选地,所述的利用所述请求中的目的地路由标识数据,确定是否进行跨层次路径计算的步骤包括:

所述源节点通过查找其链路状态协议数据库,判断所述路径计算请求中的目的地路由标识数据是否是泄露的路由标识数据;

若判断所述目的地路由标识数据是泄露的路由标识数据,则确定进行跨层次路径计算。

优选地,所述的利用所述请求中的目的地路由标识数据,确定用于跨层次路径计算的松散节点的步骤包括:

所述源节点查找泄露所述路由标识数据的中间网络设备,并将所找到的中间网络设备确定为松散节点。

根据本发明的另一方面,提供了一种IS-IS协议跨层次路径计算的装置,包括:

泄露模块,设置在同时处于两个层次的中间网络设备,用于将一个层次的路由标识数据泄露至另一个层次的所有网络设备;

跨层次确定模块,当其所在的处于两个层次中任意一个层次的网络设备作为源节点收到路径计算请求时,利用所述请求中的目的地路由标识数据,确定是否进行跨层次路径计算;

松散节点确定模块,用于在确定进行跨层次路径计算时,利用所述请求中的目的地路由标识数据,确定用于跨层次路径计算的松散节点;

路径计算模块,用于利用所确定的松散节点,进行跨层次路径计算。

优选地,所述泄露模块将一个层次的路由标识数据添加至另一个层次的链路状态数据包中,并以洪泛方式将所述链路状态数据包泄露至另一个层次。

优选地,还包括:

链路状态协议数据库,用于在收到路径计算请求之前,保存所述泄露模块泄露的链路状态数据包中的路由标识数据,并将其标识为泄露的路由标识数据。

优选地,所述跨层次确定模块通过查找其链路状态协议数据库,判断所述路径计算请求中的目的地路由标识数据是否是泄露的路由标识数据,若判断所述目的地路由标识数据是泄露的路由标识数据,则确定进行跨层次路径计算。

优选地,所述松散节点确定模块查找泄露所述路由标识数据的中间网络设备,并将所找到的中间网络设备确定为松散节点。

与现有技术相比较,本发明的有益效果在于:

1、隧道路径可以自动进行跨层次的计算,不需要人为配置松散路径,减少了人力配置成本;

2、由于网络的变化,原有跨层次路径计算,需要人工重新配置松散路径,而使用本发明,跨层次的隧道路径可以自动适应网络动态变化,重新计算满足要求的跨层次隧道路径,避免了人为配置出错问题;

3、原有跨层次路径计算,需要人工重新配置松散路径,人工配置不一定是目前网络的最优路径,而使用本发明后,路径按照CSPF算法自动计算,可以计算满足要求的跨层次最优路径。

附图说明

图1是本发明实施例提供的IS-IS协议跨层次路径计算的方法原理框图;

图2是本发明实施例提供的IS-IS协议跨层次路径计算的装置框图;

图3是本发明实施例提供的泄漏TE router-id TLV图;

图4是本发明实施例提供的跨层次路径计算拓扑图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的IS-IS协议跨层次路径计算的方法原理框图,如图1所示,步骤包括:

步骤S101:同时处于两个层次的中间网络设备将一个层次的路由标识数据泄露至另一个层次的所有网络设备。

具体地说,同时处于两个层次的中间网络设备将一个层次的路由标识数据添加至另一个层次的链路状态数据包中,并以洪泛方式将所述链路状态数据包泄露至另一个层次,以供另一个层次的网络设备接收所述中间网络设备以洪泛方式泄露的链路状态数据包,并将所述链路状态数据包中的路由标识数据标识为泄露的路由标识数据,保存至其链路状态协议数据库。其中,一个链路状态数据包中可以携带一个层次的多个路由标识数据。

步骤S102:当两个层次中任意一个层次的网络设备作为源节点收到路径计算请求时,利用所述请求中的目的地路由标识数据,确定是否进行跨层次路径计算。

具体地说,所述源节点通过查找其链路状态协议数据库,判断所述路径计算请求中的目的地路由标识数据是否是泄露的路由标识数据,若在链路状态协议数据库中找到目的地路由标识数据,且已标识为泄露的路由标识数据,则说明所述目的地路由标识数据对应的网络设备不是所述源节点所在层次的网络设备,需要进行跨层次路径计算。

若在链路状态协议数据库中找到目的地路由标识数据,且已标识为非泄露的路由标识数据,则说明所述目的地路由标识数据对应的网络设备是所述源节点所在层次的网络设备,直接进行隧道路径计算即可。

步骤S103:若确定进行跨层次路径计算,则利用所述请求中的目的地路由标识数据,确定用于跨层次路径计算的松散节点。

具体地说,所述源节点查找泄露所述路由标识数据的中间网络设备,并将所找到的中间网络设备确定为松散节点。

步骤S104:利用所确定的松散节点,进行跨层次路径计算。

图2是本发明实施例提供的IS-IS协议跨层次路径计算的装置框图,如图2所示,包括:设置在同时处于两个层次的中间网络设备的泄露模块10、设置在两个层次中任意一个层次的网络设备的跨层次确定模块20、松散节点确定模块30和路径计算模块40。

泄露模块10用于将一个层次的路由标识数据泄露至另一个层次的所有网络设备,具体地说,泄露模块10将一个层次的路由标识数据添加至另一个层次的链路状态数据包中,并以洪泛方式将所述链路状态数据包泄露至另一个层次。此时,另一个层次的网络设备接收所述中间网络设备以洪泛方式泄露的链路状态数据包,并将所述链路状态数据包中的路由标识数据标识为泄露的路由标识数据,保存至其链路状态协议数据库,换句话说,网络设备还包括链路状态协议数据库(图中未示出),用于在收到路径计算请求之前,保存所述泄露模块10泄露的链路状态数据包中的路由标识数据,并将其标识为泄露的路由标识数据。

跨层次确定模块20在其所在的网络设备作为源节点收到路径计算请求时,利用所述请求中的目的地路由标识数据,确定是否进行跨层次路径计算,具体地说,跨层次确定模块20通过查找其链路状态协议数据库,判断所述路径计算请求中的目的地路由标识数据是否是泄露的路由标识数据,若在链路状态协议数据库中找到目的地路由标识数据,且已标识为泄露的路由标识数据,说明所述目的地路由标识数据对应的网络设备不是所述源节点所在层次的网络设备,此时确定需要进行跨层次路径计算;若在链路状态协议数据库中找到目的地路由标识数据,且已标识为非泄露的路由标识数据,说明所述目的地路由标识数据对应的网络设备是所述源节点所在层次的网络设备,此时确定不需要进行跨层次路径计算,即直接进行隧道路径计算即可。

松散节点确定模块30用于在确定进行跨层次路径计算时,利用所述请求中的目的地路由标识数据,确定用于跨层次路径计算的松散节点,具体地说,松散 节点确定模块30查找泄露所述路由标识数据的中间网络设备,并将所找到的中间网络设备确定为松散节点。

路径计算模块,用于利用所确定的松散节点,进行跨层次路径计算。

为使本发明的目的、技术方案和有益效果更加清楚,下面结合附图3和4对本发明进行详细描述。

一、新增一种携带于LSP中的协议类型数据TLV(类型-长度-值)

图3是本发明实施例提供的泄漏TE router-id TLV图,如图3所示,新增一种协议类型数据TLV,称为TE router-id泄漏TLV,包括一个字节的类型,一个字节的长度,值包含多个TE router-id,每个TE router-id为6个字节。因此,长度字段中的长度为6×n,n表示值域中包含TE router-id的个数。

任何一个LSP报文中可以包含多个TE router-id泄漏TLV。

二、处理方式

1、生成方IS,如果设置level 1和level 2使能,同时设置了MPLS level 1和level 2功能打开,并且设置了TE router-id从Level 2泄漏到level 1,那么生成方IS将泄漏Level 2拓扑中所有的IS的TE router-id到Level 1中,并将泄漏的TE router-id放置于TE router-id泄漏TLV,TE router-id泄漏TLV添加至Level 1的LSP中,最后将LSP洪泛出去。Level 2拓扑中所有的IS的TE router-id通过对接收到的Level 2拓扑中所有的IS生成的LSP携带的router id TLV处理,提取其中保存的IS配置的TE router id。

2、同样地,生成方IS,如果设置level 1和level 2使能,同时设置了MPLS level 1和level 2功能打开,并且设置了TE router-id从Level 1泄漏到level 2,那么生成方IS将泄漏Level 1拓扑中所有的IS的TE router-id到Level 2中,并将泄漏的TE router-id放置于TE router-id泄漏TLV,TE router-id泄漏TLV添加至Level 2的LSP中,最后将LSP洪泛出去。Level 1拓扑中所有的IS的TE router-id通过对接收到的Level 1拓扑中所有的IS生成的LSP携带的router id TLV处理,提取其中保存的IS配置的TE router id获得。

3、计算方IS收到生成方IS发送过来的LSP,并且LSP中保存有TE router-id TLV,那么将TE router-id TLV中的TE router-id保存下来,并且标识为非泄漏的TE router-id。这个非泄漏的TE router-id为生成方IS配置的TE router-id,作为在TE网络中的唯一标识,每一个IS都会配置一个TE router-id。

4、计算方IS收到生成方IS发送过来的LSP,并且LSP中保存有TE router-id泄漏TLV,那么将TE router-id泄漏TLV中的TE router-id保存下来,并且标识为泄漏的TE router-id。这个泄漏的TE router-id是在生成方IS的LSP中存在,但不是生成方IS配置的TE router-id,不作为TE网络中对这个生成方IS的唯一标识,只是表示生成方IS所处level拓扑中可以到达这个TE router-id标识的IS。

5、计算方IS收到RSVP的隧道路径计算请求,需要判断其目的地TE router-id存在情况,如果在计算方IS所在Level中可以找到对应的TE router-id,并且是非泄漏的TE router-id,那么直接进行隧道路径的计算,计算过程中不需要做任何判断,这种情况下可以直接计算到目的地。

6、计算方IS,收到RSVP的隧道路径计算请求,需要判断其目的地TE router-id存在情况,如果在计算方IS所在Level中可以找到对应的TE router-id,并且是泄漏的TE router-id,那么进行隧道路径计算。计算到一个IS时,判断这个IS是否有泄漏的TE router-id为这个目的地TE router-id,如果没有,计算方IS隧道路径计算继续进行;如果有,计算方IS自动设置隧道路径松散至这个IS的TE router-id,计算方IS隧道路径计算结束。随后,由RSVP将隧道建立至这个IS后,再次提交剩余隧道路径计算最终到达目的地TE router-id。

概括地说,ISIS协议是一种分层次路由协议,分为level 1和level 2两个层次,同时处于level 1和level 2的生成方IS,将一个level网络拓扑上获取的所有IS配置的非泄漏的router-id,填写在一种新类型的TE router-id泄漏TLV中,并携带至另一level的LSP中,并在此level洪泛通告。计算方IS在一个level中进行隧道路径计算中,计算至一个level 1和level 2的生成方IS时,查看本次计算的目的地是否为这个IS泄漏的TE router-id,如果是,自动设置这个IS设置的非泄漏的TE router-id为松散节点TE router-id,实现跨层次的隧道路径计算。不仅消除了人为配置及其导致的不能动态适应网络 变化成功计算跨层次隧道路径的弊端,同时可以根据当前网络状态计算出跨层次的最优隧道路径。

图4是本发明实施例提供的跨层次路径计算拓扑图,以下结合图4,给出两个具体实施例,以对本发明进行进一步说明。

实施例一:

如图4所示,由R1、R2、R3、R4组成的网络,R1、R2、R3构成一个区域,为一个Level 1区域,相互建立Level 1的邻居关系,R2、R4建立Level 2的骨干区域,建立Level 2的邻居关系。显然R2处于Level 1区域中,同时也处于Level 2骨干区域中。R1、R2、R3、R4中间系统的TE router-id分别为1.1.1.1、2.2.2.2、3.3.3.3、4.4.4.4,作为在TE网络中的唯一标识。显然,R1,R2,R3ISIS的level 1功能开启,同时开启MPLS的level 1功能。R2,R4ISIS的level2功能开启,同时开启MPLS的level2功能。R2为level 1/Level2的路由器,同时使能了level 1/Level2的MPLS功能。假设目前配置一条隧道从router-id1.1.1.1计算到达目的地为4.4.4.4,即从R1到达R4的隧道。

按照原有协议要求,R1所处层次为level 1,只拥有本区域level 1的LSP数据库,即只拥有R2和R3本level 1的链路状态信息。没有R3和R4的level 2LSP数据库,即没有R2和R3不同level层次level 2的链路状态信息。所以R1进行隧道路径计算只能计算到R2和R3。因此,如果希望建立一条从R1到达R4,即router-id 1.1.1.1到达router-id 4.4.4.4的一条路径,必须人为规划配置R2为松散路径,配置路径松散到R2的router-id 2.2.2.2。这样,R1首先计算隧道路径到达R2,RSVP先建立从R1到达R2的隧道。R2上既有level 1的LSP数据库,也有level 2的LSP数据库,然后在R2上再次发起到达router-id 4.4.4.4的隧道路径计算,使用level2的LSP数据库在level2中进行隧道路径计算到达router-id 4.4.4.4的R4,RSVP再建立从R2到达R4的剩余隧道。这样,一条跨层次的隧道路径计算完成并建立成功。这种方法,必须人为配置隧道松散的router-id 2.2.2.2,也就是人为配置这条隧道必须通过R2。

使用本发明后,R2为level 1和Level2的路由器,同时打开了level 1和Level2的MPLS功能,在R2上配置TE router-id的从level 2到level 1的泄漏。R2的level 2的LSP数据库保存了R2和R4的所有LSP报文,经过对 level 2的LSP数据库处理,将level 2R2自己的TE router-id 2.2.2.2保存下来标识为非泄漏TE router-id,将level 2R4的TE router-id 4.4.4.4保存下来标识为非泄漏TE router-id。然后,将R4的Level2TE router-id 4.4.4.4放置于TE router-id泄漏TLV,TE router-id泄漏TLV添加至R2(生成方中间系统)的Level 1的LSP中,并将这条Level 1的LSP洪泛出去。

R1为计算方IS,其接收自己所在level 1的网络拓扑R1、R2、R3所有IS生成的LSP,构成自己level 1的链路状态数据库。同样,经过对level 1的LSP数据库处理,将level 1R2的TE router-id 2.2.2.2保存下来标识为非泄漏TE router-id;将level 1R3的TE router-id 3.3.3.3保存下来标识为非泄漏TE router-id;将level 1R1的TE router-id 1.1.1.1保存下来标识为非泄漏TE router-id。同时,在处理R2生成的level 1LSP时,发现存在泄漏TE router-id TLV,TE router-id TLV包含一个TE router-id 4.4.4.4,正是Level 2拓扑上R4的TE router-id,将其保存下来作为泄漏的TE router-id。

计算方IS R1收到RSVP的计算请求后,发现从R1的TE router-id 1.1.1.1计算到达目的地R4的TE router-id 4.4.4.4。查找目的地TE router-id 4.4.4.4,发现是一个泄漏的TE router-id。开始隧道路径计算,计算到任何一个IS都会执行一次判断,判断目的地TE router-id 4.4.4.4是否为这个IS泄漏的TE router-id。本例中,计算到TE router-id为1.1.1.1的R2,查找发现是R2泄漏了TE router-id 4.4.4.4,那么自动设置这条隧道路径计算松散router-id为2.2.2.2,同时计算方IS R1的隧道路径结束。RSVP将会建立从R1到R2的隧道,并且在R2上再次发起隧道路径计算计算目的地是4.4.4.4,使用level2的链路状态数据库计算的时候可以完成计算,那么整个跨level 1到level 2的跨层次路径计算完成并建立成功。

实施例二:

如图4,由R1、R2、R3、R4组成的网络,R1、R2、R3构成一个区域,为一个Level 1区域,相互建立Level 1的邻居关系,R2、R4建立Level 2的骨干区域,建立Level 2的邻居关系。显然R2处于Level 1区域中,同时也处于Level 2骨干区域中。R1、R2、R3、R4中间系统的TE router-id分别为1.1.1.1、2.2.2.2、3.3.3.3、4.4.4.4,作为在TE网络中的唯一标识。显然,R1,R2,R3ISIS的 level 1功能开启,同时开启MPLS的level 1功能。R2,R4ISIS的level2功能开启,同时开启MPLS的level2功能。R2为level 1/Level2的路由器,同时使能了level 1/Level2的MPLS功能。假设目前配置一条隧道从router-id 4.4.4.4计算目的地为1.1.1.1,即从R4到达R1的隧道。

使用本发明后,R2为level 1和Level2的路由器,同时打开了level 1和Level2的MPLS功能,在R2上配置TE router-id的从level 1到level 2的泄漏。R2的level 1的LSP数据库保存了R1、R2和R3的所有LSP报文,经过对level 1的LSP数据库处理,将level 1R2自己的TE router-id 2.2.2.2保存下来标识为非泄漏TE router-id,将level 1R1和R3的TE router-id 1.1.1.1和3.3.3.3保存下来标识为非泄漏TE router-id。然后,将R1和R3的Level 1TE router-id 1.1.1.1和3.3.3.3放置于TE router-id泄漏TLV,TE router-id泄漏TLV添加至R2(生成方中间系统)的Level 2的LSP中,并将这条Level 2的LSP洪泛出去。

R4为计算方IS,他会接受自己所在level 2的网络拓扑R2、R4所有IS生成的LSP,构成自己level 2的链路状态数据库。同样,经过对level 2的LSP数据库处理,将level 2R2的TE router-id 2.2.2.2和R4的TE router-id 4.4.4.4保存下来标识为非泄漏TE router-id;同时,在处理R2生成的level 2LSP时,发现存在泄漏TE router-id TLV,将level 2R2在LSP中发布的TE router-id 1.1.1.1和3.3.3.3保存下来标识为泄漏TE router-id。

R4收到RSVP的计算请求后,发现从R4的TE router-id 4.4.4.4计算到达目的地R1的TE router-id 1.1.1.1。查找目的地TE router-id 1.1.1.1,发现是一个泄漏的TE router-id。开始隧道路径计算,计算到任何一个IS(中间系统)都会执行一次判断,判断目的地TE router-id 1.1.1.1是否为这个IS泄漏的TE router-id。本例中,计算到TE router-id为1.1.1.1的R2,查找发现是R2泄漏了TE router-id 1.1.1.1,那么自动设置这条隧道路径计算松散router-id为2.2.2.2,同时计算方IS R4的隧道路径结束。RSVP将会建立从R4到R2的隧道,并且在R2上再次发起隧道路径计算计算目的地是1.1.1.1,使用level 1的链路状态数据库计算的时候可以完成计算,那么整个跨level 2到level 1的跨层次路径计算完成并建立成功。

本发明适用于各种支持ISIS的设备,包括路由器和交换机等。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1