CN111698162A - 一种信息同步的方法,装置及系统 - Google Patents

一种信息同步的方法,装置及系统 Download PDF

Info

Publication number
CN111698162A
CN111698162A CN202010410586.4A CN202010410586A CN111698162A CN 111698162 A CN111698162 A CN 111698162A CN 202010410586 A CN202010410586 A CN 202010410586A CN 111698162 A CN111698162 A CN 111698162A
Authority
CN
China
Prior art keywords
next hop
information
message
field
route
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.)
Pending
Application number
CN202010410586.4A
Other languages
English (en)
Inventor
闫长江
庄顺万
吴楠
陈国义
李振斌
宋宝华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010410586.4A priority Critical patent/CN111698162A/zh
Publication of CN111698162A publication Critical patent/CN111698162A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/304Route determination for signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • H04L45/655Interaction between route computation entities and forwarding entities, e.g. for route determination or for flow table update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS

Abstract

本申请提供了一种信息同步的方法,该方法包括控制器向网络设备发送第一消息,该第一消息中携带CRP路由表项信息,用于发布CRP路由。第一消息中包括第一标识信息,转发设备接收第一消息后,根据所述第一标识信息的指示,将所述CRP路由表项信息保存在网络设备的CRP路由表中。本申请的技术方案中,由于控制器发布的路由与转发设备之间的路由协议中发布的路由保存在不同的路由表中,不会影响与转发设备间路由协议发布的路由相关的应用。

Description

一种信息同步的方法,装置及系统
技术领域
本申请涉及通信技术领域,尤其涉及一种信息同步的方法、装置及系统。
背景技术
近年来,软件定义网络(英文:Software Define Network,SDN)的价值已经得到电信网络运营商的认可,是未来网络的演进方向。SDN系统包括控制器和转发设备,其中,控制器可以用于进行网络的流量控制,转发设备可以用于对接收到的数据包进行转发处理。采用SDN技术,将网络设备的控制面与转发面(也可称之为数据面)分离开来,实现网络流量的灵活控制,加快了网络业务的创新。
边界网关协议(英文:Border Gateway Protocol,BGP)是一种用于自治系统(英文:Autonomous System,AS)之间的动态路由协议,主要用于交换AS之间的可达路由信息,构建AS域间的传播路径。当前使用的版本是BGP-4(RFC4271)。BGP协议作为因特网(Internet)外部路由协议标准,被广泛应用于因特网服务提供商(Internet ServiceProvider,ISP)之间。为了提供对多种网络层协议的支持,国际互联网工程任务组(英文:The Internet Engineering Task Force,IETF)对BGP-4进行了扩展,形成多协议扩展BGP(英文:Multi-protocol Extensions for BGP,MP-BGP)。
当前SDN架构下,如果控制器使用BGP协议向转发设备发布路由,其所发布的路由与转发设备之间使用普通BGP发布的路由保存在同一个BGP路由信息表(英文:RouteInformation Bate,RIB)(本申请中“路由信息表RIB”、“路由信息表”、“RIB”与“路由表”可以互换使用)中。如图1所示,控制器发送的路由被当做普通BGP路由处理,当优选控制器发布的路由后,会影响通过所述普通BGP发布的路由的相关应用。例如,转发设备A发布前缀X的路由P1给转发设备B,控制器发布相同前缀X的路由P2给转发设备B。此时,转发设备B接收到两条相同前缀X的路由。转发设备B向转发设备C转发路由,在进行路由选路时,路由P2的优先级高于路由P1的优先级。转发设备B将路由P2发送给转发设备C,此时,会影响到与路由P1相关的应用。比如:规定与路由P1关联的BGP MED(Multi-Exit-Disc)属性设置为100时,将路由P1引入到转发设备C的中间系统到中间系统(英文:Intermediate System toIntermediate System,ISIS)RIB中,而此时,由于路由P2被优选,而路由P2的MED属性设置为200,此时,路由P2不会被引入到ISIS RIB中,因此,影响了与转发设备间的普通的BGP发布的路由P1的相关应用。
如果控制器使用第一路径计算单元通信协议(英文:Path Computation ElementProtocol,PCEP)或其他已有路由协议向转发设备发布路由,也面临着上述相似的问题,即控制器所发布的路由与转发设备之间的普通PECP路由或者其他路由协议中的路由保存在同一个PCEP路由信息表RIB或其他路由协议下的普通路由信息表RIB中。这样的话,控制器发布的路由被当做普通PECP路由或者其他路由协议中的普通路由处理,当优选控制器发布的路由后,会影响通过所述普通PCEP或其他路由协议发布的路由的相关应用。
发明内容
有鉴于此,本申请实施例提供了一种信息同步的方法,控制器将路由表项信息发送给转发设备,转发设备建立单独保存该控制器发送的路由表项信息的路由表。该路由表中优选的路由被添加到RM RIB中,使得RM模块可以在控制器发送的路由,静态路由,ISIS路由,开放式最短路径优先(Open Shortest Path First,OSPF)路由以及BGP路由等通过不同协议所生成的路由间进行路由选择,并且由于该控制器发布的路由与转发设备之间的路由协议中发布的路由保存在不同的路由表中,从而不会影响与转发设备间的路由相关的应用。
第一方面,本申请实施例提供了一种信息同步的方法,首先,控制器确定控制路由协议(英文:Control Routing Protocol,CRP)路由表项信息,所述CRP路由表项信息包括路由前缀和网络设备的第一下一跳的地址的映射关系。上述的“CRP”是指:运行在控制器和转发设备之间,支持所述控制器向所述转发设备发布路由的协议。所述控制器生成第一消息,在所述第一消息中携带所述CRP路由表项信息,用于发布CRP路由。所述第一消息中包括第一标识信息,所述第一标识信息用于指示该网络设备将所述CRP路由表项信息保存在该网络设备的CRP路由表中。然后,所述控制器向所述网络设备发送所述第一消息,以便于所述网络设备根据所述第一标识信息将所述CRP路由表项信息保存在所述CRP路由表中,并根据所述CRP路由表指导报文转发。
因此,本申请实施例的信息同步的方法,通过在控制器和网络设备之间运行CRP协议,并通过指示信息,例如上述提到的第一标识信息,使得网络设备可以根据该指示信息创建单独的CRP路由表,用于保存控制器发送的CRP路由表项信息。由于网络设备将该控制器发布的CRP路由与根据网络设备之间的路由协议发布的路由保存在不同的路由表中,从而使得与CRP路由相关的路由策略不会影响到与根据网络设备之间的路由协议发布的路由相关的路由策略的相关应用。
结合第一方面,在第一方面的第一种可能的实现方式中,所述CRP路由表项信息进一步包括路由优先级,所述路由优先级用于标识所述CRP路由在被用于指导报文转发时的优先级。
通过在CRP路由表项信息中携带路由优先级,可以实现对CRP路由优先级的灵活设置,例如,将CRP路由设置为优选路由,从而实现使用控制器发布的路由对流量进行控制的目的。对于后续针对路由的各种复杂的策略控制,通过升级控制器即可完成,无需像现有路由策略,比如BGP路由策略,需要所有设备都实现复杂的策略。因而,使得流量调控更为简单,灵活。另外,在某些应用场景下,客户认为内部部署的IGP路由受信任应该被优选,而外部路由不受信任不应被优选,则也可以将所述CRP路由的优先级设置为低于ISIS路由以及OSPF路由的优先级。由此可见,通过对CRP路由的优先级进行设定,可以满足客户的不同需求。
结合第一方面以及上述可能的实现方式,在第一方面的第二种可能的实现方式中,所述CRP路由表项信息进一步包括所述第一下一跳的属性信息,所述第一下一跳的属性信息包括以下一种或多种下一跳的属性信息类型:带宽、负载均衡比例和下一跳的类型。
通过CRP路由表项信息中携带下一跳的属性信息,使得网络设备可以在所述CRP路由表中,获取所述下一跳的属性信息,并将所述下一跳的属性信息发送到转发信息表(Forwarding Information Base,FIB)中,指导报文转发。
结合第一方面以及上述可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一消息为第一更新消息BGP UPDATE Message。所述第一BGP UPDATE Message中包括多协议扩展可达网络层可达性信息(Multi-Protocol Reach Network ReachabilityInformation,简称“MP_REACH_NLRI”)属性字段。所述MP_REACH_NLRI属性字段中包括子地址族标识SAFI字段、网络层可达信息NLRI字段和下一跳信息字段。所述SAFI字段指示该MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第一标识信息。所述NLRI字段承载所述路由前缀。所述下一跳信息字段承载所述第一下一跳的地址。
其中,该第一标识信息可以由该SAFI字段中的SAFI的值直接表示。
可选的,所述NLRI字段包括类型长度值类型长度值(Type Length Value,TLV)字段,所述TLV字段的类型T字段表示所述TLV字段的类型为BGP路由同步类型,所述TLV字段的值V字段承载所述路由前缀。
结合第一方面以及上述可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一消息为第一PCEP Message。所述第一PCEP Message包括消息类型Message-Type字段、路由对象Route object字段以及下一跳对象Next Hop object字段。所述Message-Type字段承载所述第一标识信息。所述Route object字段承载所述路由前缀。所述Next Hop object字段承载所述第一下一跳的地址。
其中,该第一标识信息可以由该Message-Type字段中的Message-Type的值直接表示。
结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第一消息为第一BGP UPDATE Message。所述第一BGP UPDATE Message中包括多协议可达网络层可达信息MP_REACH_NLRI属性字段和路由同步属性Route SynchronizationAttribute字段。所述MP_REACH_NLRI属性字段中包括子地址族标识SAFI字段、网络层可达信息NLRI字段和下一跳信息字段。所述SAFI字段指示该MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第一标识信息。所述NLRI字段承载所述路由优先级,所述下一跳信息字段承载所述第一下一跳的地址。所述RouteSynchronization Attribute字段承载所述路由优先级。在一个可选的实现方式中,所述Route Synchronization Attribute字段包括一个子TLV字段,所述子TLV字段包括T字段、L字段和V字段,所述T字段表示所述路由优先级,所述V字段指示基于所述路由优先级所确定的值。
其中,该第一标识信息可以由该SAFI字段中的SAFI的值直接表示。
可选的,所述NLRI字段包括类型长度值TLV字段,所述TLV字段的类型T字段表示所述TLV字段的类型为BGP路由同步类型,所述TLV字段的值V字段承载所述路由前缀。
结合第一方面的第二种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第一消息为第一PCEP Message。所述第一PCEP Message包括消息类型Message-Type字段、路由对象Route object字段、下一跳对象Next Hop object字段以及路由属性对象Route Attribute object字段。所述Message-Type字段用于承载所述第一标识信息。所述Route object字段承载所述路由前缀。所述Next Hop object字段承载所述第一下一跳的地址。所述Route Attribute object字段承载所述路由优先级。在一个可选的实现方式中,所述Route Attribute object字段包括一个子TLV字段,所述子TLV字段包括T字段、L字段和V字段,所述T字段表示所述路由优先级,所述V字段指示基于所述路由优先级所确定的值。
其中,该第一标识信息可以由该Message-Type字段中的Message-Type的值直接表示。
结合第一方面的第三种可能的实现方式,在第一方面的第七种可能的实现方式中,所述第一消息为第一BGP UPDATE Message。所述第一BGP UPDATE Message中包括多协议可达网络层可达信息MP_REACH_NLRI属性字段和下一跳属性Next Hop Attribute字段。所述MP_REACH_NLRI属性字段中包括子地址族标识SAFI字段、网络层可达信息NLRI字段和下一跳信息字段。所述SAFI字段指示该
MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第一标识信息。所述NLRI字段承载所述路由前缀。所述下一跳信息字段承载所述第一下一跳的地址。所述Next Hop Attribute字段承载所述第一下一跳的属性信息。在一个可选的实现方式中,所述Next Hop Attribute字段包括至少一个子TLV字段,每种所述下一跳的属性信息的类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的属性信息的类型中的任意一种,所述V字段指示基于所对应的下一跳的属性信息类型所确定的内容。
其中,所述第一标识信息可以由该SAFI字段中的SAFI的值直接表示。
结合第一方面的第三种可能的实现方式,在第一方面的第八种可能的实现方式中,所述第一消息为第一PCEP Message。所述第一PCEP Message包括消息类型Message-Type字段、路由对象Route object字段、下一跳对象Next Hop object字段以及下一跳属性对象Next Hop Attribute object字段。所述Message-Type字段承载所述第一标识信息。所述Route object字段承载所述路由前缀。所述Next Hop object字段承载所述第一下一跳的地址。所述Next Hop Attribute object承载所述第一下一跳的属性信息。在一个可选的实现方式中,所述Next Hop Attribute object字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的属性信息的类型中的任意一种,所述V字段指示基于所对应的下一跳的属性信息的类型所确定的内容。
其中,该第一标识信息可以由该Message-Type字段中的Message-Type的值直接表示。
结合第一方面以及上述可能的实现方式,在第一方面的第九种可能的实现方式中,所述方法还包括:所述控制器生成第二消息,所述第二消息携带所述网络设备的第二下一跳的表项信息。所述第二下一跳的表项信息包括所述网络设备的第二下一跳的地址与第二下一跳的属性信息的映射关系。所述第二消息中包括第二标识信息,所述第二标识信息用于指示所述网络设备将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。所述控制器向所述网络设备发送所述第二消息,以便于所述网络设备根据所述第二标识信息将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。
其中,所述第二下一跳的地址可以与所述第一下一跳的地址相同,也可以不同。第二下一跳的属性信息类型包括但不限于以下参数的类型:下一跳接入的类型,例如互联网协议(英文:Internet Protocol,IP)网络,虚拟扩展局域网(英文:Virtual ExtensibleLocal Area Network,VXLAN)等;可用带宽(Band Width)以及负载均衡比例(Weight)等。
上述技术方案中,控制器向网络设备单独发送下一跳信息,无需绑定路由前缀。使得网络设备在单独维护的下一跳表中保存下一跳地址与下一跳属性信息,实现了控制器对网络设备的下一跳信息进行单独管理,单独管理包括单独创建或者更新下一跳信息。上述方案使得控制器对于网络设备的下一跳管理更加灵活;并且有效的节省控制器与网络设备之间,对于下一跳管理所进行的信息交互中,由于携带所述路由前缀所占用的系统资源;网络设备需要解析的信息减少,也提高了网络设备的业务处理效率。
进一步的,控制器向网络设备独立发送下一跳信息时,携带控制器定制的下一跳的属性信息,通过下一跳的属性信息来描述与其它下一跳之间不同的差异化特征,例如,某些应用需要描述下一跳的可用带宽,下一跳的负载均衡比例等。使得网络设备可以在下一跳表中,获取所述所述下一跳的属性信息,并将所述下一跳的属性信息发送到FIB表中,用于指导报文转发。
结合第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,所述第二消息为第二BGP UPDATE Message。所述第二BGP UPDATE Message中包括多协议可达网络层可达性信息MP_REACH_NLRI属性字段和下一跳的属性Next Hop Attribute字段。所述MP_REACH_NLRI属性字段中包括子地址族标识SAFI字段、网络层可达性信息NLRI字段和下一跳信息字段。所述SAFI字段指示该MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第二标识信息。所述NLRI字段承载所述第二下一跳的地址或所述下一跳信息字段承载所述第二下一跳的地址。所述Next Hop Attribute字段承载所述第二下一跳的属性信息。在一个可选的实现方式中,所述Next Hop Attribute字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述第二下一跳的属性信息的类型中的任意一种,所述V字段指示基于所对应的所述第二下一跳的属性信息的类型所确定的内容。
其中,所述第二标识信息可以由该SAFI字段中的SAFI的值直接表示。
结合第一方面的第九种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述第二消息为第二PCEP Message。所述第二PCEP Message包括消息类型Message-Type字段、下一跳对象Next Hop object字段以及下一跳属性对象Next Hop Attributeobject字段。所述Message-Type字段用于承载所述第二标识信息。所述Next Hop object字段承载所述第二下一跳的地址。所述Next Hop Attribute object字段承载所述第二下一跳的属性信息。在一个可选的实现方式中,所述Next Hop Attribute object字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的属性信息类型中的任意一种,所述V字段指示基于所对应的下一跳的属性信息类型所确定的内容。
其中,该第二标识信息可以由该Message-Type字段中的Message-Type的值直接表示。
可选的,所述第一PCEP Message还包括状态请求参数(英文:RequestParameters,RP)对象object字段。所述Message-Type承载所述第二标识信息具体包括:所述Message-Type字段和所述RP object字段共同承载所述第二标识信息。即所述第二标识信息可以由该Message-Type字段中Message-Type的值与RP object字段中R标记的值来共同表示。
结合第一方面以及上述可能的实现方式,在第一方面的第十二种可能的实现方式中,所述方法还包括:所述控制器生成第三消息,所述第三消息携带所述网络设备的第三下一跳的地址。所述第三消息中包括第三标识信息,所述第三标识信息用于指示所述网络设备在本地保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。所述控制器向所述网络设备发送所述第三消息,以便所述网络设备根据所述第三标识信息的指示删除所述第三下一跳的表项。
可见,通过控制器发送的携带有第一下一跳地址的第一消息,网络设备根据第一消息中携带的第一标识信息,在单独保存的下一跳表中删除与所述第一下一跳地址对应的第一下跳表项,不必再捆绑路由前缀以及通过大量撤销路由消息来删除某个不可用的下一跳,节省了网络资源。并且,当存在多条路由表项同时对应同一个下一跳时,通过删除该多条路由表项所对应的下一跳,进而可以删除使用该下一跳的多条路由表项。因此,控制器和网络设备设备之间只需要发送一条消息,即可实现快速,批量删除路由表项的目的。因而大大减少了控制器和转发设备之间交互消息的数量,节省了系统资源,提高了业务处理效率。
结合第一方面的第十二种可能的实现方式,在第一方面的第十三种可能的实现方式中,所述第三消息为第三BGP UPDATE Message。所述第三BGP UPDATE Message中包括多协议不可达网络层可达性信息(Multi-Protocol Unreach Network reachabilityInformation,MP_UNREACH_NLRI)属性字段。所述MP_UNREACH_NLRI属性字段中包括子地址族标识SAFI字段、不可达网络层不可达性信息NLRI字段。所述SAFI字段指示该MP_UNREACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第三标识信息。所述不可达NLRI字段承载所述第三下一跳的地址。
其中,所述第三标识信息可以由该SAFI字段中的SAFI的值直接表示。
结合第一方面的第十二种可能的实现方式,在第一方面的第十四种可能的实现方式中,所述第三消息为第三PCEP Message。所述第三PCEP Message包括消息类型Message-Type字段以及下一跳对象Next Hop object字段。所述Message-Type字段指示所述第三PCEP Message用于向所述网络设备发送所述第三下一跳的地址,并用于承载所述第三标识信息。所述Next Hop object字段承载所述第三下一跳的地址。
其中,所述第三标识信息可以由所述Message-Type字段中Message-Type的值直接表示。
结合第一方面的第十四种可能的实现方式,在第一方面的第十五种可能的实现方式中,所述第三PCEP Message还包括状态请求参数(英文:Request Parameters,RP)对象object字段。所述Message-Type承载所述第三标识信息具体包括:所述Message-Type字段和所述RP object字段共同承载所述第三标识信息。即所述第三标识信息可以由该Message-Type字段中Message-Type的值与RP object字段中R标记的值来共同表示。
结合第一方面以及上述可能的实现方式,在第一方面的第十六种可能的实现方式中,所述方法还包括:所述控制器接收所述网络设备发送的第四消息。所述第四消息携带路由状态报告信息,所述路由状态报告信息包括所述路由前缀与所述CRP路由的状态信息的映射关系。所述控制器根据接收到的所述路由状态报告信息,更新所述路由前缀的统计信息,作为重新计算所述CRP路由的依据。
所述CRP路由的状态信息包括但不限于:路由的状态,例如路由是否合法,是否被优选,是否被发送到FIB中等;路由的存活时间;下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取网络设备上报的路由状态信息,能够实时了解网络设备路由的状态,作为调整路由的依据,提高了流量调控的可靠性以及实时性。
结合第一方面以及上述可能的实现方式,在第一方面的第十七种可能的实现方式中,所述方法还包括:所述控制器接收所述网络设备发送的第五消息;所述第五消息携带下一跳状态报告信息,所述下一跳状态报告信息包括所述网络设备的第四下一跳的地址和说一声第四下一跳的状态信息的映射关系;所述控制器根据接收到的所述下一跳状态报告信息,更新所述第四下一跳的统计信息,作为重新计算所述网络设备的下一跳的依据。
所述下一跳状态报告信息包括但不限于:下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取转发设备上报的下一跳状态信息,能够实时了解转发设备的状态,作为计算,调整下一跳的依据,提高了流量调控的可靠性以及实时性。
第二方面,本申请实施例提供了一种信息同步的方法,首先,网络设备接收控制器发送的第一消息;所述第一消息携带所述控制器确定的控制路由协议CRP路由表项信息,用于发布CRP路由。所述CRP路由表项信息包括路由前缀和所述网络设备的第一下一跳的地址的映射关系,所述第一消息中包括第一标识信息。然后,所述网络设备根据所述第一标识信息的指示,将所述CRP路由表项信息保存在本地CRP路由表中,并根据所述CRP路由表指导报文转发。
通过在控制器和网络设备之间运行CRP协议,网络设备上创建单独的CRP路由表,用于保存控制器发送的CRP路由表项信息。由于该控制器发布的CRP路由与网络设备之间的路由协议发布的路由保存在不同的路由表中,从而使得CRP路由相关的路由策略不会影响到网络设备间的路由协议中路由所体现的路由策略的相关应用。
结合第二方面,在第二方面的第一种可能的实现方式中,所述CRP路由表项信息进一步包括路由优先级,所述路由优先级用于标识所述CRP路由在被用于指导报文转发时的优先级。
通过在CRP路由表项信息中携带路由优先级,可以实现对CRP路由优先级的灵活设置,例如,将CRP路由设置为优选路由,从而实现使用控制器发布的路由对流量进行控制的目的。对于后续针对路由的各种复杂的策略控制,通过升级控制器即可完成,无需像现有路由策略,比如BGP路由策略,需要所有设备都实现复杂的策略。因而,使得流量调控更为简单,灵活。另外,在某些应用场景下,客户认为内部部署的IGP路由受信任应该被优选,而外部路由不受信任不应被优选,则也可以将所述CRP路由的优先级设置为低于ISIS路由以及OSPF路由的优先级。由此可见,通过对CRP路由的优先级进行设定,可以满足客户的不同需求。
结合第二方面以及上述可能的实现方式中,在第二方面的第二种可能的实现方式中,所述CRP路由表项信息进一步包括第一下一跳的属性信息,所述第一下一跳的属性信息包括以下一种或多种下一跳的属性信息的类型:带宽、负载均衡比例和下一跳接入的类型。所述方法还包括:
所述网络设备将所述第一下一跳的地址和所述第一下一跳的属性信息保存在所述网络设备的下一跳表的第一下一跳的表项中,所述第一下一跳的表项记录所述第一下一跳的地址与所述第一下一跳的属性信息的映射关系。
通过CRP路由表项信息中携带下一跳的属性信息,使得网络设备可以在所述CRP路由表中,获取所述下一跳的属性信息,并将所述下一跳的属性信息发送到FIB中,指导报文转发。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述方法还包括:所述网络设备获取所述第一下一跳的属性信息,并将所述第一下一跳的属性信息发送到转发信息表中,用于指导报文转发。
结合第二方面以及上述可能的实现方式,在第二方面的第四种可能的实现方式中,所述方法还包括:
所述网络设备接收所述控制器发送的第二消息;所述第二消息携带所述网络设备的第二下一跳的表项信息.所述第二下一跳的表项信息记录所述网络设备的第二下一跳的地址与第二下一跳的属性信息的映射关系.所述第二消息中包括第二标识信息;所述网络设备根据所述第二标识信息的指示,将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。
因此,控制器向网络设备单独发送下一跳信息,无需绑定路由前缀。使得网络设备在单独维护的下一跳表中保存下一跳地址与下一跳属性信息,实现了控制器对网络设备的下一跳信息进行单独管理,单独管理包括单独创建或者更新下一跳信息。上述方案使得控制器对于网络设备的下一跳管理更加灵活;并且有效的节省控制器与网络设备之间,对于下一跳管理所进行的信息交互中,由于携带所述路由前缀所占用的系统资源;网络设备需要解析的信息减少,也提高了网络设备的业务处理效率。控制器向网络设备独立发送下一跳信息时,携带控制器定制的与该下一跳关联的下一跳属性信息,通过下一跳属性信息来描述与其它下一跳之间不同的差异化特征,例如,某些应用需要描述下一跳的可用带宽,下一跳的负载均衡比例等。使得网络设备可以在下一跳表中,获取所述下一跳属性信息,并将所述下一跳属性信息发送到转发信息表(英文:Forwarding Information Base,FIB)表中,用于指导报文转发。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述方法还包括:所述网络设备以所述第二下一跳的地址为关键字,查找所述下一跳表,获取所述第二下一跳的属性信息,并将所述第二下一跳的属性信息发送到转发信息表中,指导报文转发。
结合第二方面以及上述可能的实现方式,在第二方面的第六种可能的实现方式中,所述方法还包括:
所述网络设备接收所述控制器发送的第三消息;所述第三消息携带所述网络设备的第三下一跳的地址,所述第三消息中包括第三标识信息;所述网络设备根据所述第三标识信息的指示,在所述网络设备保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。
可见,通过控制器发送的携带有第一下一跳地址的第一消息,网络设备根据第一消息中携带的第一标识信息,在单独保存的下一跳表中删除与所述第一下一跳地址对应的第一下跳表项,不必再捆绑路由前缀以及通过大量撤销路由消息来删除某个不可用的下一跳,节省了网络资源。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述网络设备根据所述第三标识信息的指示,在所述网络设备保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项,具体包括:
所述网络设备根据所述第三标识信息的指示,以所述第三下一跳的地址为关键字,查找所述下一跳表,命中所述第三下一跳的表项,将所述第三下一跳的表项删除。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述方法还包括:
所述网络设备删除与所述第三下一跳的地址关联的路由表项。
当存在多条路由表项同时对应同一个下一跳时,控制器确定该下一跳不可用时,通过删除该下一跳,进而可以删除使用该下一跳的多条路由表项。因此,控制器和网络设备设备之间只需要发送一条消息,即可实现快速,批量删除路由表项的目的。因而大大减少了控制器和转发设备之间交互消息的数量,节省了系统资源,提高了业务处理效率。
结合第二方面以及上述可能的实现方式,在第二方面的第九种可能的实现方式中,所述方法还包括:
所述网络设备生成第四消息,所述第四消息携带路由状态报告信息,所述路由状态报告信息记录所述路由前缀与所述CRP路由的状态信息的映射关系;
所述网络设备向所述控制器发送所述第四消息,以使所述控制器根据接收到的所述路由状态报告信息,更新所述路由前缀的统计信息,作为重新计算所述CRP路由的依据。
所述CRP路由的状态信息包括但不限于:路由的状态,例如路由是否合法,是否被优选,是否被发送到FIB中等;路由的存活时间;下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取网络设备上报的路由状态信息,能够实时了解网络设备路由的状态,作为调整路由的依据,提高了流量调控的可靠性以及实时性。
结合第二方面的第九种可能的实现方式,在第二方面第第十种可能的实现方式中,所述第四消息为第四BGP UPDATE Message。所述第四BGP UPDATE Message包括MP_REACH_NLRI属性字段和路由状态报告属性Route Status Report Attribute字段。所述MP_REACH_NLRI属性字段中包括NLRI字段,所述NLRI字段用于承载所述路由前缀。所述RouteStatus Report Attribute字段用于承载所述CRP路由的状态信息。在一个可选的实现方式中,所述Route Status Report Attribute字段包括至少一个子TLV字段,每种所述CRP路由的状态信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述CRP路由的状态信息类型中的任意一种,所述V字段指示基于所对应的CRP路由的状态信息类型所确定的内容。
结合第二方面的第九种可能的实现方式,在第二方面第第十一种可能的实现方式中,所述第四消息为第四PCEP Message。所述第四PCEP Message包括消息类型Message-Type字段、路由对象Route object字段以及路由状态报告属性对象Route Status ReportAttribute object字段。所述Message-Type字段指示所述第四PCEP Message用于向所述控制器发送所述路由状态报告信息。所述Route object字段承载所述路由前缀。所述RouteStatus Report Attribute object字段承载所述CRP路由的状态信息。在一个可选的实现方式中,所述Route Status Report Attribute object字段包括至少一个子TLV字段,每种所述CRP路由的状态信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述CRP路由的状态信息类型中的任意一种,所述V字段指示基于所对应的CRP路由的状态信息类型所确定的内容。
结合第二方面以及上述可能的实现方式,在第二方面的第十二种可能的实现方式中,所述方法还包括:
所述网络设备生成第五消息;所述第五消息携带下一跳状态报告信息,所述下一跳状态报告信息包括所述网络设备的第四下一跳的地址和所述第四下一跳的状态信息的映射关系。所述网络设备向所述控制器发送所述第五消息,以使所述控制器根据接收到的所述下一跳状态报告信息,更新下一跳的统计信息,作为重新计算所述网络设备的下一跳的依据。
所述下一跳状态报告信息包括但不限于:下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取转发设备上报的下一跳状态信息,能够实时了解转发设备的状态,作为计算,调整下一跳的依据,提高了流量调控的可靠性以及实时性。
结合第二方面的第十二种可能的实现方式,在第二方面的第十三种可能的实现方式中,所述第五消息为第五BGP UPDATE Message。所述第五BGP UPDATE Message包括多协议可达网络层可达信息MP_REACH_NLRI属性字段和下一跳状态报告属性Next Hop StatusReport Attribute字段。所述MP_REACH_NLRI属性字段中包括网络层可达信息NLRI字段,所述NLRI字段用于承载所述第四下一跳的地址。所述Next Hop Status Report Attribute字段用于承载所述第四下一跳的状态信息。在一个可选的实现方式中,所述Next Hop StatusReport Attribute字段包括至少一个子TLV字段,每种下一跳的状态信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的状态信息类型中的任意一种,所述V字段指示基于所对应的下一跳的状态信息类型所确定的内容。
结合第二方面的第十二种可能的实现方式,在第二方面的第十四种可能的实现方式中,所述第五消息为第五PCEP Message。所述第五PCEP Message包括消息类型Message-Type字段、下一跳对象Next Hop object字段以及下一跳状态报告属性对象Next HopStatus Report Attribute object字段。所述Message-Type字段指示所述第五PCEPMessage用于向所述控制器发送所述下一跳状态报告信息。所述Next Hop object字段承载所述第四下一跳的地址。所述Next Hop Status Report Attribute object字段承载所述第四下一跳的状态信息。在一个可选的实现方式中,所述Next Hop Status ReportAttribute object字段包括至少一个子TLV字段,每种下一跳的状态信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的状态信息类型中的任意一种,所述V字段指示基于所对应的下一跳的状态信息类型所确定的内容。
第三方面,本申请实施例提供一种控制器,用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,该控制器包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。
第四方面,本申请实施例提供一种网络设备,用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,该网络设备包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的模块。
第五方面,本申请实施例提供了一种通信系统,包括第三方面提供的控制器和第四方面提供的网络设备。
第六方面,本申请实施例提供了一种控制器,所述控制器包括:输入接口、输出接口、处理器和存储器。其中,输入接口、输出接口、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第一方面或第一方面的任意可能的实现方式中的方法。
第七方面,本申请实施例提供了一种网络设备,所述网络设备包括:输入接口、输出接口、处理器和存储器。其中,输入接口、输出接口、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第二方面或第二方面的任意可能的实现方式中的方法。
第八方面,本申请提实施例供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行第一方面、第二方面、第一方面任意可能的实现方式或第二方面任意可能的实现方式中的方法的指令。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中控制器发布路由的示意图;
图2为根据本申请一实施例的应用场景示意图;
图3为根据本申请实施例的用于信息同步的方法的流程示意图;
图4为根据本申请一实施例的基于BGP同步地址族所支持的封装格式封装的多协议扩展可达网络层可达性信息MP_REACH_NLRI字段的示意图;
图5为根据本申请一实施例的NLRI字段中TLV字段的示意图;
图6为根据本申请一实施例的PCEP Message的公共的消息头的封装格式示意图;
图7为根据本申请一实施例的PCEP Message的对象object的公共的对象头的封装格式示意图;
图8为根据本申请一实施例的PCEP Message中的路由对象Route object的封装格式示意图;
图9为根据本申请一实施例的路由对象Route object中的子对象Sub-object的封装格式示意图;
图10为根据本申请另一实施例的路由对象Route object中的子对象Sub-object的封装格式示意图;
图11为根据本申请一实施例的PCEP Message中的下一跳对象Next Hop object的封装格式示意图;
图12为根据本申请一实施例的基于BGP同步地址族所支持的封装格式封装的MP_UNREACH_NLRI字段的示意图;
图13为根据本申请一实施例的控制器的示意图;
图14为根据本申请一实施例的网络设备的示意图;
图15为根据本申请一实施例的控制器的硬件结构示意图;
图16为根据本申请一实施例的网络设备的硬件结构示意图。
具体实施方式
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
除非有相反的说明,本申请实施例提及“第一”、“第二”、“第三”、“第四”以及“第五”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。
下面结合图2对本申请实施例的场景进行示例性的说明。
图2示出了本申请实施例应用的SDN100。该SDN100包括控制器110和多个网络设备120。在本申请中,控制器110还可称之为控制设备,控制系统,控制节点。可选地,该控制器120具体可以为智能网络控制器(英文:Smart Network Controller,SNC),但本申请实施例不限于此。
网络设备120可以用于对报文进行转发处理。网络设备具体可以为传统路径计算单元(英文:Path Computation Element,PCE)网络中的传统路由器、交换机等路由转发设备,也可以是基于控制转发分离的SDN中的路由器或交换机等路由转发设备,本申请实施例对此不做限定。
图2示出了五个路由器:R1至R5,应理解,图2仅示例性地示出了一个控制器和五个路由器,该网络100可以包括任意其它数量的控制器和网络设备,本申请实施例对此不做限定。
控制器110通过收集各个网络设备120的网元资源信息以及网络拓扑信息,确定路由表项信息,生成相应的路由,发布给网络设备120。网络设备120接收到控制器发布的路由以后,将其保存在网络设备120单独维护的路由表中。控制器器发布的路由与通过其它协议发布的路由均发送到路由管理(英文:Routing Management,RM)RIB,例如,图1所示的RMRIB,RM RIB经过协议间路由选路,选择出一条最优路由,作为网络设备120转发报文的依据。
下面结合附图3对本申请实施例提供的信息同步的方法300进行详细说明。该方法300可以应用于图2所示的SDN100,但本申请实施例不限于此。如图3所示,所述方法包括:
S301、控制器确定控制路由协议CRP路由表项信息,所述CRP路由表项信息记录有路由前缀和第一下一跳的地址的映射关系。
本申请所述的“CRP”是指:运行在控制器和转发设备之间,支持所述控制器向所述转发设备发布路由的协议。基于该CRP协议,转发设备把控制器生成并发布的路由保存到该转发设备单独维护的路由表中,该路由表称之为“CRP路由表”。该CRP协议可以是对已有路由协议的扩展所形成的扩展协议从而可以携带控制器向转发设备发送的路由,例如对已有路由协议BGP扩展后形成的BGP扩展协议,或者对已有PCEP协议扩展形成的扩展PCEP协议。该CRP协议也可以是对新创建的传统转发设备间使用的路由协议的扩展。该CRP协议还可以是新创建的专门用于控制器和传统转发设备之间交互并携带控制器发送的路由信息的协议。本申请对携带控制器下布的路由的具体协议不做限定。另外,本申请实施例中所说的传统转发设备可以理解为非纯粹或混合SDN转发设备,如既具有传统转发设备控制和转发的功能又具备SDN控制转发分离场景下根据控制器发布的路由进行转发的功能的转发设备。此外,该CRP路由表可以理解为用于保存控制器所发布的路由的路由表,以区别于其他形式的路由表,例如用于保存转发设备之间发布的路由的路由表。在通过扩展协议的方式携带所述CRP路由表项信息的情况下,例如由扩展BGP协议携带的情况下,网络设备将保存有控制器发布的路由的CRP路由表与保存普通BGP路由(例如网络设备之间发布的路由)的BGP路由表。该CRP路由表中包括多条路由表项,称之为“CRP路由表项”。每条CRP路由表项所记录的路由信息,称之为CRP路由表项信息。控制器向转发设备发布的所述路由,称之为“CRP路由”。
示例,所述CRP路由表可以如表1所示:
Figure BDA0002493027740000141
表1
如表1所示,所述CRP路由表包括多条CRP路由表项。对CRP路由表1中的各字段解释如下:
Network字段:表示路由前缀,通常使用目的地址/掩码(destination/Mask)表示,如果使用自然掩码,掩码可省略;
Next-Hop字段:表示下一跳的地址;
Status字段:表示路由状态;
Preference字段:表示路由优先级;所述路由优先级用于指示所述CRP路由用于指导报文转发时的优先级。路由优先级的数值越小,表示路由优先级越高。通过所述Preference字段可以灵活设置所述CRP路由的优先级。
Topology字段:表示网络设备的拓扑标识。指定相应的拓扑标识时,即按照指定的标识信息,使用相应的拓扑;未指定具体标识,即使用缺省的全局拓扑。
Band Width字段:表示下一跳的可用带宽。
其中,在控制器向网络设备发布CRP路由时,每条CRP路由表项信息至少要包括路由前缀与下一跳的地址的映射关系,其它的字段所包含的信息为可选携带的信息,可以缺省配置。当网络设备接收到报文以后,可以根据该CRP路由表的指导,将报文转发至下一跳网络设备。
在一个具体的实施方式中,上述的“Status”字段,可以由32位比特组成,每个比特代表一种路由状态。示例,“Status”字段的封装格式如表2所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
V B A R
表2
V—Valid,1表示合法路由,0表示非法路由;
B—Best,1表示最优路由,0表示非最优路由;
A—Active,1表示激活路由,0表示非激活路由;
D—Download to FIB,1表示路由发送到FIB,0表示路由没有发送到FIB。
对于“Status”的编码,示例说明如下:
0x80000000:只有V比特为1,表示路由是合法路由,非最优路由、非激活路由以及没有被发送到FIB。
0xD0000000:V、B、D三个比特位为1,A比特位为0,表示该路由是合法的、最优的、并且被发送到了FIB,但是该路由未被激活。
本申请仅以如上四个比特位为例,说明如何使用CRP路由表中Status字段,本领域技术人员可以理解,上述四个比特位中,0和1还可以表示相反的含义,比如:
V—Valid,0表示合法路由,1表示非法路由;
B—Best,0表示最优路由,1表示非最优路由;
A—Active,0表示激活路由,1表示非激活路由;
D—Download to FIB,0表示路由发送到FIB中,1表示路由没有发送到FIB。
也可以用其它数值来表示上述状态信息,本申请实施例对此不作具体限定。
本领域技术人员可以理解,Status字段还可以采用其它的封装格式进行封装,此处仅是示例性说明,不应理解为对本申请的限定。
需理解,表1中列出的多种信息仅是例举,并不对本申请构成限定。另外,虽然表1中列出了多种信息,但是本领域技术人员可以理解,所述CRP路由表项信息不必包括全部信息。或者,CRP路由表项信息也可以包括未在此处列出的其它字段所表示的信息,本申请实施例对此不作具体限定。
在一个具体的实施方式中,所述控制器可以用于对网络的流量进行控制,向所述网络设备发送控制路由信息。例如,所述控制器可以是图2所示的控制器110。所述网络设备可以具体为图2所示的R1至R5中任意一个。作为一个可选的例子,该控制器可以具体为SNC,但本申请实施例对此不作限定。
所述控制器通过收集各个网络设备的网元资源信息以及网络拓扑信息,来计算所述CRP路由,确定所述CRP路由表项信息。所述网元资源信息包括但不限于标签信息、接口资源信息、虚拟局域网(英文:Virtual Local Area Network,VLAN)信息以及隧道ID。所述网络拓扑信息是描述网络中节点和链路以及节点之间的连接关系的信息。控制器可以基于现有的各种拓扑收集协议,比如内部网关协议(英文:Interior Gateway Protocol,IGP),ISIS协议,OSPF协议,来获得全网的拓扑信息。所述网络拓扑信息包括但不限于SDN中各个网络设备之间的路径信息。可选的,所述网络拓扑信息还包括各个网络设备之间的路径的权重信息等。
S302、控制器生成第一消息,用于发布CRP路由。
具体的,所述控制器生成第一消息,所述第一消息携带所述CRP路由表项信息,用于发布所述CRP路由,所述第一消息中包括第一标识信息,所述第一标识信息用于指示网络设备将所述CRP路由表项信息保存在该网络设备的CRP路由表中。
所述网络设备具体的可以是交换机,路由器。网络设备可以具体为图2所示的R1至R5中任意一个。
在一个具体的实施方式中,所述第一消息可以为第一BGP更新消息BGP UPDATEMessage。所述第一BGP UPDATE Message中包括MP_REACH_NLRI属性字段。所述MP_REACH_NLRI属性字段中包括子地址族标识(英文:Subsequent Address Family Identifier,SAFI)字段、网络层可达性信息NLRI字段和下一跳信息字段。所述SAFI字段指示该MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第一标识信息。所述NLRI字段承载所述路由前缀,所述下一跳信息字段承载所述第一下跳的地址。
其中该第一标识信息由该BGP同步地址族SAFI字段中SAFI的值所直接表示。
在本申请实施例中,可以在现有的BGP地址族中新增BGP同步地址族,并基于新增的BGP同步地址族所支持的封装格式,封装上述CRP路由表项信息。具体的,该BGP同步地址族新增的MP_REACH_NLRI的封装格式如图4所示。
图4是根据本申请一实施例的基于BGP同步地址族所指示的封装格式封装的MP_REACH_NLRI属性字段的示意图。
MP_REACH_NLRI可以理解为NLRI的多协议扩展属性信息,它包括地址族信息域、下一跳信息域、网络层可达性信息(NLRI)域三部分。
其中,地址族信息域包括地址族标识字段(2字节)、子地址族标识字段(1字节)。地址族标识(英文:Address Family Identifier,AFI)用于标识网络层协议,例如,AFI取1,表示IPv4;AFI取2,表示IPv6。SAFI标识子地址族的类型,例如,SAFI取1,表示单播;SAFI取2,表示组播;SAFI取128,表示虚拟专用网络(英文:Virtual Private Network,VPN)。更具体地,AFI值为1,SAFI值为1,表示NLRI字段中承载的是IPv4单播路由;AFI值为1,SAFI值为128表示NLRI字段中承载的BGP-VPNv4路由;AFI值为1,SAFI值为4表示NLRI字段中承载的BGP标签路由。
在本申请实施例中,BGP同步地址族可以理解为现有的BGP协议中IPv4或IPv6地址族中扩展的子地址族,即,AFI值可以为1或2。SAFI的值可以根据国际互联网工程任务组(英文:Internet Engineering Task Force,IETF)制定的标准确定。
下一跳信息域包括下一跳的地址长度字段(1字节)和下一跳的地址字段(可变长度)。下一跳的地址长度字段用于标识下一跳的地址字段的长度,下一跳的地址字段的长度由下一跳的地址长度字段所标识的长度决定。
下一跳信息域与NLRI域之间留有1字节保留字段。
NLRI域包括NLRI字段。
在一个具体的实施方式中,NLRI字段可以由一个二元组<Length-Prefix>表示。Length:表示路由前缀的长度,以字节为单位。Prefix:包含了路由前缀,后面则是填充比特,用于保证字段结尾符合字节边界,填充比特的值无意义。
在另一个具体的实施方式中,NLRI字段包括TLV字段(可变长度)。图5是根据本申请实施例的NLRI字段中TLV字段的示意图。其中,类型T字段表示该TLV字段的类型为BGP同步类型,长度L字段表示V字段的长度,值V字段承载根据所述BGP同步类型所确定的内容。在本申请实施例中,具体地,T字段值为1时,可以标识BGP路由同步(Route EntrySynchronization)类型。可选的,L字段值为16比特,即,2字节;V字段为L字段值所指示的长度的路由前缀。所述BGP同步类型包括所述BGP路由同步类型。
应理解,这里所列举的Type1类型为BGP路由同步类型仅为示例性说明,不应对本申请构成任何限定。本申请实施例不排除通过Type1来指示其他类型,或者用其他方式来指示BGP路由同步类型的可能。并且,本申请实施例对于NLRI Type的类型的数量也并未特别限定。
在另一个具体的实施方式中,所述第一消息为第一PCEP消息Message。所述第一PCEP Message包括消息类型Message-Type字段、路由对象Route object字段以及下一跳对象Next Hop object字段。所述Message-Type字段指示所述第一PCEP Message用于向所述网络设备发布所述CRP路由,并用于承载所述第一标识信息。所述Route object字段承载所述路由前缀。所述Next Hop object字段承载所述第一下一跳的地址。
其中,该第一标识信息由该Message-Type字段中Message-Type的值所直接表示。
在本申请实施例中,可以在现有的Message-Type中新增消息类型,用于指示所述第一PCEP Message。其中,在本申请实施例中,所述第一PCEP Message也可以称之为PCE实例化路由消息PCE-initiated Route Message。通常,一个PCEP Message由一个公共的消息头和一个长度可变的消息体构成,消息体由一系列对象组成。具体的,所述第一PCEPMessage包括一个公共的消息头、所述路由对象以及所述下一跳对象。
所述第一PCEP Message的公共的消息头的封装格式,如图6所示。图6是根据本申请一实施例的第一PCEP Message的公共的消息头的封装格式示意图。
对其中各字段的解释如下:
版本(Ver)字段(3比特):标识PCEP版本号,当前版本号为1。
标记(Flags)字段(5比特):标记,目前没有定义标记,分配的5bits为预留位,发送端必须置为0,接收端必须忽略。
消息类型(Message-Type)字段(8比特):消息类型。待定义。
在本申请实施例中,所述第一PCEP Message(例如上述的PCE实例化路由消息PCE-initiated Route Message)中的Message-Type,可以理解为基于现有的PCEP协议中Message-Type扩展的消息类型,Message-Type的值可以根据IETF制定的标准确定。
消息长度(Message-Length)字段(16比特):PCEP消息的总的长度(包括公共头部的长度),单位为字节(bytes)。
一个PCEP Message的对象object包括公共的对象头以及对象体,
所述公共的对象头的封装格式,如图7所示:
对于公共的对象头中的各字段解释如下:
对象总类(Object-Class)字段(8比特):标识PCEP对象的种类。
对象类型(Object-Type,OT)字段(4比特):标识PCEP对象的类型。
Object-Class字段和OT字段由因特网地址分配组织(英文:Internet AssignedNumbers Authority,IANA)管理,共同唯一确定一个PCEP对象。例如,在PCEP的OPEN对象中,Object-Class的值为1,Object-Type的值为1,二者共同唯一确定OPEN对象。
通常,一个Object-Class包括至少一个Object-Type。
保留(Res)字段(2比特):保留字段,发送时填充为0,收到时忽略。
处理规则标记(P)字段(1比特):处理规则。本申请中未涉及。
忽略标记(I)字段(1比特):忽略字段。本申请中未涉及。
对象长度(Object Length)字段(16比特):标识对象的长度,包含对象头的长度,单位是字节。
可选的,所述对象体包括一系列的一个或多个可选的子TLV字段。所述子TLV字段都包括T字段、L字段和V字段。所述T字段标识子对象的类型,占2个字节;所述L字段标识子对象的长度,包含消息头部单位是字节;所述V字段标识根据子对象的类型所确定的内容。
可选的,所述对象体包括一系列的子对象,所述子对象可以采用RFC3209定义的子对象的封装格式进行封装。
具体的,作为示例,所述Route object的封装格式,如图8所示:
对于Route object的各字段的解释如下:
对象总类(Object-Class)的值待定义,由IANA管理;对象类型(Object-Type,OT)值为1;Object-Class和Object-Type两个一起唯一确定所述Route object。保留(Res)字段发送时填充为0,收到时忽略;
处理规则标记(P)字段和忽略标记(I)字段在本Route object中未使用,设置为0。
对象长度(Object Length)的值为Route object的长度,包括对象头。
所述Route object包括一个或多个子对象Sub-object,子对象为可变长度,子对象字段的长度由对象长度字段所标识的长度决定。
在一个具体的实施方式中,Route object中Sub-object为IPv4前缀子对象,携带IPv4地址前缀,作为示例,可以使用图9所示的封装格式进行封装,如图9所示:
IPv4 prefix子对象的各字段解释如下:
子对象的属性(L)字段:在所述Route object中,L位暂未使用,设置为0。
子对象类型(Type)字段:取值为0x01,表示IPv4地址。对于Type的取值,仅为示例性说明,不作具体限定。
子对象长度(Length)字段:子对象的长度。
IPv4地址字段:IPv4地址。这个地址被看作是基于下列的前缀长度(PrefixLength)的前缀。超出前缀的位在接收时被忽略,并且在传输时被设置为0。
前缀长度(Prefix length)字段:IPv4前缀的长度。
填充(Padding)字段:传输时设置为0,接收时忽略。
一个IPv4前缀对象的内容是一个4字节的IPv4地址,一个1字节的前缀长度和一个1字节的填充域。这个子对象所表示的抽象节点是一系列有相同IP地址前缀的节点。其中,前缀长度为32表示是一个单个IPv4节点。
在另一个具体的实施方式中,所述Route object中Sub-object为IPv6前缀子对象,携带IPv6地址前缀。作为示例,可以使用图10所示的封装格式进行封装,如图10所示:
IPv6 prefix子对象的各字段解释如下:
子对象的属性(L)字段:在所述Route object中,L位暂未使用,设置为0。
子对象类型(Type)字段:取值为0x02,表示IPv6地址。
子对象长度(Length)字段:子对象的长度。
IPv6地址字段:IPv6地址。这个地址被看作是基于下列的前缀长度(PrefixLength)的前缀。超出前缀的位在接收时被忽略,并且在传输时被设置为0。
前缀长度(Prefix length)字段:IPv6前缀的长度。
填充(Padding)字段:传输时设置为0,接收时忽略。
一个IPv6前缀子对象的内容是一个16字节的IPv6地址,一个1字节的前缀长度和一个1字节的填充域。这种子对象所表示的抽象节点是一系列属于相同IP前缀的节点。其中,值为128的前缀长度表示了一个单个的IPv6节点。
应理解,这里所列举的各子段的取值和/或长度仅为示例性说明,不应对本申请构成任何限定。本申请实施例不排除Object-Type字段取值为其它值的可能。
应理解,这里所列举的Route object的封装格式,仅为示例性说明,本申请实施例对于Route object的封装格式以及Route object中相关字段的取值,不作具体限定。本申请实施例不排除采用其它的封装格式对Route object进行封装的可能。
具体的,作为示例,所述下一跳对象Next Hop object的封装格式,如图11所示:
对于Next Hop object的各字段的解释如下:
对象总类(Object-Class)的值待定义,由IANA管理。对象类型(Object-Type,OT)值为1时,对象体(Object body)承载的是一个4字节长的IPv4单播地址;值为2时,Objectbody承载的是一个16字节长的IPv6单播地址。Object-Class和Object-Type两个一起唯一确定所述Next Hop object。
保留(Res)字段发送时填充为0,收到时忽略;
处理规则标记(P)字段和忽略标记(I)字段在本Route object中未使用,设置为0。
对象长度(Object Length)的值为Next Hop object的长度,包括对象头。
应理解,这里所列举的各子段的取值和/或长度仅为示例性说明,不应对本申请构成任何限定。本申请实施例不排除Object-Type字段取值为其它值的可能。
S303、控制器向网络设备发送所述第一消息。
具体的,所述控制器向所述网络设备发送所述第一消息,以便于所述网络设备根据所述第一标识信息将所述CRP路由表项信息保存在所述网络设备的CRP路由表中,根据所述CRP路由表指导报文转发。
可选的,所述控制器自身保存有CRP路由表,控制器确定所述CRP路由表项信息后,在所述控制器保存的CRP路由表中保存所述CRP路由表项信息。
S304、网络设备接收所述第一消息。
S305、网络设备将所述CRP路由表项信息保存在所述网络设备的CRP路由表中。
具体的,网络设备接收到所述第一消息后,根据所述第一消息中携带的第一标识信息,识别出需要将所述第一消息中携带的所述CRP路由表项信息保存到本地CRP路由表后,将所述CRP路由表项信息保存在本地CRP路由表中,进而可以根据所述CRP路由表指导报文转发。
在一个具体的实施方式中,网络设备接收到所述第一消息后,以所述第一消息中携带的路由前缀为关键字,在本地保存的所述CRP路由表中进行表项查找,如果命中相应的表项,则使用所述CRP路由表项信息更新所找到的表项中的相应信息。如果没有命中相应的表项,则创建一条CRP路由表项,将所述CRP路由表项信息保存到新创建的CRP路由表项中。
通过上述技术方案,在控制器和转发设备之间运行CRP协议,转发设备上创建单独的CRP路由表,用于保存控制器发送的CRP路由表项信息。CRP路由表中优选的路由被添加到RM RIB中,使得RM模块可以在CRP路由、ISIS路由,BGP路由,OSPF路由等通过不同的路由协议所生成的路由之间进行路由选择。并且由于该控制器发布的CRP路由与转发设备之间的路由协议发布的路由保存在不同的路由表中,从而使得CRP路由相关的路由策略不会影响到转发设备间的路由协议中路由所体现的路由策略的相关应用。
可选的,所述CRP路由表项信息还包括:路由同步属性信息,所述路由同步属性信息用于所述控制器发送路由前缀时携带通过所述控制器制定的路由属性信息。
所述路由同步属性包括但不限于:所述路由优先级、所述拓扑以及下一跳的属性信息。
所述下一跳的属性信息包括至少一种下一跳的属性信息类型。所述下一跳的属性信息类型包括但不限于:下一跳接入的类型,比如:互联网协议(英文:Internet Protocol,IP)网络、虚拟扩展局域网(Virtual Extensible Local Area Network,VXLAN)等;可用带宽(Band Width)以及负载均衡比例(Weight)等。
在一个具体的实施方式中,在上述以BGP UPDATE Message承载所述CRP路由表项信息的实施例中,所述第一BGP UPDATE Message还包括路由同步Route Synchronization属性Attribute字段。Route Synchronization Attribute承载所述路由同步属性信息。可选的,所述Route Synchronization Attribute字段包括至少一个子TLV字段,每种路由同步属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述路由同步属性信息的类型中的任意一种,所述V字段指示基于所对应的路由同步属性信息类型所确定的内容。所述路由同步属性信息的类型包括所述路由优先级。
在另一个具体的实施方式中,在上述以PCEP Message承载所述CRP路由表项信息的实施例中,所述第一PCEP Message还包括PCEP路由属性对象Route Attribute object字段,所述PCEP Route Attribute object字段承载所述路由同步属性信息。可选的,所述PCEP Route Attribute object字段包括至少一个子TLV字段,每种路由同步属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应,每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述路由同步属性信息的类型中的任意一种,所述V字段指示基于所对应的路由同步属性信息的类型所确定的内容。所述路由同步属性信息的类型包括所述路由优先级。
上述两种携带所述路由同步属性信息的实施方式中,TLV的具体内容或取值可以根据各消息的具体情况设定,可以采用相同的设置方式,也可以采用不同的设置方式,本申请对此不做限定。在一个具体的实施例中,比如,T字段为1时,可以标识路由优先级类型;L字段为2字节;V字段为具体路由优先级的数值,比如3。再比如,T字段为2时,可以标识拓扑类型;L字段为2字节;V字段为具体的拓扑标识,比如1。T字段为3时,可以标识下一跳可用带宽类型;L字段为2字节;V字段为具体的可用带宽的数值,比如20000kbit/sec。再比如,T字段为4时,可以标识下一跳负载均衡比例类型;L字段为2字节;V字段为具体的负载均衡比例,比如50%,标识下一跳参与50%的负载分担。
应理解,上述列举的路由同步属性信息的类型仅为示例性说明,不应对本申请构成任何限定。用于承载路由同步属性信息的字段并不限于上述Route SynchronizationAttribute字段或Route Attribute object字段,还可以通过其他现有的或新增的字段来承载,本申请对此并未特别限定。并且,这里所列举的Type1类型为路由优先级类型,Type2类型为拓扑类型,Type3为下一跳可用带宽类型,Type4为下一跳负载均衡比例类型,同样不应对本申请构成任何限定。本申请实施例不排除通过Type1至Type4来指示其他类型,或者用其他方式来指示路由优先级类型、拓扑类型、下一跳可用带宽类型以及下一跳负载均衡比例类型的可能。并且,本申请实施例对于路由同步属性信息的类型的数量也并未特别限定。
可选的,在本申请中,还可以单独采用下一跳属性字段来携带所述下一跳的属性信息。
在一个具体的实施方式中,在上述以BGP UPDATE Message承载所述CRP路由表项信息的实施例中,所述第一BGP UPDATE Message还包括下一跳属性Next Hop Attribute字段,所述Next Hop Attribute字段承载所述第一下一跳的属性信息。可选的,所述Next HopAttribute字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应,每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的属性信息的类型中的任意一种,所述V字段指示基于所对应的下一跳的属性信息类型所确定的内容。
在另一个具体的实施方式中,在上述以PCEP Message承载所述CRP路由表项信息的实施例中,所述第一PCEP Message还包括PCEP下一跳属性对象Next Hop Attributeobject字段,所述承载所述第一下一跳的属性信息。可选的,所述PCEP Next HopAttribute object字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应,每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的属性信息类型中的任意一种,所述V字段指示基于所对应的下一跳的属性信息类型所确定的内容。
上述两种单独采用下一跳属性字段来携带所述下一跳的属性信息的实施方式中,所述TLV的具体内容或取值可以根据各消息的具体情况设定,可以采用相同的设置方式,也可以采用不同的设置方式,本申请对此不做限定。在本申请实施例中,比如,T字段为1时,可以标识可用带宽类型;L字段为2字节;V字段为具体的可用带宽的数值,比如20000kbit/sec。再比如,T字段为2时,可以标识负载均衡比例类型;L字段为2字节;V字段为具体的负载均衡比例,比如50%,标识下一跳参与50%的负载分担。
应理解,上述列举的下一跳的属性信息类型仅为示例性说明,不应对本申请构成任何限定。用于承载下一跳的属性信息的字段并不限于上述Next Hop Attribute字段或Next Hop Attribute object字段,还可以通过其他现有的或新增的字段来承载,本申请对此并未特别限定。并且,这里所列举的Type1类型为可用带宽类型,Type2类型为负载均衡比例类型,同样不应对本申请构成任何限定。本申请实施例不排除通过Type1和Type2来指示其他类型,或者用其他方式来指示可用带宽类型和负载均衡类型的可能。并且,本申请实施例对于Next Hop Attribute的类型的数量也并未特别限定。
在本申请中,通过在路由属性信息中携带路由优先级,可以实现对CRP路由优先级的灵活设置,例如,将CRP路由设置为优选路由,从而实现使用控制器发布的路由对流量进行控制的目的。对于后续针对路由的各种复杂的策略控制,通过升级控制器即可完成,无需像现有路由策略,比如BGP路由策略,需要所有设备都实现复杂的策略。因而,使得流量调控更为简单,灵活。另外,在某些应用场景下,客户认为内部部署的IGP路由受信任应该被优选,而外部路由不受信任不应被优选,则也可以将所述CRP路由的优先级设置为低于ISIS路由以及OSPF路由的优先级。由此可见,通过对CRP路由的优先级进行设定,可以满足客户的不同需求。
进一步的,通过路由属性信息中携带所述下一跳的属性信息,使得网络设备可以在所述CRP路由表中,获取所述下一跳的属性信息,并将所述下一跳的属性信息发送到FIB中,指导报文转发。
需要说明的是,当所述CRP路由表项信息包括所述路由同步属性信息时,在所述网络设备接收到所述第一消息后,根据所述第一标识信息的指示,将所述路由同步属性信息保存到所述CRP路由表中。具体地,当网络设备接收所述第一消息,以第一消息中携带的路由前缀为关键值,进行CRP路由表查找,命中相应的表项,则使用所述路由同步属性信息更新所命中的表项中的相应信息。如果没有命中相应的表项,则创建一条新的表项,将所述路由同步属性信息保存到所述新的表项中。
进一步的,在所述网络设备接收到所述第一消息后,根据所述第一标识信息的指示,将所述下一跳的属性信息保存到本地的下一跳表中。具体地,所述网络设备除了将所述第一下一跳的属性信息保存到所述CRP路由表以外,还以所述第一消息中携带的第一下一跳的地址为关键值,在自身保存的下一跳表中进行查找,如果命中相应的表项,则使用所述下一跳的属性信息更新所找到的表项中的相应信息,如果没有命中表项,则创建一条新的表项,用于保存所述第一下一跳的地址和所述第一下一跳的属性信息。
需要说明的是,当所述第一消息中未携带所述路由同步属性信息时,则网络设备可以按照现有的规则以缺省值处理,例如:设置协议间选路优先级为1,不限制下一跳的带宽,不设置下一跳的负载均衡比例,不指定下一跳的类型。
示例,所述下一跳表的格式可以如表3所示:
Figure BDA0002493027740000231
表3
如表3所示,下一跳表中包括多条下一跳的表项,包括多个字段:
Next-Hop字段:表示下一跳的地址;
Type字段:表示下一跳接入的类型,比如:IP网络、VXLAN等;
Status字段:表示下一跳状态;
Band Width字段:表示下一跳可用带宽;
Weight字段:表示下一跳负载均衡比例。以百分比计算,100表示此下一跳不参与负载均衡。
在一个具体的实施方式中,上述的“Status”字段,可以由32位比特组成,每个比特代表在一种下一跳状态。示例,“Status”字段的封装格式如表4所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
V U
表4
V-valid,1表示合法下一跳,0表示不合法下一跳;
U-used,1表示被使用的下一跳,0表示未被使用的下一跳。
Status编码示例说明:
0xC0000000:V、U比特都为1,表示该下一跳是合法的、且正被使用。
本示例以如上两个比特位为例,结合本申请说明如何使用下一跳表中的Status字段。本领域技术人员可以理解,上述两个个比特位中,0和1还可以表示相反的含义,比如:
V-valid,0表示合法下一跳,1表示不合法下一跳;
U-used,0表示被使用的下一跳,1表示未被使用的下一跳。
也可以用其它数值来表示上述状态信息,本申请实施例对此不作具体限定。
本领域技术人员可以理解,Status字段还可以采用其它的封装格式进行封装,此处仅是示例性说明,不应理解为对本申请的限定。
需要说明的是,网络设备把下一跳的信息保存到该网络设备单独维护的表中,该表称之为“下一跳表”。
在一个具体的实施方式中,该网络设备中仅维护一个下一跳表,将该一个下一跳表与该网络设备所维护的所有路由表相关联。具体来说,下一跳表中的每个下一跳表项都记录有下一跳的地址与下一跳的属性信息的映射关系。而路由表中则记录有路由前缀与下一跳的地址的映射关系。而路由表中可能存在多个不同的路由前缀对应同一个下一跳A的地址的情形,即路由表中存在多条路由表项,该多条路由表项的路由前缀不同,但是都对应同一个下一跳A的地址。而在网络设备中,下一跳表中也存在一条表项,用于记录该下一跳A的地址以及该下一跳A的属性信息。网络设备会将下一跳A的表项与路由表中所有使用下一跳A的地址的路由表项相关联。
上述“所有的路由表”包括该网络设备用于保存通过不同协议发布的路由的多个路由表。
在另一个具体的实施方式中,该网络设备独立维护多个下一跳表,每个下一跳表与保存每个协议发布的路由的路由表相对应,例如:下一跳表1与ISIS路由表相对应,下一跳表2与CRP路由表相对应。即该多个下一跳表与所述多个路由表分别关联,换言之,该多个下一跳表与该多个路由表之间存在一一映射的关系。
作为示例,可以以下一跳的地址为索引,查找到使用该下一跳的地址的所有路由表项,本领域技术人员可以理解,不排除采用其它字段作为索引,来查找与下一跳地址相对应的路由表项,此处仅是示例性说明,不应理解为对本申请的限定。
可选的,所述网络设备自身保存有CRP表,所述CRP表包括所述CRP路由表和所述下一跳表。所述CRP表包括多条CRP表项,所述CRP表项包括所述CRP路由表项和所述下一跳的表项。
需理解,表3中列出的下一跳的表项信息仅是例举,并不对本申请构成限定。另外,虽然表3中列出了多种信息,但是本领域技术人员可以理解,下一跳的表项信息可以包括所述多种信息中的一种或多种,而不必包括全部信息。或者,下一跳的表项信息也可以仅包括未在此处列出的其它字段所表示的信息,本申请实施例对此不作具体限定。
可选的,所述方法300还可以包括S306-S310:
S306、所述控制器确定所述网络设备的第二下一跳的表项信息。
所述第二下一跳的表项信息记录第二下一跳的地址与第二下一跳的属性信息的映射关系。所述第二下一跳的地址可以和所述第一下一跳的地址相同,也可以与所述第一下一跳的地址不同。
第二下一跳的属性信息类型包括但不限于以下参数的类型:下一跳接入的类型,例如IP,VXLAN等;可用带宽(Band Width)以及负载均衡比例(Weight)等。
S307、所述控制器生成第二消息,用于发送所述第二下一跳的表项信息。
具体地,所述控制器生成第二消息,所述第二消息携带所述第二下一跳的表项信息,所述第二消息中包括第二标识信息,所述第二标识信息用于指示所述网络设备将所述第二下一跳的表项信息保存在本地的下一跳表中。所述下一跳的表项信息中可以不必包括路由前缀,使得控制器可以单独向网络设备发送下一跳的信息。
所述第二标识信息用于指示所述网络设备将所述第二下一跳的表项信息保存在本地的下一跳表中,具体包括:
所述第二标识信息用于指示所述网络设备在所述下一跳表中创建或者更新所述第二下一跳的表项信息。
在一个具体的实施方式中所述第二消息为第二BGP UPDATE Message,所述第二BGP UPDATE Message中包括多协议可达网络层可达性信息MP_REACH_NLRI属性字段和下一跳的属性Next Hop Attribute字段。所述MP_REACH_NLRI属性字段中包括子地址族标识SAFI字段、网络层可达性信息NLRI字段和下一跳信息字段。所述SAFI字段指示该MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第二标识信息。其中,该第二标识信息可以由该SAFI字段中SAFI的值所直接表示。所述NLRI字段承载所述第二下一跳的地址或所述下一跳信息字段承载所述第二下一跳的地址。可选的,所述NLRI字段包括类型长度值TLV字段,所述TLV字段的类型T字段表示所述TLV字段的类型为下一跳同步类型,所述TLV字段的值V字段承载所述第二下一跳的地址。所述Next Hop Attribute字段承载所述第二下一跳的属性信息。可选的,所述Next Hop Attribute字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述第二下一跳的属性信息类型中的任意一种,所述V字段指示基于所对应的所述第二下一跳的属性信息类型所确定的内容。
在另一个具体的实施方式中,所述第二消息为第二PCEP Message。所述第二PCEPMessage包括消息类型Message-Type字段、下一跳对象Next Hop object字段以及下一跳属性对象Next Hop Attribute object字段。所述Message-Type字段用于承载所述第二标识信息。所述Next Hop object字段承载所述第二下一跳的地址。所述Next Hop Attributeobject字段承载所述第二下一跳的属性信息。可选的,所述Next Hop Attribute object字段包括至少一个子TLV字段,每种下一跳的属性信息类型与所述至少一个子TLV字段中的一个子TLV字段对应,每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的属性信息类型中的任意一种,所述V字段指示基于所对应的下一跳的属性信息类型所确定的内容。
在本申请实施例中,所述第二PCEP Message中的Message-Type可以理解为基于现有的PCEP协议中Message-Type扩展的消息类型,Message-Type的值可以根据IETF制定的标准确定。通过新定义一个Message-Type的值,用来指示第二PCEP Message是用于更新或者创建下一跳的消息。第二PCEP Message也可以称之为PCE实例化下一跳消息PCE-initiatedNexthop Message。
可选的,所述第二标识信息由该Message-Type字段中Message-Type的值所直接表示。
可选的,所述第二PCEP Message还包括状态请求参数(英文:RequestParameters,RP)对象object字段。所述Message-Type字段用于承载所述第二标识信息,具体包括所述所述Message-Type字段和所述RP object字段共同承载所述第二标识信息,即第二标识信息由该Message-Type字段中Message-Type的值与所述RP object字段中R标记的值来共同表示。
具体地,所述RP object的封装格式以及各字段的解释可以参照RFC5440的相关定义。所述Message-Type字段用于标识所述第二PCEP Message是用于单独发送下一跳信息的消息,所述下一跳信息至少包括下一跳的地址。当RP object中的R标记置为0时,所述网络设备将所述第二下一跳的表项信息保存在本地的所述下一跳表中。即Message-Type字段和所述RP object字段共同承载所述第二标识信息。
本领域技术人员可以理解,用于和所述Message-Type字段共同承载所述第二标识信息的字段并不限于上述RP object字段,还可以通过其他现有的或新增的字段来承载,本申请对此并未特别限定。并且,这里例举R标记置为0,所述网络设备将所述第二下一跳的表项信息保存在本地的所述下一跳表中,同样不应对本申请构成任何限定。本申请实施例不排除通过R标记置为1或者其他值时,所述网络设备保存所述第二下一跳的表项信息的可能。
上述两种携带所述下一跳的属性信息的实施方式中,TLV的具体内容或取值可以根据各消息的具体情况设定,可以采用相同的设置方式,也可以采用不同的设置方式,本申请对此不做限定。在一个具体的实施例中,比如,T字段为1时,可以标识可用带宽类型;L字段为2字节;V字段为具体的可用带宽的数值,比如20000kbit/sec。再比如,T字段为2时,可以标识负载均衡比例类型;L字段为2字节;V字段为具体的负载均衡比例,比如50%,标识下一跳参与50%的负载分担。
应理解,上述列举的下一跳的属性信息类型仅为示例性说明,不应对本申请构成任何限定。用于承载下一跳的属性信息的字段并不限于上述Next Hop Attribute字段或Next Hop Attribute object字段,还可以通过其他现有的或新增的字段来承载,本申请对此并未特别限定。并且,这里所列举的Type1类型为可用带宽类型,Type2类型为负载均衡比例类型,同样不应对本申请构成任何限定。本申请实施例不排除通过Type1和Type2来指示其他类型,或者用其他方式来指示可用带宽类型和负载均衡类型的可能。并且,本申请实施例对于下一跳的属性信息类型的数量也并未特别限定。
S308、控制器向网络设备发送所述第二消息。
具体地,所述控制器向所述网络设备发送所述第二消息,以便于所述网络设备根据所述第二标识信息将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。
可选的,所述控制器自身保存有下一跳表,控制器确定所述第二下一跳的表项信息后,在自身保存的下一跳表中保存所述第二下一跳的表项信息。
S309、网络设备接收所述第二消息。
S310、网络设备将所述第二下一跳的表项信息保存在所述下一跳表中。
在一个具体的实施方式中,网络设备将所述第二下一跳的表项信息保存在所述下一跳表中,具体包括:
网络设备接收到所述第二消息后,以所述第二消息中携带的所述第二下一跳的地址为关键字,在自身保存的下一跳表中进行表项查找,如果命中相应的表项,则使用所述第二下一跳的表项信息更新所找到的表项。如果没有命中相应的表项,则创建一条新的下一跳的表项,将所述第二下一跳的表项信息保存到新创建的下一跳的表项中。
需要说明的是,当所述第二消息中未携带所述第二下一跳的属性信息时,则网络设备可以按照现有的规则以缺省值处理,例如:不限制下一跳的带宽,不设置下一跳的负载均衡比例,不指定下一跳接入的类型。
通过本实施例提供的技术方案,控制器可以向转发设备单独发送下一跳信息,实现了控制器对转发设备的下一跳信息进行单独管理。单独管理包括单独创建或者更新下一跳信息,而不必绑定路由前缀。上述方案使得控制器对于转发设备的下一跳管理更加灵活;并且有效的节省控制器与转发设备的信息交互中,由于携带所述路由前缀所占用的系统资源;转发设备需要解析的信息减少,也提高了转发设备的业务处理效率。
进一步的,控制器向转发设备独立发送下一跳信息时,携带控制器定制的下一跳的属性信息,使得网络设备可以在下一跳表中,获取所述所述下一跳的属性信息,并将所述下一跳的属性信息发送到FIB表中,用于指导报文转发。
可选的,所述方法还可以包括S311-S315。
S311、控制器生成第三消息。
所述第三消息携带所述网络设备的第三下一跳的地址,所述第三消息中包括第三标识信息,所述第三标识信息用于指示所述网络设备在本地保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。
在一个具体的实施方式中,第三消息为第三BGP UPDATE Message。
所述第三BGP UPDATE Message中包括多协议不可达网络层可达性信息MP_UNREACH_NLRI属性字段。所述MP_UNREACH_NLRI属性字段中包括子地址族标识SAFI字段、不可达网络层可达性信息NLRI字段。所述SAFI字段指示该MP_UNREACH_NLRI属性字段是基于所述BGP同步地址族所支持的封装格式封装的,并承载所述第三标识信息。其中,该所述第三标识信息由该BGP同步地址族SAFI字段中SAFI的值所直接表示。所述不可达NLRI字段承载所述第三下一跳的地址或所述下一跳信息字段承载所述第三下一跳的地址。
该BGP同步地址族新增的所述MP_UNREACH_NLRI的封装格式如图12所示。
其中,MP_UNREACH_NLRI可以理解为网络层不可达NLRI的多协议扩展属性信息,它包括地址族信息域和不可达网络层可达性信息(NLRI)域两部分。
其中,关于地址族信息域的相关说明参见关于图4的相关说明,此处不再赘述。
不可达NLRI域包括不可达NLRI字段。
在一个具体的实施方式中,不可达NLRI字段可以由一个二元组<Length-Next Hop>标识。Length:表示下一跳的地址字段的长度,以字节为单位。Next Hop:包含了下一跳的地址,后面则是填充比特,用于保证字段结尾符合字节边界,填充比特的值无意义。
在另一个具体的实施方式中,不可达NLRI字段可以包括TLV字段(可变长度)。TLV字段的示意图可参照图5。其中,类型T字段表示该TLV字段的类型为BGP同步类型,长度L字段表示V字段的长度,值V字段承载根据所述BGP同步类型所确定的内容。在本申请实施例中,具体地,T字段值为2时,可以标识下一跳同步类型。可选的,L字段值为16比特,即,2字节,指示V字段具体的长度值。例如:当L字段为4时,V字段为一个4字节的IPv4地址,当L字段为16时,V字段为一个16字节唱的IPv6地址;V字段为2字节的下一跳的地址。
应理解,这里所列举的Type2类型为下一跳同步类型仅为示例性说明,不应对本申请构成任何限定。本申请实施例不排除通过Type2来指示其他类型,或者用其他方式来指示下一跳同步类型的可能。并且,本申请实施例对于NLRI Type的类型的数量也并未特别限定。
在另一个具体的实施方式中,所述第三消息是第三PCEP Message。所述第三PCEPMessage包括消息类型Message-Type字段和下一跳对象Next Hop object字段。所述Message-Type字段指示所述第三PCEP Message用于向所述网络设备发送所述第三下一跳的地址,并用于承载所述第三标识信息。其中,所述第三标识信息由该Message-Type字段中Message-Type的值所直接表示。所述Next Hop object字段承载所述第三下一跳的地址。
所述第三PCEP Message的封装格式与所述第二PCEP Message的封装格式相同,具体说明,参见前文中对于第二PCEP Message的封装格式的相关说明。
在本申请实施例中,所述第三PCEP Message中的Message-Type可以理解为基于现有的PCEP协议中Message-Type扩展的消息类型,Message-Type的值可以根据IETF制定的标准确定。
在一个具体的实施方式中,根据所述扩展的Message-Type承载所述第三标识信息,用于指示所述网络设备在本地保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。所述第三标识信息由该Message-Type字段中Message-Type的值所直接表示。第三PCEP Message也可以称之为PCE实例化下一跳消息PCE-initiated Next HopMessage。
在另一个具体的实施方式中,所述第三PCEP Message还包括状态请求参数(英文:Request Parameters,RP)对象object字段。所述Message-Type字段承载所述第三标识信息,具体包括:所述Message-Type字段和所述RP object字段共同承载所述第三标识信息。即第三标识信息由该Message-Type字段中Message-Type的值与所述RP object字段中R标记的值来共同表示。
具体地,所述RP object中各字段的解释可以参照RFC5440的相关定义。所述Message-Type字段用于标识所述第三PCEP Message是用于发送所述第三下一跳的地址的消息。当RP object中的R标记置为1时,所述网络设备在本地保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。即Message-Type字段和所述RP object字段共同承载所述第三标识信息。
本领域技术人员可以理解,用于和所述Message-Type字段共同承载所述第三标识信息的字段并不限于上述RP object字段,还可以通过其他现有的或新增的字段来承载,本申请对此并未特别限定。并且,这里列举的R标记置为1,所述网络设备在本地保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项,同样不应对本申请构成任何限定。也可以是R标记置为0或者其他值时,所述网络设备删除所述第三下一跳的表项。本申请实施例不排除通过R标记置为0或者其他值时,所述网络设备删除所述第三下一跳的表项的可能。
S312、控制器向网络设备发送所述第三消息。
S313、网络设备接收所述第三消息。
S314、网络设备根据所述第三标识信息的指示,在本地保存的下一跳表中删除所述第三下一跳的表项。
具体地,网络设备接收到所述第三消息后,以所述第三消息中携带的第三下一跳的地址为关键字,在自身保存的下一跳表中进行表项查找,如果命中第三下一跳的表项,则在所述下一跳表中删除所述第三下一跳的表项。如果没有命中相应的表项,则处理结束。
可选的,所述方法还包括:
S315、所述网络设备删除与所述第三下一跳的地址关联的路由表项。
具体的,在网络设备中保存有多个路由表,每个路由表中都可能记录有与所述第三下一跳的地址相关联的路由表项。当网络设备确定所述第三下一跳的地址不可用时,会以该第三下一跳地址为索引,查找到使用该第三下一跳的地址的所有路由表项,并删除与所述第三下一跳的地址关联的所有路由表项。
通过本实施例提供的技术方案,当有多条路由前缀同时对应同一个下一跳,通过删除该多条路由前缀所对应的下一跳,进而可以删除使用该下一跳的多条路由表项。控制器和转发设备之间只需要发送一条消息,即可实现快速,批量删除路由表项的目的。因而大大减少了控制器和转发设备之间交互消息的数量,节省了系统资源,提高了业务处理效率。
需要说明的是,本申请对S301-S305、S306-S310以及S311-S315的执行顺序不作具体限定。例如:S306-S310可以在S301-S305之前执行,也可以在S301-S305之后执行。S311-S315可以在S306-S310之前执行,也可以在S306-S310之后执行。
可选的,所述方法300还可以包括S316-S318:
S316、网络设备生成第四消息。。
所述第四消息携带路由状态报告信息,所述路由状态报告信息记录所述路由前缀和所述CRP路由的状态信息的映射关系。
所述CRP路由的状态信息包括但不限于:路由的状态,例如路由是否合法,是否被优选,是否被发送到FIB中等;路由的存活时间;下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。其中与下一跳相关的状态信息(例如下一跳的状态,例如下一跳是否合法,是否被使用等,下一跳带宽占用比例,下一跳丢包率,下一跳发包延时,以及下一跳存活时间)也可以放在以下步骤319中描述的下一跳状态报告信息中携带。具体可以参见下面说明。
在一个具体的实施方式中,所述第四消息为第四BGP UPDATE Message,所述第四BGP UPDATE Message包括MP_REACH_NLRI属性字段和路由状态报告属性Route StatusReport Attribute字段。所述MP_REACH_NLRI属性字段中包括NLRI字段。所述NLRI字段用于承载所述路由前缀。所述Route Status Report Attribute字段用于承载所述CRP路由的状态信息。可选的,所述Route Status Report Attribute字段包括至少一个子TLV字段,每个所述CRP路由的状态信息的类型与所述至少一个子TLV字段对应,每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述CRP路由的状态信息类型中的任意一种,所述V字段指示基于所对应的CRP路由的状态信息类型所确定的内容。
在另一个具体的实施方式中,所述第四消息为第四PCEP Message,所述第四PCEPMessage包括消息类型Message-Type字段、路由对象Route object字段以及路由状态报告属性对象Route Status Report Attribute object字段。所述Message-Type字段指示所述第四PCEP Message用于向所述控制器发送所述路由状态报告信息。所述Route object字段承载所述路由前缀。所述Route Status Report Attribute object字段承载所述CRP路由的状态信息。可选的。所述Route Status Report Attribute object字段包括至少一个子TLV字段,每个所述CRP路由的状态信息的类型与所述至少一个子TLV字段对应,每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述CRP路由的状态信息类型中的任意一种,所述V字段指示基于所对应的CRP路由的状态信息类型所确定的内容。
在本申请实施例中,比如,T字段为1是,可以标识所述CRP路由的路由当前状态Status类型;L字段为2字节;所述V字段指示CRP路由的路由当前状态Status的具体内容,比如当前路由是否合法,是否优选,是否激活等。
应理解,这里所列举的Type1类型为所述CRP路由的路由当前状态Status类型仅为示例性说明,不应对本申请构成任何限定。本申请实施例不排除通过Type1来指示其他类型,或者用其他方式来指示所述CRP路由的路由当前状态Status类型的可能。并且,本申请实施例对于TLV Type的类型的数量也并未特别限定。
在一个具体的实施方式中,所述网络设备在本地保存有路由状态报告信息表,用于保存所述路由状态报告信息。可选的,所述CRP表包括所述路由状态报告信息表。作为示例,所述路由状态报告信息表如表5所示:
Figure BDA0002493027740000301
Figure BDA0002493027740000311
表5
如表5所示,路由状态报告信息表中包括多个字段,对于各字段解释如下:
Network字段:表示所述路由前缀;
Next-Hop字段:表示下一跳的地址;
Status字段:表示路由状态;
Age字段:表示当前路由的存活时间;
Band Width字段:表示下一跳的可用带宽。
对于Status字段的封装格式以及相关说明参见表2以及对表2进行的相关说明,此处不再赘述。
需理解,表5中列出的多种状态信息仅是例举,并不对本申请构成限定。另外,虽然表5中列出了多种状态信息,但是本领域技术人员可以理解,路由状态报告信息可以包括所述多种状态信息中的一种或多种,而不必包括全部状态信息。或者,路由状态报告信息也可以仅包括未在此处列出的其它字段所表示状态信息,本申请实施例对此不作具体限定。
S317、网络设备向控制器发送第四消息。
在一个具体的实施方式中,网络设备周期性上报所述CRP路由的状态信息。例如,在系统稳定运行的情况下,通过配置或者协商,180秒上报一次,网络设备将流量统计信息以及带宽使用信息等路由的状态信息上报给控制器。
在另一个具体的实施方式中,网络设备实时上报所述路由的状态信息。例如,在系统发生重要事件时,比如路由信息所对应的表项由优选变为不再优选,或者路由表项迭代隧道不成功等情况发生时,网络设备将所述路由的状态信息上报给控制器。
S318、控制器接收所述第四消息。
控制器根据接收到的路由状态报告信息,更新所述路由前缀的统计信息,作为重新计算所述CRP路由的依据。
通过以上技术方案,控制器可以定期、实时获取转发设备上报的路由状态信息,能够实时了解转发设备的状态,作为调整路由的依据,提高了流量调控的可靠性以及实时性。
可选的,所述方法300还可以包括S319-S321。
S319、网络设备生成第五消息。
所述第五消息携带下一跳状态报告信息,所述下一跳状态报告信息记录第四下一跳的地址和第四下一跳的状态信息的映射关系。
所述下一跳状态报告信息包括但不限于:下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
在一个具体的实施方式中,所述第五消息为第五BGP UPDATE Message。所述第五BGP UPDATE Message包括多协议可达网络层可达信息MP_REACH_NLRI属性字段和下一跳状态报告属性Next Hop Status Report Attribute字段。所述MP_REACH_NLRI属性字段中包括网络层可达信息NLRI字段,所述NLRI字段用于承载所述第四下一跳的地址。所述NextHop Status Report Attribute字段用于承载所述第四下一跳的状态信息。可选的,所述Next Hop Status Report Attribute字段包括至少一个子TLV字段,每种下一跳的状态信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的状态信息类型中的任意一种,所述V字段指示基于所对应的下一跳的状态信息类型所确定的内容。
在另一个具体的实施方式中,所述第五消息为第五PCEP Message。所述第五PCEPMessage包括消息类型Message-Type字段、下一跳对象Next Hop object字段以及下一跳状态报告属性对象Next Hop Status Report Attribute object字段。所述Message-Type字段指示所述第五PCEP Message用于向所述控制器发送所述下一跳状态报告信息。所述NextHop object字段承载所述第四下一跳的地址。所述Next Hop Status Report Attributeobject字段承载所述第四下一跳的状态信息。可选的,所述Next Hop Status ReportAttribute object字段包括至少一个子TLV字段,每种下一跳的状态信息类型与所述至少一个子TLV字段中的一个子TLV字段对应。每个子TLV字段都包括T字段、L字段和V字段,所述T字段表示所述下一跳的状态信息类型中的任意一种,所述V字段指示基于所对应的下一跳的状态信息类型所确定的内容。
在本申请实施例中,比如,T字段为1是,可以标识下一跳当前状态Status类型;L字段为2字节;所述V字段指示下一跳状态Status的具体内容,比如当前路由是否合法,是否优选,是否激活等。
应理解,这里所列举的Type1类型为所述下一跳当前状态Status类型仅为示例性说明,不应对本申请构成任何限定。本申请实施例不排除通过Type1来指示其他类型,或者用其他方式来指示所述下一跳当前状态Status类型的可能。并且,本申请实施例对于TLVType的类型的数量也并未特别限定。
在另一个具体的实施方式中,所述网络设备在本地保存有下一跳状态报告信息表,用于保存下一跳状态报告信息。可选的,所述CRP表包括所述下一跳状态报告信息表。作为示例,所述下一跳状态报告信息表如表6所示:
Figure BDA0002493027740000321
表6
如表6所示,下一跳状态报告信息表包括多个字段,对各字段解释如下:
Next-Hop字段:表示下一跳网络地址;
Type字段:表示下一跳类型;
Status字段:表示下一跳状态;
Band Width字段:表示下一跳可用带宽;
Weight字段:表示下一跳负载均衡比例;
Loss字段:表示丢包的报文数;
Delay字段:表示时延,单位是微秒。
对于Status字段的封装格式以及相关说明参见表4以及对表4进行的相关说明,此处不再赘述。
需理解,表6中列出的多种状态信息仅是例举,并不对本申请构成限定。另外,虽然表6中列出了多种状态信息,但是本领域技术人员可以理解,下一跳状态报告信息可以包括所述多种状态信息中的一种或多种,而不必包括全部状态信息。或者,下一跳状态报告信息也可以仅包括未在此处列出的其它字段所表示的其它状态信息,本申请实施例对此不作具体限定。
S320、网络设备向控制器发送所述第五消息。
在一个具体的实施方式中,网络设备周期性上报所述下一跳状态信息。例如,在系统稳定运行的情况下,通过配置或者协商,180秒上报一次,网络设备将流量统计信息以及带宽使用信息等下一跳的状态信息上报给控制器。
在另一个具体的实施方式中,网络设备实时上报所述下一跳的状态信息。例如,在系统发生重要事件时,比如下一跳信息所对应的表项由可达变为不可达,或者该下一跳所对应的出口链路的带宽使用率超过了阈值(例如90%)等情况发生时,网络设备将所述下一跳的状态信息上报给控制器。
S321、控制器接收所述第五消息。
控制器根据接收到的下一跳状态报告信息,更新所述网络设备的下一跳信息的统计信息,作为重新计算所述下一跳信息的依据。
通过以上技术方案,控制器可以定期、实时获取转发设备上报的下一跳状态信息,能够实时了解转发设备的状态,作为计算,调整下一跳的依据,提高了流量调控的可靠性以及实时性。
需要说明的是,本申请对S301-S305、S306-S310、S311-S315、S316-S318以及S319-S321的执行顺序不作具体限定。
以上,结合图2至图12详细说明了根据本申请实施例提供的信息同步的方法。以下,结合图13-图16详细说明根据本申请实施例提供的用于信息同步的装置和系统。
图13是根据本申请一实施例的控制器400的示意图。该控制器400可以是图2中的控制器110,可以用于执行图3所示的方法。如图13所示,该控制器400包括:处理模块401和发送模块402。
该处理模块401用于确定控制路由协议CRP路由表项信息,所述CRP路由表项信息包括路由前缀和第一下一跳的地址的映射关系。该处理模块401还用于生成第一消息,所述第一消息携带所述CRP路由表项信息,用于发布CRP路由。所述第一消息中包括第一标识信息,所述第一标识信息用于指示网络设备将所述CRP路由表项信息保存在所述网络设备的CRP路由表中。
该发送模块402用于向所述网络设备发送所述第一消息,以便于所述网络设备根据所述第一标识信息将所述CRP路由表项信息保存在所述CRP路由表中,并根据所述CRP路由表指导报文转发。
在一个具体的实施方式中,所述第一消息为第一边界网关协议BGP更新消息UPDATE Message。所述第一BGP UPDATE Message中包括多协议可达网络层可达信息MP_REACH_NLRI属性字段。所述MP_REACH_NLRI属性字段中包括子地址族标识SAFI字段、网络层可达信息NLRI字段和下一跳信息字段。所述SAFI字段指示该MP_REACH_NLRI属性字段是基于BGP同步地址族所支持的封装格式封装的,并承载所述第一标识信息。所述NLRI字段承载所述路由前缀。可选的,所述NLRI字段包括类型长度值TLV字段,所述TLV字段的类型T字段表示所述TLV字段的类型为BGP路由同步类型,所述TLV字段的值V字段承载所述路由前缀,所述下一跳信息字段承载所述第一下一跳的地址。
其中,所述第一标识信息可以由所述SAFI字段中SAFI的值直接表示。
在另一个具体的实施方式中,所述第一消息为第一路径计算单元通信协议消息PCEP Message,所述第一PCEP Message包括消息类型Message-Type字段、路由对象Routeobject字段以及下一跳对象Next Hop object字段;所述Message-Type字段承载所述第一标识信息,所述Route object字段承载所述路由前缀,所述Next Hop object字段承载所述第一下一跳的地址。
其中,所述第一标识信息可以由该Message-Type字段中Message-Type的值直接表示。
因此,根据本申请实施例的控制器,通过在控制器和网络设备之间运行CRP协议,网络设备上创建单独的CRP路由表,用于保存控制器发送的CRP路由表项信息。CRP路由表中优选的路由被添加到RM RIB中,使得RM模块可以在CRP路由、ISIS路由,BGP路由,OSPF路由等通过不同的路由协议所生成的路由之间进行路由选择,并且由于该控制器发布的CRP路由与转发设备之间的路由协议发布的路由保存在不同的路由表中,从而使得CRP路由相关的路由策略不会影响到转发设备间的路由协议中路由所体现的路由策略的相关应用。
可选的,所述CRP路由表项信息还包括:路由同步属性信息,所述路由同步属性信息用于所述控制器发送路由前缀时携带通过所述控制器制定的路由属性信息。
所述路由同步属性包括但不限于:所述路由优先级、所述拓扑以及下一跳的属性信息。
所述第一下一跳的属性信息包括以下一种或多种下一跳的属性信息的类型:带宽、负载均衡比例和下一跳的类型。
在一个具体的实施方式中,在上述以BGP UPDATE Message承载所述CRP路由表项信息的实施例中,所述第一BGP UPDATE Message还包括路由同步Route Synchronization属性Attribute字段,用于携带所述路由同步属性。具体的携带方式,即采用什么消息结构或字段格式等,可以参考上述方法实施例中对应部分的描述,此处不再赘述。
在另一个具体的实施方式中,在上述以PCEP Message承载所述CRP路由表项信息的实施例中,所述第一PCEP Message还包括PCEP路由属性对象Route Attribute object字段,用于携带所述路由同步属性。具体的携带方式,即采用什么消息格式和字段格式等,可以参考上述方法实施例中对应部分的描述,此处不再赘述。
上述两种携带所述路由同步属性信息的实施方式中,TLV的具体内容或取值可以根据各消息的具体情况设定,可以采用相同的设置方式,也可以采用不同的设置方式,本申请对此不做限定。
需要说明的是,当所述第一消息中未携带所述路由同步属性信息时,则网络设备可以按照现有的规则以缺省值处理,例如:设置协议间选路优先级为1,不限制下一跳的带宽,不设置下一跳的负载均衡比例,不指定下一跳的类型。
通过在路由属性信息中携带路由优先级,可以实现对CRP路由优先级的灵活设置,例如,将CRP路由设置为优选路由,从而实现使用控制器发布的路由对流量进行控制的目的。对于后续针对路由的各种复杂的策略控制,通过升级控制器即可完成,无需像现有路由策略,比如BGP路由策略,需要所有设备都实现复杂的策略。因而,使得流量调控更为简单,灵活。另外,在某些应用场景下,客户认为内部部署的IGP路由受信任应该被优选,而外部路由不受信任不应被优选,则也可以将所述CRP路由的优先级设置为低于ISIS路由以及OSPF路由的优先级。由此可见,通过对CRP路由的优先级进行设定,可以满足客户的不同需求。
可选的,在本申请中,还可以单独采用下一跳属性字段来携带所述下一跳的属性信息。
在一个具体的实施方式中,在上述以BGP UPDATE Message承载所述CRP路由表项信息的实施例中,所述第一BGP UPDATE Message还包括下一跳同步Next HopSynchronization属性Attribute字段,用于携带所述下一跳的属性信息。具体的携带方式,即采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。
在另一个具体的实施方式中,在上述以PCEP Message承载所述CRP路由表项信息的实施例中,所述第一PCEP Message还包括PCEP下一跳属性对象Next Hop Attributeobject字段,用于携带所述下一跳的属性信息。具体的携带方式,即采用何种消息格式和字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。
通过CRP路由表项信息中携带所述下一跳的属性信息,使得网络设备可以在所述CRP路由表中,获取所述下一跳的属性信息,并将所述下一跳的属性信息发送到FIB中,指导报文转发。
可选的,所述处理模块401还用于生成第二消息。所述第二消息携带所述网络设备的第二下一跳的表项信息,所述第二下一跳的表项信息记录所述网络设备的第二下一跳的地址与第二下一跳的属性信息的映射关系。所述第二消息中包括第二标识信息,所述第二标识信息用于指示所述网络设备将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。
所述发送模块402还用于向所述网络设备发送所述第二消息,以便于所述网络设备根据所述第二标识信息将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。
在一个具体的实施中,所述第二消息为第二BGP UPDATE Message,用于携带所述第二下一跳的表项信息,具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。在另一个具体的实施方式中,所述第二消息为第二PCEP Message。用于携带所述第二下一跳的表项信息,具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。
因此,控制器可以向网络设备单独发送下一跳信息,实现了控制器对网络设备的下一跳信息进行单独管理。单独管理包括单独创建或者更新下一跳信息,而不必绑定路由前缀。上述方案使得控制器对于网络设备的下一跳管理更加灵活;并且有效的节省控制器与网络设备的信息交互中,由于携带所述路由前缀所占用的系统资源;网络设备需要解析的信息减少,也提高了网络设备的业务处理效率。
进一步的,控制器向网络设备独立发送下一跳信息时,携带控制器定制的下一跳的属性信息,使得网络设备可以在下一跳表中,获取所述所述下一跳的属性信息,并将所述下一跳的属性信息发送到FIB表中,用于指导报文转发。
可选的,所述处理模块401还用于生成第三消息,所述第三消息携带所述网络设备的第三下一跳的地址;所述第三消息中包括第三标识信息,所述第三标识信息用于指示所述网络设备在本地保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。
所述发送模块402还用于向所述网络设备发送所述第三消息,以便所述网络设备根据所述第三标识信息的指示删除所述第三下一跳的表项。
在一个具体的实施方式中,所述第三消息为第三BGP UPDATE Message,用于删除所述第三下一跳的表项。具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。
在另一个具体的实施方式中,所述第三消息为第三PCEP Message,用于删除所述第三下一跳的表项。具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。
因此,当存在多条路由表项同时对应同一个下一跳时,通过删除该多条路由表项所对应的下一跳,进而可以删除使用该下一跳的多条路由表项。因此,控制器和网络设备设备之间只需要发送一条消息,即可实现快速,批量删除路由表项的目的。因而大大减少了控制器和网络设备之间交互消息的数量,节省了系统资源,提高了业务处理效率。
在一个具体的实施方式中,所述控制器400还包括接收模块403。所述接收模块403用于接收所述网络设备发送的第四消息;所述第四消息携带路由状态报告信息,所述路由状态报告信息记录所述路由前缀与所述CRP路由的状态信息的映射关系。
所述处理模块401还用于根据接收到的所述路由状态报告信息,更新所述路由前缀的统计信息,作为重新计算所述CRP路由的依据。
所述CRP路由的状态信息包括但不限于:路由的状态,例如路由是否合法,是否被优选,是否被发送到FIB中等;路由的存活时间;下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取网络设备上报的路由状态信息,能够实时了解网络设备路由的状态,作为调整路由的依据,提高了流量调控的可靠性以及实时性。
可选的,所述接收模块403还用于接收所述网络设备发送的第五消息;所述第五消息携带下一跳状态报告信息,所述下一跳状态报告信息记录第四下一跳的地址和第四下一跳的状态信息的映射关系。
所述处理模块401还用于根据接收到的所述下一跳状态报告信息,更新所述第四下一跳的统计信息,作为重新计算所述网络设备的下一跳的依据。
所述下一跳状态报告信息包括但不限于:下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取转发设备上报的下一跳状态信息,能够实时了解转发设备的状态,作为计算,调整下一跳的依据,提高了流量调控的可靠性以及实时性。
根据本申请实施例的控制器400可对应于根据本申请实施例中用于信息同步的方法300中的控制器,并且,该控制器400中的各模块和上述其它操作和/或功能分别为了实现图3中的方法300的相应流程,为了简洁,在此不再赘述。
图14是根据本申请实施例的网络设备500的示意图。该网络设备500可以用于执行图3所示的方法。如图14所示,该网络设备500包括:接收模块501和处理模块502。
所述接收模块501用于接收控制器发送的第一消息;所述第一消息携带所述控制器确定的CRP路由表项信息,用于发布CRP路由;所述CRP路由表项信息记录路由前缀和第一下一跳的地址的映射关系,所述第一消息中包括第一标识信息。
所述处理模块502用于根据所述第一标识信息的指示,将所述CRP路由表项信息保存在本地CRP路由表中,并根据所述CRP路由表指导报文转发。
通过在控制器和网络设备之间运行CRP协议,网络设备上创建单独的CRP路由表,用于保存控制器发送的CRP路由表项信息。由于该控制器发布的CRP路由与网络设备之间的路由协议发布的路由保存在不同的路由表中,从而使得CRP路由相关的路由策略不会影响到网络设备间的路由协议中路由所体现的路由策略的相关应用。
可选的,所述CRP路由表项信息还包括:路由同步属性信息,所述路由同步属性信息用于所述控制器发送路由前缀时携带通过所述控制器制定的路由属性信息。
所述路由同步属性包括但不限于:所述路由优先级、所述拓扑以及下一跳的属性信息。
所述第一下一跳的属性信息包括以下一种或多种下一跳的属性信息的类型:带宽、负载均衡比例和下一跳的类型。
通过在CRP路由表项信息中携带路由优先级,可以实现对CRP路由优先级的灵活设置,例如,将CRP路由设置为优选路由,从而实现使用控制器发布的路由对流量进行控制的目的。对于后续针对路由的各种复杂的策略控制,通过升级控制器即可完成,无需像现有路由策略,比如BGP路由策略,需要所有设备都实现复杂的策略。因而,使得流量调控更为简单,灵活。另外,在某些应用场景下,客户认为内部部署的IGP路由受信任应该被优选,而外部路由不受信任不应被优选,则也可以将所述CRP路由的优先级设置为低于ISIS路由以及OSPF路由的优先级。由此可见,通过对CRP路由的优先级进行设定,可以满足客户的不同需求。
可选的,所述处理模块502还用于将所述第一下一跳的地址和所述第一下一跳的属性信息保存在所述网络设备的下一跳表的第一下一跳的表项中,所述第一下一跳的表项记录所述第一下一跳的地址与所述第一下一跳的属性信息的映射关系。
通过将下一跳的地址和与之映射的下一跳的属性信息保存在网络设备的下一跳表中,使得网络设备可以实现对下一跳的单独管理,例如,通过单独删除下一跳表中的某个下一跳的表项信息,来删除与该下一跳关联的所有路由表项,进而达到批量删除路由表项的目的,能够有效减少控制器和网络设备之间交互消息的数量,节省了系统资源,提高了业务处理效率。
进一步可选的,所述处理模块502还用于获取所述第一下一跳的属性信息,并将所述第一下一跳的属性信息发送到转发信息表中,用于指导报文转发。
可选的,所述接收模块501还用于接收所述控制器发送的第二消息;所述第二消息携带所述网络设备的第二下一跳的表项信息;所述第二下一跳的表项信息记录所述网络设备的第二下一跳的地址与第二下一跳的属性信息的映射关系,所述第二消息中包括第二标识信息。
所述处理模块502还用于根据所述第二标识信息的指示,将所述第二下一跳的表项信息保存在所述网络设备的下一跳表中。
因此,网络设备通过接收控制器单独发送的下一跳信息,实现了单独创建或者更新下一跳信息,而不必绑定路由前缀。上述方案使得控制器对于网络设备的下一跳管理更加灵活;并且有效的节省控制器与网络设备的信息交互中,由于携带所述路由前缀所占用的系统资源;网络设备需要解析的信息减少,也提高了网络设备的业务处理效率。
可选的,所述处理模块502还用于获取所述第二下一跳的属性信息,并将所述第二下一跳的属性信息发送到转发信息表中,指导报文转发。
可选的,所述接收模块501还用于接收所述控制器发送的第三消息;所述第三消息携带所述网络设备的第三下一跳的地址,所述第三消息中包括第三标识信息。
所述处理模块502还用于根据所述第三标识信息的指示,在所述网络设备保存的下一跳表中删除与所述第三下一跳的地址对应的第三下一跳的表项。
具体地,所述处理模块502根据所述第三标识信息的指示,以所述第三下一跳的地址为关键字,查找所述下一跳表,命中所述第三下一跳的表项,将所述第三下一跳的表项删除。
所述处理模块还用于删除与所述第三下一跳的地址关联的所述路由表项。
因此,当存在多条路由表项同时对应同一个下一跳时,通过删除该多条路由表项所对应的下一跳,进而可以删除使用该下一跳的多条路由表项。因此,控制器和网络设备设备之间只需要发送一条消息,即可实现快速,批量删除路由表项的目的。因而大大减少了控制器和转发设备之间交互消息的数量,节省了系统资源,提高了业务处理效率。
可选的,所述处理模块502还用于生成第四消息,所述第四消息携带路由状态报告信息,所述路由状态报告信息记录所述路由前缀与所述CRP路由的状态信息的映射关系。
所述网络设备500还包括发送模块503,所述发送模块503用于向所述控制器发送所述第四消息,以使所述控制器根据接收到的所述路由状态报告信息,更新所述路由前缀的统计信息,作为重新计算所述CRP路由的依据。
所述CRP路由的状态信息包括但不限于:路由的状态,例如路由是否合法,是否被优选,是否被发送到FIB中等;路由的存活时间;下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取网络设备上报的路由状态信息,能够实时了解网络设备路由的状态,作为调整路由的依据,提高了流量调控的可靠性以及实时性。
在一种具体的实施方式中,所述第四消息为第四BGP UPDATE Message,用于携带所述路由状态报告信息。具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。在另一个具体的实施方式中,所述第四消息为第四PCEP Message,用于携带所述路由状态报告信息。具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。可选的,所述处理模块502还用于生成第五消息;所述第五消息携带下一跳状态报告信息,所述下一跳状态报告信息记录第四下一跳的地址和第四下一跳的状态信息的映射关系。
所述发送模块503还用于向所述控制器发送所述第五消息,以使所述控制器根据接收到的所述下一跳状态报告信息,更新下一跳的统计信息,作为重新计算所述网络设备的下一跳的依据。
所述下一跳状态报告信息包括但不限于:下一跳的状态,例如下一跳是否合法,是否被使用等;下一跳带宽占用比例;下一跳丢包率;下一跳发包延时;下一跳存活时间。
因此,控制器可以定期、实时获取转发设备上报的下一跳状态信息,能够实时了解转发设备的状态,作为计算,调整下一跳的依据,提高了流量调控的可靠性以及实时性。
在一个具体的实施方式中,所述第五消息为第五BGP UPDATE Message,用于携带所述下一跳状态信息。具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。
在另一个具体的实施方式中,所述第五消息为第五PCEP Message,用于携带所述下一跳状态信息。具体采用何种消息格式或字段格式(如采用哪些字段或扩展字段),可以参考上述方法实施例中对应部分的描述,此处不再赘述。根据本申请实施例的网络设备500可对应于根据本申请实施例中用于信息同步的方法中的网络设备,并且,该网络设备中的各模块和上述其他操作和/或功能分别为了实现图3中的方法300的相应流程,为了简洁,此处不再赘述。
本申请上述实施例中提供的控制器400和网络设备500,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或部分功能。
图15是根据本申请一实施例的控制器600的另一示意图。该控制器600可以是图2中的控制器110,其能够用于执行图3中的方法300。如图15所示,该控制器600包括:输入接口601、输出接口602、处理器603和存储器604。该输入接口601、输出接口602、处理器603和存储器604可以通过总线系统605相连。
所述存储器604用于存储包括程序、指令或代码。所述处理器604,用于执行所述存储器604中的程序、指令或代码,以控制输入接口601接收信号、控制输出接口602发送信号以及完成S301-S303、S306-S308、S311、S312、S318、S321中的操作。
图16是根据本申请一实施例的网络设备700的另一示意图。该网络设备700能够用于执行图3中的方法300。如图16所示,该网络设备700包括:输入接口701、输出接口702、处理器703和存储器704。该输入接口701、输出接口702、处理器703和存储器704可以通过总线系统705相连。
所述存储器704用于存储包括程序、指令或代码。所述处理器704,用于执行所述存储器704中的程序、指令或代码,以控制输入接口701接收信号、控制输出接口702发送信号以及完成S304、S305、S309、S310、S313-S316、S319、S320中的操作。
应理解,在本申请实施例中,该处理器603和处理器703可以是中央处理单元(Central Processing Unit,简称为“CPU”),还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器604和存储器704可以包括只读存储器和随机存取存储器,并分别向处理器603和处理器703提供指令和数据。存储器604或存储器704的一部分还可以包括非易失性随机存取存储器。例如,存储器604或存储器704还可以存储设备类型的信息。
该总线系统605和总线系统705除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统。
在实现过程中,方法300的各步骤可以通过处理器603和处理器703中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的定位方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质分别位于存储器604和存储器704中,处理器603读取存储器604中的信息,处理器703读取存储器704中的信息,结合其硬件完成上述方法300的步骤。为避免重复,这里不再详细描述。
需要说明的是,图13和图15所提供的控制器,图14和图16所提供的网络设备,应用于图2所示的SDN100中,实现信息同步的方法。一个具体的实施方式中,图13中的处理模块401可以用图15的处理器603实现,发送模块402可以由图15的输出接口602实现,接收模块403可以用由图15的输入接口601实现。同理,图14中的处理模块502用图16的处理器703实现,发送模块503可以由图16的输出接口702实现,接收模块501可以用由图16的输入接口701实现。
本申请还提供了一种通信系统,包括控制器和网络设备,所述控制器可以是图13、图15对应的实施例所提供的控制器。所述网络设备可以是图14、图16对应的实施例所提供的网络设备。所述通信系统用于执行图3-图12对应的实施例的方法300。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件或它们的任意组合来实现。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
最后,需要说明的是:以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。显然,本领域技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (51)

1.一种信息同步的方法,其特征在于:
所述控制器生成第一消息,所述第一消息用于发布控制路由协议CRP路由,所述CRP路由包括路由前缀和网络设备的第一下一跳信息;
所述控制器向所述网络设备发送所述第一消息;其中,所述网络设备的路由表中包括第一路由表项,用于记录所述CRP路由,根据所述路由表可以确定,所述第一路由表项所记录的路由为所述控制器向所述网络设备发布的路由。
2.根据权利要求1所述的方法,其特征在于:所述CRP路由还包括路由优先级,所述路由优先级用于标识所述CRP路由的优先级。
3.根据权利要求1或2所述的方法,其特征在于:所述第一下一跳信息包括所述第一下一跳的属性信息,所述第一下一跳的属性信息包括以下一种或多种下一跳的属性信息类型:带宽、负载均衡比例和下一跳的类型。
4.根据权利要求1-3任一项所述的方法,其特征在于:第一下一跳信息包括所述第一下一跳的地址。
5.根据权利要求2所述的方法,其特征在于,所述第一消息包括优先级字段,所述优先级字段用于承载所述路由优先级。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一消息包括下一跳信息字段,所述下一跳信息字段用于承载所述第一下一跳信息。
7.根据权利要求6所述的方法,其特征在于,所述下一跳信息字段包括下一跳属性字段,用于承载所述第一下一跳的属性信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一消息为第一边界网关协议更新消息BGP UPDATE Message或所述第一消息为第一路径计算单元通信协议消息PCEPMessage。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
所述控制器向所述网络设备发送第二消息,所述第二消息携带所述网络设备的第二下一跳的地址与所述第二下一跳的属性信息。
10.根据权利要求9所述的方法,其特征在于:
所述第二消息为第二BGP UPDATE Message。
11.根据权利要求10所述方法,其特征在于,所述第二BGP UPDATE Message包括多协议可达网络层可达性信息MP_REACH_NLRI属性字段和下一跳属性Next Hop Attribute字段;所述MP_REACH_NLRI属性字段包括所述第二下一跳的地址;所述Next Hop Attribute字段包括所述第二下一跳的属性信息。
12.根据权利要求9所述的方法,其特征在于,所述第二消息为第二PCEP Message。
13.根据权利要求12所述的方法,其特征在于,所述第二PCEP Message包括下一跳对象Next Hop object字段以及下一跳属性对象Next Hop Attribute object字段;所述NextHop object字段包括所述第二下一跳的地址,所述Next Hop Attribute object字段包括所述第二下一跳的属性信息。
14.根据权利要求1-13任一项所述的方法,其特征在于,所述方法还包括:
所述控制器向所述网络设备发送第三消息,所述第三消息携带所述网络设备的第三下一跳的地址,所述第三消息指示所述网络设备删除与所述第三下一跳的地址关联的所有路由表项。
15.根据权利要求14所述的方法,其特征在于:
所述第三消息为第三BGP UPDATE Message或所述所述第三消息为第三PCEP Message。
16.根据权利要求1-15任一项所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述网络设备发送的路由状态报告信息,所述路由状态报告信息记录所述路由前缀与所述CRP路由的状态信息。
17.根据权利要求16所述的方法,其特征在于,所述CRP路由的状态信息包括以下一项或多项信息:路由的状态,路由的存活时间或下一跳状态。
18.根据权利要求1-17任一项所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述网络设备发送下一跳状态报告信息,所述下一跳状态报告信息记录所述网络设备的下一跳的地址和下一跳的状态信息。
19.一种信息同步的方法,其特征在于:
网络设备接收控制器发送的第一消息,所述第一消息用于发布所述控制器确定的控制路由协议CRP路由,所述CRP路由包括路由前缀和所述网络设备的第一下一跳信息;
所述网络设备将所述CRP路由保存在路由表中,所述路由表包括第一路由表项,用于记录所述CRP路由,根据所述路由表可以确定,所述第一路由表项所记录的路由为所述控制器向所述网络设备发布的路由。
20.根据权利要求19所述的方法,其特征在于:所述CRP路由还包括路由优先级,所述路由优先级用于标识所述CRP路由的优先级。
21.根据权利要求19或20所述的方法,其特征在于:所述第一下一跳信息包括所述第一下一跳的属性信息,所述第一下一跳的属性信息包括以下一种或多种下一跳的属性信息类型:带宽、负载均衡比例和下一跳的类型。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:所述网络设备将所述第一下一跳的属性信息发送到转发信息表中,用于指导报文转发。
23.根据权利要求19-22任一项所述的方法,其特征在于:所述第一下一跳信息包括所述第一下一跳的地址。
24.根据权利要求19-23任一项所述的方法,其特征在于,所述网络设备包括下一跳表,所述方法还包括:
所述网络设备将所述第一下一跳信息保存在所述下一跳表中。
25.根据权利要求20所述的方法,其特征在于,所述第一消息包括优先级字段,所述优先级字段用于承载所述路由优先级。
26.根据权利要求19-25任一项所述的方法,其特征在于,所述第一消息包括下一跳信息字段,所述下一跳信息字段用于承载所述第一下一跳信息。
27.根据权利要求26所述的方法,其特征在于,所述下一跳信息字段包括下一跳属性字段,用于承载所述第一下一跳的属性信息。
28.根据权利要求19-27任一项所述的方法,其特征在于,所述第一消息为第一边界网关协议更新消息BGP UPDATE Message或所述第一消息为第一路径计算单元通信协议消息PCEP Message。
29.根据权利要求19-28中任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备接收所述控制器发送的第二下一跳的地址与所述第二下一跳的属性信息。
30.根据权利要求29所述的方法,其特征在于,所述方法还包括:
所述网络设备将所述第二下一跳的地址与所述第二下一跳的属性信息保存在下一跳表中。
31.根据权利要求30所述的方法,其特征在于,所述方法还包括:
所述网络设备将所述第二下一跳的属性信息发送到转发信息表中,用于指导报文转发。
32.根据权利要求19-31任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备接收所述控制器发送的第三消息,所述第三消息携带所述网络设备的第三下一跳的地址;
根据所述第三消息的指示,所述网络设备删除与所述第三下一跳的地址关联的所有路由表项。
33.根据权利要求19-32任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备向所述控制器发送路由状态报告信息,所述路由状态报告信息记录所述路由前缀与所述CRP路由的状态信息。
34.根据权利要求33所述的方法,其特征在于,所述CRP路由的状态信息包括以下一项或多项信息:路由的状态,路由的存活时间或下一跳状态。
35.根据权利要求19-34任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备向所述控制器发送下一跳状态报告信息,所述下一跳状态报告信息记录所述网络设备的下一跳的地址和下一跳的状态信息。
36.一种管理信息的方法,其特征在于:
控制器生成第一消息,所述第一消息携带网络设备的第一下一跳的表项信息,所述第一下一跳的表项信息包括所述第一下一跳的地址与所述第一下一跳的属性信息的映射关系;
所述控制器向所述网络设备发送所述第一消息,以便于所述网络设备保存所述第一下一跳的表项信息。
37.根据权利要求36所述的方法,其特征在于,所述第一下一跳的属性信息包括以下一种或多种:带宽、负载均衡比例或下一跳的类型。
38.根据权利要求36或37所述的方法,其特征在于,所述第一消息包括下一跳信息字段,所述下一跳信息字段用于承载所述第一下一跳的属性信息。
39.根据权利要求36或37所述的方法,其特征在于,所述第一消息包括下一跳信息字段,所述第一下一跳信息字段用于承载所述第一下一跳的地址。
40.根据权利要求36-39任一项所述的方法,其特征在于,所述第一消息为第一边界网关协议更新消息BGP UPDATE Message或所述第一消息为第一路径计算单元通信协议消息PCEP Message。
41.一种管理信息的方法,其特征在于:
网络设备接收控制器发送的第一消息,所述第一消息携带所述网络设备的第一下一跳的表项信息,所述第一下一跳的表项信息包括所述第一下一跳的地址与所述第一下一跳的属性信息的映射关系;
所述网络设备保存所述第一下一跳的表项信息。
42.根据权利要求41所述的方法,其特征在于,所述网络设备包括下一跳表,所述网络设备将所述所述第一下一跳的表项信息保存在所述下一跳表中。
43.根据权利要求41或42所述的方法,其特征在于,所述第一下一跳的属性信息包括以下一种或多种:带宽、负载均衡比例或下一跳的类型。
44.根据权利要求41-43任一项所述的方法,其特征在于,所述第一消息包括下一跳信息字段,所述下一跳信息字段用于承载所述第一下一跳的属性信息。
45.根据权利要求44所述的方法,其特征在于,所述第一下一跳信息字段包括第一下一跳属性字段,所述第一下一跳属性字段用于承载所述第一下一跳的属性信息。
46.根据权利要求41-43任一项所述的方法,其特征在于,所述第一消息包括下一跳信息字段,所述第一下一跳信息字段用于承载所述第一下一跳的地址。
47.根据权利要求41-46任一项所述的方法,其特征在于,所述第一消息为第一边界网关协议更新消息BGP UPDATE Message或所述第一消息为第一路径计算单元通信协议消息PCEP Message。
48.一种控制器,其特征在于,包括:
存储器,存储有指令;
处理器,用于执行所述指令,使得所述控制器执行权利要求1-18或者权利要求36-40任一项所述的方法。
49.一种网设备,其特征在于,包括:
存储器,存储有指令;
处理器,用于执行所述指令,使得所述控制器执行权利要求19-35或者权利要求41-47任一项所述的方法。
50.一种通信系统,其特征在于,所述通信系统包括:根据权利要求48所述控制器和根据权利要求49所述的网络设备。
51.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1-47任一项所述的方法。
CN202010410586.4A 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统 Pending CN111698162A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010410586.4A CN111698162A (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610698182.3A CN107770073B (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统
CN202010410586.4A CN111698162A (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610698182.3A Division CN107770073B (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统

Publications (1)

Publication Number Publication Date
CN111698162A true CN111698162A (zh) 2020-09-22

Family

ID=61196390

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610698182.3A Active CN107770073B (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统
CN202010410586.4A Pending CN111698162A (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610698182.3A Active CN107770073B (zh) 2016-08-19 2016-08-19 一种信息同步的方法,装置及系统

Country Status (5)

Country Link
US (1) US10999194B2 (zh)
EP (2) EP4060961A1 (zh)
CN (2) CN107770073B (zh)
ES (1) ES2910849T3 (zh)
WO (1) WO2018032962A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615216A (zh) * 2022-03-11 2022-06-10 深圳市风云实业有限公司 一种基于交换芯片的路由表动态调整方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018195877A1 (zh) * 2017-04-27 2018-11-01 华为技术有限公司 通信方法、装置和系统
US10218572B2 (en) * 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
CN109361616B (zh) * 2018-10-31 2022-05-31 晶晨半导体(上海)股份有限公司 一种提高网络性能的控制方法
CN114827009A (zh) * 2018-11-02 2022-07-29 华为技术有限公司 处理路由事件记录表项的方法、网络设备和控制设备
CN111371665B (zh) * 2018-12-25 2022-05-13 华为技术有限公司 一种路由限制方法及网络设备
CN114884873A (zh) * 2019-09-11 2022-08-09 华为技术有限公司 一种转发路径的确定方法及装置
US11075835B2 (en) * 2019-12-03 2021-07-27 Wisconsin Alumni Research Foundation Distributed, packet-mediated, packet routing
CN113556282A (zh) * 2020-04-23 2021-10-26 华为技术有限公司 一种路由处理方法及设备
CN113794644B (zh) * 2021-10-12 2023-05-26 新华三信息安全技术有限公司 一种路由表项删除方法及装置
CN116112416A (zh) * 2021-11-11 2023-05-12 中兴通讯股份有限公司 报文转发方法、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163105B (zh) * 2007-11-26 2011-06-01 华为技术有限公司 一种获取路径信息的方法和路径计算节点
US8391303B2 (en) * 2009-04-16 2013-03-05 Futurewei Technologies, Inc. Border gateway protocol (BGP) grouped route withdrawals
US9185070B2 (en) * 2012-05-17 2015-11-10 Harris Corporation MANET with DNS database resource management and related methods
US9191139B1 (en) * 2012-06-12 2015-11-17 Google Inc. Systems and methods for reducing the computational resources for centralized control in a network
US10193801B2 (en) * 2013-11-25 2019-01-29 Juniper Networks, Inc. Automatic traffic mapping for multi-protocol label switching networks
US9634936B2 (en) * 2014-06-30 2017-04-25 Juniper Networks, Inc. Service chaining across multiple networks
CN104184663B (zh) * 2014-07-17 2018-02-06 北京交通大学 基于软件定义网络和一体化标识网络的通信方法和装置
US20160191324A1 (en) * 2014-12-26 2016-06-30 vIPtela Inc. Subsequent address family identifier for service advertisements
US10412019B2 (en) * 2015-07-06 2019-09-10 Futurewei Technologies, Inc. Path computation element central controllers (PCECCs) for network services
CN105516028A (zh) * 2015-12-03 2016-04-20 浙江工商大学 一种bgp协议的主从控制方法
CN105391633B (zh) * 2015-12-11 2018-11-16 北京华为数字技术有限公司 转发器、控制器及控制器的路由发布方法
CN105704037B (zh) * 2015-12-31 2019-02-19 北京华为数字技术有限公司 一种表项保存方法和控制器
CN106059924B (zh) * 2016-08-19 2020-04-03 华为技术有限公司 一种管理信息的方法,装置及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615216A (zh) * 2022-03-11 2022-06-10 深圳市风云实业有限公司 一种基于交换芯片的路由表动态调整方法

Also Published As

Publication number Publication date
EP4060961A1 (en) 2022-09-21
ES2910849T3 (es) 2022-05-13
EP3490201A4 (en) 2019-06-26
US20190182152A1 (en) 2019-06-13
CN107770073B (zh) 2020-06-02
WO2018032962A1 (zh) 2018-02-22
EP3490201A1 (en) 2019-05-29
US10999194B2 (en) 2021-05-04
EP3490201B1 (en) 2022-02-23
CN107770073A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
CN106059924B (zh) 一种管理信息的方法,装置及系统
CN107770073B (zh) 一种信息同步的方法,装置及系统
US11671364B2 (en) Method, apparatus, and system for forwarding packet in service function chaining SFC
US10757008B2 (en) Flow specification protocol-based communications method, device, and system
US11082342B2 (en) System and method to facilitate content forwarding using Bit Index Explicit Replication (BIER) in an Information-Centric Networking (ICN) environment
CN111147383B (zh) 报文转发的方法、发送报文的装置和接收报文的装置
CN107968750B (zh) 报文传输方法、装置及节点
EP3896923A1 (en) Bier packet sending method and apparatus
WO2018000443A1 (zh) 基于业务功能链sfc的报文转发方法、装置和系统
WO2006101823A2 (en) System and method for routing isis traffic through unidirectional links of a computer network
US9467367B2 (en) Universal labels in internetworking
WO2017198131A1 (zh) 用于重定向数据流的方法和系统、网络设备和控制设备
US20230291682A1 (en) Method and device for processing data packet, storage medium, and electronic device
WO2020072778A1 (en) Extending border gateway protocol link state for controller
US7233593B2 (en) System, device, and method for routing information in a communication network using policy extrapolation
WO2022199294A1 (zh) 组播报文发送方法及装置
WO2023025171A1 (zh) 通信方法及装置
WO2024007762A1 (zh) 一种路由发布方法、通信方法及装置
US20230318966A1 (en) Packet Transmission Method, Correspondence Obtaining Method, Apparatus, and System

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