CN108259341B - 一种前缀标签分配方法和sdn控制器 - Google Patents
一种前缀标签分配方法和sdn控制器 Download PDFInfo
- Publication number
- CN108259341B CN108259341B CN201711278671.4A CN201711278671A CN108259341B CN 108259341 B CN108259341 B CN 108259341B CN 201711278671 A CN201711278671 A CN 201711278671A CN 108259341 B CN108259341 B CN 108259341B
- Authority
- CN
- China
- Prior art keywords
- prefix
- label
- forwarding
- forwarding node
- tag
- 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
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
本申请提供一种前缀标签分配方法和执行该方法的SDN控制器,该方法为:收集网络拓扑,得到网络拓扑中各转发节点的IP前缀;获取各转发节点的SRGB;判断各转发节点的SRGB是否存在共同的交集;如果存在,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签;并将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给网络拓扑中的各转发节点。该方法通过SDN控制器在转发节点的SRGB交集内直接分配前缀标签,无需根据索引和每个转发节点的SRGB分别计算IP前缀在每个转发节点上的前缀标签,后续SDN控制器针对相同的IP前缀向不同的转发节点下发相同的标签信息,简化了前缀标签的生成和下发过程。
Description
技术领域
本申请涉及SR技术,尤其涉及一种前缀标签分配方法和SDN控制器。
背景技术
段路由(Segment Routing,SR)技术是一种基于源地址进行路由的方法,通过在报文外封装一层路径所要经过节点的SR标签,当报文经过SR节点时,SR节点根据这些SR标签对报文进行转发。通过SR指定路径转发功能,可以便捷地实现网络的负载均衡和流程工程,以及快速重路由等复杂网络功能。
可以通过扩展的内部网关协议(Interior Gateway Protocol,IGP)来实现IGP域内的SR标签通告和交互。但这种方式可能需要网络中的每个转发节点都运行扩展的IGP以实现SR标签的通告,实现上比较复杂。
发明内容
有鉴于此,本申请提供一种前缀标签分配方法和SDN控制器,通过SDN控制器来实现前缀标签的分配和通告,可以充分发挥SDN控制器集中控制的优点,实现上比较简单。
具体地,本申请是通过如下技术方案实现的:
本申请第一方面,提供了一种前缀标签分配方法,所述方法应用于SDN控制器,所述方法包括:
收集网络拓扑,得到所述网络拓扑中各转发节点的IP前缀;
获取所述网络拓扑中各转发节点的SRGB;
判断各转发节点的SRGB是否存在共同的交集;
如果存在共同的交集,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签;并将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点。
本申请第二方面,提供了一种SDN控制器,具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。
一种可能的实现方式中,所述SDN控制器包括:
获取模块,用于收集网络拓扑,得到所述网络拓扑中各转发节点的IP前缀;以及获取所述网络拓扑中各转发节点的SRGB;
前缀标签处理模块,用于判断各转发节点的SRGB是否存在共同的交集;如果存在共同的交集,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签;
发送模块,用于将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点。
另一种可能的实现方式中,所述SDN控制器包括通信接口和处理器,所述通信接口和所述处理器之间通过总线系统相互连接;所述处理器用于执行以下操作:
通过所述通信接口收集网络拓扑,得到所述网络拓扑中各转发节点的IP前缀;以及通过所述通信接口获取所述网络拓扑中各转发节点的SRGB;判断各转发节点的SRGB是否存在共同的交集;如果存在共同的交集,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签;通过所述通信接口将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点。
本申请提供的技术方案通过SDN控制器在转发节点的SRGB的交集内分配前缀标签,使得同一个IP前缀在每个转发节点上分配的前缀标签相同,并且无需根据索引和每个转发节点的SRGB计算IP前缀在每个转发节点上的前缀标签,从而简化了前缀标签的生成过程;后续SDN控制器针对相同的IP前缀可以向不同的转发节点下发相同的标签信息,从而简化了前缀标签的下发过程。在本方案中,通过SDN控制器来分配前缀标签,转发节点上不运行SR协议,如此可以充分发挥SDN控制器集中控制的优点。
附图说明
图1是本申请实施例提供的一种前缀段的示意图;
图2是本申请实施例提供的一种SDN网络的示意图;
图3是本申请实施例提供的一种前缀标签分配方法的流程图;
图4是本申请一实施例的示意图;
图5是本申请实施例提供的一种SDN控制器的结构示意图;
图6是本申请实施例提供的一种SDN控制器的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以下,首先对SR技术和本申请中的部分用语进行解释说明。
SR技术:是一种由国际互联网工程任务组(The Internet Engineering TaskForce,IETF)推动的路由转发协议,通过标签指导报文转发。SR技术定义了以下两种段类型:邻接类型的段(Adjacency Segment,可简称为邻接段)和前缀/节点类型的段(Prefix/Node Segment,可简称为前缀段或节点段);与SR的段的两种类型对应的,标签也分为邻接标签和前缀标签(或节点标签)。其中,邻接段表示当前节点通向其邻居节点的一跳路径,前缀段表示当前节点通向网络内相关联节点的一跳或多跳最短路径。本申请主要关注前缀段和前缀标签。例如,图1中示出了一条从节点A到节点Z的路径,该路径包含了两个前缀段,分别是节点A到节点C的前缀段和节点C到节点Z的前缀段。若要让报文沿图1中箭头所示的路径从节点A转发到节点Z,可以将该路径包含的上述两个前缀段的标签依次压入报文的标签栈中,即依次压入节点C到节点Z这一段的前缀标签和节点A到节点C这一段的前缀标签。特别的,最后压入的节点A到节点C的段的前缀标签,用于让这条路径的头节点A可以根据此前缀标签查询标签转发表项,根据查表结果,决定是弹出此前缀标签,还是将此前缀标签替换成表项对应的出标签。
SRGB(SR Global Block,段路由全局标签块):转发节点为前缀标签预留的一段取值连续的标签块,可表示为[最小值,最大值]的形式,如[5000,5999]。不同转发节点预留的SRGB的范围可以相同,也可以不同。
SR隧道转发表项:用于将不带标签报文引入SR路径。当不带标签报文到达转发节点(这个转发节点为某个SR路径的头节点)时,转发节点可以根据预设的分类规则(如按报文的目的IP地址,或者其它分类规则),查找与之匹配的SR隧道转发表项,如果找到匹配的SR隧道转发表项,则可以将该SR隧道转发表项的出标签压入报文中,然后向SR隧道转发表项指定的下一跳转发压入标签后的报文。
标签转发表项:以多协议标签交换(MPLS)标签为匹配域的转发表项,一般包括下一跳地址、标签操作和对应的标签信息,该标签操作包括弹出标签和交换标签等。当带标签报文到达转发节点时,转发节点可以根据带标签报文的最外层标签查找标签转发表项。当带标签报文的最外层标签与某个标签转发表项的入标签匹配时,即可根据该匹配的标签转发表项对该带标签报文进行处理。比如,当标签转发表项具有出标签时,指示的标签操作为交换标签,可以将该带标签报文的最外层标签替换成标签转发表项指定的出标签,然后向标签转发表项指定的下一跳转发该带标签报文;当标签转发表项不具有出标签时,指示的标签操作为弹出标签,可以将该带标签报文的最外层标签弹出。
IP前缀:IP地址段的表示方法可以有以下两种,一种是网络地址和掩码的表示方式,如10.1.1.0 255.255.255;另一种是网络地址/掩码长度的表示方式,如10.1.1.0/24,其中IP前缀指的就是按后一种方式表示的IP地址段。一个转发节点可以有多个IP前缀。例如,一个转发节点上有2个本地环回(loopback)接口,每个loopback接口都有各自的IP地址,比如loopback 0接口的IP地址为10.1.1.1/32,loopback 1接口的IP地址为20.1.1.1/24,那么该转发节点上就有2个IP前缀,其中分别为10.1.1.1/32对应的IP前缀为10.1.1.1/32,20.1.1.1/24对应的IP前缀为20.1.1.0/24。
下面结合说明书附图和各实施例对本申请技术方案进行说明。
如上对SR技术的描述,SR标签包括邻接标签和前缀标签,本申请特针对前缀标签,提出一种前缀标签分配方案。在本方案中,通过软件定义网络(Software DefinedNetworking,SDN)控制器来分配前缀标签,这种方式下转发节点上可以不运行SR协议(比如OSPF协议、ISIS协议),如此可以充分发挥SDN控制器集中控制的优点,在实现上比较简单。
本申请提供的前缀标签分配方案,可应用于图2所示例的SDN网络,该SDN网络包括SDN控制器和多个转发节点,如R1、R2、R3、R4和R5,其中:
SDN控制器,用于为网络拓扑中的每个转发节点的IP(Internet Protocol,互联网协议)前缀分配前缀标签;以及将分配好的前缀标签和对应的IP前缀发送给网络拓扑中的所有转发节点。
转发节点,用于转发报文。在本申请可以用于接收SDN控制器下发的前缀标签和对应的IP前缀,然后根据收到的前缀标签和IP前缀生成对应的标签转发表项。转发节点不用运行SR协议,只需要简单的表项管理模块或代理模块即可实现上述功能。本申请中的转发节点,可以指网络设备,比如网元,可以是路由器、交换机、OTN(optical transportnetwork,光传送网)设备、PTN(packet transport network,分组传送网)设备、WDM(wavelength division multiplexing,波分复用)设备或服务器。
如图3所示为本申请提供的一种前缀标签分配方法的流程图,所述方法包括:
步骤301:SDN控制器收集网络拓扑,得到网络拓扑中各转发节点的IP前缀。
SDN控制器可以通过拓扑收集机制收集网络拓扑。例如,可以通过BGP(BorderGateway Protocol,边界网关协议)报文从SDN网络中一台支持BGP的转发节点上收集SDN网络的链路状态信息(Link State),然后根据收集到的链路状态信息计算出SDN网络的网络拓扑。其中,转发节点返回给SDN控制器的链路状态信息可以携带在BGP更新(update)报文中。
得到的网络拓扑可以包括SDN网络中的转发节点,转发节点上的IP前缀,转发节点连接的子网,转发节点之间的链路,以及链路两端的转发节点的接口地址等信息。这里SDN控制器只需用到转发节点上的IP前缀信息。
步骤302:SDN控制器获取网络拓扑中各转发节点的SRGB。
SDN控制器可以通过Netconf(网络配置)接口或SNMP(Simple NetworkManagement Protocol,简单网络管理协议)接口获取网络拓扑中各转发节点的SRGB。
接下来,SDN控制器便可以基于获得的SRGB为转发节点分配前缀标签。
一种前缀标签分配方式是:针对每个IP前缀,为其分配一个索引值,然后基于该索引值和每个转发节点的SRGB,计算该IP前缀在每个转发节点上的前缀标签。例如,在计算第一转发节点的第一IP前缀在第二转发节点上的前缀标签时,可以将第二转发节点的SRGB的最小值与第一IP前缀的索引值相加,得到的和值即为第一IP前缀在第二转发节点上的前缀标签值。
但基于这种方式,同一个IP前缀在每个转发节点上的前缀标签可能不完全相同,这意味着后续SDN控制器可能需要针对相同的IP前缀向不同的转发节点下发不同的标签信息。
以图2为例,按照上述前缀标签分配方式,SDN控制器向R1下发的与R1的IP前缀1相关的标签信息可参考表1所示,SDN控制器向R2下发的与R1的IP前缀1相关的标签信息可参考表2所示。
表1下发给R1的与IP前缀1相关的标签信息
表2下发给R2的与IP前缀1相关的标签信息
本申请为了简化前缀标签的生成和下发过程,可以令SDN控制器执行如下步骤:
步骤303:SDN控制器判断各转发节点的SRGB是否存在共同的交集。
步骤304:如果存在共同的交集,则SDN控制器从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签,并将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给网络拓扑中的各转发节点。
这里各转发节点的SRGB存在共同的交集,包括各转发节点的SRGB完全相同这种情况。在步骤304所描述的场景下,本申请直接从各转发节点的SRGB交集内为IP前缀分配前缀标签,省略了根据索引和每个转发节点的SRGB计算IP前缀在每个转发节点上的前缀标签的过程,简化了前缀标签的生成过程;并且使得同一个IP前缀在每个转发节点上分配的前缀标签也会相同,于是后续SDN控制器针对相同的IP前缀可以向不同的转发节点下发相同的标签信息,简化了前缀标签的下发过程。
仍以图2为例,SDN控制器向R1至R5下发的与R1的IP前缀1相关的标签信息可参考表3所示。与表1和表2相比,表3要简单很多。
表3下发给R1至R5的与IP前缀1相关的标签信息
IP前缀 | 前缀标签 |
IP前缀1 | SDN控制器为IP前缀1分配的前缀标签 |
作为一个实施例,步骤303的判断结果也可能是各转发节点的SRGB不存在共同的交集。在这种场景下,SDN控制器可以继续判断是否有部分转发节点的SRGB存在交集。可以有以下三种情况:
第一种:部分转发节点的SRGB之间有共同的交集,且只存在一个交集;
第二种:部分转发节点的SRGB之间有共同的交集,且有多个不同的交集;
第三种:各转发节点两两之间均没有SRGB交集。
对于上述第一种情况,针对SRGB存在交集的部分转发节点,可以从该交集内为这部分转发节点的每个IP前缀分配全局唯一的前缀标签,并将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给这部分转发节点,至于与这部分转发节点的SRGB不存在交集的剩余节点,SDN控制器可以不在这些剩余节点上分配和使用前缀标签,这些剩余节点不使用前缀标签转发报文,例如可以按照传统的IP转发或流表转发等方式转发报文。
对于上述第二种情况,从多个不同交集中选择一个交集(比如这个交集可以是对应的转发节点数量最多的一个交集),针对SRGB包含该交集的部分转发节点,可以从该交集内为这部分转发节点的每个IP前缀分配全局唯一的前缀标签,并将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给这部分转发节点。至于与这部分转发节点的SRGB不存在交集的剩余节点,则不在这些剩余节点上分配和使用前缀标签,这些剩余节点仍按照传统的IP转发或流表转发等方式转发报文。
对于上述第三种情况,所有转发节点的SRGB之间均不存在交集,则SDN控制器可以选择不在各转发节点上分配和使用前缀标签,或者也可以选择其它前缀标签分配方式,如选择上述根据索引和每个转发节点的SRGB计算IP前缀在每个转发节点上的前缀标签的方式为各转发节点分配前缀标签。
之后,SDN控制器可以通过Netconf接口或SNMP接口,将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给相应的转发节点。
转发节点收到前缀标签和与前缀标签对应的IP前缀之后,可以根据收到的IP前缀在路由表中查找与该IP前缀对应的最优路由,此处所说的最优路由可以是最短路径路由,也可以指按照其它原则匹配到的最佳匹配路由。找到最优路由后,便可以生成对应的标签转发表项,其中生成的标签转发表项的入标签和出标签均等于与转发节点收到的与该IP前缀绑定的前缀标签,标签转发表项的下一跳为基于该IP前缀找到的最优路由的下一跳。
标签转发表项的一种形式可参考表4,至少包括入标签、出标签和下一跳,入标签为查表关键字,入标签与出标签均等于SDN控制器下发的前缀标签。可选的,标签转发表项还可以包括IP前缀和出接口。
表4标签转发表项
入标签 | IP前缀 | 出标签 | 下一跳 | 出接口 |
转发节点可以根据带标签报文的最外层标签查找与之匹配的标签转发表项,如果找到,则可以将带标签报文的最外层标签替换成标签转发表项指定的出标签,然后向标签转发表项指定的下一跳转发交换标签后的报文。
经过上述过程,便可以在SDN网络内建立起SR网络。按照业务部署的需要,之后SDN控制器可以向指定节点下发SR隧道标识和与SR隧道标识关联的SR路径标签序列,以建立SR路径;该指定节点即是该SR隧道标识对应的SR隧道的头节点。下发给SR隧道头节点的SR隧道标识和SR路径标签序列的一个示例可以参见表5所示,SR路径标签序列指明了SR路径要经过的段。比如表5中的SR路径标签序列为:1000、2000、3000,分别表示三个前缀段(如10.10.10.10/32、20.20.20.20/32、30.30.30.30/32),指示转发节点建立先后经过这三个前缀段的SR路径。
表5下发给SR隧道头节点的SR隧道标识和SR路径标签序列
转发节点收到SR隧道标识和与SR隧道标识关联的SR路径标签序列之后,在本节点上创建SR隧道接口(如Tunnel 1),SR隧道接口用于引入报文,使得报文从SR隧道接口发送并沿SR路径转发;并用收到的SR路径标签序列的第一段标签,如表5中的1000作为关键字查找标签转发表项,得到出标签和下一跳(还可以包括出接口);最后基于上面创建的SR隧道接口、查标签转发表项得到的出标签和下一跳、SR路径标签序列中除第一段标签之外的其他标签(如表5中的2000、3000),生成SR隧道转发表项。比如基于表5,可以生成表6所示的SR隧道转发表项。
表6SR隧道转发表项
之后,可以通过SDN控制器向指定的SR隧道的头节点下发引流方式,可以是静态路由、或PBR(Policy Based Routing)等,将指定特征的报文引入SR隧道接口,使得报文沿SR路径转发。
比如,可以在该指定的SR隧道的头节点上配置静态路由:对于目的地址为1.1.1.1/24的报文,指定出接口为Tunnel 1。这样,当该头节点收到目的地址为1.1.1.1/24的报文时,可以找到上表6,为该报文依次压入3000、2000、1000的标签序列,然后将报文向表6指定的下一跳转发。
需要注意的是,SDN网络的网络拓扑有可能发生变动,SDN控制器可以根据网络拓扑的变动做出相应的处理,具体如下:
比如,当网络拓扑中增加新的转发节点时,SDN控制器可以获取该新的转发节点的IP前缀和SRGB;然后判断该新的转发节点的SRGB是否包含已分配前缀标签的转发节点的SRGB的交集;如果包含,则从该交集内为该新的转发节点的每个IP前缀分配全局唯一的前缀标签,并将新分配的和之前已分配的前缀标签以及与前缀标签对应的IP前缀一起下发给该新的转发节点,以及将新分配的前缀标签和对应的IP前缀一起下发给网络中已分配前缀标签的转发节点,使得收到前缀标签和IP前缀的转发节点生成对应的标签转发表项。反之,如果该新的转发节点的SRGB不包含已分配前缀标签的转发节点的SRGB的交集,则SDN控制器不在该新的转发节点上分配和使用前缀标签。
举例来说,假设已分配前缀标签的各转发节点的SRGB的交集为[1000,1999];如果新增加的转发节点的SRGB为[999,3999],由于[999,3999]包含[1000,1999],所以可以在[1000,1999]中为新增加的转发节点分配前缀标签;如果新增加的转发节点的SRGB为[699,1900]或[16,999],由于[699,1900]和[16,999]均不包含
[1000,1999],所以不在该新增加的转发节点上分配和使用前缀标签。
又比如,当网络拓扑中删除已有的转发节点时,SDN控制器可以确定为该删除的转发节点上的每个IP前缀分配的前缀标签,并指示网络拓扑中的其余转发节点删除以确定出的前缀标签为入标签和出标签的标签转发表项。可选的,SDN控制器还可以回收为该删除的转发节点上的每个IP前缀分配的前缀标签。
为了更清楚地说明本申请的技术方案,下面通过一个实施例对上述技术方案做进一步的说明,需要说明的是,此实施例仅仅是本申请的一种实现方式,不构成对本申请的限定。
一SDN网络内的路由器(Router)A/B/C/D/E/F的连接关系参见图4所示,每台设备上都有一个loopback 0接口,Router A上额外有一个looback1接口。设备的路由器标识(Router ID)设置为loopback 0接口的IP地址。本实施例以每个设备上的一个loopback接口的IP地址/子网掩码长度对应的IP前缀为例来说明前缀标签。表7所示为各路由器的预配置信息。
表7各路由器的预配置信息
1)控制器收集SDN网络的链路状态信息,计算出网络拓扑,得到的网络拓扑中的转发节点和转发节点上的IP前缀。
表8网络拓扑
2)控制器通过Netconf接口,获取各Router的SRGB。得到的SRGB可以如表9所示。
表9 SRGB
Router ID | SRGB |
5.5.5.5 | [5000,5999] |
6.6.6.6 | [5000,5999] |
7.7.7.7 | [5000,5999] |
8.8.8.8 | [5000,5999] |
9.9.9.9 | [4500,5499] |
10.10.10.10 | [16,999] |
3)控制器判断各Router的SRGB是否存在共同的交集,发现不存在;从而进一步判断是否有部分转发节点的SRGB存在交集,发现Router A至Router E的SRGB存在交集,从而从该交集[5000,5499]内为Router A至Router E的每个IP前缀分配全局唯一的前缀标签。分配结果可以参见表10所示。控制器可以持久化保存IP前缀与前缀标签之间的对应关系,用于控制故障恢复后,不会导致设备侧标签转发表项故障前后不一致,从而保证报文的正常转发。
表10前缀标签分配结果
如果一个转发节点上有多个IP前缀,那么每个IP前缀也相应的分配一个全局唯一的前缀标签,比如,Router 5.5.5.5上有两个IP前缀,这两个IP前缀分别对应一个前缀标签。
4)控制器将分配好的前缀标签以及对应的IP前缀(即表10的第2列和第3列),一起发送给Router A至Router E。
5)Router A至Router E收到前缀标签以及对应的IP前缀后,根据本地的最优路由生成对应的标签转发表项。
例如,假设Router D上保存的与Router A的IP前缀5.5.5.5/32对应的最优路由有两条等价多路径,如表11所示。从表10可知,IP前缀5.5.5.5/32对应的前缀标签为5000;结合IP前缀5.5.5.5/32对应的最优路由和前缀标签,Router D可以生成入标签和出标签为5000,下一跳分别为78.1.1.7和68.1.1.6的两个标签转发表项,如表12所示。其中,表12中的IP前缀和出接口为可选项。
表11最优路由
表12标签转发表项
6)转发路径建立。
这一过程由SDN控制器向SR隧道的头节点下发SR隧道标识和SR路径标签序列实现。
比如,图4中一条从Router E到Router A的路径可以用两个前缀段表示,一个8.8.8.8/32前缀段和一个5.5.5.5/32前缀段,从而SDN控制器向SR路径的头节点Router E下发代表这条经过两个前缀段的SR隧道的标识和SR隧道路径标签序列(5004,5000)。Router E收到SR隧道标识和与SR隧道标识关联的SR路径标签序列之后,在节点上创建SR隧道接口,并用SR路径标签序列的第一段的标签,如上的标签5004查找标签转发表,得到出标签和下一跳,将得到的出标签和SR路径标签序列的其他标签,如5000作为报文从隧道口发送出去的标签封装。建立如下SR隧道表项:
表13SR隧道转发表项
7)转发节点按照标签转发表项对报文进行处理。可分为以下两种情况:
第一种,SR路径头节点对不带标签报文进行处理。
例如,如果Router E收到或者生成一个不带标签报文,根据设备上设置的引流方式,该报文对应的出接口为隧道口tunnel1,则可以找到表13所示的SR隧道转发表项;Router E可以将报文发送给表13中指定的下一跳89.1.1.8(即Router D);在向Router D转发该报文之前,Router E将标签5000和5004依次压入该报文的标签头中。
第二种,SR路径中间节点对带标签报文进行处理。
承接第7步的例子,Router D收到上述带标签报文,该报文的最外层标签为5004,由于5004对应的IP前缀就是Router D上的IP前缀,所以Router D查找到的匹配标签转发表项的出标签和下一跳为空,Router D将该报文的最外层标签5004弹出,再去检查报文。此时报文还具有标签且最外层标签为5000,Router D可以找到表12所示的标签转发表项;根据具体的负载分担原则,Router D可以将报文发送给表12中的某一个下一跳,如78.1.1.7(即Router B);在向Router B转发该报文之前,Router D对该报文执行标签交换操作,即用标签转发表项中的出标签5000替换掉该报文的最外层标签5000,交换前后该报文的最外层标签不变。Router B对该报文的处理类似,此处不再赘述。最终,该报文到达Router A时,RouterA匹配到该报文的最外层标签为5000,通过查找标签转发表项发现下一跳为空,从而弹出标签5000。之后Router A再根据该报文的IP封装或其它类型封装进行处理。例如,如果该报文弹出标签后露出的目的IP地址为Router A的IP地址,则Router A终结该报文的转发,如果该报文露出的目的IP地址不为Router A的IP地址,则Router A可以再结合路由转发表对该报文进行转发。
综上所述,本申请提供的技术方案通过SDN控制器在转发节点的SRGB的交集内分配前缀标签,使得同一个IP前缀在每个转发节点上分配的前缀标签相同,并且无需根据索引和每个转发节点的SRGB计算IP前缀在每个转发节点上的前缀标签,从而简化了前缀标签的生成过程;后续SDN控制器针对相同的IP前缀可以向不同的转发节点下发相同的标签信息,从而简化了前缀标签的下发过程。
在本方案中,通过SDN控制器来分配前缀标签,转发节点上不运行SR协议,如此可以充分发挥SDN控制器集中控制的优点。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
参见图5,该图为本申请实施例提供的一种SDN控制器的功能模块框图,可以包括:
获取模块501,用于收集网络拓扑,得到所述网络拓扑中各转发节点的IP前缀;以及获取所述网络拓扑中各转发节点的段路由全局标签块SRGB。
前缀标签处理模块502,用于判断各转发节点的SRGB是否存在共同的交集;如果存在共同的交集,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签。
发送模块503,用于将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点。
在其中一种实施方式中,所述前缀标签处理模块502,还用于如果各转发节点的SRGB不存在共同的交集,则判断是否有部分转发节点的SRGB存在交集;如果有部分转发节点的SRGB存在交集,则从该交集内为所述部分转发节点的每个IP前缀分配全局唯一的前缀标签。所述发送模块503,还用于将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述部分转发节点。
在其中一种实施方式中,所述发送模块603,具体用于将分配好的前缀标签以及前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点,以使各转发节点根据收到的前缀标签和IP前缀生成标签转发表项;所述标签转发表项的入标签和出标签等于转发节点收到的前缀标签,所述标签转发表项的下一跳为本节点上与收到的IP前缀匹配的最优路由的下一跳。
在其中一种实施方式中,所述获取模块501,还用于当所述网络拓扑中增加新的转发节点时,获取所述新的转发节点的IP前缀和SRGB。所述前缀标签处理模块502,还用于判断所述新的转发节点的SRGB是否包含已分配前缀标签的转发节点的SRGB的交集;如果包含,则从该交集内为所述新的转发节点的每个IP前缀分配全局唯一的前缀标签。所述发送模块503,还用于将新分配的前缀标签以及与前缀标签对应的IP前缀一起下发给所述新的转发节点和所述已分配前缀标签的转发节点。
在其中一种实施方式中,所述前缀标签处理模块502,还用于当所述网络拓扑中删除已有的转发节点时,确定为所述已有的转发节点上的每个IP前缀分配的前缀标签,并指示所述网络拓扑中的其余转发节点删除以确定出的前缀标签为入标签和出标签的标签转发表项。
本实施例中未尽之细节可参考上述图3所示方法中SDN控制器的描述,在此不再赘述。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
参见图6,本申请还提供一种SDN控制器,包括通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602、存储器603通过总线604完成相互间的通信。
其中,通信接口601,用于与网元通信,比如与转发节点通信。处理器602可以是一个中央处理器CPU,存储器603可以是非易失性存储器(non-volatile memory),并且存储器603中存储有逻辑指令,处理器602可以执行存储器603中存储的前缀标签分配逻辑指令,以实现上述图3所示的方法。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种前缀标签分配方法,其特征在于,所述方法应用于软件定义网络SDN控制器,所述方法包括:
收集网络拓扑,得到所述网络拓扑中各转发节点的IP前缀;
获取所述网络拓扑中各转发节点的段路由全局标签块SRGB;
判断各转发节点的SRGB是否存在共同的交集;
如果存在共同的交集,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签;并将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
如果各转发节点的SRGB不存在共同的交集,则
判断是否有部分转发节点的SRGB存在交集;
如果有部分转发节点的SRGB存在交集,则从该交集内为所述部分转发节点的每个IP前缀分配全局唯一的前缀标签;
将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述部分转发节点。
3.如权利要求1所述的方法,其特征在于,所述将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点,包括:
将分配好的前缀标签以及前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点,以使各转发节点根据收到的前缀标签和IP前缀生成标签转发表项;
所述标签转发表项的入标签和出标签等于转发节点收到的前缀标签,所述标签转发表项的下一跳为本节点上与收到的IP前缀匹配的最优路由的下一跳。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述网络拓扑中增加新的转发节点时,获取所述新的转发节点的IP前缀和SRGB;
判断所述新的转发节点的SRGB是否包含已分配前缀标签的转发节点的SRGB的交集;
如果包含,则从该交集内为所述新的转发节点的每个IP前缀分配全局唯一的前缀标签;
将新分配的前缀标签以及与前缀标签对应的IP前缀一起下发给所述新的转发节点和所述已分配前缀标签的转发节点。
5.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述网络拓扑中删除已有的转发节点时,确定为所述已有的转发节点上的每个IP前缀分配的前缀标签,并指示所述网络拓扑中的其余转发节点删除以确定出的前缀标签为入标签和出标签的标签转发表项。
6.一种软件定义网络SDN控制器,其特征在于,包括:
获取模块,用于收集网络拓扑,得到所述网络拓扑中各转发节点的IP前缀;以及获取所述网络拓扑中各转发节点的段路由全局标签块SRGB;
前缀标签处理模块,用于判断各转发节点的SRGB是否存在共同的交集;如果存在共同的交集,则从该共同的交集内为每个转发节点的每个IP前缀分配全局唯一的前缀标签;
发送模块,用于将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点。
7.如权利要求6所述的SDN控制器,其特征在于,
所述前缀标签处理模块,还用于如果各转发节点的SRGB不存在共同的交集,则判断是否有部分转发节点的SRGB存在交集;如果有部分转发节点的SRGB存在交集,则从该交集内为所述部分转发节点的每个IP前缀分配全局唯一的前缀标签;
所述发送模块,还用于将分配好的前缀标签以及与前缀标签对应的IP前缀一起下发给所述部分转发节点。
8.如权利要求7所述的SDN控制器,其特征在于,
所述发送模块,具体用于将分配好的前缀标签以及前缀标签对应的IP前缀一起下发给所述网络拓扑中的各转发节点,以使各转发节点根据收到的前缀标签和IP前缀生成标签转发表项;所述标签转发表项的入标签和出标签等于转发节点收到的前缀标签,所述标签转发表项的下一跳为本节点上与收到的IP前缀匹配的最优路由的下一跳。
9.如权利要求6或7所述的SDN控制器,其特征在于,
所述获取模块,还用于当所述网络拓扑中增加新的转发节点时,获取所述新的转发节点的IP前缀和SRGB;
所述前缀标签处理模块,还用于判断所述新的转发节点的SRGB是否包含已分配前缀标签的转发节点的SRGB的交集;如果包含,则从该交集内为所述新的转发节点的每个IP前缀分配全局唯一的前缀标签;
所述发送模块,还用于将新分配的前缀标签以及与前缀标签对应的IP前缀一起下发给所述新的转发节点和所述已分配前缀标签的转发节点。
10.如权利要求6或7所述的SDN控制器,其特征在于,
所述前缀标签处理模块,还用于当所述网络拓扑中删除已有的转发节点时,确定为所述已有的转发节点上的每个IP前缀分配的前缀标签,并指示所述网络拓扑中的其余转发节点删除以确定出的前缀标签为入标签和出标签的标签转发表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711278671.4A CN108259341B (zh) | 2017-12-06 | 2017-12-06 | 一种前缀标签分配方法和sdn控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711278671.4A CN108259341B (zh) | 2017-12-06 | 2017-12-06 | 一种前缀标签分配方法和sdn控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108259341A CN108259341A (zh) | 2018-07-06 |
CN108259341B true CN108259341B (zh) | 2020-12-29 |
Family
ID=62721140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711278671.4A Active CN108259341B (zh) | 2017-12-06 | 2017-12-06 | 一种前缀标签分配方法和sdn控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108259341B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830354B (zh) * | 2018-08-08 | 2021-12-03 | 北京华为数字技术有限公司 | 数据转发方法、装置、设备及存储介质 |
CN109450792B (zh) * | 2018-10-08 | 2021-05-07 | 新华三技术有限公司 | 一种数据报文封装方法及装置 |
US11277334B2 (en) * | 2019-07-24 | 2022-03-15 | Juniper Networks, Inc. | Using and processing per slice segment identifiers in a network employing segment routing |
CN113206787B (zh) * | 2020-01-31 | 2022-11-15 | 中国移动通信有限公司研究院 | 分段标识的处理方法及设备 |
CN113259238B (zh) * | 2020-02-07 | 2022-10-21 | 中国移动通信有限公司研究院 | 分段标识的处理方法及设备 |
CN113852553B (zh) * | 2020-06-28 | 2023-10-10 | 中国电信股份有限公司 | 流量调度方法及系统、sdn控制器 |
WO2022012690A1 (zh) * | 2020-07-17 | 2022-01-20 | 华为技术有限公司 | 一种路由通告方法及相关设备 |
CN111884929B (zh) * | 2020-07-23 | 2022-02-22 | 中国联合网络通信集团有限公司 | 一种数据转发方法及路由器 |
CN112134801B (zh) * | 2020-08-11 | 2022-02-15 | 中盈优创资讯科技有限公司 | 分段标识sid的处理方法、装置及各节点 |
CN113242179B (zh) * | 2021-05-10 | 2023-03-24 | Ut斯达康通讯有限公司 | 一种基于sdn的sr路径计算和标签栈生成的方法及sdn控制器 |
CN114520839B (zh) * | 2022-02-23 | 2024-05-31 | 河北稳控科技有限公司 | 数据转发方法、控制器及数据转发设备 |
CN116955352B (zh) * | 2023-05-22 | 2024-06-11 | 广州生产力促进中心有限公司 | 一种基于等比数列的标签管理方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450437A (zh) * | 2014-09-19 | 2016-03-30 | 中兴通讯股份有限公司 | 一种分配sid的方法和sr节点 |
CN105871722A (zh) * | 2015-01-19 | 2016-08-17 | 中兴通讯股份有限公司 | 标签构造以及标签报文转发方法及装置 |
US20170054626A1 (en) * | 2015-08-21 | 2017-02-23 | Cisco Technology, Inc. | Distribution of segment identifiers in network functions virtualization and software defined network environments |
CN106549870A (zh) * | 2015-09-16 | 2017-03-29 | 华为技术有限公司 | 分配全局标签的方法、获取全局标签的方法及相关装置 |
CN106713137A (zh) * | 2015-11-13 | 2017-05-24 | 中国电信股份有限公司 | 基于分段路由和sdn技术的vpn方法、装置及系统 |
WO2017141078A1 (en) * | 2016-02-15 | 2017-08-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Ospf extensions for flexible path stitching and selection for traffic transiting segment routing and mpls networks |
CN107370675A (zh) * | 2016-05-13 | 2017-11-21 | 华为技术有限公司 | 路由散播的方法和节点 |
-
2017
- 2017-12-06 CN CN201711278671.4A patent/CN108259341B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450437A (zh) * | 2014-09-19 | 2016-03-30 | 中兴通讯股份有限公司 | 一种分配sid的方法和sr节点 |
CN105871722A (zh) * | 2015-01-19 | 2016-08-17 | 中兴通讯股份有限公司 | 标签构造以及标签报文转发方法及装置 |
US20170054626A1 (en) * | 2015-08-21 | 2017-02-23 | Cisco Technology, Inc. | Distribution of segment identifiers in network functions virtualization and software defined network environments |
CN106549870A (zh) * | 2015-09-16 | 2017-03-29 | 华为技术有限公司 | 分配全局标签的方法、获取全局标签的方法及相关装置 |
CN106713137A (zh) * | 2015-11-13 | 2017-05-24 | 中国电信股份有限公司 | 基于分段路由和sdn技术的vpn方法、装置及系统 |
WO2017141078A1 (en) * | 2016-02-15 | 2017-08-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Ospf extensions for flexible path stitching and selection for traffic transiting segment routing and mpls networks |
CN107370675A (zh) * | 2016-05-13 | 2017-11-21 | 华为技术有限公司 | 路由散播的方法和节点 |
Also Published As
Publication number | Publication date |
---|---|
CN108259341A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108259341B (zh) | 一种前缀标签分配方法和sdn控制器 | |
CN107968752B (zh) | 一种sid获取方法和装置 | |
EP3429141B1 (en) | Segment routing label switched path for non-segment routing enabled routers | |
EP3648420B1 (en) | Enabling non-flexible-algorithm routers to participate in flexiblealgorithm routing protocols | |
CN105871722B (zh) | 标签构造以及标签报文转发方法及装置 | |
US9998368B2 (en) | Zone routing system | |
CN110661711B (zh) | 生成标签转发表的方法、报文发送方法、装置及设备 | |
US7894439B2 (en) | Communication device in a virtual private network using a multi protocol label switch | |
US7817637B2 (en) | Network switching system | |
CN100512238C (zh) | Mpls网络中的递归bgp路由更新方法 | |
US10742599B2 (en) | Conflict resolution in segment routing | |
US7630358B1 (en) | Mechanism for implementing multiple logical routers within a single physical router | |
JP2001189751A (ja) | ラベル交換通信ネットワークの仮想専用ネットワークを支援するシステム、素子及び方法 | |
CN113452610B (zh) | 跨城域网的无缝端到端分段路由的方法及区域边界路由器 | |
KR101457317B1 (ko) | 라우팅 정보 업데이트의 우선 순위 지정 | |
US9692692B1 (en) | High-scale data center having LSP transport hierarchy | |
US11362954B2 (en) | Tunneling inter-domain stateless internet protocol multicast packets | |
US7496096B1 (en) | Method and system for defining hardware routing paths for networks having IP and MPLS paths | |
EP3192221B1 (en) | Method and network node for scalable computer network partitioning | |
CN107682261B (zh) | 流量转发方法及装置 | |
WO2022142932A1 (zh) | 一种路由处理方法、相关装置以及网络系统 | |
CN108111414B (zh) | 一种基于段路由的标签部署方法和装置 | |
EP3422645B1 (en) | Conflict resolution in segment routing | |
CN113364683A (zh) | 一种路由发送方法及设备 | |
US12009911B2 (en) | Optimizing routes across an optical network based on traffic stream bandwidth utilization |
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 |