CN111510388B - 一种确定转发路径的方法、装置及系统 - Google Patents
一种确定转发路径的方法、装置及系统 Download PDFInfo
- Publication number
- CN111510388B CN111510388B CN201910094030.6A CN201910094030A CN111510388B CN 111510388 B CN111510388 B CN 111510388B CN 201910094030 A CN201910094030 A CN 201910094030A CN 111510388 B CN111510388 B CN 111510388B
- Authority
- CN
- China
- Prior art keywords
- node
- forwarding
- virtual network
- forwarding path
- network
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004364 calculation method Methods 0.000 claims abstract description 182
- 238000013467 fragmentation Methods 0.000 claims description 36
- 238000006062 fragmentation reaction Methods 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 36
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 description 6
- 241000764238 Isis Species 0.000 description 6
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 description 6
- 238000012739 integrated shape imaging system Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/12—Shortest path evaluation
-
- 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/02—Topology update or discovery
-
- 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/34—Source routing
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供一种确定转发路径的方法、装置及系统,涉及网络技术领域,能够降低转发节点的计算量,保障转发节点的转发性能。该方法包括:算路节点在第一虚拟网络中确定第一节点至第二节点的第一SR‑BE转发路径;且算路节点在物理网络中确定第一节点至第二节点的第二SR‑BE转发路径,第一虚拟网络为基于物理网络构建的一个虚拟网络;在第一SR‑BE转发路径与第二SR‑BE转发路径重合的情况下,算路节点将第一SR‑BE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径;在第一SR‑BE转发路径与第二SR‑BE转发路径不重合的情况下,算路节点基于物理网络与第一虚拟网络确定第一SR‑TE转发路径,将第一SR‑TE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径。
Description
技术领域
本申请实施例涉及网络技术领域,尤其涉及一种确定转发路径的方法、装置及系统。
背景技术
随着5G技术的发展,在网络技术领域,网络分片已经成为一个重要的课题,通过网络分片可以将流量承载在不同的分片网络中,实现资源隔离。
目前,使用多拓扑路由(multi topology routing,MTR)技术可以实现类似网络分片的效果,MTR技术指的是将一个物理拓扑(该物理拓扑包括多个节点,例如多个路由器或交换机)划分为多个逻辑拓扑,其中,物理拓扑可以记为MT0,多个逻辑拓扑可以记为MT1、MT2……(或者物理拓扑记为Topo0,多个逻辑拓扑记为Topo1、Topo2……)。
通过MTR技术实现网络分片之后,可以基于SRv6完成不同的拓扑的配置、算路(即确定转发路径)等,从而实现数据包在对应的分片网络(即拓扑)中进行转发,这里SRv6指的是将分段路由(segment routing,SR)技术应用于IPv6网络中,是一种在网络上转发IPv6数据包的一种协议,即使用IPv6地址作为分段ID(segment ID,SID)的表现形式,在网络中实现数据包的转发。
上述网络分片与SRv6相结合的方法中,在确定数据包的转发路径时,上述每个逻辑拓扑(也可以称为分片网络)中的所有节点(包括运营商边缘(provider edge,PE)节点和运营商(provider,P)节点)均需要进行算路,如此,会导致部分节点的计算量比较大,使得节点的性能降低。
发明内容
本申请实施例提供一种确定转发路径的方法、装置及系统,能够降低转发节点的计算量,保障转发节点的转发性能。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种确定转发路径的方法,该方法包括:算路节点在第一虚拟网络中确定第一节点至第二节点的第一分段路由最优(segment routing besteffort,SR-BE)转发路径,该第一节点为数据传输的起始节点,该第二节点为数据传输的目的节点;并且算路节点在物理网络中确定第一节点至第二节点的第二SR-BE转发路径,第一虚拟网络为基于物理网络构建的一个虚拟网络;在第一SR-BE转发路径与第二SR-BE转发路径重合的情况下,算路节点将第一SR-BE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径;在第一SR-BE转发路径与第二SR-BE转发路径不重合的情况下,算路节点基于物理网络与第一虚拟网络确定第一分段路由流量工程(segment routingtraffic engineering,SR-TE)转发路径,并且将第一SR-TE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径。
本申请实施例中物理网络中的节点均进行转发路径计算,在各个虚拟网络中,支持将部分节点配置为P节点(一般是中间节点),将其定义为转发节点,将部分节点配置为PE节点(一般是网络边缘节点,它们可能作为一些业务路径的头结点),将PE节点定义为算路节点,即在虚拟网络中由PE节点构建虚拟网络拓扑,并且按照虚拟网络拓扑进行虚拟网络中的节点的转发路径计算,以及据此生成到目的节点的转发表项,虚拟网络中的P节点仅转发虚拟网络拓扑和链路信息,但是不构建虚拟网络拓扑,而是使用其他的方式来生成对应虚拟网络中到目的节点的转发表项。
需要说明的是,本申请实施例中,可以不限制算路节点确定第一SR-BE转发路径和确定第二SR-BE转发路径的顺序,即算路节点可以先确定第一SR-BE转发路径,后确定第二SR-BE转发路径;或者,先确定第二SR-BE转发路径,后确定第一SR-BE转发路径;或者,同时第一SR-BE转发路径和第二SR-BE转发路径。
本申请实施例提供的确定转发路径的方法,第一虚拟网络(可以为一个分片网络)构建完成并且该分片网络配置完成之后,在确定第一虚拟网络中的转发路径的过程中,该第一虚拟网络中的算路节点在该第一虚拟网络中确定出第一节点至第二节点的第一SR-BE转发路径,并且该算路节点也在物理网络中确定出第一节点至第二节点的第二SR-BE转发路径,通过比较这两条转发路径是否重合来确定第一节点至第二节点的目标转发路径,在第一SR-BE转发路径与第二SR-BE转发路径重合的情况下,算路节点将第一SR-BE转发路径确定为第一节点至第二节点的目标转发路径;在第一SR-BE转发路径与第二SR-BE转发路径不重合的情况下,算路节点基于物理网络与第一虚拟网络确定第一SR-TE转发路径,并且将该第一SR-TE转发路径确定为第一节点至第二节点的目标转发路径。本申请实施例中,由第一虚拟网络中的算路节点进行转发路径的确定,而第一虚拟网络中的转发节点并不进行完整的转发路径的确定,如此,能够降低转发节点的计算量,保障转发节点的转发性能。
一种可能的实现方式中,物理网络中的节点支持网络分片,第一虚拟网络是基于物理网络的一个分片网络。
本申请实施例中,第一虚拟网络是基于物理网络虚拟出的逻辑网络,采用MT技术在一个物理网络中虚拟出多个逻辑网络(也可以称为虚拟网络),达到网络分片的效果,每个逻辑网络即为一个分片网络。第一虚拟网络中的算路节点接收到业务请求(该业务请求包括业务类型以及该业务对应的起始节点和目的节点)之后,该算路节点根据该业务需求构建转发给业务的转发路径。上述第一节点为第一虚拟网络中,传输某一业务的起始节点。
一种可能的实现方式中,算路节点与第一节点为同一节点;或者,算路节点是与第一节点互通的网络控制节点。
本申请实施例中,上述算路节点可以与第一节点相同,即此时第一节点为PE节点,该算路节点即为网络中的第一节点;或者,该算路节点可以为与第一互通的网络控制节点。例如SDN控制器。
一种可能的实现方式中,算路节点获取第一虚拟网络的链路状态信息,该第一虚拟网络的链路状态信息包括第一虚拟网络的链路度量、第一虚拟网络中的节点的节点SID、第一虚拟网络中的链路的邻接SID。该第一虚拟网络的链路状态信息用于确定目标转发路径。
上述第一虚拟网络的链路状态信息还可以包括第一虚拟网络的标识和第一虚拟网络中节点的SRv6的LOC地址信息等。
一种可能的实现方式中,算路节点还获取物理网络的链路状态信息,该物理网络的链路状态信息包括物理网络的链路度量、物理网络中的节点的节点SID、物理网络中的节点的SRv6的LOC地址信息、物理网络中的链路的邻接SID。该虚拟网络的链路状态信息用于目标转发路径。
需要说明的是,本申请实施例中,可以不限制算路节点获取物理网络的链路状态信息和算路节点获取第一虚拟网络的链路状态信息的顺序,算路节点可以先获取物理网络的链路状态信息,后算路节点获取第一虚拟网络的链路状态信息;或者,先算路节点获取第一虚拟网络的链路状态信息,后获取物理网络的链路状态信息;或者同时获取物理网络的链路状态信息和算路节点获取第一虚拟网络的链路状态信息。
一种可能的实现方式中,上述算路节点获取到第一虚拟网络的链路状态信息的情况下,在第一虚拟网络中确定第一节点至第二节点的第一SR-BE转发路径的方法具体可以包括:算路节点根据第一虚拟网络的链路度量,确定第一节点至第二节点的第一SR-BE转发路径所包含的节点;并且算路节点将第一虚拟网络中的第二节点的节点SID写至第一SR-BE转发路径对应的地址空间。
本申请实施例中,算路节点可以通过最短路径算法(例如Dijkstra),计算一个节点到其他节点的最短路径。具体的,一个节点与该节点的下一个节点之间的链路的链路度量决定了这两个节点之间的路径的cost(花费或代价),链路度量越大,说明路径cost越高。在第一虚拟网络中可以根据第一节点至第二节点的所有可能的链路的链路度量之和最小的原则,确定第一节点至第二节点的第一SR-BE转发路径,即第一SR-BE转发路径为最短路径。
上述算路节点确定出第一SR-BE转发路径之后,由于该第一SR-BE转发路径是第一节点至第二节点的最短路径,因此,算路节点可以只将第二节点(即目的节点)的节点SID写至第一SR-BE转发路径对应的地址空间(可以记为SID list)即可,该第一SR-BE转发路径对应的地址空间可以为一个目的地址空间,即将第二节点的节点SID封装到目的地址里,在数据转发时,可以根据目的地址中的SID,按照最短路径将数据转发至目的地址中的SID对应的节点。需要说明的是,上述写至第一SR-BE转发路径对应的地址空间的第二节点的节点SID为该第二节点的目的SRv6SID(例如,该第二节点的节点SID的功能类型为对应END.DT4,是与业务需求对应的节点SID)。
一种可能的实现方式中,上述算路节点基于物理网络与第一虚拟网络确定第一SR-TE转发路径的方法具体可以包括:算路节点确定第一SR-TE转发路径所包含的节点,第一SR-TE转发路径所包含的节点与第一SR-BE转发路径所包含的节点相同;并且算路节点确定待处理节点,该待处理节点为第一虚拟网络中第一锚点节点至第二节点的SR-BE转发路径中与物理网络中第一锚点节点至第二节点的SR-BE转发路径的第一个不重合的节点,该第一锚点节点为第一虚拟网络中的一个节点;以及算路节点将第一SR-BE转发路径中待处理节点的上一跳节点与待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间;若待处理节点为第二节点,算路节点将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间,则算路节点完成确定第一SR-TE转发路径。
需要说明的是,本申请实施例中,初始时,第一锚点节点为上述第一节点。
本申请实施例中,算路节点将第一SR-BE转发路径中待处理节点的上一跳节点与该待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间,如此,可以限定目标转发路径需经过待处理节点的上一跳节点与该待处理节点之间的链路。
一种可能的实现方式中,若待处理节点不是第二节点,本申请实施例提供的确定转发路径的方法还可以包括:算路节点在物理网络中确定待处理节点至第二节点的SR-BE转发路径;并且若物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径重合,算路节点将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间,则算路节点完成确定第一SR-TE转发路径。
一种可能的实现方式中,若物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径不重合,本申请实施例提供的确定转发路径的方法还可以包括:算路节点将待处理节点确定为第二锚点节点;并且算路节点确定待处理节点,该待处理节点为第一虚拟网络中本次确定的第二锚点节点至第二节点的SR-BE转发路径中与物理网络中该第二锚点节点至第二节点的SR-BE转发路径的第一个不重合的节点;以及算路节点将第一SR-BE转发路径中待处理节点的上一跳节点与该待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间;若待处理节点为第二节点,算路节点将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间,则算路节点完成确定第一SR-TE转发路径。
本申请实施例中,由于在第一SR-TE转发路径对应的地址空间中写至的SID不是第一SR-TE转发路径上所有的SID(包括节点SID和邻接SID),而是通过上述S1052-S1059的方法确定将一些必要的SID写至第一SR-TE转发路径对应的地址空间,如此,第一SR-TE转发路径对应的地址空间,能够拥有较浅的标签栈深度和较小的转发路径的开销。
本申请实施例中,若上述算路节点不是网络控制器,而是网络中的起始节点,即算路节点记为第一节点,该算路节点确定出目标转发路径之后,该算路节点生成第一虚拟网络中到第二节点的转发表项,该转发表项包括第一虚拟网络中第二节点的SRv6的LOC地址信息和第一虚拟网络中算路节点至该算路节点的下一跳节点的出接口的标识信息。
第二方面,本申请实施例提供一种确定转发路径的方法,该方法包括:第一转发节点获取到物理网络的链路状态信息和第一虚拟网络的链路状态信息之后,第一转发节点将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口,该第一主接口为物理网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一子接口为第一虚拟网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一虚拟网络为基于物理网络构建的一个虚拟网络;并且第一转发节点生成第一虚拟网络中到第二节点的转发表项,该转发表项中包括第一子接口的指示信息,该第二节点为数据传输的目的节点。
上述第一转发节点获取到的物理网络的链路状态信息可以包括第一转发节点到其他节点之间的主接口的指示信息,第一转发节点获取到的第一虚拟网络的链路状态信息可以包括第一转发节点到其他节点之间的子接口的指示信息。
本申请实施例中,由于第一虚拟网络中的转发节点不进行算路,该转发节点在物理网络中进行算路,因此,转发节点并不感知虚拟网络,该转发节点仅感知物理网络。对于第一虚拟网络中的第一转发节点,默认第一转发节点与该第一转发节点的下一跳节点之间的接口为主接口(即上述的第一主接口),在第一虚拟网络中需要将第一主接口替换为该第一虚拟网络中第一转发节点与该第一转发节点的下一跳节点之间的子接口(即上述的第一子接口),如此,在第一虚拟网络中进行数据传输时,第一转发节点可以通过第一子接口将数据传输至该第一转发节点的下一跳节点,可以保证虚拟网络中的数据在对应的虚拟网络中传输,实现资源隔离,避免不同网络之间数据传输发生干扰。
一种可能的实现方式中,物理网络中的节点支持网络分片,第一虚拟网络是基于物理网络的一个分片网络。
一种可能的实现方式中,第一转发节点确定将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口的方法具体可以包括:第一转发节点确定第一虚拟网络中第一主接口对应的第一子接口是否存在;若第一子接口存在,则第一转发节点将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口。
可选的,本申请实施例中,虚拟网络配置时进行了资源隔离配置(也可以称为接口配置),对于虚拟网络的链路,通过FlexE技术或者信道化子接口技术构建隔离的带宽资源,配置相应的主接口和子接口,并且配置主接口和子接口对应的网络的标识,例如,配置主接口对应的网络为物理网络(其标识为MT0,可选的,也可以不配置物理网络的标识,默认主接口对应的网络为物理网络),配置子接口1对应的网络为第一虚拟网络(其标识为MT1),配置子接口2对应的网络为第二虚拟网络(其标识为MT2)。
本申请实施例中,第一转发节点根据第一主接口查找是否配置了第一虚拟网络对应的子接口(第一子接口),若配置了第一子接口,则第一转发节点确定第一主接口对应的第一子接口存在,若未配置该第一子接口,则第一转发节点确定第一主接口对应的第一子接口不存在。
一种可能的实现方式中,若上述第一子接口不存在,则第一转发节点不执行接口替换,该第一转发节点也不生成到第二节点的转发表项,可选的,第一转发节点采用该第一主接口转发第一虚拟网络中发向第二节点的数据。
一种可能的实现方式中,第一转发节点将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口之前,本申请实施例提供的确定转发路径的方法还包括:第一转发节点确定第一主接口。
一种可能的实现方式中,上述第一转发节点确定第一主接口的方法具体可以包括:第一转发节点确定物理网络中第二节点的SRv6的LOC地址信息;并且第一转发节点根据物理网络中第二节点的SRv6的LOC地址信息查找到第一主接口。
首先,第一转发节点在第一虚拟网络中确定第二节点对应的SRv6的LOC地址信息,并将其作为线索,查找物理网络中与其匹配的第二节点对应的SRv6的LOC地址信息,从而根据物理网络中第二节点的SRv6的LOC地址信息从路由表中查找对应的出接口,从而查找到第一转发节点对应于第二节点的出接口。
在一种可能的实现方式中,若第一虚拟网络中第二节点对应的SRv6的LOC地址信息被配置为物理网络中第二节点对应的SRv6的LOC地址信息的子集时,第一转发节点可以直接根据第一虚拟网络中第二节点对应的SRv6的LOC地址信息,从路由表中查找对应的出接口,从而查找到第一转发节点对应于第二节点的出接口(即第一主接口)。
一种可能的实现方式中,上述物理网络的链路状态信息包括物理网络中两个节点之间的主接口的指示信息。
可选的,物理网络的链路状态信息还可以包括物理网络的链路度量、物理网络中的节点的节点SID、物理网络中的节点的SRv6的LOC地址信息以及物理网络中的链路的邻接SID等。
一种可能的实现方式中,上述第一虚拟网络的链路状态信息包括第一虚拟网络中两个节点之间的子接口的指示信息。
可选的,第一虚拟网络的链路状态信息还可以包括第一虚拟网络的标识、第一虚拟网络的链路度量、第一虚拟网络中的节点的节点SID、第一虚拟网络中节点的SRv6的LOC地址信息以及第一虚拟网络中的链路的邻接SID等。
综上,可以理解的是,本申请实施例中,在完成物理网络和各个虚拟网络的配置之后,网络中的所有转发节点完成所有接口的替换,生成虚拟网络中到目的节点的转发表项,从而算路节点确定出目标转发路径之后则根据替换后的子接口以进行数据转发。或者,在算路节点完成第一虚拟网络中的目标转发路径的计算之后,针对该目标转发路径中的转发节点,将主接口替换为第一虚拟网络中对应的子接口,再生成到目的节点的转发表项,以进行数据转发。
进一步的,本申请实施例提供的转发路径的确定方法,当第一虚拟网络所包括的节点为物理网络中的部分节点,或者第一虚拟网络的链路为物理网络中的部分链路,或者第一虚拟网络中的链路度量与物理网络中的链路度量不相同时,能够避免出现接口替换失败或者接口替换错误导致数据不能完全在第一虚拟网络中转发的问题或者数据在第一虚拟网络中转发出错的问题。
本申请实施例提供的确定转发路径的方法,由第一虚拟网络中的转发节点完成节点之间的接口替换,对于其中的一个转发节点(称为第一转发节点),该第一转发节点确定将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口,该第一主接口为物理网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一子接口为第一虚拟网络中第一转发节点与第一转发节点的下一跳节点之间的接口。如此,在算路节点确定出第一虚拟网络中的目标转发路径之后,可以使用子接口替换的方式来生成到对应分片网络的目的节点的转发表项,如此,转发节点无需再计算目标转发路径,能够降低转发节点的计算量,保障转发节点的转发性能。
第三方面,本申请实施例提供一种算路节点,包括第一确定模块和第二确定模块。其中,第一确定模块用于在第一虚拟网络中确定第一节点至第二节点的第一SR-BE转发路径,该第一节点为数据传输的起始节点,该第二节点为数据传输的目的节点;该第一确定模块还用于在物理网络中确定第一节点至第二节点的第二SR-BE转发路径,该第一虚拟网络为基于物理网络构建的一个虚拟网络;第二确定模块用于在第一SR-BE转发路径与第二SR-BE转发路径重合的情况下,将第一SR-BE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径;该第二确定模块还用于在第一SR-BE转发路径与第二SR-BE转发路径不重合的情况下,基于物理网络与第一虚拟网络确定第一SR-TE转发路径,并且将第一SR-TE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径。
一种可能的实现方式中,上述物理网络中的节点支持网络分片,第一虚拟网络是基于物理网络的一个分片网络。
一种可能的实现方式中,算路节点与第一节点为同一节点;或者,算路节点是与第一节点互通的网络控制节点。
一种可能的实现方式中,本申请实施例提供的算路节点还包括获取模块;该获取模块用于获取第一虚拟网络的链路状态信息,该第一虚拟网络的链路状态信息包括第一虚拟网络的链路度量、第一虚拟网络中的节点的节点SID、第一虚拟网络中的链路的邻接SID。该第一虚拟网络的链路状态信息用于确定目标转发路径。
上述第一虚拟网络的链路状态信息还可以包括第一虚拟网络的标识和第一虚拟网络中节点的SRv6的LOC地址信息等。
一种可能的实现方式中,该获取模块还用于获取物理网络的链路状态信息,该物理网络的链路状态信息包括物理网络的链路度量、物理网络中的节点的节点SID、物理网络中的节点的SRv6的LOC地址信息、物理网络中的链路的邻接SID。该虚拟网络的链路状态信息用于目标转发路径。
一种可能的实现方式中,上述第一确定模块,具体用于根据第一虚拟网络的链路度量,确定第一节点至第二节点的第一SR-BE转发路径所包含的节点;并且将第一虚拟网络中第二节点的节点SID写至第一SR-BE转发路径对应的地址空间。
一种可能的实现方式中,上述第二确定模块,具体用于确定第一SR-TE转发路径所包含的节点,第一SR-TE转发路径所包含的节点与第一SR-BE转发路径所包含的节点相同;并且确定待处理节点,该待处理节点为第一虚拟网络中第一锚点节点至第二节点的SR-BE转发路径中与物理网络中第一锚点节点至第二节点的SR-BE转发路径的第一个不重合的节点,第一锚点节点为第一虚拟网络中的一个节点;以及将第一SR-BE转发路径中待处理节点的上一跳节点与待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间;若待处理节点为第二节点,将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间。
一种可能的实现方式中,若待处理节点不是第二节点,上述第二确定模块还用于在物理网络中确定待处理节点至第二节点的SR-BE转发路径;并且若物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径重合,将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间。
一种可能的实现方式中,若物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径不重合,上述第二确定模块还用与将待处理节点确定为第二锚点节点;并且确定待处理节点,该待处理节点为第一虚拟网络中本次确定的第二锚点节点至第二节点的SR-BE转发路径中与物理网络中该第二锚点节点至第二节点的SR-BE转发路径的第一个不重合的节点;以及将第一SR-BE转发路径中待处理节点的上一跳节点与该待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间;若待处理节点为第二节点,将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间。
第四方面,本申请实施例提供一种转发节点,该转发节点为第一转发节点,该转发节点包括接口替换模块和生成模块。其中,接口替换模块用于在第一转发节点获取到物理网络的链路状态信息和第一虚拟网络的链路状态信息之后,将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口,该第一主接口为物理网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一子接口为第一虚拟网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一虚拟网络为基于物理网络构建的一个虚拟网络;生成模块用于生成第一虚拟网络中到第二节点的转发表项,该转发表项中包括第一子接口的指示信息,第二节点为数据传输的目的节点。
一种可能的实现方式中,物理网络中的节点支持网络分片,第一虚拟网络是基于物理网络的一个分片网络。
一种可能的实现方式中,上述接口替换模块,具体用于确定第一虚拟网络中第一主接口对应的第一子接口是否存在;若第一子接口存在,则将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口。
一种可能的实现方式中,本申请实施例提供的转发节点还包括确定模块;该确定模块用于确定第一主接口。
一种可能的实现方式中,上述确定模块,具体用于确定物理网络中第二节点的SRv6的LOC地址信息;并且根据物理网络中第二节点的SRv6的LOC地址信息查找到第一主接口。
一种可能的实现方式中,上述物理网络的链路状态信息包括物理网络中两个节点之间的主接口的指示信息。
可选的,物理网络的链路状态信息还可以包括物理网络的链路度量、物理网络中的节点的节点SID、物理网络中的节点的SRv6的LOC地址信息以及物理网络中的链路的邻接SID等。
一种可能的实现方式中,上述第一虚拟网络的链路状态信息包括第一虚拟网络中两个节点之间的子接口的指示信息。
可选的,第一虚拟网络的链路状态信息还可以包括第一虚拟网络的标识、第一虚拟网络的链路度量、第一虚拟网络中的节点的节点SID、第一虚拟网络中节点的SRv6的LOC地址信息以及第一虚拟网络中的链路的邻接SID等。
第五方面,本申请实施例提供一种算路节点,包括处理器和与处理器耦合连接的存储器;该存储器用于存储计算机指令,当算路节点运行时,处理器执行存储器存储的计算机指令,以使得算路节点执行上述第一方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第六方面,一种计算机可读存储介质,其特征在于,计算机可读存储介质可以包括计算机指令,当计算机指令在计算机上运行时,使得算路节点执行第一方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第七方面,本申请实施例提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得算路节点执行第一方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第八方面,本申请实施例提供一种算路节点,该算路节点以芯片的产品形态存在,该算路节点的结构中包括处理器和存储器,该存储器用于与处理器耦合,该存储器可以用于存储计算机指令,该处理器用于执行存储器中存储的计算机指令,使得算路节点执行第一方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第九方面,本申请实施例提供一种转发节点,包括处理器和与处理器耦合连接的存储器;该存储器用于存储计算机指令,当转发节点运行时,处理器执行存储器存储的计算机指令,以使得转发节点执行第二方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第十方面,本申请实施例提供一种计算机可读存储介质,其特征在于,计算机可读存储介质可以包括计算机指令,当计算机指令在计算机上运行时,使得转发节点执行第二方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第十一方面,本申请实施例提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得转发节点执行第二方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第十二方面,本申请实施例提供一种转发节点,该转发节点以芯片的产品形态存在,该转发节点的结构中包括处理器和存储器,该存储器用于与处理器耦合,该存储器可以用于存储计算机指令,该处理器用于执行存储器中存储的计算机指令,使得转发节点执行第二方面及其各种可能的实现方式中任意之一所述的确定转发路径的方法。
第十三方面,本申请实施例提供一种通信系统,包括一个或多个上述第三方面或者第五方面所述的算路节点和一个或多个上述第四方面或者第九方面所述的转发节点。
可以理解地,上述提供的第三方面、第五方面以及第八方面所述的算路节点和第四方面、第九方面以及第十二方面所述的转发节点、第六方面以及第十方面所述的计算机存储介质,第七方面以及第十一方面所述的计算机程序产品,第十三方面所述的通信系统均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种网络拓扑示意图一;
图2为本申请实施例提供的一种确定转发路径的方法示意图一;
图3为本申请实施例提供的一种确定转发路径的方法示意图二;
图4为本申请实施例提供的一种第一虚拟网络的拓扑示意图;
图5为本申请实施例提供的一种物理网络的拓扑示意图;
图6为本申请实施例提供的一种确定转发路径的方法示意图三;
图7为本申请实施例提供的一种网络拓扑示意图二;
图8为本申请实施例提供的一种确定转发路径的方法示意图四;
图9为本申请实施例提供的一种确定转发路径的方法示意图五;
图10为本申请实施例提供的一种确定转发路径的方法示意图六;
图11为本申请实施例提供的一种确定转发路径的方法示意图七;
图12为本申请实施例提供的一种网络拓扑示意图三;
图13为本申请实施例提供的一种网络拓扑示意图四;
图14为本申请实施例提供的一种算路节点的结构示意图一;
图15为本申请实施例提供的一种算路节点的结构示意图二;
图16为本申请实施例提供的一种转发节点的结构示意图一;
图17为本申请实施例提供的一种转发节点的结构示意图二;
图18为本申请实施例提供的一种路由器的硬件示意图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一节点和第二节点等是用于区别不同的节点,而不是用于描述节点的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
首先对本申请实施例提供的一种确定转发路径的方法、装置及系统中涉及的一些概念做解释说明。
分片网络:是基于物理网络虚拟出的逻辑网络,分片网络属于虚拟网络,本申请实施例中,可以采用MTR技术在一个物理网络中虚拟出多个逻辑网络(也可以称为虚拟网络),达到网络分片的效果,每个逻辑网络即为一个分片网络。
示例性的,图1所示的网络拓扑中,图1中的(a)为物理拓扑(记为MT0),图1中的(b)和(c)是在物理网络中虚拟出的两个分片网络(分别记为MT1和MT2),可见,分片网络中可能包括物理网络中的部分或者所有节点,例如MT1包括物理网络中的部分节点(3个节点),MT2包括物理网络中的全部节点(4个节点)。
算路节点:是在网络中进行转发路径计算的节点,算路节点可以为网络中的网络控制节点,例如该网络控制节点可以为软件定义网络(software defined network,SDN)控制器;算路节点也可以为网络中的其他节点(包括PE节点和P节点),通常网络中的所有节点均参与转发路径计算。
需要说明的是,本申请实施例中,物理网络中的节点均进行转发路径计算,分片网络中,支持将部分节点配置为P节点(一般是中间节点),将其定义为转发节点,将部分节点配置为PE节点(一般是网络边缘节点,它们可能作为一些业务路径的头结点),将PE节点定义为算路节点,即在分片网络中由PE节点构建分片网络拓扑,并且按照分片网络拓扑进行分片节点的转发路径计算,以及据此生成到目的节点的转发表项,P节点仅转发分片网络拓扑和链路信息,但是不构建分片网络拓扑,而是使用其他的方式来生成到对应分片网络中的目的节点的转发表项。
SRv6:将SR技术应用于IPv6网络中,是一种在网络上转发IPv6数据包的一种协议,即使用IPv6地址作为SID的表现形式,在网络中实现数据包的转发。网络中的SID包括节点类SID和邻接类SID,通过节点SID和\或链路的邻接SID可以构建出转发路径,来指导数据或流量的转发。
本申请实施例中,在不同的网络中,每个节点维护有一个本地SID空间(记为localSID space),这个节点的节点类SID,与该节点相关的邻接类SID都被覆盖在这个本地SID空间的范围之内;这些SID被存在本地的一个SID表格(Local SID table)中,该Local SIDtable包括该节点的节点SID,该SID的功能类型(即该SID具体执行的功能)以及该SID的后续动作等。示例性的,如下表1为一个节点的Local SID table的一个表项所包含的内容的示例。
表1
A2:1::B100 |
END.DT4 |
IPv4L3VPN(VRF 100) |
其中,A2:1::B100为该节点的一个SID,其中,A2:1为节点SID的前缀部分,B100为SID的FUNC功能信息,在表1中B100指示该节点接收到数据报文时,将该数据报文转发至VRF100;END.DT4为该SID的功能类型,IPv4L3VPN(VRF 100)为该SID的后续动作,在表1中,END.DT4指示该节点将数据报文转发至IPv4L3VPN中。综上,根据表1所示例的Local SIDtable,可以获知该节点需要将数据报文转发到IPv4L3VPN中的VRF100。
本申请实施例中,对于一个节点,通常将该节点的local SID space中对应的IPv6前缀作为该节点的SRv6的LOC地址信息(也可以称为该节点的locator),将后面的部分作为各节点的SRv6的FUNC功能信息(也可以称为该节点的function),LOC地址信息用于寻址,FUNC功能信息用于指示具体执行的功能。
例如,对于节点A,该节点A的节点SID包括128比特(bit),可以将前64位作为该节点A的SRv6的LOC地址信息,记为A1:1::/64,将后64为作为该节点A的SRv6的FUNC功能信息。
需要说明的是,在不同的网络(例如物理网络和不同的分片网络,也可以称为不同的拓扑)中,同一个节点的节点SID不同,链路邻接SID也不同,为不同的网络分配不同的节点SID和链路邻接SID,能够保证不同的流量在不同的网络中转发,各个网络之间不会互相干扰和影响。
在本申请实施例中,可以使用灵活以太网(flexible ethernet,FlexE)技术或者信道化子接口技术,实现不同网络的资源的隔离,即将一个物理接口虚拟化为多个逻辑接口,不同的逻辑接口对应不同的分片网络。示例性的,通过FlexE技术,将一个物理接口的带宽划分为几个虚拟的接口的带宽,假设路由器1和路由器2均位于三个分片网络(分别为slice1,slice2,slice3)中,通过FlexE技术在路由器1和路由器2之间的一个物理接口上划分三个FlexE接口,一个FlexE接口对应于一个分片网络。通过信道化子接口技术,可以将一个物理接口的带宽划分为主接口和多个子接口的带宽,可选的,主接口可以对应于物理网络中的接口,子接口可以对应于分片网络中的接口,主接口与子接口的带宽是隔离开的,例如,假设路由器1和路由器2均位于三个分片网络(分别为slice1,slice2,slice3)中,通过信道化子接口技术将路由器1和路由器2之间的物理接口划分为一个主接口和三个子接口,其中三个子接口分别对应于三个分片网络。
针对背景技术中所有的节点均需要进行算路而导致转发节点的计算量比较大的问题,本申请实施例提供一种确定转发路径的方法、装置及系统,第一虚拟网络(可以为一个分片网络)构建完成并且该分片网络配置完成之后,在确定第一虚拟网络中的转发路径的过程中,一方面,该第一虚拟网络中的算路节点在该第一虚拟网络中确定出第一节点至第二节点的第一SR-BE转发路径,并且该算路节点也在物理网络中确定出第一节点至第二节点的第二SR-BE转发路径,通过比较这两条转发路径是否重合来确定第一节点至第二节点的目标转发路径,在第一SR-BE转发路径与第二SR-BE转发路径重合的情况下,算路节点将第一SR-BE转发路径确定为第一节点至第二节点的目标转发路径,即使用默认的最短路径转发机制转发第一虚拟网络对应的数据;在第一SR-BE转发路径与第二SR-BE转发路径不重合的情况下,算路节点基于物理网络与第一虚拟网络确定第一SR-TE转发路径,并且将该第一SR-TE转发路径确定为第一节点至第二节点的目标转发路径,即使用SR-TE转发路径覆盖默认的最短路径转发机制转发第一虚拟网络对应的数据。另一方面,第一虚拟网络中的转发节点完成节点之间的接口替换,对于其中的一个转发节点(称为第一转发节点),该第一转发节点确定将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口,该第一主接口为物理网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一子接口为第一虚拟网络中第一转发节点与第一转发节点的下一跳节点之间的接口,如此,完成了转发路径的计算。由此可知,仅第一虚拟网络中的算路节点进行转发路径的确定,而第一虚拟网络中的转发节点并不进行完整的转发路径的确定(即先构建分片网络拓扑,并且按照分片网络拓扑进行分片节点的转发路径计算,以及据此生成到目的节点的转发表项),而是使用子接口替换的方式来生成到对应分片网络中的目的节点的转发表项,如此,本申请实施例提供的技术方案能够降低转发节点的计算量,保障转发节点的转发性能。
本申请实施例提供的确定转发路径的方法,在进行转发路径计算之前,首先完成物理网络以及各个分片网络的网络配置(物理网络和分片网络均支持SRv6)。具体的,可以包括:
步骤1、物理网络配置。
本申请实施例中,物理网络配置指的是对物理网络中的每一个节点进行相关配置,例如,包括配置节点的节点SID,节点的SRv6的LOC地址信息,与该节点相关的链路的邻接SID,以及与该节点相关的链路的链路度量等。
以物理网络中的节点1和节点2为例,节点1与节点2之间的链路的邻接SID指的是该节点1与节点2之间的链路的一种标识,该邻接SID用于指示节点1与节点2之间这条链路。
可选的,上述物理网络配置包括配置物理网络中两个节点之间的接口(称为主接口)的指示信息。
可选的,上述物理网络配置包括配置物理网络的标识,即主接口对应的网络的标识,例如配置该物理网络的标识为MT0,可选的,也可以不配置物理网络的标识,默认主接口对应的网络为物理网络。
步骤2、洪泛物理网络配置信息至物理网络中的每个节点。
上述完成对物理网络中的每个节点的配置之后,每个节点可以通过内部网关协议(interior gateway protocol,IGP)报文将其配置信息进行广播(或者发布),从而洪泛至物理网络中的其他各个节点。以物理网络中的一个节点(称为节点1),该节点1可以将该节点1的配置信息进行广播,如此,其他节点均可以获取到该节点的配置信息,同理该节点1也可以获取到其他节点的配置信息,这里将一个节点获取的其他节点的配置信息称为物理网络的链路状态信息,则节点1获取到的物理网络的链路状态信息包括:物理网络的链路度量、物理网络中的节点的节点SID、物理网络中的节点的SRv6的LOC地址信息、物理网络中的链路的邻接SID。
示例性的,本申请实施例中,上述节点SID可以通过下述的Locator TLV的子TLV的格式发布(具体格式参考draft-bashandy-isis-srv6-extensions),节点的SRv6的LOC地址信息可以在ISIS TLV 236IPv6IP.Reach中发布,或者按照draft-bashandy-isis-srv6-extensions-03的SRv6Locator TLV的格式发布,链路的邻接SID可以通过ISIS TLV22Extended IS reachability的子TLV的格式发布(具体格式参考draft-bashandy-isis-srv6-extensions),链路度量可以通过ISIS TLV 22Extended IS reachability的格式发布。
上述通过IGP协议洪泛物理网络配置信息至物理网络中的每个节点之后,每个节点可以生成物理网络对应的路由表。示例性的,以物理网络中的一个节点为例,该节点生成的路由表包括该节点至物理网络中的其他节点的转发表项,具体包括其他节点的SRv6的LOC地址信息以及该节点至其他节点的出接口的指示信息。
步骤3、虚拟网络配置。
本申请实施例中,虚拟网络配置包括对虚拟网络(每个虚拟网络)中的每一个节点进行相关配置,例如,包括虚拟网络的标识,节点的节点SID,节点的SRv6的LOC地址信息,与该节点相关的链路的邻接SID,以及与该节点相关的链路的链路度量等。
可选的,本申请实施例中,对于同一链路,第一虚拟网络中该链路的链路度量与物理网络中该链路的链路度量可以相同或者不同,本申请实施例不作具体限定。
进一步的,虚拟网络配置还包括对应的虚拟网络中的算路节点和转发节点,即将该虚拟网络中的哪些节点定义为算路节点,将哪些节点定义为转发节点。
进一步的,虚拟网络配置还包括资源隔离配置(也可以称为接口配置),对于虚拟网络的链路,通过FlexE技术或者信道化子接口技术构建隔离的带宽资源,配置主接口对应的子接口,并且配置子接口对应的虚拟网络的标识,配置子接口1对应的网络为第一虚拟网络,例如配置该第一虚拟网络的标识为MT1;配置子接口2对应的网络为第二虚拟网络,例如,配置该第二虚拟网络的标识为MT2。
步骤4、洪泛虚拟网络的网络配置信息至该虚拟网络中的每个节点。
类似于上述步骤2,对于第一虚拟网络,上述完成对该第一虚拟网络中的每个节点的配置之后,每个节点可以通过IGP报文将其配置信息进行广播(或者发布),从而洪泛至物理网络中的其他各个节点。
对于第一虚拟网络中的一个节点,该节点获取到的第一虚拟网络的链路状态信息包括:第一虚拟网络的标识、第一虚拟网络的链路度量、第一虚拟网络中的节点的节点SID、第一虚拟网络中节点的SRv6的LOC地址信息、第一虚拟网络中的链路的邻接SID。
示例性的,本申请实施例中,上述节点SID可以通过下述的Locator TLV的子TLV的格式发布(具体格式参考draft-bashandy-isis-srv6-extensions),节点的SRv6的LOC地址信息可以在ISIS TLV 237MT IPv6IP.Reach TLV中发布,或者按照draft-bashandy-isis-srv6-extensions-03的SRv6Locator TLV的格式发布,邻接SID可以通过ISIS TLV 222MT-ISN的子TLV的格式发布(具体格式参考draft-bashandy-isis-srv6-extensions),链路度量可以通过ISIS TLV 222MT-ISN的格式发布。
特别注意的是,本申请实施例中,算路节点获取到上述虚拟网络的链路状态信息之后,算路节点生成虚拟网络,也可以理解为算路节点构建虚拟网络,即指的是生成虚拟网络拓扑,并且计算到达网络中其他各个节点的转发路径,以及生成对应的虚拟网络中到目的节点的转发表项。转发节点获取到上述虚拟网络的链路状态信息之后,转发节点不生成虚拟网络,也可以理解为转发节点不生成虚拟网络拓扑,以及据此计算到达网络中其他各个节点的转发路径,但是该转发节点生成虚拟网络中到目的节点的转发表项。
可选的,本申请实施例中,上述网络配置(包括物理网络和虚拟网络的配置)可以通过静态配置(即手动配置)实现,例如管理员通过配置界面进行手动配置;也可以通过动态配置(即自动配置)实现。其中,动态配置可以由网络控制器下发配置信息,或者运行特定脚本来配置。
本申请实施例中,基于物理网络可以构建多个虚拟网络,下面以确定一个虚拟网络(以下均称为第一虚拟网络)中的转发路径为例,详细介绍本申请实施例的技术方案。
基于上述实施例描述的对于物理网络和虚拟网络的配置,如图2所示,本申请实施例提供的确定转发路径的方法可以包括S101-S105:
S101、算路节点在第一虚拟网络中确定第一节点至第二节点的第一SR-BE转发路径。
其中,在一个具体的实施例中,物理网络中的节点支持网络分片,第一虚拟网络是基于物理网络的一个分片网络,在该第一虚拟网络中,第一节点为第一虚拟网络中数据传输的起始节点,第二节点为第一虚拟网络中数据传输的目的节点。
本申请实施例中,网络中的算路节点接收到业务请求(该业务请求包括业务类型以及该业务在第一虚拟网络中转发时对应的起始节点和目的节点)之后,该算路节点根据该业务需求构建转发给业务的转发路径。
需要说明的是,本申请实施例中,上述算路节点可以与第一节点相同,即此时第一节点为PE节点,该算路节点即为网络中的第一节点;或者,该算路节点可以为与第一节点互通的网络控制节点。例如SDN控制器。
结合上述实施例中的相关描述,上述算路节点确定第一虚拟网络中的转发路径之前,该算路节点还可以先执行下述S100a和S100b:
S100a、算路节点获取物理网络的链路状态信息。
在一个具体的实施例中,该物理网络的链路状态信息包括物理网络的链路度量、物理网络中的节点的节点SID、该物理网络中的链路的邻接SID。
可选的,该物理网络的链路状态信息还可以包括物理网络中的节点的SRv6的LOC地址信息等。
S100b、算路节点获取第一虚拟网络的链路状态信息。
在一个具体的实施例中,该第一虚拟网络的链路状态信息包括第一虚拟网络的链路度量、第一虚拟网络中的节点的节点SID、第一虚拟网络中的链路邻接SID。
可选的,该第一虚拟网络的链路状态信息还可以包括第一虚拟网络的标识、第一虚拟网络中节点的SRv6的LOC地址信息等。
需要说明的是,本申请实施例中,可以不限定S100a与S100b的执行顺序,即算路节点可以先执行S100a后执行S100b,也可以先执行S100b后执行S100a,还可以同时执行S100a和S100b。
可选的,本申请实施例中,结合图2,如图3所示,上述S101具体可以通过S1011-S1012实现:
S1011、算路节点根据第一虚拟网络的链路度量,确定第一节点至第二节点的第一SR-BE转发路径所包含的节点。
本申请实施例中,算路节点可以通过最短路径算法(例如Dijkstra),计算一个节点到其他节点的最短路径。具体的,一个节点与该节点的下一个节点之间的链路的链路度量决定了这两个节点之间的路径的cost(花费或代价),链路度量越大,说明路径cost越高。在第一虚拟网络中可以根据第一节点至第二节点的所有可能的链路的链路度量之和最小的原则,确定第一节点至第二节点的第一SR-BE转发路径,即第一SR-BE转发路径为最短路径。
示例性的,图4为第一虚拟网络的拓扑结构示意图,其中,图4中的(a)为一种拓扑结构,图4中的(b)为另一种拓扑结构,节点A为第一节点,即起始节点,节点F为第二节点,即目的节点。若图4的(a)和(b)中,链路AB,链路BE的链路度量均为10,其他链路的链路度量均为20,那么在(a)中,根据第一虚拟网络的链路度量,确定节点A至节点F的第一SR-BE转发路径包括的节点依次为ABEF(链路度量之和为:10+10+20);在(b)中,根据第一虚拟网络的链路度量,确定节点A至节点F的第一SR-BE转发路径包括的节点依次为ABCF(链路度量之和为:10+20+20)。
S1012、算路节点将第二节点的节点SID写至第一SR-BE转发路径对应的地址空间。
本申请实施例中,算路节点确定出第一SR-BE转发路径之后,由于该第一SR-BE转发路径是第一节点至第二节点的最短路径,因此,算路节点可以只将第二节点(即目的节点)的节点SID写至第一SR-BE转发路径对应的地址空间(可以记为SID list)即可,该第一SR-BE转发路径对应的地址空间可以为一个目的地址空间,即将第二节点的节点SID封装到目的地址里,在数据转发时,可以根据目的地址中的SID,按照最短路径将数据转发至目的地址中的SID对应的节点。
需要说明的是,上述写至第一SR-BE转发路径对应的地址空间的第二节点的节点SID为该第二节点的目的SRv6SID(例如,该第二节点的节点SID的功能类型为END.DT4,是与业务需求对应的节点SID)。
示例性的,对于上述图4中的(a)确定出的SR-BE转发路径A→B→E→F,算路节点将节点F的节点SID写至第一SR-BE转发路径对应的地址空间,如此,根据地址空间中的SID以及第一虚拟网络的拓扑(a),可知转发路径为节点A至节点F的最短路径,即A→B→E→F。对于上述图4中的(b)确定出的SR-BE转发路径A→B→C→F,算路节点将节点F的SID写至第一SR-BE转发路径对应的地址空间,如此,根据地址空间中的SID以及第一虚拟网络的拓扑(b),可知转发路径为节点A至节点F的最短路径,即A→B→C→F。
S102、算路节点在物理网络中确定第一节点至第二节点的第二SR-BE转发路径。
本申请实施例中,与上述S101类似,对于同一个算路节点,在物理网络中也确定出一条第一节点至第二节点的SR-BE转发路径,称为第二SR-BE转发路径。具体的,如图3所示,S102可以通过S1021-S1022实现:
S1021、算路节点根据物理网络的链路度量,确定第一节点至第二节点的第二SR-BE转发路径所包含的节点。
示例性的,图5为上述图4所示的第一虚拟网络所对应的物理网络的拓扑结构示意图,假设链路AB,链路BE的链路度量均为10,其他链路的链路度量均为20,那么在图5中,根据物理网络的链路度量,确定节点A至节点F的第二SR-BE转发路径包括的节点依次为ABEF(链路度量之和为:10+10+20)。
S1022、算路节点将第二节点的节点SID写至第二SR-BE转发路径对应的地址空间。
示例性的,对于上述图5中确定出的SR-BE转发路径A→B→E→F,算路节点将节点F的SID写至第二SR-BE转发路径对应的地址空间,如此,根据该地址空间中的SID以及物理网络的拓扑,可知转发路径为节点A至节点F的最短路径,即A→B→E→F。
需要说明的是,本申请实施例中,可以不限定S101和S102的执行顺序,即算路节点可以先执行S101后执行S102,也可以先执行S102后执行S101,还可以同时执行S101和S102。
S103、算路节点确定第一SR-BE转发路径与第二SR-BE转发路径是否重合。
本申请实施例中,算路节点可以根据第一SR-BE转发路径与第二SR-BE转发路径所包含的节点是否完全相同来确定第一SR-BE转发路径与第二SR-BE转发路径是否重合,若第一SR-BE转发路径包含的节点与第二SR-BE转发路径包含的节点完全相同,则确定第一SR-BE转发路径与第二SR-BE转发路径重合;若第一SR-BE转发路径包含的节点与第二SR-BE转发路径包含的节点不完全相同,则确定第一SR-BE转发路径与第二SR-BE转发路径不重合。
结合上述S102中的一种示例,算路节点在第一虚拟网络中确定的第一SR-BE转发路径为A→B→E→F,该算路节点在物理网络中确定的第二SR-BE转发路径也为A→B→E→F,可见,第一SR-BE转发路径与第二SR-BE转发路径重合;结合上述S102中的另一种示例,算路节点在第一虚拟网络中确定的第一SR-BE转发路径为A→B→C→F,该算路节点在物理网络中确定的第二SR-BE转发路径也为A→B→E→F,可见,第一SR-BE转发路径与第二SR-BE转发路径不重合。
本申请实施例中,在第一SR-BE转发路径与第二SR-BE转发路径重合的情况下,算路节点执行下述S104,在第一SR-BE转发路径与第二SR-BE转发路径不重合的情况下,算路节点执行下述S105。
S104、算路节点将第一SR-BE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径。
本申请实施例中,将第一SR-BE转发路径确定为目标转发路径,即可以理解为使用默认的最短路径转发机制转发第一虚拟网络对应的数据。此处,默认的最短路径转发机制指的是根据最短路径算法确定的最短的转发路径,第一SR-BE转发路径即为第一虚拟网络中的默认的最短转发路径。
S105、算路节点基于物理网络与第一虚拟网络确定第一SR-TE转发路径,并且将第一SR-TE转发路径确定为第一虚拟网络中第一节点至第二节点的目标转发路径。
本申请实施例中,将第一SR-TE转发路径确定为目标转发路径,即可以理解为使用SR-TE转发路径覆盖默认的转发机制转发第一虚拟网络对应的数据。
需要说明的是,本申请实施例中,上述SR-BE转发路径与上述SR-TE转发路径的区别在于,SR-BE转发路径是一种最短转发路径,而SR-TE转发路径是一条指定需经过哪条链路或哪些链路的转发路径。
本申请实施例中,如图6所示,上述S105具体可以通过下述S1051-S1059:
S1051、算路节点确定第一SR-TE转发路径所包含的节点。
该第一SR-TE转发路径所包含的节点与第一SR-BE转发路径所包含的节点相同。示例性的,若第一SR-BE转发路径为A→B→C→F,则算路节点确定第一SR-TE转发路径所包含的节点依次为ABCF。
S1052、算路节点确定待处理节点。
其中,该待处理节点为第一虚拟网络中,第一锚点节点至第二节点的SR-BE转发路径中与物理网络中,第一锚点节点至第二节点的SR-BE转发路径第一个不重合的节点,该第一锚点节点为第一虚拟网络中的一个节点。
需要说明的是,本申请实施例中,初始时,第一锚点节点为第一节点。
S1053、算路节点将第一SR-BE转发路径中待处理节点的上一跳节点与该待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间。
S1054、算路节点确定待处理节点是否为第二节点。
也就是说,算路节点确定当前的待处理节点是否为第一虚拟网络中的数据传输的目的节点。
本申请实施例中,若待处理节点为第二节点,算路节点执行S1055;若待处理节点不是第二节点,算路节点执行S1056。
S1055、算路节点将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间。
本申请实施例中,算路节点将第一SR-BE转发路径中待处理节点的上一跳节点与该待处理节点的链路的邻接SID写至第一SR-TE转发路径对应的地址空间,则算路节点完成确定第一SR-TE转发路径,如此,可以限定目标转发路径需经过待处理节点的上一跳节点与该待处理节点之间的链路。示例性的,假设待处理节点为节点C,第一虚拟网络中该节点C的上一跳节点为节点B,则算路节点将节点B与节点C之间的链路的邻接SID写至地址空间,这样通过第一SR-TE转发路径转发数据时,该数据需经过节点B与节点C之间的这条链路。
S1056、算路节点在物理网络中确定待处理节点至第二节点的SR-BE转发路径。
S1057、算路节点确定物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径是否重合。
本申请实施例中,若物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径重合,算路节点执行S1058,若物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径不重合,算路节点执行S1059。
S1058、算路节点将第一虚拟网络中的第二节点的节点SID写至第一SR-TE转发路径对应的地址空间。
S1059、算路节点将待处理节点确定为第二锚点节点。
本申请实施例中,算路节点将待处理节点确定为新的锚点节点,该新的锚点节点可以称为第二锚点节点,即将待处理节点将锚点节点从第一锚点节点更新为第二锚点节点,从而算路节点返回到步骤S1052继续往下执行,即再确定待处理节点等等,直到待处理节点为第二节点,或者物理网络中待处理节点至第二节点的SR-BE转发路径与第一虚拟网络中待处理节点至第二节点的SR-BE转发路径重合,从而得到第一SR-TE转发路径。
通过循环执行上述S1052-S1059可以确定出第一SR-TE转发路径对应的地址空间,在以下实施例中,主要以几种不同的示例说明上述S1052-S1059所述的确定第一SR-TE转发路径对应的地址空间的方法。
需要说明的是,本方申请实施例中,在循环执行上述S1052-S1059的过程中,锚点节点不是固定的,锚点节点可能发生变化,即在确定第一SR-TE转发路径的过程中锚点节点可能进行更新,例如上述锚点节点从第一锚点节点更新为第二锚点节点。
第一种示例中,结合上述图4中的(b)所示的第一虚拟网络和图5所示的物理网络说明确定第一SR-TE转发路径对应的地址空间的过程。
对应于上述S1052,在第一虚拟网络中确定的第一SR-BE转发路径为A→B→C→F,在物理网络中第二SR-BE转发路径为A→B→E→F,本申请实施例中,第一次执行S1051时,第一锚点节点为节点A,第二节点为节点F,在第一虚拟网络中,节点A至节点F的SR-BE转发路径中与物理网络中,节点A至节点F的SR-BE转发路径第一个不重合的节点为节点C,因此确定节点C为待处理节点。
对应于上述S1053,上述确定的待处理节点为节点C,该节点C的上一跳节点为节点B,则算路节点将节点B与节点C的链路的邻接SID写至第一SR-TE转发路径对应的地址空间,假设节点B与节点C的链路的邻接SID为B:1::C1,则将B:1::C1写至第一SR-TE转发路径对应的地址空间,如此,第一SR-TE转发路径对应的地址空间中的部分地址为A:1::→B:1::C1。
对应于上述S1054,节点C不是第二节点,即不是目的节点,则执行S1056,上述待处节点为节点C,算路节点在图5所示的物理网络中确定节点C至节点F的SR-BE转发路径,可得到节点C至节点F的SR-BE转发路径为C→F。
对应于S1057,由于在上述S1056中确定的物理网络中待处节点至第二节点的SR-BE转发路径为C→F,第一虚拟网络中待处理节点至第二节点的SR-BE转发路径为C→F,可见二者重合,算路节点执行S1058。
对应于上述S1058,由于在S1057中确定两条转发路径重合,算路节点继续将目的节点的节点SID写至第一SR-TE转发路径对应的地址空间,即将节点的F的节点SID写至第一SR-TE转发路径对应的地址空间,算路节点完成确定第一SR-TE转发路径,则第一SR-TE转发路径对应的地址空间中的地址为A:1::→B:1::C1→F:1::D100。
可以理解的是,在第一种示例中,算路节点执行到步骤S1058即完成了第一SR-TE转发路径对应的地址空间的确定,该算路节点不再执行S1059。
第二种示例中,如图7所示,图7中的(a)为一种物理网络的拓扑示意图,图7中的(b)为基于图7中的(a)所示的物理网络构建的第一虚拟网络。
对应于上述S1052,在第一虚拟网络中确定的第一SR-BE转发路径为A→B→C→E→F,在物理网络中第二SR-BE转发路径为A→B→D→H→F,本申请实施例中,第一次执行S1052时,第一锚点节点为节点A,第二节点为F,在第一虚拟网络中,节点A至节点F的SR-BE转发路径中与物理网络中,节点A至节点F的SR-BE转发路径第一个不重合的节点为节点C,因此确定节点C为待处理节点。
对应于上述S1053,上述确定的待处理节点为节点C,该节点C的上一跳节点为节点B,则算路节点将节点B与节点C的链路的邻接SID写至第一SR-TE转发路径对应的地址空间,假设节点B与节点C的链路的邻接SID为B:1::C1,则将B:1::C1写至第一SR-TE转发路径对应的地址空间,如此,第一SR-TE转发路径对应的地址空间中的部分地址为A:1::→B:1::C1。
对应于上述S1054,节点C不是第二节点,即不是目的节点,则执行S1056,上述待处节点为节点C,算路节点在图7中(a)所示的物理网络中确定节点C至节点F的SR-BE转发路径,假设节点C至节点F的SR-BE转发路径为C→H→F。
对应于S1057,由于在上述S1056中确定的物理网络中待处节点至第二节点的SR-BE转发路径为C→H→F,第一虚拟网络中待处理节点至第二节点的SR-BE转发路径为C→E→F,可见二者不重合,则执行S1059。
对应于S1059,算路节点将待处理节点确定为第二锚点节点,即算路节点将上述节点C确定为第二锚点节点。算路节点继续执行S1052等后续的步骤。
算路节点第二次执行上述S1052,此时第二锚点节点为节点C,第二节点为F,在第一虚拟网络中,节点C至节点F的SR-BE转发路径(即C→E→F)中与物理网络中,节点C至节点F的SR-BE转发路径(即C→H→F)第一个不重合的节点为节点E,因此确定节点E为待处理节点。
然后,算路节点第二次执行S1053,上述确定的待处理节点为节点E,该节点E的上一跳节点为节点C,则算路节点继续将节点C与节点E的链路的邻接SID写至第一SR-TE转发路径对应的地址空间,假设节点C与节点E的链路的邻接SID为C:1::C2,则将C:1::C2写至第一SR-TE转发路径对应的地址空间,如此,第一SR-TE转发路径对应的地址空间中的部分地址为A:1::→B:1::C1→C:1::C2。
进一步,算路节点第二次执行步骤S1054,此时的待处理节点,即节点E不是第二节点,则执行S1056,上述待处节点为节点E,算路节点在图7中(b)所示的物理网络中确定节点E至节点F的SR-BE转发路径,假设节点E至节点F的SR-BE转发路径为E→F。对应于S1057,由于在上述S1056中确定的物理网络中待处节点至第二节点的SR-BE转发路径为E→F,第一虚拟网络中待处理节点至第二节点的SR-BE转发路径为E→F,可见二者重合,则执行S1058。
算路节点第二次执行S1056,由于S1057中确定两条转发路径重合,算路节点继续将目的节点的节点SID写至第一SR-TE转发路径对应的地址空间,即将节点的F的节点SID写至第一SR-TE转发路径对应的地址空间,算路节点完成确定第一SR-TE转发路径,则第一SR-TE转发路径对应的地址空间中地址为A:1::→B:1::C1→C:1::C1→F:1::D100。
需要说明的是,本申请实施例中,对于更复杂的物理网络和第一虚拟网络,仍然通过上述步骤S1052至S1059的过程循环地确定出最终的第一SR-TE转发路径对应的地址空间,在此,不再进行示例。
综上两个示例,由于在第一SR-TE转发路径对应的地址空间中写至的SID不是第一SR-TE转发路径上所有的SID(包括节点SID和邻接SID),而是通过上述S1052-S1059的方法确定将一些必要的SID写至第一SR-TE转发路径对应的地址空间,如此,能够拥有较浅的标签栈深度和较小的转发路径的开销。
本申请实施例中,若上述算路节点不是网络控制器,而是网络中的起始节点,即算路节点记为第一节点,该算路节点确定出目标转发路径之后,该算路节点生成第一虚拟网络中到第二节点的转发表项,该转发表项包括第一虚拟网络中第二节点的SRv6的LOC地址信息和第一虚拟网络中算路节点至该算路节点的下一跳节点的出接口的指示信息。
本申请实施例中,第一虚拟网络中的转发节点不执行完整的算路流程(即上述S101-S105),第一虚拟网络中的转发节点(若目的节点为转发节点,则不包括目的转发节点)可以执行接口替换,具体的,如图8所示,本申请实施例提供的确定转发路径的方法可以包括S201-S202:
S201、第一转发节点获取到物理网络的链路状态信息和第一虚拟网络的链路状态信息之后,第一转发节点将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口。
其中,第一转发节点为第一虚拟网络中的一个转发节点,第一主接口为物理网络中第一转发节点与该第一转发节点的下一跳节点之间的接口,第一子接口为第一虚拟网络中该第一转发节点与该第一转发节点的下一跳节点之间的接口。
本申请实施例中,物理网络的链路状态信息包括物理网络中两个节点之间的主接口的指示信息;第一虚拟网络的链路状态信息包括第一虚拟网络中两个节点之间的子接口的指示信息。具体的,在S101中,第一转发节点获取到的物理网络的链路状态信息可以包括第一转发节点到其他节点之间的主接口的指示信息,第一转发节点获取到的第一虚拟网络的链路状态信息可以包括第一转发节点到其他节点之间的子接口的指示信息。
关于物理网络的链路状态信息和第一虚拟网络的链路状态信息的其他描述,具体可以参见上述实施例中的相关描述,此处不再赘述。
本申请实施例中,由于第一虚拟网络中的转发节点不进行算路,该转发节点在物理网络中进行算路,因此,转发节点并不感知虚拟网络,该转发节点仅感知物理网络。对于第一虚拟网络中的第一转发节点,默认第一转发节点与该第一转发节点的下一跳节点之间的接口为主接口(即上述的第一主接口),在第一转发节点获取到物理网络的链路状态信息和第一虚拟网络的链路状态信息之后,可以将第一主接口替换为该第一虚拟网络中第一转发节点与该第一转发节点的下一跳节点之间的子接口(即上述的第一子接口),如此,在第一虚拟网络中进行数据传输时,第一转发节点可以通过第一子接口将数据传输至该第一转发节点的下一跳节点,可以保证虚拟网络中的数据在对应的虚拟网络中传输,实现资源隔离,避免不同网络之间数据传输发生干扰。
S202、第一转发节点生成第一虚拟网络中到第二节点的转发表项。
本申请实施例中,在第一虚拟网络中,第一转发节点将上述第一主接口替换为第一子接口之后,第一转发节点生成第一虚拟网络中第二节点(即目的节点)的转发表项,从而第一转发节点可以根据转发表项在目标转发路径上进行数据传输。
示例性的,以上述目标转发路径为第一SR-TE转发路径A→B→C→F为例,假设节点A,节点B,节点C,节点F均为转发节点,则上述第一转发节点可以为节点A、节点B或节点C(不包括目的节点F)。
当第一转发节点为节点A时,节点A完成节点A与节点B之间的接口替换,节点A生成到节点F的转发表项,该转发表项包括节点F的SRv6的LOC地址信息和节点A对应的出接口的指示信息,该节点A对应的出接口为节点A与节点B之间的对应于第一虚拟网络的子接口。
当第一转发节点为节点B时,节点B完成节点B与节点C之间的接口替换,节点B生成到节点F的转发表项,该转发表项包括节点F的SRv6的LOC地址信息和节点B对应的出接口的指示信息,该节点B对应的出接口为节点B与节点C之间的对应于第一虚拟网络的子接口。
当第一转发节点为节点C时,节点C完成节点C与节点F之间的接口替换,节点C生成到节点F的转发表项,该转发表项包括节点F的SRv6的LOC地址信息和节点C对应的出接口的指示信息,该节点C对应的出接口为节点C与节点F之间的对应于第一虚拟网络的子接口。
可选的,结合图8,如图9所示,上述S201具体可以通过S2011-S2012实现:
S2011、第一转发节点确定第一虚拟网络中第一主接口对应的第一子接口是否存在。
本申请实施例中,第一转发节点根据第一主接口查找是否配置了第一虚拟网络对应的子接口(第一子接口),若配置了第一子接口,则第一转发节点确定第一主接口对应的第一子接口存在,若未配置该第一子接口,则第一转发节点确定第一主接口对应的第一子接口不存在。
S2012、若第一子接口存在,则第一转发节点将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口。
一种实现方式中,若上述第一子接口不存在,则第一转发节点不执行接口替换,该第一转发节点也不生成到第二节点的转发表项,可选的,第一转发节点采用该第一主接口转发第一虚拟网络中发向第二节点的数据。
可选的,结合图8,如图10所示,在上述S201之前,还包括S203:
S203、第一转发节点确定第一转发节点与第一转发节点的下一跳节点之间的第一主接口。
结合图10,如图11所示,上述S203具体可以通过S2031-S2032实现:
S2031、第一转发节点确定物理网络中第二节点的SRv6的LOC地址信息。
本申请实施例中,首先,第一转发节点在第一虚拟网络中确定第二节点对应的SRv6的LOC地址信息,并将其作为线索,查找物理网络中与其匹配的第二节点对应的SRv6的LOC地址信息。
S2032、第一转发节点根据物理网络中第二节点的SRv6的LOC地址信息查找到第一主接口。
本申请实施例中,第一转发节点可以根据物理网络中第二节点的SRv6的LOC地址信息从路由表中查找对应的出接口,从而查找到第一转发节点对应于第二节点的出接口。示例性的,假设第一转发节点为节点A,对于第二节点,第一转发节点至第二节点的转发路径为A→B→C→F,则第一转发节点查找节点A与节点B之间的主接口,即为第一主接口。
可选的,在一种实现方式中,若第一虚拟网络中第二节点对应的SRv6的LOC地址信息被配置为物理网络中第二节点对应的SRv6的LOC地址信息的子集时,第一转发节点可以直接根据第一虚拟网络中第二节点对应的SRv6的LOC地址信息,从路由表中查找对应的出接口,从而查找到第一转发节点对应于第二节点的出接口(即第一主接口)。
可以理解的是,本申请实施例中,在完成物理网络和各个虚拟网络的配置之后,网络中的所有转发节点即可以执行上述S201-S202实现所有接口的替换,生成虚拟网络中到目的节点的转发表项,从而算路节点确定出目标转发路径之后则根据替换后的子接口以进行数据转发。或者,在算路节点完成第一虚拟网络中的目标转发路径的计算之后,针对该目标转发路径中的转发节点,将主接口替换为第一虚拟网络中对应的子接口,再生成到目的节点的转发表项,以进行数据转发。
也就是说,本申请实施例中,可以不限制S101-S105与S201-S202的执行顺序,可以先执行S101-S105后执行S201-S202,也可以先执行S201-S202后执行S101-S105,还可以同时执行S101-S105和S201-S202。
综上所述,按照上述S101-S105所述的转发路径的确定方法确定的目标转发路径,当第一虚拟网络所包括的节点为物理网络中的部分节点,或者第一虚拟网络的链路为物理网络中的部分链路,或者第一虚拟网络中的链路度量与物理网络中的链路度量不相同时,能够避免出现接口替换失败或者接口替换错误导致数据不能完全在第一虚拟网络中转发的问题或者数据在第一虚拟网络中转发出错的问题。
一种示例性中,如图12所示,图12中的(b)所示的第一虚拟网络是图12中的(a)所示的物理网络的一个分片网络。在第一虚拟网络中,假设算路节点为网络控制器,该算路节点确定的第一SR-BE转发路径为A→B→C→F,在物理网络中,算路节点确定的第二SR-BE转发路径为A→B→E→F。
在物理网络中,对于节点A,该节点A的下一跳为节点B,则节点A确定出节点A与节点B之间的主接口之后,节点A查找第一虚拟网络中该节点A与节点B之间的子接口存在,因此节点A可以完成接口替换,将第一虚拟网络中节点A与节点B之间的接口替换为第一虚拟网络对应的子接口。
在物理网络中,对于节点B,该节点B的下一跳为节点E,则节点B确定出节点B与节点E之间的主接口之后,节点B查找第一虚拟网络中该节点B与节点E之间的子接口,但是由于在第一虚拟网络中不存在节点B与节点E之间的链路,也未配置节点B与节点E之间的子接口,因此该子接口不存在,节点B则不进行接口替换,可选的,继续使用节点B与节点E之间的主接口转发第一虚拟网络对应的数据。
在物理网络中,对于节点E,该节点E的下一跳为节点F,则节点E确定出节点E与节点F之间的主接口之后,节点E查找第一虚拟网络中该节点E与节点F之间的子接口,节点E查找第一虚拟网络中该节点E与节点F之间的子接口存在,因此节点E可以完成接口替换,将第一虚拟网络中节点E与节点F之间的接口替换为第一虚拟网络对应的子接口。
综上,由于节点B与节点E之间的接口替换失败导致第一虚拟网络中的数据并没有全部在该第一虚拟网络中转发,而是在物理网络转发,采用本申请实施例提供的转发路径的确定方法,在第一SR-BE转发路径与第二SR-BE转发路径不重合时,确定第一SR-TE转发路径作为目标转发路径,可以保证虚拟网络对应的数据可以在该虚拟网络中转发。
另一种示例中,如图13所示,图13中的(b)所示的第一虚拟网络是图13中的(a)所示的物理网络的一个分片网络。在第一虚拟网络中,假设算路节点为网络控制器,该算路节点确定的第一SR-BE转发路径为A→B→C→F,在物理网络中,算路节点确定的第二SR-BE转发路径为A→B→E→F。
在物理网络中,对于节点A,该节点A的下一跳为节点B,则节点A确定出节点A与节点B之间的主接口之后,节点A查找第一虚拟网络中该节点A与节点B之间的子接口存在,因此节点A可以完成接口替换,将第一虚拟网络中节点A与节点B之间的接口替换为第一虚拟网络对应的子接口。
在物理网络中,对于节点B,该节点B的下一跳为节点E,则节点B确定出节点B与节点E之间的主接口之后,节点B查找第一虚拟网络中该节点B与节点E之间的子接口,节点B查找第一虚拟网络中该节点B与节点E之间的子接口存在,因此节点B可以完成接口替换,将第一虚拟网络中节点B与节点E之间的接口替换为第一虚拟网络对应的子接口,但是上述在第一虚拟网络中确定的转发路径中节点B的下一跳是节点C,并不是节点E,虽然数据可以在第一虚拟网络中转发,但是并没有按照上述最短的路径(A→B→C→F是最短的路径)转发。
在物理网络中,对于节点E,该节点E的下一跳为节点F,则节点E确定出节点E与节点F之间的主接口之后,节点E查找第一虚拟网络中该节点E与节点F之间的子接口,节点E查找第一虚拟网络中该节点E与节点F之间的子接口存在,因此节点E可以完成接口替换,将第一虚拟网络中节点E与节点F之间的接口替换为第一虚拟网络对应的子接口。
综上,由于节点B与该B节点的下一跳节点之间接口替换错误导致数据在第一虚拟网络中转发出错,并未按照期望的最短路径进行转发,而采用本申请实施例提供的转发路径的确定方法,在第一SR-BE转发路径与第二SR-BE转发路径不重合时,确定第一SR-TE转发路径作为目标转发路径,可以保证虚拟网络对应的数据可以在该虚拟网络中以最短路径进行转发。
本申请实施例提供一种确定转发路径的方法,第一虚拟网络(可以为一个分片网络)构建完成并且该分片网络配置完成之后,在确定第一虚拟网络中的转发路径的过程中,一方面,该第一虚拟网络中的算路节点在该第一虚拟网络中确定出第一节点至第二节点的第一SR-BE转发路径,并且该算路节点也在物理网络中确定出第一节点至第二节点的第二SR-BE转发路径,通过比较这两条转发路径是否重合来确定第一节点至第二节点的目标转发路径,在第一SR-BE转发路径与第二SR-BE转发路径重合的情况下,算路节点将第一SR-BE转发路径确定为第一节点至第二节点的目标转发路径;在第一SR-BE转发路径与第二SR-BE转发路径不重合的情况下,算路节点基于物理网络与第一虚拟网络确定第一SR-TE转发路径,并且将该第一SR-TE转发路径确定为第一节点至第二节点的目标转发路径。另一方面,第一虚拟网络中的转发节点完成节点之间的接口替换,对于其中的一个转发节点(称为第一转发节点),该第一转发节点确定将第一转发节点与第一转发节点的下一跳节点之间的第一主接口替换为第一子接口,该第一主接口为物理网络中第一转发节点与第一转发节点的下一跳节点之间的接口,该第一子接口为第一虚拟网络中第一转发节点与第一转发节点的下一跳节点之间的接口,如此,完成了转发路径的计算。由此可知,仅第一虚拟网络中的算路节点进行转发路径的确定,而第一虚拟网络中的转发节点并不进行完整的转发路径的确定,而是使用子接口替换的方式来生成到对应分片网络中的目的节点的转发表项,如此,本申请实施例提供的技术方案能够降低转发节点的计算量,保障转发节点的转发性能。
上述主要从各个节点的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个节点,例如算路节点、转发节点等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对算路节点、转发节点等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图14示出了上述实施例中所涉及的算路节点的一种可能的结构示意图,如图14所示,算路节点1000可以包括:第一确定模块1001和第二确定模块1002。第一确定模块1001可以用于支持算路节点1000执行上述方法实施例中的S101(包括S1011-S1012)和S102(包括S1021-S1022);第二确定模块1002可以用于支持算路节点1000执行上述方法实施例中的S103、S104以及S105(包括S1051-S1059)。
可选的,如图14所示,该算路节点1000还可以包括获取模块1003,该获取模块1003可以用于支持算路节点1000执行上述方法实施例中的S100a和S100b。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图15示出了上述实施例中所涉及的算路节点的一种可能的结构示意图。如图15所示,算路节点2000可以包括:处理模块2001和通信模块2002。处理模块2001可以用于对算路节点2000的动作进行控制管理,例如,处理模块2001可以用于支持算路节点2000执行上述方法实施例中的S101-S105,其中,S101包括S1011-S1012,S102包括S1021-S1022,S105包括S1051-S1059,和/或用于本文所描述的技术的其它过程。通信模块2002可以用于支持算路节点2000与其他网络实体的通信。
可选的,如图15所示,该算路节点2000还可以包括存储模块2003,用于存储算路节点2000的程序代码和数据。
其中,处理模块2001可以是处理器或控制器,例如可以是中央处理器(centralprocessing unit,CPU)、通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块2002可以是收发器、收发电路或通信接口等。存储模块2003可以是存储器。
当处理模块2001为处理器,通信模块2002为收发器,存储模块2003为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended Industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
在采用对应各个功能划分各个功能模块的情况下,图16示出了上述实施例中所涉及的转发节点的一种可能的结构示意图,如图16所示,转发节点3000可以包括:接口替换模块3001和生成模块3002。接口替换模块3001可以用于支持转发节点3000执行上述方法实施例中的S201;确定模块3002可以用于支持转发节点3000执行上述方法实施例中的S202(包括S2011-S2012)。
可选的,如图16所示,转发节点3000还可以包括确定模块3003,该确定模块3003可以用于支持转发节点3000执行上述方法实施例中的S203(包括S2031-S2032)。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图17示出了上述实施例中所涉及的转发节点的一种可能的结构示意图。如图17所示,转发节点4000可以包括:处理模块4001和通信模块4002。处理模块4001可以用于对转发节点4000的动作进行控制管理,例如处理模块4001可以用于支持转发节点4000执行上述方法实施例中的S201-S203,其中,S202包括S2011-S2012,S203包括S2031-S2032。通信模块4002可以用于支持转发节点4000与其他网络实体的通信。
可选的,如图17所示,该转发节点4000还可以包括存储模块4003,用于存储转发节点4000的程序代码和数据。
其中,处理模块4001可以是处理器或控制器,例如可以是CPU、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块4002可以是收发器、收发电路或通信接口等。存储模块4003可以是存储器。
当处理模块4001为处理器,通信模块4002为收发器,存储模块4003为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
本申请实施例提供的算路节点和转发节点可以为交换机或路由器,以算路节点和转发节点均为路由器为例对算路节点和转发节点的硬件结构进行示例性的说明。图18为本申请实施例提供的路由器的硬件示意图,如图18所示,本申请实施例提供的路由器包括:处理器20、存储器21和接口22等部件。下面对路由器的各个构成部件进行示例性的说明。
处理器20:用于负责交换路由信息、路由表查找以及转发数据包,如处理维护路由器所需的各种表格以及路由运算等。
可选的,上述图15中的处理模块2001可以是该处理器20,则处理器20可以执行上述处理模块2001执行的相关步骤;上述图17中的处理模块4001可以是该处理器20,则处理器20可以执行上述处理模块4001执行的相关步骤,此处不再赘述。
存储器21:用于存储路由器的配置、操作系统、路由协议软件等。路由器中可以有多种内存,如只读内存储器(read only memory,ROM)、随机存取存储器(random accessmemory,RAM)、动态内存储器(DRAM)、闪存(Flash)等。
可选的,上述图15中的存储模块2003可以是该存储器21;上述图17中的存储模块4003也可以是该存储器21。
接口22:用于路由器发送和接收数据包。路由器中的接口22包括局域网接口和广域网接口,另外,路由器本身没有输入和终端显示设备,路由器接口中还包括控制端口,用于用户或管理员利用终端与路由器进行通信,完成路由器配置。
可选的,上述图15中的通信模块2002可以是该接口22;上述图17中的通信模块4002也可以是该接口22。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种确定转发路径的方法,其特征在于,包括:
算路节点在第一虚拟网络中确定第一节点至第二节点的第一分段路由最优SR-BE转发路径,所述第一节点为数据传输的起始节点,所述第二节点为数据传输的目的节点;
所述算路节点在物理网络中确定所述第一节点至所述第二节点的第二SR-BE转发路径,所述第一虚拟网络为基于所述物理网络构建的一个虚拟网络;
在所述第一SR-BE转发路径与所述第二SR-BE转发路径重合的情况下,所述算路节点将所述第一SR-BE转发路径确定为所述第一虚拟网络中所述第一节点至所述第二节点的目标转发路径;
在所述第一SR-BE转发路径与所述第二SR-BE转发路径不重合的情况下,所述算路节点循环执行下述步骤1至步骤4,得到第一分段路由流量工程SR-TE转发路径,所述第一SR-TE转发路径所包含的节点与所述第一SR-BE转发路径所经过的节点相同;并且将所述第一SR-TE转发路径确定为所述第一虚拟网络中所述第一节点至所述第二节点的目标转发路径:
步骤1、所述算路节点将所述第一SR-BE转发路径中的待处理节点的上一跳节点与所述待处理节点的链路的邻接SID写至所述第一SR-TE转发路径对应的地址空间,所述待处理节点为所述第一虚拟网络中第一锚点节点至所述第二节点的SR-BE转发路径中与所述物理网络中所述第一锚点节点至所述第二节点的SR-BE转发路径的第一个不重合的节点,所述第一锚点节点为所述第一虚拟网络中的一个节点;
步骤2、所述算路节点确定所述物理网络中所述待处理节点至所述第二节点的SR-BE转发路径与所述第一虚拟网络中所述待处理节点至所述第二节点的SR-BE转发路径是否重合;若重合,所述算路节点执行步骤3,得到所述第一SR-TE转发路径;若不重合,所述算路节点执行步骤4;
步骤3、所述算路节点将所述第一虚拟网络中的所述第二节点的节点SID写至所述第一SR-TE转发路径对应的地址空间;
步骤4、所述算路节点将所述第一锚点节点更新为所述待处理节点,并返回执行步骤1。
2.根据权利要求1所述的方法,其特征在于,
所述物理网络中的节点支持网络分片,所述第一虚拟网络是基于所述物理网络的一个分片网络。
3.根据权利要求1或2所述的方法,其特征在于,
所述算路节点与所述第一节点为同一节点;或者,
所述算路节点是与所述第一节点互通的网络控制节点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述算路节点获取所述第一虚拟网络的链路状态信息,所述第一虚拟网络的链路状态信息用于确定所述目标转发路径,所述第一虚拟网络的链路状态信息包括所述第一虚拟网络的链路度量、所述第一虚拟网络中的节点的节点分段标识SID、所述第一虚拟网络中的链路的邻接SID。
5.根据权利要求4所述的方法,其特征在于,所述算路节点在第一虚拟网络中确定第一节点至第二节点的第一SR-BE转发路径,包括:
所述算路节点根据所述第一虚拟网络的链路度量,确定所述第一节点至所述第二节点的第一SR-BE转发路径所包含的节点;
所述算路节点将所述第一虚拟网络中的所述第二节点的节点SID写至所述第一SR-BE转发路径对应的地址空间。
6.一种确定转发路径的方法,其特征在于,包括:
第一转发节点获取到物理网络的链路状态信息和第一虚拟网络的链路状态信息之后,所述第一转发节点确定所述第一虚拟网络中第一主接口对应的第一子接口是否存在;所述第一虚拟网络为基于所述物理网络构建的一个虚拟网络,所述第一转发节点为所述第一虚拟网络中第一节点至第二节点的目标转发路径上的转发节点,所述第一节点为数据传输的起始节点,所述第二节点为数据传输的目的节点;所述第一主接口为所述物理网络中所述第一转发节点与所述第一转发节点的下一跳节点之间的接口,所述第一子接口为所述第一虚拟网络中所述第一转发节点与所述第一转发节点的下一跳节点之间的接口;
若所述第一子接口存在,则所述第一转发节点将所述第一转发节点与所述第一转发节点的下一跳节点之间的第一主接口替换为所述第一子接口;
所述第一转发节点生成所述第一虚拟网络中到所述第二节点的转发表项,所述转发表项中包括所述第一子接口的指示信息。
7.根据权利要求6所述的方法,其特征在于,
所述物理网络中的节点支持网络分片,所述第一虚拟网络是基于所述物理网络的一个分片网络。
8.根据权利要求6所述的方法,其特征在于,所述第一转发节点将所述第一转发节点与所述第一转发节点的下一跳节点之间的第一主接口替换为第一子接口之前,所述方法还包括:
所述第一转发节点确定所述第一主接口。
9.根据权利要求8所述的方法,其特征在于,所述第一转发节点确定所述第一主接口,包括:
所述第一转发节点确定所述物理网络中所述第二节点的SRv6的LOC地址信息;
所述第一转发节点根据所述物理网络中所述第二节点的SRv6的LOC地址信息查找到所述第一主接口。
10.根据权利要求6所述的方法,其特征在于,
所述物理网络的链路状态信息包括所述物理网络中两个节点之间的主接口的指示信息;
所述第一虚拟网络的链路状态信息包括所述第一虚拟网络中两个节点之间的子接口的指示信息。
11.一种算路节点,其特征在于,包括第一确定模块和第二确定模块;
所述第一确定模块,用于在第一虚拟网络中确定第一节点至第二节点的第一分段路由最优SR-BE转发路径,所述第一节点为数据传输的起始节点,所述第二节点为数据传输的目的节点;
所述第一确定模块,还用于在物理网络中确定所述第一节点至所述第二节点的第二SR-BE转发路径,所述第一虚拟网络为基于所述物理网络构建的一个虚拟网络;
所述第二确定模块,用于在所述第一SR-BE转发路径与所述第二SR-BE转发路径重合的情况下,所述算路节点将所述第一SR-BE转发路径确定为所述第一虚拟网络中所述第一节点至所述第二节点的目标转发路径;
所述第二确定模块,还用于在所述第一SR-BE转发路径与所述第二SR-BE转发路径不重合的情况下,循环执行下述步骤1至步骤4,得到第一分段路由流量工程SR-TE转发路径,所述第一SR-TE转发路径所包含的节点与所述第一SR-BE转发路径所经过的节点相同;并且将所述第一SR-TE转发路径确定为所述第一虚拟网络中所述第一节点至所述第二节点的目标转发路径:
步骤1、将所述第一SR-BE转发路径中的待处理节点的上一跳节点与所述待处理节点的链路的邻接SID写至所述第一SR-TE转发路径对应的地址空间,所述待处理节点为所述第一虚拟网络中第一锚点节点至所述第二节点的SR-BE转发路径中与所述物理网络中所述第一锚点节点至所述第二节点的SR-BE转发路径的第一个不重合的节点,所述第一锚点节点为所述第一虚拟网络中的一个节点;
步骤2、确定所述物理网络中所述待处理节点至所述第二节点的SR-BE转发路径与所述第一虚拟网络中所述待处理节点至所述第二节点的SR-BE转发路径是否重合;若重合,执行步骤3,得到所述第一SR-TE转发路径;若不重合,执行步骤4;
步骤3、将所述第一虚拟网络中的所述第二节点的节点SID写至所述第一SR-TE转发路径对应的地址空间;
步骤4、将所述第一锚点节点更新为所述待处理节点,并返回执行步骤1。
12.根据权利要求11所述的算路节点,其特征在于,
所述物理网络中的节点支持网络分片,所述第一虚拟网络是基于所述物理网络的一个分片网络。
13.根据权利要求11或12所述的算路节点,其特征在于,
所述算路节点与所述第一节点为同一节点;或者,
所述算路节点是与所述第一节点互通的网络控制节点。
14.根据权利要求11所述的算路节点,其特征在于,所述算路节点还包括获取模块;
所述获取模块,用于获取所述第一虚拟网络的链路状态信息,所述第一虚拟网络的链路状态信息用于确定所述目标转发路径,所述第一虚拟网络的链路状态信息包括所述第一虚拟网络的链路度量、所述第一虚拟网络中的节点的节点SID、所述第一虚拟网络中链路的邻接SID。
15.根据权利要求14所述的算路节点,其特征在于,
所述第一确定模块,具体用于根据所述第一虚拟网络的链路度量,确定所述第一节点至所述第二节点的第一SR-BE转发路径所包含的节点;并且将所述第一虚拟网络中所述第二节点的节点SID写至所述第一SR-BE转发路径对应的地址空间。
16.一种转发节点,其特征在于,所述转发节点为第一转发节点,所述转发节点包括接口替换模块和生成模块;
所述接口替换模块,用于在所述第一转发节点获取物理网络的链路状态信息和第一虚拟网络的链路状态信息之后,确定所述第一虚拟网络中第一主接口对应的第一子接口是否存在;若所述第一子接口存在,则将所述第一转发节点与所述第一转发节点的下一跳节点之间的第一主接口替换为所述第一子接口,所述第一主接口为所述物理网络中所述第一转发节点与所述第一转发节点的下一跳节点之间的接口,所述第一子接口为所述第一虚拟网络中所述第一转发节点与所述第一转发节点的下一跳节点之间的接口,所述第一虚拟网络为基于所述物理网络构建的一个虚拟网络,所述第一转发节点为所述第一虚拟网络中第一节点至第二节点的目标转发路径上的转发节点,所述第一节点为数据传输的起始节点,所述第二节点为数据传输的目的节点;
所述生成模块,用于生成所述第一虚拟网络中到所述第二节点的转发表项,所述转发表项中包括所述第一子接口的指示信息。
17.根据权利要求16所述的转发节点,其特征在于,
所述物理网络中的节点支持网络分片,所述第一虚拟网络是基于所述物理网络的一个分片网络。
18.根据权利要求16所述的转发节点,其特征在于,所述转发节点还包括确定模块;
所述确定模块,用于确定所述第一主接口。
19.根据权利要求18所述的转发节点,其特征在于,
所述确定模块,具体用于确定所述物理网络中所述第二节点的SRv6的LOC地址信息;并且根据所述物理网络中所述第二节点的SRv6的LOC地址信息查找到所述第一主接口。
20.根据权利要求16所述的转发节点,其特征在于,
所述物理网络的链路状态信息包括所述物理网络中两个节点之间的主接口的指示信息;
所述第一虚拟网络的链路状态信息包括所述第一虚拟网络中两个节点之间的子接口的指示信息。
21.一种算路节点,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述算路节点运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述算路节点执行如权利要求1至5任一项所述的确定转发路径的方法。
22.一种转发节点,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述转发节点运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述转发节点执行如权利要求6至10任一项所述的确定转发路径的方法。
23.一种通信系统,其特征在于,包括一个或多个如权利要求12至15任一项或者权利要求21所述的算路节点和一个或多个如权利要求16至20任一项或者权利要求22所述的转发节点。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910094030.6A CN111510388B (zh) | 2019-01-30 | 2019-01-30 | 一种确定转发路径的方法、装置及系统 |
PCT/CN2020/071364 WO2020156097A1 (zh) | 2019-01-30 | 2020-01-10 | 一种确定转发路径的方法、装置及系统 |
EP20748008.8A EP3905614B1 (en) | 2019-01-30 | 2020-01-10 | Method, device and system for determining forwarding path |
US17/388,137 US11895007B2 (en) | 2019-01-30 | 2021-07-29 | Forwarding path determining method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910094030.6A CN111510388B (zh) | 2019-01-30 | 2019-01-30 | 一种确定转发路径的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510388A CN111510388A (zh) | 2020-08-07 |
CN111510388B true CN111510388B (zh) | 2022-01-21 |
Family
ID=71840261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910094030.6A Active CN111510388B (zh) | 2019-01-30 | 2019-01-30 | 一种确定转发路径的方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11895007B2 (zh) |
EP (1) | EP3905614B1 (zh) |
CN (1) | CN111510388B (zh) |
WO (1) | WO2020156097A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11695688B2 (en) | 2020-09-30 | 2023-07-04 | Juniper Networks, Inc. | Computing segment identifier lists for multipaths in a segment routing-enabled network |
CN113810276B (zh) * | 2021-08-31 | 2024-06-18 | 锐捷网络股份有限公司 | 一种段路由故障处理方法、装置、电子设备及存储介质 |
CN116455804A (zh) * | 2022-01-10 | 2023-07-18 | 中兴通讯股份有限公司 | 路径计算方法、节点、存储介质及计算机程序产品 |
CN114826999B (zh) * | 2022-03-22 | 2023-06-20 | 北京邮电大学 | 卫星网络数据传输方法及装置 |
CN117097633A (zh) * | 2022-05-12 | 2023-11-21 | 华为技术有限公司 | 报文传输方法、传输控制方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905318A (zh) * | 2014-04-04 | 2014-07-02 | 华为技术有限公司 | 发送、加载转发表项的方法、控制器和转发节点 |
CN108989202A (zh) * | 2017-05-31 | 2018-12-11 | 瞻博网络公司 | 用于虚拟节点的基于结构路径上下文的转发 |
WO2019001350A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种生成转发表项的方法、控制器和网络设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080107027A1 (en) * | 2006-11-02 | 2008-05-08 | Nortel Networks Limited | Engineered paths in a link state protocol controlled Ethernet network |
US9049233B2 (en) * | 2012-10-05 | 2015-06-02 | Cisco Technology, Inc. | MPLS segment-routing |
US9929919B2 (en) * | 2012-10-30 | 2018-03-27 | Futurewei Technologies, Inc. | System and method for virtual network abstraction and switching |
US9100285B1 (en) * | 2012-12-18 | 2015-08-04 | Juniper Networks, Inc. | Dynamic control channel establishment for software-defined networks having centralized control |
CN104838624B (zh) * | 2013-11-22 | 2017-12-08 | 华为技术有限公司 | 一种控制业务数据在虚拟网络中转发的方法、装置及系统 |
CN106656801B (zh) * | 2015-10-28 | 2019-11-15 | 华为技术有限公司 | 业务流的转发路径的重定向方法、装置和业务流转发系统 |
CN107968752B (zh) * | 2016-10-20 | 2020-07-07 | 新华三技术有限公司 | 一种sid获取方法和装置 |
CN109873760B (zh) * | 2017-12-01 | 2020-08-07 | 华为技术有限公司 | 处理路由的方法和装置、以及数据传输的方法和装置 |
CN110661711B (zh) * | 2018-06-29 | 2021-01-29 | 华为技术有限公司 | 生成标签转发表的方法、报文发送方法、装置及设备 |
CN110719237B (zh) * | 2018-07-13 | 2022-01-07 | 华为技术有限公司 | 传输报文的方法、装置、设备及存储介质 |
CN112054960B (zh) * | 2019-02-13 | 2024-04-26 | 华为技术有限公司 | 一种路径计算方法、装置及设备 |
-
2019
- 2019-01-30 CN CN201910094030.6A patent/CN111510388B/zh active Active
-
2020
- 2020-01-10 EP EP20748008.8A patent/EP3905614B1/en active Active
- 2020-01-10 WO PCT/CN2020/071364 patent/WO2020156097A1/zh unknown
-
2021
- 2021-07-29 US US17/388,137 patent/US11895007B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905318A (zh) * | 2014-04-04 | 2014-07-02 | 华为技术有限公司 | 发送、加载转发表项的方法、控制器和转发节点 |
CN108989202A (zh) * | 2017-05-31 | 2018-12-11 | 瞻博网络公司 | 用于虚拟节点的基于结构路径上下文的转发 |
WO2019001350A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种生成转发表项的方法、控制器和网络设备 |
CN109218201A (zh) * | 2017-06-30 | 2019-01-15 | 华为技术有限公司 | 一种生成转发表项的方法、控制器和网络设备 |
Non-Patent Citations (1)
Title |
---|
Pseudo-CR on SRv6 Impact on N4;SoftBank Corp;《3GPP TSG CT WG4 Meeting #86-bis,C4-187224》;20181019;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3905614A1 (en) | 2021-11-03 |
WO2020156097A1 (zh) | 2020-08-06 |
EP3905614B1 (en) | 2024-09-04 |
EP3905614A4 (en) | 2022-06-01 |
US20210359930A1 (en) | 2021-11-18 |
CN111510388A (zh) | 2020-08-07 |
US11895007B2 (en) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111510388B (zh) | 一种确定转发路径的方法、装置及系统 | |
JP7419510B2 (ja) | Bier転送項目構築方法、装置、およびシステム | |
US11570285B2 (en) | Packet processing method, network node, and system | |
KR102620026B1 (ko) | 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체 | |
CN113300949B (zh) | 转发报文的方法、发布路由信息的方法、装置及系统 | |
CN109863725B (zh) | 基于最大分段标识符深度的分段路由方法及电子设备 | |
US9929919B2 (en) | System and method for virtual network abstraction and switching | |
US8576721B1 (en) | Local forwarding bias in a multi-chassis router | |
US9800493B2 (en) | Routing messages in a computer network using deterministic and probalistic source routes | |
EP3896922A1 (en) | Seamless segment routing | |
CN110912796B (zh) | 一种通信方法、设备和系统 | |
CN109587059B (zh) | Sr-be内层隧道标签的配置方法、设备及通信系统 | |
WO2013054344A2 (en) | Method and apparatus for end-end communication and inter-domain routing in omnipresent ethernet networks with an option to migrate to mpls-tp | |
CN112583711B (zh) | 一种报文处理方法及装置 | |
CN111355661B (zh) | 一种vpn的处理方法和pe设备以及系统 | |
US9954772B2 (en) | Source imposition of network routes in computing networks | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
WO2021057530A1 (zh) | 确定路由前缀与分段标识间映射关系的方法、装置及系统 | |
WO2021232906A1 (zh) | 报文转发备份路径确定方法及相关设备 | |
WO2022121638A1 (zh) | 一种报文处理方法及装置 | |
CN113630316B (zh) | 一种数据传输方法及通信装置 | |
JP2010045680A (ja) | ノード、パケット転送方法およびそのプログラム | |
US10924395B2 (en) | Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core | |
CN114531391A (zh) | 确定下一跳的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |