CN102427425A - 一种ldp远程邻居配置方法及设备 - Google Patents
一种ldp远程邻居配置方法及设备 Download PDFInfo
- Publication number
- CN102427425A CN102427425A CN2011103946261A CN201110394626A CN102427425A CN 102427425 A CN102427425 A CN 102427425A CN 2011103946261 A CN2011103946261 A CN 2011103946261A CN 201110394626 A CN201110394626 A CN 201110394626A CN 102427425 A CN102427425 A CN 102427425A
- Authority
- CN
- China
- Prior art keywords
- hop count
- area
- root node
- router
- forwarding hop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000004364 calculation method Methods 0.000 claims description 168
- 230000004044 response Effects 0.000 claims description 111
- 230000000977 initiatory effect Effects 0.000 claims description 54
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 239000003795 chemical substances by application Substances 0.000 description 234
- 230000008569 process Effects 0.000 description 53
- 101150020450 lsr2 gene Proteins 0.000 description 52
- 238000012545 processing Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 9
- 239000003999 initiator Substances 0.000 description 6
- 101100011863 Arabidopsis thaliana ERD15 gene Proteins 0.000 description 5
- 101150057659 Mlac1 gene Proteins 0.000 description 5
- 101100000406 Neosartorya fumigata (strain ATCC MYA-4609 / Af293 / CBS 101355 / FGSC A1100) abr2 gene Proteins 0.000 description 5
- 101100338060 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GTS1 gene Proteins 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 101150011439 abr1 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开LDP远程邻居配置方法及设备,应用于多区域网络,各区域中设置有代理设备;该方法包括:路由器接收到对端的LDP报文后或向对端发起LDP报文时,计算到对端的转发跳数,若该转发跳数在指定范围内,则与对端建立LDP邻居;其中,所述路由器计算到对端的转发跳数包括:以对端地址作为目的地址进行路由匹配,并在匹配到路由后判断该路由的类型;如果是区域内路由,则根据所述目的地址确定计算转发跳数的根节点,并计算所述根节点到所述路由器的转发跳数;如果是区域间路由,则通过代理设备获得根节点到所述路由器的转发跳数;其中,所述根节点是根据所述目的地址确定出来的。采用本发明可提高配置LDP远程邻居的安全性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种LDP远程邻居配置方法及设备。
背景技术
LDP(Label Distribution Protocol,标记分发协议)作为MPLS(MultiprotocolLabel Switching,多协议标签交换)基础协议,在运营商等领域得到广泛应用。
LDP对等体发现机制分为两种:
基本发现机制:用于发现本地的LDP对等体,即通过链路层直接相连的LSR(Label Switch Router,标签交换路由器)。这种方式下,LSR周期性地向“子网内所有路由器”的组播地址224.0.0.2发送LDP链路Hello消息,以便链路层直接相连的LSR发现此LDP对等体。
扩展发现机制:用于发现远端的LDP对等体,即不通过链路层直接相连的LSR。这种方式下,LSR周期性地向指定的IP地址发送LDP目标Hello消息,以便指定IP地址对应的LSR发现此LDP对等体。
其中,扩展发现机制在L2VPN(Virtual Private Network,虚拟专用网)等组网中的到大量应用,通过这一机制实现远程PE(Provider Edge,运营商边缘)设备之间信息互通,例如承载L2VPN信息。但是这一机制也为LDP带来一些风险。例如,攻击者可以伪造LDP协议报文,向LSR发送大量伪造报文,造成LDP邻居信息或其他协议协商错误,LSR CPU繁忙等。
发明内容
本发明提供一种LDP远程邻居配置方法及设备,用以提高LDP远程邻居配置的安全性。
本发明提供的LDP远程邻居配置方法,应用于多区域网络,所述网络中设置有代理服务器,所述代理服务器上配置有各区域的路由表,各区域中设置有代理客户端设备;该方法包括:
路由器接收到对端发送的LDP报文后计算到对端的转发跳数,若该转发跳数在指定范围内,则与对端建立LDP邻居;或者,路由器向对端发送LDP报文后计算到对端的转发跳数,若该转发跳数在指定范围内,则在接收到对端响应的LDP报文后与对端建立LDP邻居;
其中,所述路由器计算到对端的转发跳数包括:
所述路由器以对端地址作为目的地址进行路由匹配,并在匹配到路由后判断该路由的类型;
如果是区域内路由,则所述路由器根据所述目的地址确定计算转发跳数的根节点,计算所述根节点到所述路由器的转发跳数;
如果是区域间路由,则所述路由器通过所在区域的代理客户端设备从代理服务器获得计算转发跳数的根节点到所述路由器的转发跳数;其中,所述根节点是根据所述目的地址确定出来的。
本发明提供的路由器,应用于多区域网络,所述网络中设置有代理服务器,所述代理服务器上配置有各区域的路由表,各区域中设置有代理客户端设备,并分别与所述代理服务器连接,用于将所述路由器的代理请求转发给所述代理服务器,将所述代理服务器返回的代理响应转发给所述路由器;所述路由器包括:收发模块、LDP模块和OSPF模块,所述OSPF模块包括控制单元、路由匹配单元、计算单元;
所述LDP模块,用于在收发模块接收到对端发送的LDP报文后,请求OSPF模块计算到对端的转发跳数,若该转发跳数在指定范围内,则与对端建立LDP邻居;或者,在所述收发模块向对端发送LDP报文后,请求OSPF模块计算到对端的转发跳数,若该转发跳数在指定范围内,则在接收到对端响应的LDP报文后与对端建立LDP邻居;根据所述OSPF模块的代理请求,通过所在区域的代理客户端设备从代理服务器获得计算转发跳数的根节点到所述路由器的转发跳数,其中,所述根节点是根据所述目的地址确定出来的;
所述控制单元,用于根据接收到的请求,指示所述路由匹配单元进行路由匹配,如果匹配到区域内路由,则指示所述计算单元计算转发跳数;如果匹配到区域间路由,则请求LDP模块发起代理请求;
所述路由匹配单元,用于根据所述控制单元的指示,以对端地址为目的地址进行路由匹配;
所述计算单元,用于根据所述控制单元的指示,根据所述目的地址确定计算转发跳数的根节点,计算所述根节点到所述路由器的转发跳数,并将其发送给所述LDP模块。
本发明提供的服务器,应用于多区域网络,各区域中设置有代理客户端设备,分别与所述服务器连接,用于将各区域中的路由器的代理请求转发给所述服务器,将所述服务器返回的代理响应转发给所述路由器,所述代理服务器上配置有各区域的路由表;所述服务器包括:收发模块、控制模块、路由匹配模块,计算模块;
所述控制模块,用于在接收到代理客户端设备转发的携带有目的地址的代理请求后,指示所述路由匹配模块进行路由匹配,其中,所述目的地址为发起所述代理请求的路由器的对端设备的地址;指示所述计算模块根据所述路由匹配模块匹配到的路由计算根节点到发起所述代理请求的路由器的转发跳数,并将该转发跳数通过所述收发模块发送给所述代理客户端设备进行转发;其中,所述根节点是根据所述目的地址确定出来的;
所述路由匹配模块,用于根据所述控制模块的指示,根据所述目的地址,使用各区域的路由表进行路由匹配;
所述计算模块,用于根据所述控制模块的指示,计算根节点到发起所述代理请求的路由器的转发跳数。
与现有技术相比,本发明的有益技术效果包括:
本发明通过路由器在接收到对端发送的LDP报文后计算到对端的转发跳数,或者,在向对端发送LDP报文后计算到对端的转发跳数,并在该转发跳数在指定范围内时,与对端建立LDP邻居,从而提高了LDP远程邻居配置的安全性。
附图说明
图1为本发明实施例适用的网络架构示意图;
图2为本发明实施例一提供的远程LDP邻居建立流程示意图;
图3为图2所示流程中根据目的地址确定技术转发跳数的根节点的流程示意图;
图4A、图4B或图4C分别为图2流程中的区域间代理反向TTL计算流程示意图;
图5为本发明实施例提供的LDP代理设备的处理流程示意图;
图6为本发明实施例二提供的代理表更新流程示意图;
图7为本发明实施例提供的具体应用场景的示意图;
图8为本发明实施例提供的路由器的结构示意图;
图9为本发明实施例提供的服务器的结构示意图。
具体实施方式
在LDP远程邻居配置过程中,当网络设备接收到LDP协议报文后,通常是基于TTL是否合理来验证该LDP协议报文是否合法。而TTL是否合理,关键是要通过判断对端设备到本端设备的距离来确定,这里的距离是指转发跳数。为此,本发明实施例提供了一种在LDP远程邻居配置过程中,通过精确确定对端设备到本端设备的距离,从而验证LDP协议报文合法性,进而根据LDP协议报文的合法性进行LDP远程邻居配置的机制。该机制可应用于网络设备需要对接收到的LDP协议报文的合法性进行验证的业务流程中。如在扩展发现机制中,本端LSR接收到对端发送的LDP Target Hello报文(LDP目的发现报文)后需要验证该报文的合法性,即判断本端LSR与对端之间的距离是否合理,并在验证通过后与对端建立LDP邻居。
本发明实施例可适用于IGP(Interior Gateway Protocol,内部路由协议)为OSPF(Open Shortest Path First,开放最短路径优先)协议的情况,通过对LDP协议和OSPF协议进行扩展,以达到上述目的。
下面结合附图对本发明实施例进行详细描述。
参见图1,为本发明实施例适用的网络架构示意图。如图所示,Area0为主干区域,Area1~4分别为分支区域。
通过扩展LDP协议和OSPF协议,分支区域内的路由器可通过反向TTL计算得到对端路由器到自身的距离。为了支持区域间反向TTL计算,需要在各区域中部署LDP代理设备。LDP代理设备之间像普通的远程LDP邻居一样通过TCP(Transmission Control Protocol,传输控制协议)建立邻居关系;如果两台路由器之间只有代理能力没有普通远程邻居,则在此邻居建立后,邻居之间不会传输其他信息,而只传输反向TTL计算相关的代理请求或响应等信息。
其中,分支区域中部署的LDP代理设备称为区域LDP代理设备(以下简称区域代理),主干区域中部署的LDP代理设备称为主干区LDP代理设备(以下简称主干区代理)。一个分支区域内可以有1个或多个区域代理,若部署多个区域代理则可在各区域代理间进行负载均衡。区域代理主要用于在接收到本区域内的路由器发起的反向TTL计算代理请求后,向主干区代理发起请求,以请求主干区代理进行跳数计算;主干区代理主要用于基于区域代理的请求确定执行反向ABR TTL计算的目标区域代理,主干区代理还可在确定目标区域为自己所在的主干区域时,进行反向TTL计算。
在主干区代理与各区域代理建立邻居关系后,还要配置区域代理接口地址对应的ABR(Area Border Router,区域边界路由器)。具体的,可按最长匹配算法查找区域代理对应的路由,该路由对应的ABR则为该区域代理的ABR。
上述组网中的路由器(包括具备LDP代理功能或不具备LDP代理功能的路由器)中,涉及LDP协议报文处理以及发起反向TTL计算代理请求和接收响应的操作,由路由器中的LDP应用模块或LDP进程(以下简称LDP模块)进行;反向TTL计算或反向ABR TTL计算操作,由路由器中的OSPF应用模块或OSPF进程(以下简称OSPF模块)进行。
下面以远程LDP邻居建立过程为例,通过具体实施例对本发明实施例提供的LDP协议报文的合法性验证流程进行描述。
实施例一
基于图1所示的网络架构,图2示出了远程LDP邻居建立流程示意图,该流程描述了LSR1向LSR2发送LDP Target Hello报文后,LSR2验证该报文的合法性以及根据验证结果进行相应处理的过程。如图所示,该流程可包括:
步骤201,LSR2接收到LSR1发送的LDP Target Hello报文后,LSR2的LDP模块向OSPF模块发送转发跳数获取请求,其中携带有源地址和目的地址,其中,本发明实施例中在不特别说明的情况下,源地址是指LSR2的地址,目的地址是指LDP Target Hello报文的源地址(即LSR1的地址)。
步骤202,OSPF模块根据目的地址查询OSPF路由表,根据最长匹配原则,查找是否有匹配的路由。若未查找到匹配的路由,则转入步骤203;若查找到匹配的路由,则转入步骤204。
步骤203,OSPF模块向LDP模块返回失败响应,以表明目的地址不可达,该失败响应中具体可包括源地址(即LSR2的地址)、目的地址(即LSR1的地址)、可达标志、距离等。在这里可达标志置为不可达,然后转入步骤211。
步骤204,OSPF模块判断查找到的路由的类型,若为区域内路由,则转入步骤205;若为区域间路由,则转入步骤206;若为外部路由,则转入步骤207。
步骤205,OSPF模块在区域内路由对应的区域内,根据目的地址确定出计算转发跳数的根节点,计算该根节点到LSR2的转发跳数(本发明实施例将该计算过程称为反向TTL计算过程),并在得到计算结果后转入步骤208。其中,计算结果可包括该根节点到LSR2的转发跳数或转发跳数范围(包括跳数下限和上限),还可包括可信标志等信息。
具体的,本步骤中LSR2根据目的地址确定计算转发跳数的根节点的具体实现过程,可参照图3及其说明。本步骤中的反向TTL计算过程可包括:
以确定出的根节点为起点进行SPF计算,直到本端路由器(即LSR2)进入到SPF树后停止SPF计算,从而计算出从根节点到本端路由器(即LSR2)的跳数H。此过程中,根节点不计算在内,从根节点以后,每经过一个节点就加1,直到本端路由器(本端路由器也作为一个节点,计算在内)时终止计算。若SPF树上有多条到本端路由器的路径,则跳数下限H1取这些路径的转发跳数中的最小值,跳数上限H2取这些路径的转发跳数中的最大值。进一步的,可将在跳数上限H2的基础上加1,得到最终的跳数上限值。
步骤206,OSPF模块通过LDP模块向本设备所在区域的LDP代理发起代理请求,并接收该LDP代理返回的代理响应,该代理响应中包括根节点(该根节点是根据目的地址确定出的)到LSR2所在区域的出口ABR的转发跳数;然后,LSR2计算该出口ABR到自身的转发跳数,并将从LDP代理获得的转发跳数和自己计算出的转发跳数进行累加,得到该根节点到LSR2的转发跳数。
具体的,本步骤中LDP代理根据目的地址确定计算转发跳数的根节点的具体实现过程,可参照图3及其说明。
步骤207,OSPF模块向LDP模块发送失败响应,以表明到该目的地址的TTL无效,然后转入步骤211。
步骤208,OSPF模块向LDP模块返回转发跳数获取响应,其中携带有OSPF模块获得的根节点到LSR2的转发跳数。该响应中还可进一步包括以下信息之一或任意组合:源地址(即LSR2的地址)、目的地址(即LDP Target Hello报文的源地址,也即LSR1的地址),以及可信标志位、可达标志位等。
步骤209,LDP模块根据OSPF模块返回的转发跳数获取响应,判断接收到的LDP Target Hello报文是否合法,若合法则转入步骤210,否则转入步骤211。
具体的,LDP模块可根据根节点到LSR2的转发跳数上限和下限确定转发跳数范围,如果该转发跳数范围在合理范围之内,则判断LDP Target Hello报文合法。例如,若TTL计算结果中的转发跳数范围不在[255-跳数上限,255-跳数下限]范围内,则判断本端设备接收到的LDP报文为非法报文。
进一步的,若所述转发跳数获取响应中允许携带可信标志位,则当该可信标志位表示该响应中携带的转发跳数可信时,LDP模块根据该转发跳数判断LDP Target Hello报文的合法性;当该可信标志位表示该响应中携带的转发跳数不可信时,LDP模块不使用该转发跳数判断LDP Target Hello报文的合法性。其中,可信标识可计算转发跳数的过程中根据具体情况进行设置。
步骤210,LSR2通过LDP模块与LSR1建立远程邻居。
步骤211,LSR2通过LDP模块根据用户设置的针对非法报文的处理策略进行相应处理,如放弃接收到的LDP Target Hello报文。
上述流程的步骤205或步骤206中,相应路由器通过以下方式确定计算转发跳数的根节点:根据目的地址匹配到路由后(为描述方便,以下称该路由为路由A),针对匹配到的路由A,查找对应的LSA,以及发布该LSA的路由器(为方便描述,此处将发布该LSA的路由器称为路由器RA),然后根据路由器RA及其OSPF邻居确定作为反向TTL计算的根节点。具体的:
(1)若匹配到的路由是32位路由,则将路由器RA作为进行反向SPF计算的根节点。这是因为32位的路由是一个具体的地址,是唯一的,如果是32为路由,则表明就是这个路由器发布的路由,因此将其作为根节点。
(2)若目的地址是路由器RA的一个接口地址,则将路由器RA作为根节点;
(3)若匹配到的路由不是32位路由,并且目的地址不是路由器RA的一个接口地址,则查找路由器RA中的路由A对应接口的OSPF邻居,若有OSPF邻居的接口地址为该目的地址,则将该邻居路由器作为根节点;
(4)在以上条件都不满足的情况下,将路由器RA作为根节点。
进一步的,还可设置可信标志位,即根据不同的情况将可信标识位设置为0(表示可信)或设置为1(表示不可信)。如,针对上述4种情况,由于情况1~3下,都可以找到接口地址为目的地址的路由器,即可根据目的地址找到对应的路由器,因而可将可信标志位设置为0(可信);而情况4下,并没有真正找到接口地址为目的地址的路由器,因而可将可信标志位设置为1(不可信)。
以上流程可有路由器上的OSPF模块执行。其具体实现流程可如图3A所示,包括:
步骤301,根据目的地址匹配到路由A,查找路由A对应的LSA,并找到发布该LSA的路由器RA;
步骤302,若路由A为32位路由或者目的地址是路由器RA的一个接口地址,则转入步骤303,否则转入步骤304;
步骤303,将路由器RA作为根节点;
步骤304,查找路由器RA中路由A对应接口的OSPF邻居;
步骤305,若有OSPF邻居接口地址为目的地址,则转入步骤306,否则转入步骤307;
步骤306,将该邻居作为根节点;
步骤307,将路由器RA作为根节点。
需要说明的是,以上流程仅以LDP邻居建立过程为例,对LDP协议报文合法性验证方法进行描述,本领域技术人员应该能够理解,在其他需要进行对LDP协议报文进行合法性验证的场景中,也可使用本发明实施例。
图2所示流程的步骤206中,根据代理请求发起端的不同,其处理流程可分别如图4A、图4B和图4C所示,其中,图4A描述了代理请求发起端为不具有LDP代理功能的路由器的处理流程,图4B描述了代理请求发起端为区域代理的处理流程,图4C描述了代理请求发起端为主干区代理的处理流程。
如图4A所示,若LSR2不具有LDP代理功能,则通过代理方式最终得到根节点到LSR2的转发跳数的过程包括:
步骤401,LSR2在确定自己不具有LDP代理功能后,向所在区域的区域代理(为描述方便,以下称该区域代理为区域代理P1)发送反向TTL计算的代理请求,其中携带有源地址(即LSR2的地址)、目的地址(即LSR1的地址)。
步骤402,区域代理P1接收到代理请求后,向主干区代理发送代理请求,其中携带有源地址(LSR2地址)、目的地址(LSR1地址)和代理类型标识。其中,代理类型标识所标识的代理请求类型为汇总请求,表示请求主干区代理匹配查找到路由后判断路由类型,并根据不同的路由类型进行不同的处理。
步骤403,主干区代理接收到汇总类型的代理请求后,根据其中携带的目的地址,以最长匹配方式查找OSPF路由中是否有匹配的路由,并在查找到匹配的路由后判断该路由的类型。若查找到的路由是区域内路由或直连路由,则转入步骤404;若是区域间路由则进行区域代理计算,转入步骤405。
步骤404,主干区代理以目的地址确定出根节点,计算该根节点到主干区域的各出口ABR(所述出口ABR是指主干区域的各ABR中到发起代理请求的区域代理P1的ABR)的转发跳数,(本发明实施例将该转发跳数计算过程称为反向ABT TTL计算过程),并向区域代理P1返回响应消息,其中携带有计算出的转发跳数(可包括跳数上限和下限),以及主干区域的各出口ABR的标识,还可包括所述各出口ABR对应的可信标志,以及进一步还可包括代理请求中的所有信息(如源地址,目的地址,请求类型标识)。然后,转入步骤408。
步骤405,主干区代理根据目的地址确定能够处理该代理请求的目标区域代理,并向该目标区域代理发送代理请求,其中携带有源地址(LSR2的地址)、目的地址(LSR1的地址)和代理类型标识。其中,代理类型标识所标识的代理请求类型为确认请求,表示请求目标区域代理进行反向ABR TTL计算。为描述方便,以下将主干区代理确定出的目标区域代理称为区域代理P2。
具体的,主干区代理在确定目标区域代理时,首先根据目的地址的路由,查找路由对应的ABR(此处将其称为A1),查找区域代理接口地址对应路由的ABR(此处将其称为A2),然后根据查找的情况,主干区代理选择的目标区域代理的策略可包括:
(1)若查找到A1和A2,且A1与A2相同,此种情况下选择A2对应的区域代理作为目标区域代理;
(2)若未查找到A2,则查找A1产生的3类LSA(type3LSA,即networksummary LSA,由ABR产生,用于告知区域内路由器区域外的路由条目)中,有前缀和某区域代理对应的路由,则选择该区域代理为目标区域代理;
(3)若根据上述(2)的处理还是未找到目标区域代理,则遍历区域代理对应的ABR产生的3类LSA,若某区域代理对应的ABR产生的3类LSA中有前缀与目的地址的路由匹配,则选择该区域代理为目标区域代理。
另一种确定目标区域代理的方法可以包括:确定第一ABR集合,该集合中的ABR是目的地址匹配的路由所对应的ABR;判断第一ABR集合中的ABR产生的3类LSA中,是否有前缀与该目的地址相匹配,若有,则将该ABR放入第二ABR集合;然后通过第二ABR集合中的ABR向其对应的区域代理发送请求,并将响应该请求的区域代理设备的其中之一确定为目标分支区域代理设备,优选的,将响应该请求的第一个区域代理设备确定为目标分支区域代理设备。
步骤406,区域代理P2接收到确认类型的代理请求后,根据其中携带的目的地址,以最长匹配方式查找OSPF路由中是否有匹配的路由,在查找到匹配的路由且该路由是区域内路由时,进行反向ABR TTL计算,得到反向ABR TTL计算结果,其中包括以目的地址确定出的根节点到该根节点所在区域的各出口ABR(所述出口ABR是指所述根节点所在区域各ABR中到发起代理请求的主干区代理的ABR)的转发跳数,并将得到的反向ABR TTL计算结果通过响应消息返回给主干区代理。响应消息中可包括转发跳数(包括跳数下限和跳数上限),以及各出口ABR的标识,还可包括各出口ABR对应的可信标志,以及进一步还可包括代理请求中所有信息(如源地址,目的地址,请求类型标识)。
步骤407,主干区代理收到区域代理P2返回的响应消息后,分别以其中携带的各ABR为根节点、以主干区代理所在网段地址作为SPF(Shortest PathFirst,最短路径优先)树的终结点地址进行反向ABR TTL计算,得到入口ABR(即响应消息中所指示的ABR,该ABR为目标区域的出口ABR,从主干区域的角度来说就是主干区域的入口ABR)到主干区域的出口ABR(所述出口ABR是指主干区的ABR中到发起代理请求的区域代理P1的ABR)的转发跳数,然后在接收到的反向TTL计算结果的基础上加上该转发跳数后,将携带有累加后的转发跳数的反向TTL计算结果通过响应消息返回给区域代理P1。例如,将计算出的跳数下限加上响应信息中的跳数下限,将计算出的跳数上限加上响应信息中的跳数上限,取所有跳数下限中最小的做为跳数下限,取所有跳数上限中最大的为跳数上限,然后作为代理请求的响应返回给发起代理请求的区域代理P1。
步骤408,区域代理P1收到主干区代理返回的包含有反向ABR TTL计算结果的响应消息后,将其返回给LRS2。
步骤409,LSR2收到区域代理P1返回的响应消息后,分别以响应消息中的各ABR(该ABR相对于主干区域来说是出口ABR,相对于LSR2所在区域来说是入口ABR)为根节点、以本端的源地址网段为目的地址,计算得到该ABR到LSR2的转发跳数(本发明实施例中将该计算过程称为反向TTL计算过程);然后将计算出的跳数加上响应消息中的跳数,如,将计算出的跳数下限加上响应信息中的跳数下限,将计算出的跳数上限加上响应信息中的跳数上限,取所有跳数下限中最小的做为跳数下限,取所有跳数上限中最大的为跳数上限,得到以目的地址确定出的根节点到本LSR(LSR2)的转发跳数。其中,若LSR2计算出的跳数大于或等于1,则可将跳数减1后加到其所接收到的代理请求响应信息中的相应跳数上。
具体的,本步骤中LSR2进行的反向TTL计算过程可包括:以响应消息中的各ABR为起点进行SPF计算,直到本端路由器(即LSR2)进入到SPF树后停止SPF计算,从而计算出从相应ABR到本端路由器(即LSR2)的跳数H。此过程中,相应ABR不计算在内,从相应ABR以后,每经过一个节点就加1,直到本端路由器(本端路由器也作为一个节点,计算在内)时终止计算。若SPF树上有多条到本端路由器的路径,则跳数下限H1取这些路径的转发跳数中的最小值,跳数上限H2取这些路径的转发跳数中的最大值。进一步的,可将在跳数上限H2的基础上加1,得到最终的跳数上限值。
上述图4A所示流程中的步骤404、406或407的反向ABRTTL计算过程包括以下步骤A-C(步骤A和步骤B之间没有严格时序要求):
步骤A,接收到代理请求的LDP代理根据该代理请求中携带的“本端的源地址”查找对应的路由(为描述方便,此处称为路由R);
步骤B,该LDP代理以确定出的根节点进行SPF计算,计算到所有ABR后停止SPF计算。然后进行以路由R为路由的区域间路由计算,具体的:将各ABR产生的3类LSA中的Metric分别与根节点到各ABR的路径的cost相加,取数值最小cost所对应的ABR作为该根节点所在区域的出口ABR,未产生路由R对应LSA的ABR不参与取最小值计算;若存在多个数值最小的ABR,则都作为出口ABR。通过该过程所确定出的出口ABR即为到该代理请求的发起端路由器的ABR。
具体的,对于步骤404和步骤406,所述根节点为LDP代理根据目的地址确定出来的(具体确定方法可如图3B所示);对于步骤407,所述根节点是指主干区代理接收到的代理响应中的ABR标识所指示的ABR。
步骤C,对于各出口ABR,该LDP代理根据步骤B的SPF计算结果分别计算从根节点到各出口ABR的跳数H(即根节点不计算在内,从根节点以后,每经过一个节点就加1,直到出口ABR,出口ABR作为一个节点,计算在内);若有多条到出口ABR的路径,则跳数下限Ha取这些路径的转发跳数中的最小值,跳数上限Hb取这些路径的转发跳数中的最大值,然后将Ha和Hb分别加1。
如图4B所示,若LSR2具有区域代理功能,则代理反向TTL计算过程包括:
步骤410,LSR2在确定自己具有区域LDP代理功能后,向主干区代理发送代理请求,其中携带有源地址(LSR2的地址)、目的地址(LSR1的地址)和代理类型标识。其中,代理类型标识所标识的代理请求类型为汇总请求。
步骤411,主干区代理接收到汇总类型的代理请求后,根据其中携带的目的地址,以最长匹配方式查找OSPF路由中是否有匹配的路由,并在查找到匹配的路由后判断该路由的类型。若查找到的路由是区域内路由或直连路由,则转入步骤412;若是区域间路由则进行区域代理计算,转入步骤413。
步骤412,主干区代理根据源地址和目的地址进行反向ABR TTL计算,并将计算结果通过响应消息返回给LSR2,然后转入步骤416。其具体实现与图4A中的步骤404类似,在此不再赘述。
步骤413,主干区代理根据目的地址确定能够处理该代理请求的目标区域代理(以下称区域代理P2),并向该目标区域代理发送代理请求。其具体实现与图4A中的步骤405类似。
步骤414,区域代理P2接收到确认类型的代理请求后,根据其中携带的源地址和目的地址进行反向ABR TTL计算,并通过响应消息向主干区代理返回反向ABR TTL计算结果。其具体实现与图4A中的步骤406类似。
步骤415,主干区代理收到区域代理P2返回的反向ABR TTL计算结果后,分别以其中携带的各ABR为根节点、以主干区代理所在网段地址作为SPF树的终结点地址进行反向ABR TTL计算,并将计算出的转发跳数累加到其所接收到的转发跳数上,并通过响应消息向LSR2返回反向ABR TTL计算结果。其具体实现与图4A中的步骤407类似。
步骤416,LSR2收到区域代理P1返回的响应消息后,分别以响应消息中的各ABR为根节点、以本端的源地址网段为目的地址,进行反向TTL计算,并将计算出的转发跳数累加到其所接收到的转发跳数上。其具体实现与图4A中的步骤409类似。
如图4C所示,若LSR2具有主干区代理功能,则代理反向TTL计算过程包括:
步骤420~421,LSR2在确定自己具有主干LDP代理功能后,将LDP targetHello报文的源地址作为目的地址,以最长匹配方式查找OSPF路由中是否有匹配的路由,并在查找到匹配的路由后判断该路由的类型,若是区域间路由则进行区域代理计算,即转入步骤422。
该步骤中,若查找到的路由是区域内路由或直连路由,则不用启动代理反向TTL计算过程,而是由LSR2进行反向TTL计算以得到LSR2和LSR1之间的转发跳数。
步骤422,LSR2根据目的地址确定能够处理该代理请求的目标区域代理,并向该目标区域代理(此处为区域代理P2)发送代理请求。其具体实现与图4A中的步骤405类似。
步骤423,区域代理P2接收到确认类型的代理请求后,根据其中携带的源地址和目的地址进行反向ABR TTL计算,并通过响应消息向LSR2(也即主干区代理)返回反向ABR TTL计算结果。其具体实现与图4A中的步骤406类似。
步骤424,LSR2收到区域代理P2返回的响应消息后,分别以其中携带的各ABR为根节点、以LSR2自身的地址作为SPF树的终结点地址进行反向TTL计算,并将计算出的转发跳数累加到区域代理P2返回的转发跳数上,得到以目的地址确定出的根节点到LSR2的转发跳数或转发跳数范围。其具体实现与图4A中的步骤407类似。
需要说明的是,上述图4A、图4B或图4C所示流程中,通过在代理请求中添加代理类型标识来使接收到代理请求的代理设备进行相应处理,本领域技术人员应该能够理解,还可以采用其它方式以使接收到代理请求的代理设备进行相应处理,如代理请求接收端根据该代理请求发起端的不同(即该代理请求来自于主干区代理还是来自区域代理),来进行相应处理。
根据以上图4A、图4B和图4C所示的流程,从代理设备的角度来说,其接收到代理请求后的处理流程可如图5所示,包括以下情况:
(1)若本代理设备为代理请求的发起端,则判断本设备是否是主干区代理;若不是,则向主干区代理发送代理请求,请求消息中包括本端的源地址、目的地址、请求类型,此处的请求类型为汇总请求;若是,则进行区域代理计算,确定目标区域代理设备并向该目标区域代理设备发送代理请求,请求消息中包括本代理设备的源地址、目的地址、请求类型,此处的请求类型为确认请求。
(2)若本代理设备为代理请求的接收端,若收到的代理请求为汇总请求,且本代理设备为主干区代理,则以最长匹配方式查找OSPF路由中是否有匹配的路由,若未查找到,则向代理请求发起端返回失败响应消息,其中可包括代理请求中所有信息(本端的源地址,目的地址,请求类型)和代理计算失败信息;若查找,则:
A:若查找到的路由是区域内路由或直连路由,则进行反向ABR TTL计算,然后向代理请求发起端返回响应消息,其中包括代理请求中所有信息(本端的源地址,目的地址,请求类型),各出口ABR标识及其对应的可信标志和跳数信息(包括跳数下限和跳数上限);
B:若是区域间路由则进行区域代理计算,确定目标区域代理设备并向该区域代理设备发送代理请求,请求消息中包括接收到的源地址,目的地址,请求类型,此处的请求类型为确认请求。
(3)若本代理设备收到的代理请求为确认请求,且本代理设备为区域代理,则以最长匹配方式查找OSPF路由中是否有匹配的路由,若未查找到,则向代理请求发起端返回失败响应消息,其中可包括代理请求中所有信息(本端的源地址,目的地址,请求类型)和代理计算失败信息;若查找到,则:
A:若查找到的路由是区域内路由,则进行反向ABR TTL计算处理,然后向代理请求发起端返回响应消息,其中包括代理请求中所有信息(本端的源地址,目的地址,请求类型),各出口ABR标识及其对应的可信标志和跳数信息(包括跳数下限和跳数上限);
B:若查找到的路由不是区域内路由,则向代理请求发起端返回失败响应消息,其中可包括代理请求中所有信息(本端的源地址,目的地址,请求类型)和代理计算失败信息。
(4)若本代理设备收到的代理请求和本代理设备的代理类型组合为其他情况,则向代理请求发起端返回失败响应消息,其中可包括代理请求中所有信息(本端的源地址,目的地址,请求类型)和代理计算失败信息。
实施例二
为了减少路由器的反向ABR TTL计算开销,本发明实施例二对上述实施例一进行了改进。即,在LDP代理设备(包括区域代理或/和主干区代理)进行反向ABR TTL计算之后,将计算结果保存或更新到本地;或者,LDP代理设备在接收到其他LDP代理设备返回的代理响应之后,将该响应中携带的反向ABR TTL计算结果保存或更新到本地。如以代理表的形式保存反向ABR计算结果的相关信息,每个表项可包含如下信息:起始邻居、源地址、目的地址、代理下一跳、转发跳数(如包括跳数下限、跳数上限),还可进一步包括路由信息、SPF信息等。其中:
起始邻居:从邻居设备收到代理请求消息时,此邻居的地址就是起始邻居。如实施例一中的主干区代理接收到区域代理P1发起的代理请求时,该起始邻居即为区域代理P1。若是本地发起的代理,起始邻居为空;
源地址:代理请求消息中携带的“源地址”。若是本地发起的代理请求,则为本端的源地址。如实施例一中,当LSR2向区域代理P1发起代理请求时,该消息中携带有“源地址”,该源地址即为LSR2所接收到的LDP消息的目的地址,此处为LSR2的地址。
目的地址:代理请求消息中携带的“目的地址”,如实施例一中LSR2所接收到的LDP报文的源地址,此处为LSR1的地址。若是本地发起的代理请求,则为目的地址;
代理下一跳:发送代理请求消息的对象,若本代理设备接收到代理请求后,无需再向其他代理设备发送代理请求,则项为空。如实施例一中,主干区代理在收到区域代理P1发送的代理请求后,确定出需要向区域代理P2发送代理请求,则区域代理P2即为相应的代理下一跳。
跳数下限:本代理设备计算出的或从其他代理设备返回的代理响应中得到的跳数的下限;
跳数上限:本代理设备计算出的或从其他代理设备返回的代理响应中得到的跳数的上限;
路由信息:目的地址匹配到的路由;
SPF信息:源路由器是产生目的地址匹配到的路由的对应LSA的路由器(也即实施例一中所述的根据目的地址确定出的进行转发跳数计算的根节点),而从源路由器(即根节点)计算出的,到本地的SPF树,即为监控的SPF信息。
基于LDP代理设备记录的以上代理表,本实施例所提供的远程LDP邻居建立流程中,当LDP代理设备需要进行反向ABR TTL计算时,首先查询本地代理表,判断是否有匹配的表项,若有匹配的表项,则将该表项中的相关信息作为反向ABR TTL计算结果;若未找到匹配的表项,则按照实施例一所述的方法进行反向ABR TTL计算,并在得到根节点到该代理设备所在区域的出口ABR的转发跳数后,创建对应的代理表项。
例如,区域代理P1接收到LSR2的代理请求后,根据LSR2的地址和代理请求中携带的目的地址和源地址查找其所记录和维护的代理表,如果找到匹配的表项,则将该表项或该表项中的转发跳数作为反向ABR TTL计算结果返回;如果未找到匹配的表项,则按照前述流程启动反向ABR TTL计算过程。
具体的,如果从代理表中能够查找到“起始邻居”为该发起代理请求的设备、目的地址为该代理请求中携带的目的地址、源地址为该代理请求中携带的源地址的代理表项,则可将该代理表项中的起始邻居、源地址、目的地址、跳数下限、跳数上限等信息作为代理请求的响应返回给该代理请求的发起端。
进一步的,上述代理表还需要根据网络拓扑的变化进行动态更新,以保证该代理表中的数据的实时性和准确性。如当上述“路由信息”或“SPF信息”发生变化时,需要触发反向ABR TTL计算,重新获得相应表项的“源地址”到“目的地址”的转发跳数,更新本代理设备以及相关代理设备上的相应表项。
例如,以主区代理为例,其更新代理表的过程可如图6所示,包括:
步骤601,主干区代理发现有路由变化时,判断该路由是否存在于代理表中,如果判断为是,则执行步骤602,否则结束本流程。
步骤602,主干区代理查询该路由信息发生变化的表项,若“代理下一跳”为区域代理的地址(本流程以区域代理P2为例),则转入步骤603;若“代理下一跳”为空,则转入步骤605。
步骤603,主干区代理向区域代理P2发送代理请求,其中携带有“目的地址”,并接收区域代理P2返回的代理响应,其中携带有区域代理P2根据该“目的地址”并通过反向ABR TTL计算得到的根节点到其所在区域的出口ABR的转发跳数。区域代理P2在计算出该转发跳数后,更新其本地的相应代理表项。
步骤604,主干区代理接收到区域代理P2返回的代理响应后,通过反向ABR TTL计算过程得到该代理响应中所指示的出口ABR到主干区域的出口ABR的转发跳数,然后将计算出的转发跳数累加到代理响应中携带的转发跳数上,并以此更新该代理表项中的转发跳数。然后转入步骤606。
步骤605,主干区代理根据该表项中的“目的地址”确定进行反向ABR TTL计算的根节点,以该根节点为起点进行反向ABR TTL计算,并根据计算结果更新相应代理表项中的转发跳数。然后转入步骤606。
步骤606,主干区代理查询该表项中的“起始邻居”,若“起始邻居”为区域代理的地址(本流程以区域代理P1为例),则转入步骤607;若“起始邻居”为空,则结束本流程。
步骤607,主干区代理向区域代理P1发送通知消息,其中携带有相应代理表项中的相关内容,如源地址、目的地址、转发跳数等,以通知区域代理P1更新相应代理表项。
其它代理设备上的代理表项的更新流程与上述流程类似,例如,如果更新流程由区域代理P2发起,则区域代理P2在更新完相应代理表项后通知主干区代理更新相应代理表项(在该代理表项中的代理请求发起端为主干区代理时);主干区代理接收到该通知后,如果判断相应表项中记录的代理请求发起端为其它分支区域代理,则需要进行反向ABR TTL计算,得到区域代理P2所在区域的出口ABR到主干区出口ABR的转发跳数,然后进行相应代理表项的更新,并通知该表项中的代理请求发起端(即分支区域代理设备)更新相应代理表项;否则,无需进行反向ABR TTL计算,只要根据通知更新相应代理表项即可。
进一步的,如果LDP代理变更,则需要触发“代理下一跳”的重新选择(即重新确定本设备发送代理请求消息的对象),具体如何选择,需要根据网络拓扑的变化而定,如,对于区域代理设备来说,若主干区代理设备发生变化,则需要将“代理下一跳”更新为新的主干区代理设备的地址,对于主干区代理设备来说,需要重新确定目的区域代理设备,并将“代理下一跳”更新为新的目的区域代理设备的地址。然后再根据情况进行转发跳数的更新。
进一步的,当建立有LDP邻居关系的LDP邻居关系取消时,存在邻居关系的设备(如实施例一中的LSR1或LSR2)可向代理设备发送代理回收消息,该代理回收消息中可包括本端的源地址、目的地址、本端OSPF进程的RouterID。作为代理设备的邻居在收到该代理回收消息后,根据源地址和目的地址查找代理表,将对应的表项删除。
实施例三
本实施例的实现原理基本与实施例一或实施例二相同,不同的是本实施例使用独立的设备进行反向TTL计算或反向ABR TTL计算,该单独的设备可配置为代理服务器。需要进行动态邻居保护的设备各自与该代理服务器建立LDP代理邻居,并且所有涉及到的OSPF的区域都要至少存在一个设备与代理服务器建立LDP代理邻居。本实施例中,将与代理服务器建立LDP代理邻居关系的设备称为代理客户端。
各代理客户端将本区域的OSPF LSA同步到代理服务器,代理客户端之间不需要存在LDP代理关系。代理服务器在收到LSA之后,在各个区域分别找一个设备作为根节点(可由用户配置),进行路由计算,得到各个区域的路由表。当然,可以采用其它方式将各区域的路由表配置在该代理服务器上。
同实施例一或实施例二,如果路由器判断与目的地址(如该路由器接收到的待验证合法性的LDP报文源地址)匹配的路由为区域内路由,则该路由器可根据该目的地址确定反向TTL计算的根节点,并在相应区域内启动反向TTL计算,从而得到该根节点到该路由器的转发跳数,进而根据该转发跳数验证LDP报文的合法性。
与实施例一或实施例二不同的是,如果路由器判断与目的地址匹配的路由为区域间路由,则向所在区域的代理客户端发起代理请求,该代理客户端向代理服务器发起代理请求,代理服务器根据其所存储的相关区域的路由表独自完成转发跳数的计算,并将计算结果携带于代理响应返回给代理客户端,该代理客户端向发起代理请求的路由器转发该代理响应,以使该路由器根据该转发跳数验证LDP报文的合法性。
具体的,以远程LDP邻居建立过程为例,当LSR2接收到LDP Target Hello报文后,以该报文的源地址作为目的地址,使用本设备所在区域的路由表进行路由匹配,若匹配到的路由为区域间路由,则向所在区域的代理客户端发送代理请求,该代理客户端将该代理请求转发给代理服务器,该代理请求中携带有目的地址(即LDP Target Hello报文的源地址)和源地址(即代理客户端所在设备的地址)。
代理服务器根据代理请求中携带的目的地址,根据其所存储的各个区域的路由表,在各个区域查找是否有匹配的区域内路由,其匹配结果以及相应的处理流程可包括以下几种情况:
情况一:发起代理请求的路由器在分支区域,代理服务器在其它分支区域内匹配到路由
设发起代理请求的路由器所在分支区域称为区域A,代理服务器在区域B内匹配到了路由,此种情况下,类似于图4A或4B所示的流程中的匹配到区域间路由的处理流程,代理服务器使用区域B的路由表进行反向ABR TTL计算,得到根节点(该根节点是根据目的地址确定出来的)到区域B出口ABR的转发跳数,使用主干区域路由表进行反向ABR TTL计算,得到区域B出口ABR(也即主干区入口ABR)到主干区域出口ABR的转发跳数,使用代理请求的发起端路由器所在区域A的路由表进行反向TTL计算,得到主干区出口ABR到LSR2的转发跳数,然后将三次计算得到的转发跳数累加,并将累加后的转发跳数携带于代理响应返回给代理客户端,代理客户端将该响应转发给发起代理请求的路由器,从而该路由器最终得到目的地址到源地址的转发跳数。
情况二:发起代理请求的路由器在分支区域,代理服务器在主干区域内匹配到路由
设发起代理请求的代理客户端所在分支区域称为区域A,代理服务器在主干区域内匹配到了路由,此种情况下,类似于图4A或4B所示的流程中的匹配到区域内路由的处理流程,代理服务器根据主干区域的路由表进行反向ABRTTL计算,得到根节点(根节点的确定方法同前)到主干区出口ABR的转发跳数,根据区域A的路由表进行反向TTL计算,得到主干区出口ABR到该路由器的转发跳数,然后将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,代理客户端将该响应转发给发起代理请求的路由器,从而使该路由器得到目的地址到源地址的转发跳数。
情况三:发起代理请求的路由器在主干区域,代理服务器在分支区域内匹配到路由
设代理服务器在区域B内匹配到了路由,此种情况下,类似于图4C所示的流程中的匹配到区域间路由的处理流程,代理服务器根据区域B的路由表进行反向ABR TTL计算,得到根节点(该根节点是根据目的地址确定出的)到区域B的出口ABR的转发跳数,根据发起代理请求的路由器所在的主干区域的路由表进行反向TTL计算,得到区别B的出口ABR到该路由器的转发跳数,然后将两次计算得到的转发跳数累加,并携带于响应消息发送给代理客户端,代理客户端将该响应消息转发给发起代理请求的路由器,从而使该路由器得到目的地址到源地址的转发跳数。
情况四:未匹配到路由
此种情况下,代理服务器向代理客户端返回失败响应消息。
情况五:接收到LDP协议报文并需要对该报文进行合法性验证的设备为代理服务器时,其计算转发跳数的具体实现与上述情况类似,如果在其所在区域能够匹配到区域内路由,则使用该区域的路由表进行反向TTL计算;如果在其它区域匹配到区域内路由,则根据该其它区域是分支区域还是主干区域的不同,进行相应反向ABR TTL计算处理(前者进行2次反向ABR TTL计算,后者进行1次反向ABR TTL计算)。
为更加清楚的说明本发明实施例的具体实现,下面以一具体应用场景为例进行描述。
参见图7,RTA与RTB之间配置LDP远程邻居,RTA为所在区域Area 1的区域代理。在RTA上需要计算RTB到RTA的跳数。其中,RTCore-1为主干区代理。RTA,RTB和RTD分别与RTCore-1建立代理邻居关系。各链路的Cost都为1。
在RTA上LDP进程向OSPF进程发送计算请求信息,源地址为1.1.1.1,目的地址为2.0.0.2。OSPF进程收到后,查找OSPF路由表,以2.0.0.2/32为目的地址进行最长匹配。在本例中,查找到的路由为区域间路由。RTA OSPF进程向LDP进程通告代理请求信息,包括本端的源地址(1.1.1.1),目的地址(2.0.0.2),本端OSPF进程的Router ID(1.1.1.1)和请求类型(汇总请求),LDP进程将这些信息发送给主干区代理RTCore-1。
RTCore-1收到信息后,查找本地OSPF路由表,找到路由2.0.0.2/32,为区域间路由。则RTCore-1进行区域代理计算。具体的:RTCore-1上,确定第一ABR集合,该集合中的ABR是2.0.0.2/32匹配的路由所对应的ABR;RTCore-1判断第一ABR集合中的ABR产生的3类LSA中,ABR2的路由前缀与2.0.0.2/32相匹配,则将ABR2放入第二ABR集合;然后通过第二ABR集合中的ABR2向其对应的区域代理RTB和RTD发送请求,并将响应该请求的区域代理的其中之一确定为目标分支区域代理,此处由于RTB首先响应ABR2的请求,因此选取RTB作为目标分支区域代理。RTCore-1向RTB发送确认请求,包括收到的源地址(1.1.1.1),目的地址(2.0.0.2)和请求类型(确认请求)。
RTB收到确认请求后,查找本地OSPF路由,发现为本地直连的路由,则进行反向ABR TTL计算,具体包括以下步骤(1)~(5):
(1)由于目的地址2.0.0.2为RTB的直连接口地址,所以源路由器为RTB;
(2)接收到的源地址为1.1.1.1,查找1.1.1.1最长匹配的路由为1.1.1.1/32;
(3)以RTB为根节点进行SPF计算,在计算到所有ABR后停止,此处只有一个ABR:ABR2。计算以ABR2为ABR到1.1.1.1/32的cost为依据:RTB到ABR2的cost为1,ABR2产生的3类LSA中的Metric为4,则cost为:1+4=5。由于只有一个ABR,则此值即为最小值。
(4)根据SPF树,计算RTB到ASBR2的跳数,为1。
(5)自增标志为0,所以跳数还是,1。
RTB向RTCore-1发送响应消息,包含请求中的“本端的源地址”(1.1.1.1),目的地址(2.0.0.2),请求类型(确认请求),出口ABR(1.0.2.1即ABR2),可信标志(可信)和跳数信息(跳数下限是1,跳数上限是1)。
RTCore-1收到响应消息后,以消息中的出口ABR(1.0.2.1)为源节点进行反向ABR TTL计算,得到出口ABR为ABR1,跳数3;加上消息中的跳数1,得到跳数为4。向LDP邻居RTA发送响应信息,包含请求中的“本端的源地址”(1.1.1.1),目的地址(2.0.0.2),请求类型(汇总请求),出口ABR(1.0.0.1即ABR1),可信标志(可信)和跳数信息(下限是4,跳数上限是4)。
RTA收到回应消息后,以消息中的出口ABR(1.0.0.1)为源节点进行反向TTL计算,得到的跳数为1。将此跳数加上回应信息中的跳数(4),得到跳数为5。因为5>1,所以最终的跳数为5-1=4。
本发明的以上实施例,描述了LSR在接收到对端发起的LDP报文后,通过反向TTL或/和反向ABR TTL计算,得到对端到本LSR的转发跳数,并根据该转发跳数验证该LDP报文的合法性,进而决定是否与对端建立LDP邻居的过程。基于以上构思和原理,另一种代替方案是:LSR在发起LDP报文以请求与对端建立LDP邻居时,由该LSR以对端地址为目的地址,进行反向TTL或/和反向ABR TTL计算,得到对端到本LSR的转发跳数,并判断该转发跳数是否在合理范围内,如果在合理范围内,则在接收到对端应答的LDP报文后,建立与对端的LDP邻居。该替代方案的具体实现过程基本与前述实施例类似,在此不再赘述。
基于相同的技术构思,本发明实施例还提供了可应用于上述流程的网络设备。
参见图8,为本发明一实施例提供的路由器的结构示意图,该路由器可应用于实施例三。如图所示,该路由器可包括:收发模块91、LDP模块92和OSPF模块93,OSPF模块93包括控制单元931、路由匹配单元932、计算单元933;
LDP模块92,用于在收发模块91接收到对端发送的LDP报文后,请求OSPF模块93计算到对端的转发跳数,若该转发跳数在指定范围内,则与对端建立LDP邻居;或者,在收发模块91向对端发送LDP报文后,请求OSPF模块93计算到对端的转发跳数,若该转发跳数在指定范围内,则在接收到对端响应的LDP报文后与对端建立LDP邻居;根据OSPF模块93的代理请求,通过所在区域的代理客户端设备从代理服务器获得计算转发跳数的根节点到所述路由器的转发跳数,其中,所述根节点是根据所述目的地址确定出来的;
控制单元931,用于根据接收到的请求,指示路由匹配单元932进行路由匹配,如果匹配到区域内路由,则指示计算单元933计算转发跳数;如果匹配到区域间路由,则请求LDP模块92发起代理请求;
路由匹配单元932,用于根据控制单元931的指示,以对端地址为目的地址进行路由匹配;
计算单元933,用于根据控制单元931的指示,根据所述目的地址确定计算转发跳数的根节点,计算所述根节点到所述路由器的转发跳数,并将其发送给LDP模块92。
具体的,LDP模块92具体用于,通过所在区域的代理客户端向所述代理服务器发送代理请求,所述代理请求中携带所述目的地址,以使所述代理服务器根据所述代理请求中携带的目的地址,并根据其上配置的各个区域的路由表,在各个区域查找是否有匹配的区域内路由;其中,
如果发起代理请求的路由器在第一分支区域,代理服务器在第二分支区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用所述第二分支区域的路由表计算该根节点到第二分支区域的出口ABR的转发跳数,使用主干区域的路由表计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数,使用第一分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将三次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器;
如果发起代理请求的路由器在分支区域,代理服务器在主干区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用主干区域的路由表计算该根节点到主干区域出口ABR的转发跳数,使用该分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器;
如果发起代理请求的路由器在主干区域,代理服务器在分支区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用该分支区域的路由表计算该根节点到该分支区域出口ABR的转发跳数,根据主干区域的路由表计算所述分支区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器。
具体的,计算单元933在根据所述目的地址确定计算转发跳数的根节点时,根据匹配到的区域内路由查找对应的LSA,查找发布该LSA的源路由器,根据该源路由器及其OSPF邻居确定计算转发跳数的根节点。
具体的计算单元933通过以下方式确定根节点:
(1)若匹配到的路由是32位路由,则将所述源路由器作为计算转发跳数的根节点;
(2)若所述目的地址是所述源路由器的一个接口地址,则将所述源路由器作为计算转发跳数的根节点;
(3)若所述目的地址不是所述源路由器的一个接口地址,则查找所述源路由器中的特定路由所对应接口的OSPF邻居,若有OSPF邻居的接口地址为所述目的地址,则将该邻居路由器作为计算转发跳数的根节点;其中,所述特定路由为与所述目的地址对应的路由;
(4)若(1)、(2)和(3)的条件都不满足,则将所述源路由器作为计算转发跳数的根节点。
进一步的,在有多条转发路径的情况下,所述转发跳数包括上限和下限;转发跳数上限为所述多条转发路径的转发跳数中的最大值,转发跳数下限为所述多条转发路径的转发跳数中的最小值。
参见图9,为本发明另一实施例提供的服务器的结构示意图,该服务器可应用于实施例三,即实施例三中的代理服务器。如图所示,该服务器可包括:收发模块1001、控制模块1002、路由匹配模块1003,计算模块1004;
控制模块1002,用于在接收到代理客户端设备转发的携带有目的地址的代理请求后,指示路由匹配模块1003进行路由匹配,其中,所述目的地址为发起所述代理请求的路由器的对端设备的地址;指示计算模块1004根据路由匹配模块1003匹配到的路由计算根节点到发起所述代理请求的路由器的转发跳数,并将该转发跳数通过收发模块1001发送给所述代理客户端设备进行转发;其中,所述根节点是根据所述目的地址确定出来的;
路由匹配模块1003,用于根据控制模块1002的指示,根据所述目的地址,使用各区域的路由表进行路由匹配;
计算模块1004,用于根据控制模块1002的指示,计算根节点到发起所述代理请求的路由器的转发跳数。
具体的,控制模块1002具体用于:
如果发起代理请求的路由器在第一分支区域,所述路由匹配模块在第二分支区域匹配到路由,则向计算模块1004发送第一指示;
如果发起代理请求的路由器在分支区域,所述路由匹配模块在主干区域匹配到路由,则向计算模块1004发送第二指示;
如果发起代理请求的路由器在主干区域,所述路由匹配模块在分支区域匹配到路由,则向计算模块1004发送第三指示;
所述计算模块具体用于:
接收到所述第一指示后,根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用所述第二分支区域的路由表计算该根节点到第二分支区域的出口ABR的转发跳数,使用主干区域的路由表计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数,使用第一分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将三次计算得到的转发跳数累加后携带于代理响应返回给代理客户端;
接收到所述第二指示后,根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用主干区域的路由表计算该根节点到主干区域出口ABR的转发跳数,使用该分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端;
接收到所述第三示后,根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用该分支区域的路由表计算该根节点到该分支区域出口ABR的转发跳数,根据主干区域的路由表计算所述分支区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端。
具体的,计算模块1004具体用于,计算所述根节点到所在区域出口ABR的转发跳数时:
以所述根节点为起点进行SPF计算,直到该根节点所在区域的ABR进入SPF树后停止SPF计算;
从各ABR中选取出生成特定LSA的ABR,所述特定LSA为与所述目的地址匹配的路由所对应的LSA,将选取出的各ABR产生的3类LSA中的Metric分别与该根节点到各ABR的路径的cost相加,取数值最小的cost所对应的ABR作为所述区域的出口ABR;
根据所述SPF计算得到的路径,计算所述根节点到所述出口ABR的转发跳数;其中,从根节点以后每经过一个节点时转发跳数递增,直到将所述区域的出口ABR作为最后一个节点计算在内时停止转发跳数递增。
具体的,计算模块1004具体用于,计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数时:
将所述根节点所在分支区域的出口ABR作为主干区域的入口ABR,以该入口ABR为起点进行SPF计算,直到主干区域的ABR进入SPF树后停止SPF计算;从主干区域的各ABR中选取出生成特定LSA的ABR,所述特定LSA为与所述目的地址匹配的路由所对应的LSA,将选取出的各ABR产生的3类LSA中的Metric分别与该根节点到各ABR的路径的cost相加,取数值最小的cost所对应的ABR作为主干区域的出口ABR;根据所述SPF计算得到的路径,计算得到所述根节点所在第二分支区域的出口ABR到所述主干区域的出口ABR的转发跳数,其中,从所述根节点所在第二分支区域的出口ABR以后每经过一个节点时转发跳数递增,直到所述主干区域的出口ABR作为最后一个节点计算在内时停止转发跳数递增。
具体的,计算模块1004还用于,确定所述根节点并以所述根节点为起点计算转发跳数的设备后,对应于计算出的转发跳数设置可信标识,并将所述可信标志携带于代理响应中。
具体的,计算模块1004具体用于,在根据所述目的地址确定计算转发跳数的根节点时,根据匹配到的区域内路由查找对应的LSA,查找发布该LSA的源路由器,根据该源路由器及其OSPF邻居确定计算转发跳数的根节点。
具体的,计算模块1004通过以下方式确定根节点:
(1)若匹配到的路由是32位路由,则将所述源路由器作为计算转发跳数的根节点;
(2)若所述目的地址是所述源路由器的一个接口地址,则将所述源路由器作为计算转发跳数的根节点;
(3)若所述目的地址不是所述源路由器的一个接口地址,则查找所述源路由器中的特定路由所对应接口的OSPF邻居,若有OSPF邻居的接口地址为所述目的地址,则将该邻居路由器作为计算转发跳数的根节点;其中,所述特定路由为与所述目的地址对应的路由;
(4)若(1)、(2)和(3)的条件都不满足,则将所述源路由器作为计算转发跳数的根节点。
进一步的,计算模块1004还用于,在所述(1)、(2)或(3)的情况下,对应于以所述根节点为起点计算出的转发跳数设置可信标识的值为可信;在所述(4)的情况下,对应于以所述根节点为起点计算出的转发跳数设置可信标识的值为不可信。
进一步的,在有多条转发路径的情况下,所述转发跳数包括上限和下限;转发跳数上限为所述多条转发路径的转发跳数中的最大值,转发跳数下限为所述多条转发路径的转发跳数中的最小值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (24)
1.一种LDP远程邻居配置方法,应用于多区域网络,所述网络中设置有代理服务器,所述代理服务器上配置有各区域的路由表,各区域中设置有代理客户端设备;其特征在于,该方法包括:
路由器接收到对端发送的LDP报文后计算到对端的转发跳数,若该转发跳数在指定范围内,则与对端建立LDP邻居;或者,路由器向对端发送LDP报文后计算到对端的转发跳数,若该转发跳数在指定范围内,则在接收到对端响应的LDP报文后与对端建立LDP邻居;
其中,所述路由器计算到对端的转发跳数包括:
所述路由器以对端地址作为目的地址进行路由匹配,并在匹配到路由后判断该路由的类型;
如果是区域内路由,则所述路由器根据所述目的地址确定计算转发跳数的根节点,计算所述根节点到所述路由器的转发跳数;
如果是区域间路由,则所述路由器通过所在区域的代理客户端设备从代理服务器获得计算转发跳数的根节点到所述路由器的转发跳数;其中,所述根节点是根据所述目的地址确定出来的。
2.如权利要求1所述的方法,其特征在于,所述路由器通过所在区域的代理客户端设备从代理服务器获得计算转发跳数的根节点到所述路由器的转发跳数,包括:
所述路由器向所在区域的代理客户端发送代理请求,所述代理客户端将该代理请求转发给所述代理服务器,所述代理请求中携带所述目的地址;
所述代理服务器根据所述代理请求中携带的目的地址,并根据其上配置的各个区域的路由表,在各个区域查找是否有匹配的区域内路由;
如果发起代理请求的路由器在第一分支区域,代理服务器在第二分支区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用所述第二分支区域的路由表计算该根节点到第二分支区域的出口ABR的转发跳数,使用主干区域的路由表计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数,使用第一分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将三次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器;
如果发起代理请求的路由器在分支区域,代理服务器在主干区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用主干区域的路由表计算该根节点到主干区域出口ABR的转发跳数,使用该分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器;
如果发起代理请求的路由器在主干区域,代理服务器在分支区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用该分支区域的路由表计算该根节点到该分支区域出口ABR的转发跳数,根据主干区域的路由表计算所述分支区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器。
3.如权利要求2所述的方法,其特征在于,计算所述根节点到所述路由器的转发跳数,包括:
以所述根节点为起点进行SPF计算,直到所述路由器进入到SPF树后停止SPF计算,得到从该根节点到所述路由器的转发跳数;其中,从根节点以后每经过一个节点时转发跳数递增,直到将所述路由器作为最后一个节点计算在内时停止转发跳数递增。
4.如权利要求2所述的方法,其特征在于,计算所述根节点到所在区域出口ABR的转发跳数,包括:
以所述根节点为起点进行SPF计算,直到该根节点所在区域的ABR进入SPF树后停止SPF计算;
从各ABR中选取出生成特定LSA的ABR,所述特定LSA为与所述目的地址匹配的路由所对应的LSA,将选取出的各ABR产生的3类LSA中的Metric分别与该根节点到各ABR的路径的cost相加,取数值最小的cost所对应的ABR作为所述区域的出口ABR;
根据所述SPF计算得到的路径,计算所述根节点到所述出口ABR的转发跳数;其中,从根节点以后每经过一个节点时转发跳数递增,直到将所述区域的出口ABR作为最后一个节点计算在内时停止转发跳数递增。
5.如权利要求2所述的方法,其特征在于,计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数,包括:
将所述第二分支区域的出口ABR作为主干区域的入口ABR,以该入口ABR为起点进行SPF计算,直到主干区域的ABR进入SPF树后停止SPF计算;从主干区域的各ABR中选取出生成特定LSA的ABR,所述特定LSA为与所述目的地址匹配的路由所对应的LSA,将选取出的各ABR产生的3类LSA中的Metric分别与该根节点到各ABR的路径的cost相加,取数值最小的cost所对应的ABR作为主干区域的出口ABR;根据所述SPF计算得到的路径,计算得到所述根节点所在第二分支区域的出口ABR到所述主干区域的出口ABR的转发跳数,其中,从所述根节点所在第二分支区域的出口ABR以后每经过一个节点时转发跳数递增,直到所述主干区域的出口ABR作为最后一个节点计算在内时停止转发跳数递增。
6.如权利要求2所述的方法,其特征在于,确定所述根节点并以所述根节点为起点计算转发跳数的设备,还对应于计算出的转发跳数设置可信标识;
在确定所述根节点并以所述根节点为起点计算转发跳数的设备为所述路由器的情况下,所述路由器在可信标识表明转发跳数可信时,判断该转发跳数是否在指定范围内,并在判断为是时与对端建立LDP邻居;
在确定所述根节点并以所述根节点为起点计算转发跳数的设备为所述代理服务器的情况下,所述代理服务器将所述可信标志携带于代理响应中;所述路由器在接收到的代理响应中携带的可信标识表明转发跳数可信时,判断该转发跳数是否在指定范围内,并在判断为是时与对端建立LDP邻居。
7.如权利要求1-5之一所述的方法,其特征在于,根据所述目的地址确定计算转发跳数的根节点,包括:
根据匹配到的区域内路由查找对应的LSA,查找发布该LSA的源路由器,根据该源路由器及其OSPF邻居确定计算转发跳数的根节点。
8.如权利要求7所述的方法,其特征在于,所述根据源路由器及其OSPF邻居确定计算转发跳数的根节点,包括以下(1)至(4)之一:
(1)若匹配到的路由是32位路由,则将所述源路由器作为计算转发跳数的根节点;
(2)若所述目的地址是所述源路由器的一个接口地址,则将所述源路由器作为计算转发跳数的根节点;
(3)若所述目的地址不是所述源路由器的一个接口地址,则查找所述源路由器中的特定路由所对应接口的OSPF邻居,若有OSPF邻居的接口地址为所述目的地址,则将该邻居路由器作为计算转发跳数的根节点;其中,所述特定路由为与所述目的地址对应的路由;
(4)若(1)、(2)和(3)的条件都不满足,则将所述源路由器作为计算转发跳数的根节点。
9.如权利要求8所述的方法,其特征在于,该方法还包括:在所述(1)、(2)或(3)的情况下,对应于以所述根节点为起点计算出的转发跳数设置可信标识的值为可信;在所述(4)的情况下,对应于以所述根节点为起点计算出的转发跳数设置可信标识的值为不可信。
10.如权利要求1-5之一所述的方法,其特征在于,在有多条转发路径的情况下,所述转发跳数包括上限和下限;
转发跳数上限为所述多条转发路径的转发跳数中的最大值,转发跳数下限为所述多条转发路径的转发跳数中的最小值。
11.一种路由器,其特征在于,应用于多区域网络,所述网络中设置有代理服务器,所述代理服务器上配置有各区域的路由表,各区域中设置有代理客户端设备,并分别与所述代理服务器连接,用于将所述路由器的代理请求转发给所述代理服务器,将所述代理服务器返回的代理响应转发给所述路由器;所述路由器包括:收发模块、LDP模块和OSPF模块,所述OSPF模块包括控制单元、路由匹配单元、计算单元;
所述LDP模块,用于在收发模块接收到对端发送的LDP报文后,请求OSPF模块计算到对端的转发跳数,若该转发跳数在指定范围内,则与对端建立LDP邻居;或者,在所述收发模块向对端发送LDP报文后,请求OSPF模块计算到对端的转发跳数,若该转发跳数在指定范围内,则在接收到对端响应的LDP报文后与对端建立LDP邻居;根据所述OSPF模块的代理请求,通过所在区域的代理客户端设备从代理服务器获得计算转发跳数的根节点到所述路由器的转发跳数,其中,所述根节点是根据所述目的地址确定出来的;
所述控制单元,用于根据接收到的请求,指示所述路由匹配单元进行路由匹配,如果匹配到区域内路由,则指示所述计算单元计算转发跳数;如果匹配到区域间路由,则请求LDP模块发起代理请求;
所述路由匹配单元,用于根据所述控制单元的指示,以对端地址为目的地址进行路由匹配;
所述计算单元,用于根据所述控制单元的指示,根据所述目的地址确定计算转发跳数的根节点,计算所述根节点到所述路由器的转发跳数,并将其发送给所述LDP模块。
12.如权利要求11所述的路由器,其特征在于,所述LDP模块具体用于,通过所在区域的代理客户端向所述代理服务器发送代理请求,所述代理请求中携带所述目的地址,以使所述代理服务器根据所述代理请求中携带的目的地址,并根据其上配置的各个区域的路由表,在各个区域查找是否有匹配的区域内路由;其中,
如果发起代理请求的路由器在第一分支区域,代理服务器在第二分支区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用所述第二分支区域的路由表计算该根节点到第二分支区域的出口ABR的转发跳数,使用主干区域的路由表计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数,使用第一分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将三次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器;
如果发起代理请求的路由器在分支区域,代理服务器在主干区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用主干区域的路由表计算该根节点到主干区域出口ABR的转发跳数,使用该分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器;
如果发起代理请求的路由器在主干区域,代理服务器在分支区域匹配到路由,则代理服务器根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用该分支区域的路由表计算该根节点到该分支区域出口ABR的转发跳数,根据主干区域的路由表计算所述分支区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端,所述代理客户端将该响应转发给发起代理请求的路由器。
13.如权利要求11或12所述的路由器,其特征在于,所述计算单元具体用于,在根据所述目的地址确定计算转发跳数的根节点时,根据匹配到的区域内路由查找对应的LSA,查找发布该LSA的源路由器,根据该源路由器及其OSPF邻居确定计算转发跳数的根节点。
14.如权利要求13所述的路由器,其特征在于,所述计算单元具体用于:
(1)若匹配到的路由是32位路由,则将所述源路由器作为计算转发跳数的根节点;
(2)若所述目的地址是所述源路由器的一个接口地址,则将所述源路由器作为计算转发跳数的根节点;
(3)若所述目的地址不是所述源路由器的一个接口地址,则查找所述源路由器中的特定路由所对应接口的OSPF邻居,若有OSPF邻居的接口地址为所述目的地址,则将该邻居路由器作为计算转发跳数的根节点;其中,所述特定路由为与所述目的地址对应的路由;
(4)若(1)、(2)和(3)的条件都不满足,则将所述源路由器作为计算转发跳数的根节点。
15.如权利要求11或12所述的路由器,其特征在于,在有多条转发路径的情况下,所述转发跳数包括上限和下限;
转发跳数上限为所述多条转发路径的转发跳数中的最大值,转发跳数下限为所述多条转发路径的转发跳数中的最小值。
16.一种服务器,其特征在于,应用于多区域网络,各区域中设置有代理客户端设备,分别与所述服务器连接,用于将各区域中的路由器的代理请求转发给所述服务器,将所述服务器返回的代理响应转发给所述路由器,所述代理服务器上配置有各区域的路由表;所述服务器包括:收发模块、控制模块、路由匹配模块,计算模块;
所述控制模块,用于在接收到代理客户端设备转发的携带有目的地址的代理请求后,指示所述路由匹配模块进行路由匹配,其中,所述目的地址为发起所述代理请求的路由器的对端设备的地址;指示所述计算模块根据所述路由匹配模块匹配到的路由计算根节点到发起所述代理请求的路由器的转发跳数,并将该转发跳数通过所述收发模块发送给所述代理客户端设备进行转发;其中,所述根节点是根据所述目的地址确定出来的;
所述路由匹配模块,用于根据所述控制模块的指示,根据所述目的地址,使用各区域的路由表进行路由匹配;
所述计算模块,用于根据所述控制模块的指示,计算根节点到发起所述代理请求的路由器的转发跳数。
17.如权利要求16所述的服务器,其特征在于,所述控制模块具体用于:
如果发起代理请求的路由器在第一分支区域,所述路由匹配模块在第二分支区域匹配到路由,则向所述计算模块发送第一指示;
如果发起代理请求的路由器在分支区域,所述路由匹配模块在主干区域匹配到路由,则向所述计算模块发送第二指示;
如果发起代理请求的路由器在主干区域,所述路由匹配模块在分支区域匹配到路由,则向所述计算模块发送第三指示;
所述计算模块具体用于:
接收到所述第一指示后,根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用所述第二分支区域的路由表计算该根节点到第二分支区域的出口ABR的转发跳数,使用主干区域的路由表计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数,使用第一分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将三次计算得到的转发跳数累加后携带于代理响应返回给代理客户端;
接收到所述第二指示后,根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用主干区域的路由表计算该根节点到主干区域出口ABR的转发跳数,使用该分支区域的路由表计算所述主干区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端;
接收到所述第三示后,根据所述目的地址确定计算转发跳数的根节点,以该根节点为起点、使用该分支区域的路由表计算该根节点到该分支区域出口ABR的转发跳数,根据主干区域的路由表计算所述分支区域出口ABR到所述路由器的转发跳数,并将两次计算得到的转发跳数累加后携带于代理响应返回给代理客户端。
18.如权利要求17所述的服务器,其特征在于,所述计算模块具体用于,计算所述根节点到所在区域出口ABR的转发跳数时:
以所述根节点为起点进行SPF计算,直到该根节点所在区域的ABR进入SPF树后停止SPF计算;
从各ABR中选取出生成特定LSA的ABR,所述特定LSA为与所述目的地址匹配的路由所对应的LSA,将选取出的各ABR产生的3类LSA中的Metric分别与该根节点到各ABR的路径的cost相加,取数值最小的cost所对应的ABR作为所述区域的出口ABR;
根据所述SPF计算得到的路径,计算所述根节点到所述出口ABR的转发跳数;其中,从根节点以后每经过一个节点时转发跳数递增,直到将所述区域的出口ABR作为最后一个节点计算在内时停止转发跳数递增。
19.如权利要求17所述的服务器,其特征在于,所述计算模块具体用于,计算所述第二分支区域的出口ABR到主干区域出口ABR的转发跳数时:
将所述根节点所在分支区域的出口ABR作为主干区域的入口ABR,以该入口ABR为起点进行SPF计算,直到主干区域的ABR进入SPF树后停止SPF计算;从主干区域的各ABR中选取出生成特定LSA的ABR,所述特定LSA为与所述目的地址匹配的路由所对应的LSA,将选取出的各ABR产生的3类LSA中的Metric分别与该根节点到各ABR的路径的cost相加,取数值最小的cost所对应的ABR作为主干区域的出口ABR;根据所述SPF计算得到的路径,计算得到所述根节点所在第二分支区域的出口ABR到所述主干区域的出口ABR的转发跳数,其中,从所述根节点所在第二分支区域的出口ABR以后每经过一个节点时转发跳数递增,直到所述主干区域的出口ABR作为最后一个节点计算在内时停止转发跳数递增。
20.如权利要求17所述的服务器,其特征在于,所述计算模块还用于,确定所述根节点并以所述根节点为起点计算转发跳数的设备后,对应于计算出的转发跳数设置可信标识,并将所述可信标志携带于代理响应中。
21.如权利要求16-20之一所述的服务器,其特征在于,所述计算模块具体用于,在根据所述目的地址确定计算转发跳数的根节点时,根据匹配到的区域内路由查找对应的LSA,查找发布该LSA的源路由器,根据该源路由器及其OSPF邻居确定计算转发跳数的根节点。
22.如权利要求21所述的服务器,其特征在于,所述计算模块具体用于:
(1)若匹配到的路由是32位路由,则将所述源路由器作为计算转发跳数的根节点;
(2)若所述目的地址是所述源路由器的一个接口地址,则将所述源路由器作为计算转发跳数的根节点;
(3)若所述目的地址不是所述源路由器的一个接口地址,则查找所述源路由器中的特定路由所对应接口的OSPF邻居,若有OSPF邻居的接口地址为所述目的地址,则将该邻居路由器作为计算转发跳数的根节点;其中,所述特定路由为与所述目的地址对应的路由;
(4)若(1)、(2)和(3)的条件都不满足,则将所述源路由器作为计算转发跳数的根节点。
23.如权利要求22所述的服务器,其特征在于,所述计算模块还用于,在所述(1)、(2)或(3)的情况下,对应于以所述根节点为起点计算出的转发跳数设置可信标识的值为可信;在所述(4)的情况下,对应于以所述根节点为起点计算出的转发跳数设置可信标识的值为不可信。
24.如权利要求16-20之一所述的服务器,其特征在于,在有多条转发路径的情况下,所述转发跳数包括上限和下限;
转发跳数上限为所述多条转发路径的转发跳数中的最大值,转发跳数下限为所述多条转发路径的转发跳数中的最小值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110394626.1A CN102427425B (zh) | 2011-12-02 | 2011-12-02 | 一种ldp远程邻居配置方法及设备 |
PCT/CN2012/001621 WO2013078776A1 (en) | 2011-12-02 | 2012-12-03 | Establishing a label distribution protocol ldp remote neighbor relationship |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110394626.1A CN102427425B (zh) | 2011-12-02 | 2011-12-02 | 一种ldp远程邻居配置方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102427425A true CN102427425A (zh) | 2012-04-25 |
CN102427425B CN102427425B (zh) | 2014-06-25 |
Family
ID=45961371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110394626.1A Active CN102427425B (zh) | 2011-12-02 | 2011-12-02 | 一种ldp远程邻居配置方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102427425B (zh) |
WO (1) | WO2013078776A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013078776A1 (en) * | 2011-12-02 | 2013-06-06 | Hangzhou H3C Technologies Co., Ltd. | Establishing a label distribution protocol ldp remote neighbor relationship |
CN103475579A (zh) * | 2013-09-06 | 2013-12-25 | 杭州华三通信技术有限公司 | 优化发布LSAmetric的方法及装置 |
CN104767688A (zh) * | 2015-04-15 | 2015-07-08 | 杭州华三通信技术有限公司 | 通用存活时间安全机制检查方法及装置 |
CN105939256A (zh) * | 2015-03-06 | 2016-09-14 | 丛林网络公司 | 管理轴辐式网络内的路由信息 |
CN109150723A (zh) * | 2018-10-24 | 2019-01-04 | 常熟理工学院 | 一种物联网的路由通信实现方法 |
CN111984322A (zh) * | 2020-09-07 | 2020-11-24 | 北京航天数据股份有限公司 | 一种控制指令传输方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106534068B (zh) * | 2016-09-29 | 2023-12-22 | 广州华多网络科技有限公司 | 一种ddos防御系统中清洗伪造源ip的方法和装置 |
CN110782554B (zh) * | 2018-07-13 | 2022-12-06 | 北京佳惠信达科技有限公司 | 一种基于视频摄影的门禁控制方法 |
CN118233371B (zh) * | 2024-05-24 | 2024-07-30 | 新华三半导体技术有限公司 | 一种报文转发方法、装置、网络设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878125A (zh) * | 2005-06-06 | 2006-12-13 | 华为技术有限公司 | 提高骨干网络安全性的实现方法 |
CN101656666A (zh) * | 2009-09-24 | 2010-02-24 | 福建星网锐捷网络有限公司 | 标签分发协议会话处理方法与装置、标签交换路由器 |
WO2010132061A1 (en) * | 2009-05-15 | 2010-11-18 | Hewlett-Packard Development Company, L. P. | A method and apparatus for policy enforcement using a tag |
CN102123097A (zh) * | 2011-03-14 | 2011-07-13 | 杭州华三通信技术有限公司 | 一种路由保护方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497309B (zh) * | 2011-12-02 | 2016-01-20 | 杭州华三通信技术有限公司 | 一种ldp远程邻居配置方法及设备 |
CN102427425B (zh) * | 2011-12-02 | 2014-06-25 | 杭州华三通信技术有限公司 | 一种ldp远程邻居配置方法及设备 |
-
2011
- 2011-12-02 CN CN201110394626.1A patent/CN102427425B/zh active Active
-
2012
- 2012-12-03 WO PCT/CN2012/001621 patent/WO2013078776A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1878125A (zh) * | 2005-06-06 | 2006-12-13 | 华为技术有限公司 | 提高骨干网络安全性的实现方法 |
WO2010132061A1 (en) * | 2009-05-15 | 2010-11-18 | Hewlett-Packard Development Company, L. P. | A method and apparatus for policy enforcement using a tag |
CN101656666A (zh) * | 2009-09-24 | 2010-02-24 | 福建星网锐捷网络有限公司 | 标签分发协议会话处理方法与装置、标签交换路由器 |
CN102123097A (zh) * | 2011-03-14 | 2011-07-13 | 杭州华三通信技术有限公司 | 一种路由保护方法和设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013078776A1 (en) * | 2011-12-02 | 2013-06-06 | Hangzhou H3C Technologies Co., Ltd. | Establishing a label distribution protocol ldp remote neighbor relationship |
CN103475579A (zh) * | 2013-09-06 | 2013-12-25 | 杭州华三通信技术有限公司 | 优化发布LSAmetric的方法及装置 |
CN103475579B (zh) * | 2013-09-06 | 2016-08-10 | 杭州华三通信技术有限公司 | 优化发布LSAmetric的方法及装置 |
CN105939256A (zh) * | 2015-03-06 | 2016-09-14 | 丛林网络公司 | 管理轴辐式网络内的路由信息 |
CN105939256B (zh) * | 2015-03-06 | 2019-11-26 | 丛林网络公司 | 管理轴辐式网络内的路由信息 |
CN104767688A (zh) * | 2015-04-15 | 2015-07-08 | 杭州华三通信技术有限公司 | 通用存活时间安全机制检查方法及装置 |
CN104767688B (zh) * | 2015-04-15 | 2018-02-09 | 新华三技术有限公司 | 通用存活时间安全机制检查方法及装置 |
CN109150723A (zh) * | 2018-10-24 | 2019-01-04 | 常熟理工学院 | 一种物联网的路由通信实现方法 |
CN109150723B (zh) * | 2018-10-24 | 2020-11-24 | 常熟理工学院 | 一种物联网的路由通信实现方法 |
CN111984322A (zh) * | 2020-09-07 | 2020-11-24 | 北京航天数据股份有限公司 | 一种控制指令传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2013078776A1 (en) | 2013-06-06 |
CN102427425B (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102427425B (zh) | 一种ldp远程邻居配置方法及设备 | |
EP3429141B1 (en) | Segment routing label switched path for non-segment routing enabled routers | |
CN107409093B (zh) | 网络环境中针对路由反射器客户端的自动最优路由反射器根地址分配和快速故障转移 | |
EP3259886B1 (en) | Optimized border gateway protocol best path selection for optimal route reflection | |
EP3648420B1 (en) | Enabling non-flexible-algorithm routers to participate in flexiblealgorithm routing protocols | |
US8989048B2 (en) | Node system ID change in link state protocol network | |
US7619982B2 (en) | Active probe path management | |
US11743166B2 (en) | Provisioning non-colored segment routing label switched paths via segment routing policies in border gateway protocol | |
US20040039839A1 (en) | Connectionless internet traffic engineering framework | |
US8174967B2 (en) | Method to reduce routing convergence at the edge | |
JP2013541896A (ja) | 階層的ラベルスタッキングを用いてldpの収束を改善するための方法及び装置 | |
US11770329B2 (en) | Advertising and programming preferred path routes using interior gateway protocols | |
EP3754914B1 (en) | Class-based traffic engineering in an ip network | |
US9590845B1 (en) | Inter-area LDP node protection | |
WO2013044751A1 (zh) | 基于性能的路由方法和设备 | |
WO2009036678A1 (fr) | Procédé, dispositif et système de réseau pour acheminer un message | |
EP2997700B1 (en) | Method for assured network state configuration and rollback in link-state packet networks | |
CN113691445A (zh) | 报文转发备份路径确定方法及相关设备 | |
US9590844B1 (en) | Intra-area LDP node protection | |
US8675670B2 (en) | Distribution of routes in a network of routers | |
US20120166658A1 (en) | Gmpls network-based inter-domain interface apparatus and method | |
US20160156545A1 (en) | Network State Digest for Convergence Check | |
CN102497309B (zh) | 一种ldp远程邻居配置方法及设备 | |
WO2009121265A1 (zh) | 一种多归属多地址空间网络中实现流量工程的方法和设备 | |
Cisco | Integrated IS-IS Commands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |