CN113273147B - 用于实现控制器边界网关协议(cBGP)的系统及方法 - Google Patents

用于实现控制器边界网关协议(cBGP)的系统及方法 Download PDF

Info

Publication number
CN113273147B
CN113273147B CN201980067029.2A CN201980067029A CN113273147B CN 113273147 B CN113273147 B CN 113273147B CN 201980067029 A CN201980067029 A CN 201980067029A CN 113273147 B CN113273147 B CN 113273147B
Authority
CN
China
Prior art keywords
session
message
cbgp
messages
controller
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
Application number
CN201980067029.2A
Other languages
English (en)
Other versions
CN113273147A (zh
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
Publication of CN113273147A publication Critical patent/CN113273147A/zh
Application granted granted Critical
Publication of CN113273147B publication Critical patent/CN113273147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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/02Topology update or discovery
    • H04L45/033Topology update or discovery by updating distance vector protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种由控制器执行的方法,所述控制器用于在通信系统中实现边界网关协议(Border Gateway Protocol,简称BGP),所述方法包括:与网元(network element,简称NE)建立控制器BGP(controller BGP,简称cBGP)对等会话;接收用于通过所述cBGP会话与所述NE进行通信的消息;基于所述消息是否携带路由信息,确定所述消息是否被允许通过所述cBGP会话进行通信;如果允许通过所述cBGP会话传递消息,则通过所述cBGP会话将消息发送到NE;通过所述cBGP会话接收来自NE的第一类响应消息。

Description

用于实现控制器边界网关协议(cBGP)的系统及方法
相关申请案交叉申请
本专利申请要求由Huaimo Chen于2018年11月2日递交的发明名称为“控制器的新BGP对等会话”的第62/754,859号美国临时专利申请的在先申请优先权,美国临时专利申请的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明大体涉及网络通信,具体涉及用于减少实现边界网关协议(BorderGateway Protocol,简称BGP)的网络中的开销的各种系统和方法。
背景技术
BGP(边界网关协议)是通过在位于通信系统内的边缘网元(network element,简称NE)(例如,路由器)之间的路由和可达性信息的交换来管理通过因特网的报文传输的协议。BGP在自治系统(autonomous system,简称AS)或由单个企业或服务提供商管理的网络之间引导报文。BGP提供网络稳定性,以保证如果特定路径发生故障,则网元(networkelement,简称NE)可以快速地适应通过另一重新连接发送报文。实现BGP的NE(例如,BGPNE)基于由网络管理员配置的路径,规则或网络策略来执行路由决定。
BGP NE维护路由表,所述路由表包含来自连接到外部AS的直接连接的NE以及同一AS内的NE的路由信息,并且随着改变的发生不断地更新路由表。每当路由信息发生变化时,BGP NE通过通信系统中的所有NE发送更新的路由信息。
发明内容
本发明的第一方面涉及一种由控制器执行的方法,所述控制器用于在通信系统中实现边界网关协议(Border Gateway Protocol,简称BGP),所述方法包括:与网元(networkelement,简称NE)建立控制器BGP(controller BGP,简称cBGP)对等会话;接收用于通过所述cBGP会话向所述NE进行通信的消息;基于所述消息是否携带路由信息,确定所述消息是否被允许通过所述cBGP会话进行通信;如果允许通过cBGP对等会话进行通信,则通过cBGP对等会话向NE发送第一类消息;通过cBGP对等会话从NE接收第一类响应消息。
可选地,在根据第一方面的第一种实现方式中,所述方法还包括:接收用于通过所述cBGP会话传送到所述NE的第二消息;基于所述第二消息是否携带路由信息,确定是否允许通过所述cBGP会话传送所述第二消息;响应于包括路由信息的第二消息,丢弃所述第二消息。
可选地,根据第一方面或第一方面的任何其他实现方式,在第二种实现方式中,所述路由信息包括描述沿着所述通信系统中从源到目的地的路径的网元的信息。
可选地,根据第一方面或第一方面的任何其他实现方式,在第三种实现方式中,所述方法还包括从另一NE接收携带路由信息的BGP UPDATE消息,以及丢弃所述BGP UPDATE消息。
可选地,根据第一方面或第一方面的任何其他实现方式,在第四种实现方式中,所述方法还包括接收携带路由信息和指令的BGP UPDATE消息,从BGP UPDATE消息中去除路由信息,以及通过所述cBGP会话仅向所述NE发送所述BGP UPDATE消息的指令。
可选地,根据第一方面或第一方面的任何其他实现方式,在第五种实现方式中,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带路由信息的消息,所述控制器和NE被包括在公共自治系统(autonomous system,简称AS)中;其中,所述方法还包括:与所述NE建立内部BGP(interior BGP,简称iBGP)会话,其中,所述iBGP会话与所述cBGP会话是分离的并且是不同的,以及基于所述第二消息的格式来确定从所述NE接收的第二消息是否包括所述路由信息。
可选地,根据第一方面或第一方面的任何其他实现方式,在第六种实现方式中,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器和NE被包括在公共自治系统(autonomous system,简称AS)中;其中,所述方法还包括与NE建立内部BGP(interior BGP,简称iBGP)会话,其中iBGP会话与cBGP会话组合,且允许通过组合会话传送所述第一类消息和所述第二类消息。
可选地,根据第一方面或第一方面的任何其他实现方式,在第七种实现方式中,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带路由信息的消息,所述控制器被包括在第一自治系统(autonomous system,简称AS)中,所述NE被包括在不同于所述第一AS的第二AS中;其中,所述方法还包括与所述NE建立外部BGP(exterior BGP,简称eBGP)会话,其中,所述eBGP会话与所述cBGP会话是分离的并且是不同的,并且基于所述第二消息的格式来确定从所述NE接收的第二消息是否包括所述路由信息。
可选地,根据第一方面或第一方面的任何其他实现方式中,在第八种实现方式中,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器被包括在第一自治系统(autonomous system,简称AS)中,其中,所述NE被包括在不同于第一AS的第二AS中;其中,所述方法还包括与NE建立外部BGP(exterior BGP,简称eBGP)会话,其中,所述eBGP会话与所述cBGP会话组合,并且所述第一类消息和所述第二类消息被允许通过所述组合的会话进行通信。
可选地,根据第一方面或第一方面的任何其他实现方式中,在第九种实现方式中,所述方法还包括:获得对等体组,其中,所述对等体组包括多个NE,所述多个NE包括所述NE,且在所述控制器和所述多个NE中的每一个之间建立cBGP会话;从所述NE接收包括第一类信息的第三消息;响应于允许基于对等体组策略向对等体组中的其他NE分发第一类信息,向对等体组中的其他NE分发第三消息。
可选地,根据第一方面或第一方面的任何其他实现方式中,在第十种实现方式中,基于租户标识(identifier,简称ID)、地理区域、区域、组名或加密方法中的至少一个将对等体组中的多个NE分组在一起。
可选地,根据第一方面或第一方面的任何其他实现方式,在第十一种实现方式中,与NE建立cBGP会话包括:向NE发送第一OPEN消息,其中,所述第一OPEN消息包括控制器支持的能力;从NE接收第二OPEN消息,其中,所述第二OPEN消息包括NE支持的能力。
可选地,根据第一方面或第一方面的任何其他实现方式中,在第十二种实现方式中,第一OPEN消息包括I标志和C标志,其中,所述I标志被设置为指示要建立独立的cBGP会话还是要建立组合的cBGP会话,所述C标志被设置为指示所述控制器发送所述第一OPEN消息。
可选地,根据第一方面或第一方面的任何其他实现方式中,在第十三种实现方式中,所述控制器是自治系统(autonomous system,简称AS)内的路由反射器(routereflector,简称RR)。
本发明的第二方面涉及一种由用于在通信系统中实现边界网关协议(BorderGateway Protocol,简称BGP)的网元(network element,简称NE)执行的方法,包括:与通信系统的控制器建立控制器BGP(controller BGP,简称cBGP)对等会话;通过cBGP对等会话从控制器接收消息;基于消息是否携带路由信息,确定消息是否被允许通过所述cBGP会话传送;通过所述cBGP对等会话向所述控制器发送响应消息。
可选地,根据第二方面,在第一种实现方式中,所述方法还包括:接收用于通过所述cBGP会话传送到控制器的第二消息;基于所述第二消息是否携带路由信息,确定是否允许通过所述cBGP会话传送所述第二消息;响应于包括路由信息的所述第二消息,丢弃所述第二消息。
可选地,根据第二方面或第一方面的任何其他实现方式,在第二种实现方式中,所述路由信息包括描述沿着所述通信系统中从源到目的地的路径的网元的信息。
可选地,根据第二方面或第一方面的任何其他实现方式,在第三种实现方式中,所述方法还包括从另一NE接收携带路由信息的BGP UPDATE消息,以及丢弃所述BGP UPDATE消息。
可选地,根据第二方面或第一方面的任何其他实现方式,在第四种实现方式中,所述方法还包括接收携带路由信息和指令的BGP UPDATE消息,从BGP UPDATE消息中去除路由信息,以及通过所述cBGP会话仅向控制器发送BGP UPDATE消息的指令。
可选地,根据第二方面或第一方面的任何其他实现方式,在第五种实现方式中,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带路由信息的消息,所述控制器和NE被包括在公共自治系统(autonomous system,简称AS)中;其中,所述方法还包括:与所述控制器建立内部BGP(interior BGP,简称iBGP)会话,其中,所述iBGP会话与所述cBGP会话是分离的和不同的,以及基于所述第二消息的格式来确定从所述控制器接收的第二消息是否包括所述路由信息。
可选地,根据第二方面或第一方面的任何其他实现方式,在第六种实现方式中,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器和NE被包括在公共自治系统(autonomous system,简称AS)中;其中,所述方法还包括与控制器建立内部BGP(interior BGP,简称iBGP)会话,其中iBGP会话与cBGP会话组合,并且所述第一类消息和所述第二类消息被允许通过所述组合会话进行通信。
可选地,根据第二方面或第一方面的任何其他实现方式,在第七种实现方式中,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器被包括在第一自治系统(autonomous system,简称AS)中,所述NE被包括在不同于所述第一AS的第二AS中;其中,所述方法还包括与所述控制器建立外部BGP(exterior BGP,简称eBGP)会话,其中,所述eBGP会话与所述cBGP会话是分离的并且是不同的,并且基于所述第二消息的格式来确定从所述NE接收的第二消息是否包括所述路由信息。
可选地,根据第二方面或第一方面的任何其他实现方式,在第八种实现方式中,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器被包括在第一自治系统(autonomous system,简称AS)中,其中,所述NE被包括在不同于第一AS的第二AS中;其中,所述方法还包括与NE建立外部BGP(exterior BGP,简称eBGP)会话,其中,所述eBGP会话与所述cBGP会话组合,并且所述第一类消息和所述第二类消息被允许通过所述组合的会话进行通信。
可选地,根据第二方面或第一方面的任何其他实现方式,在第九种实现方式中,基于租户标识(identifier,简称ID)、地理区域、区域、组名或加密方法中的至少一个将对等体组中的多个NE分组在一起。
可选地,根据第二方面或第一方面的任何其他实现方式,在第十种实现方式中,与NE建立cBGP对等会话包括向控制器发送第一OPEN消息,其中第一OPEN消息包括NE支持的能力,以及从控制器接收第二OPEN消息,其中第二OPEN消息包括控制器支持的能力。
可选地,根据第二方面或第一方面的任何其他实现方式,在第十一种实现方式中,第一OPEN消息包括I标志和C标志,其中设置I标志以指示要建立独立的cBGP会话还是要建立组合的cBGP会话,其中设置C标志以指示控制器不发送第一OPEN消息。
本发明的第三方面涉及一种装置,所述装置包括:存储器,用于存储指令;处理器,其耦合到所述存储器并且用于执行所述指令,其中,当所述指令被所述处理器执行时,使得所述处理器用于:与网元(network element,简称NE)建立控制器BGP(controller BGP,简称cBGP)对等会话;接收用于通过所述cBGP会话传送到所述NE的消息;基于所述消息是否携带路由信息,确定所述消息是否被允许通过所述cBGP会话传送;如果允许通过所述cBGP会话传送消息,则通过所述cBGP会话将消息发送到NE;通过所述cBGP会话从所述NE接收第一类响应消息。
可选地,在第三方面的第一种实现方式中,所述指令还使得所述处理器用于接收用于:通过所述cBGP会话传送到所述NE的第二消息;基于所述第二消息是否携带所述路由信息,确定是否允许通过所述cBGP会话传送所述第二消息;响应于包括所述路由信息的第二消息丢弃所述第二消息。
本发明的第四方面涉及一种装置,所述装置包括:存储器,用于存储指令;处理器,其耦合到所述存储器,并且用于执行所述指令,其中,当所述指令被所述处理器执行时,使得所述处理器用于:与所述通信系统的控制器建立控制器BGP(controller BGP,简称cBGP)对等会话;通过所述cBGP会话从所述控制器接收消息;基于所述消息是否携带路由信息,确定是否允许通过所述cBGP会话传送所述消息;通过所述cBGP会话向控制器发送响应消息。
可选地,在第四方面的第一种实现方式中,所述指令还使得所述处理器用于:接收用于通过所述cBGP会话传送到所述控制器的第二消息;基于所述第二消息是否携带所述路由信息,确定是否允许通过所述cBGP会话传送所述第二消息;响应于包括所述路由信息的第二消息,丢弃所述第二消息。
通过下面结合附图和权利要求书的详细描述,将更清楚地理解这些和其他特征。
附图说明
为了更完整地理解本发明,现在结合附图和详细描述参考以下简要描述,其中相同的附图标记表示相同的部件。
图1是示出根据本发明的各种实施例的用于实现控制器边界网关协议(controller BGP,简称cBGP)的通信系统的图。
图2是示出根据本发明的各种实施例用于建立和实现cBGP的NE的图。
图3是示出根据本发明的各种实施例的在图1的通信系统中建立和实现cBGP会话的方法的消息序列图。
图4是示出根据本发明的各种实施例的用于建立和实现cBGP的另一通信系统的图。
图5是示出根据本发明的各种实施例的由图1或图4的通信系统中的NE发送的能力类型长度值(type length value,简称TLV)的图。
图6是示出根据本发明的各种实施例的用于实现对等体组内的cBGP对等会话的通信系统的图。
图7是示出根据本发明的各种实施例的在图6的通信系统中实现cBGP的方法的消息序列图。
图8A-C是示出根据本发明的各种实施例的在cBGP会话期间基于BGP 4编码并传送的UPDATE消息的示图。
图9是示出根据本发明的各种实施例的包括在图8的更新消息中的控制信息的图。
图10A-E是示出根据本发明的各种实施例的控制信息中包括的子类型长度值(子TLV)的图。
图11A-B是示出包括根据本发明的各种实施例的控制信息中携带的指令的子TLV的图。
图12是示出根据本发明的各种实施例的包括在控制信息属性中携带的响应或状态的子TLV的图。
图13是示出根据本发明的各种实施例的建立cBGP会话并通过所述cBGP会话传送数据的方法的流程图。
图14是示出根据本发明的各种实施例的建立cBGP会话并通过所述cBGP会话传送数据的另一种方法的流程图。
图15是示出根据本发明的各种实施例的用于建立cBGP会话并通过所述cBGP会话传送数据的装置的图。
具体实施方式
首先应该理解,尽管下面提供了一个或多个实施例的示例性实现方式,但是所公开的系统和/或方法可以使用任何数量的技术来实现。本发明决不应限于以下所示的示例性实现方式、附图和技术,包括本文所示和所述的示例性设计和实现方式,而是可以在所附权利要求的范围及其等同物的全部范围内进行修改。
图1是示出根据本发明的各种实施例的用于实现控制器边界网关协议(controller BGP,简称cBGP)的通信系统100的图。所述通信系统100包括两个自治系统:AS103和AS 106。所述AS 103包括NE 109和NE 110;所述AS 106包括NE 111-115。在图1中,NE109-115通过链路120-125互连。链路120和121是连接不同AS 103和AS 106内的NE的域间链路(例如,NE 111到NE 109和NE 110)。链路122-125是在单个AS 106内连接NE 111-115的域内链路。
NE 109-115可以是物理设备,例如路由器、网桥、虚拟机、网络交换机,或用于根据各种路由协议执行交换和路由的逻辑设备。如本文所述,NE 109-115用于实现BGP。
链路120-125可以是将NE 109-115中的每一个互连的有线或无线链路或接口,并且用于根据各种路由协议(例如,BGP)来转发流量。BGP在Y.Rekhter等人于2006年1月提交的名为“A Border Gateway Protocol 4(BGP-4)”的域间路由工作组(Inter-DomainRouting Working Group,简称IDR WG)征求意见稿(Request for Comments,简称RFC)4271(以下称为RFC4271)中有进一步定义。
在不同AS中的NE 109-115之间的BGP会话被称为外部BGP(exterior BGP,简称eBGP)会话或连接。例如,NE 111和NE 109之间或NE 111和NE 110之间的BGP会话是eBGP会话。相反,相同AS的NE之间的BGP会话被称为内部BGP(interior BGP,简称iBGP)会话或连接。例如,NE 111和NE 112之间以及NE 111和NE 113之间的BGP会话是iBGP会话。已经建立了iBGP会话的两个NE 109-115被称为iBGP对等体。类似地,已经建立了eBGP会话的两个NE109-115被称为eBGP对等体。
在图1中,NE 111被指定为用于通信系统100的BGP路由反射器(route reflector,简称RR),其中,所述NE 111直接或间接地连接到所述通信系统100的其余NE 109-110和NE112-115。在一个实施例中,被实现为RR的NE 111可以用于充当所述通信系统100的控制器或中央实体。
在所述通信系统100内,NE 109-115用于传送为BGP版本4指定的四种不同类型的消息,如RFC 4271所述:OPEN消息、UPDATE消息、NOTIFICATION消息和KEEPALIVE消息。OPEN消息建立BGP会话。BGP会话的两侧在使用所述OPEN消息建立BGP会话之前协商会话能力。根据一些实施例,所述OPEN消息包括版本、AS号、保持定时器和一些可选参数。具体地,所述OPEN消息可以可选地包含能力类型长度值(type length value,简称TLV),其指示发送OPEN消息的NE 109-115的能力。
在建立BGP会话之后,在会话参与者之间选择性地交换UPDATE和/或KEEPALIVE消息。更新消息是BGP的核心,并且包含BGP用来构建无环路转发路径的所有必要信息。所述UPDATE消息通告任何可行的路由,撤销先前通告的路由,或者可以包括这两者。所述UPDATE消息的三个基本块包括:网络层可达性信息(Network Layer Reachability Information,简称NLRI)、路径属性和撤消的(不可行的)路由。例如,UPDATE消息包括撤消路由长度字段(2个八位字节)、撤消路由字段(可变长度)、总路径属性长度字段(2个八位字节)、路径属性字段(可变长度)和NLRI字段(2个八位字节)。
NLRI字段被编码为形式<长度,前缀>的一个或多个2元组,其中长度参数指示因特网协议(Internet Protocol,简称IP)地址前缀的长度(以位为单位),前缀参数指示IP地址前缀。例如,值<16,192.200.0.0>的NLRI字段指示路由192.200.0.0/16的网络可达性信息。路径属性字段包括用于跟踪路由特定信息的一组参数,例如ORIGIN、AS-PATH、NEXT-HOP、MULTI-EXIT-DISC、LOCAL-PREF等。
无论何时检测到错误,都会发送NOTIFICATION消息并关闭连接。NOTIFICATION消息包括指示检测到的特定类型的错误的错误代码。
当实现iBGP或eBGP的NE 109-115生成或接收路由信息时,例如在UPDATE消息中,NE 109-115将路由信息转发到也实现BGP的相邻NE 109-115。例如,当NE 111向NE 112发送携带到目的地的特定路径的路由信息的UPDATE消息时,NE 112首先用于当适用于NE 112时基于UPDATE消息更新本地路由表。随后,NE 112基于本地路由表和策略将UPDATE消息转发到相邻BGP对等体。接收UPDATE消息的相邻BGP对等体类似地处理UPDATE消息,以基于UPDATE消息中携带的路由信息确定是否需要更新本地路由表,然后基于本地路由表和策略将UPDATE消息转发到相邻对等体。
然而,通常,NE 109-115(或BGP对等体)经由BGP消息接收路由信息,而不需要对路由信息的任何使用或需要。因此,接收到不需要的路由信息的这些NE 109-115仅仅丢弃路由信息或将路由信息转发到其他NE 109-115,所述其他NE 109-115也可以不使用或不需要路由信息。
为此,实现iBGP或eBGP泛洪网络资源的NE 109-115具有携带路由信息的这些消息,即使所述通信系统100中的几个NE 109-115简单地忽略或丢弃该消息。这样,实现BGP(iBGP和/或eBGP)的通信系统通常带来大量不必要的开销。
本文公开了涉及BGP的修改的轻量级版本(在本文中被称为cBGP)的实施例,其中已经建立cBGP会话的NE(在本文中被称为cBGP NE)可以仅被允许传送特定类型的信息。在一个实施例中,NE 111与NE 114和NE 115建立cBGP会话。由于在NE 111和NE 114之间建立的cBGP会话,NE 111和NE 114在这里可以被称为cBGP对等体。类似地,由于在NE 111和NE115之间建立的cBGP会话,NE 111和NE 115在这里可以被称为cBGP对等体。
在本实施例中,NE 111可以仅被允许通过所述cBGP会话将控制消息传送到NE 114和NE 115。例如,控制消息可以包括被发送到NE 114和NE 115的指令。类似地,NE 114和NE115仅被允许通过所述cBGP会话向NE 111发送对指令或状态信息的响应。在一个实施例中,诸如在UPDATE消息中携带的路由信息之类的路由信息被禁止通过所述cBGP会话在NE111和NE 114和NE 115之间传送。
例如,在图1中,NE 111已经与NE 109和NE 110建立了eBGP会话,与NE 112和NE113建立了iBGP会话,以及与NE 114和NE 115建立了cBGP会话。在这种情况下,当NE111从诸如NE 109的eBGP对等体之一接收路由信息时,NE 111可以将路由信息转发到另一个eBGP对等体(例如,NE 110)或iBGP对等体(例如,NE 112或NE 113之一)。然而,禁止NE 111将路由信息转发到cBGP对等体(例如,NE 114或NE 115)之一。
当NE 111从作为客户端的iBGP对等体(例如,NE 112)接收到路由信息时,NE 111可以将该路由信息转发到eBGP对等体(例如,NE 109或110)之一,另一个iBGP对等体(例如NE 113),另一个iBGP客户端NE或iBGP非客户端NE。然而,禁止NE 111将路由信息转发到cBGP对等体(例如,NE 114或NE 115)之一。
当NE 111从作为非客户端的iBGP对等体(例如,NE 113)接收路由信息时,NE 111可以将路由信息转发到eBGP对等体(例如,NE 109或NE 110)、eBGP客户端、其他iBGP对等体(例如,NE 114)或iBGP客户端之一。然而,禁止NE 111将路由信息转发到cBGP对等体(例如,NE 114或115)或非客户端NE之一。在一些情况下,当NE 111从另一个iBGP对等体(例如,NE112和NE 113)或另一个eBGP对等体(例如,NE 109和NE 110)接收路由信息时,可以允许将路由信息转发到另一个BGP控制器。
与iBGP会话和eBGP会话不同,这里公开的cBGP会话限制了可以在cBGP对等体之间通信的信息量。这里公开的实施例的优点在于:cBGP会话显着地减少了在通信系统100内发送的数据量。此外,所公开的实施例显著减少了通信系统100内的cBGP对等体所需的处理量。
图2是根据本发明的各种实施例的适于实现cBGP的NE 200的示意图。在一个实施例中,NE 200可以实现为NE 109-115中的任何一个。
NE 200包括端口220、收发器单元(Tx/Rx)210、处理器230和存储器233。所述处理器230包括cBGP模块224。所述端口220耦合到所述Tx/Rx 210,其中,所述Tx/Rx 210可以是发送器、接收器或其组合。所述Tx/Rx 210可以经由所述端口220发送和接收数据。所述处理器230用于处理数据。所述存储器233用于存储用于实现这里描述的实施例的数据和指令。NE 200还可以包括耦合到所述端口220和所述Tx/Rx 210的电-光(electrical-to-optical,简称EO)组件和光-电(optical-to-electrical,简称OE)组件,用于接收和发送电信号和光信号。
所述处理器230可以由硬件和软件来实现。所述处理器230可实现为一个或一个以上中央处理单元(central processing unit,简称CPU)和/或图形处理单元(graphicsprocessing unit,简称GPU)芯片、逻辑单元、核心(例如,作为多核心处理器),现场可编程门阵列(field-programmable gate array,简称FPGA)、专用集成电路(applicationspecific integrated circuit,简称ASIC)和数字信号处理器(digital signalprocessor,简称DSP)。所述处理器230与所述端口220、所述Tx/Rx 210和所述存储器233通信。所述cBGP模块224由所述处理器230实施以执行用于实施本文论述的各种实施例的指令。例如,所述cBGP模块224用于允许通过所述cBGP会话传输第一类消息,并且禁止通过所述cBGP会话传输第二类消息。引入所述cBGP模块224改进了NE 200的功能。所述cBGP模块224还实现NE 200到不同状态的转换。或者,所述cBGP模块224被实现为存储在存储器233中的指令。
所述存储器233包括磁盘、磁带驱动器或固态驱动器中的一个或多个,并且可以用作溢出数据存储设备,用于在选择执行程序时存储程序,以及用于存储在程序执行期间读取的指令和数据。所述存储器233可以是易失性和非易失性的,并且可以是只读存储器(read-only memory,简称ROM)、随机存取存储器(random-access memory,简称RAM)、三态内容寻址存储器(ternary content-addressable memory,简称TCAM)和静态随机存取存储器(static random-access memory,简称SRAM)。
在一个实施例中,所述存储器233用于存储包括路由信息265的路由表260。例如,路由信息265包括描述沿着到目的地的路径或隧道的节点或链路的信息。路由表260包括用于许多不同路径或隧道的路由信息265。在一个实施例中,所述存储器233还用于存储指令320,这些指令是用于指示通信系统100中的另一个NE的消息。在一个实施例中,指令320被允许通过所述cBGP会话传送。在一个实施例中,所述存储器233还用于存储对等体组策略275和对等体数据280。对等体组策略275指示可以在对等体组的NE之间共享的对等体数据280的类型,如下面将参考图6和图7进一步描述的。
应当理解,通过将可执行指令编程和/或加载到NE 200上,改变处理器230和/或存储器233中的至少一个,将NE 200部分地转换为具有本发明所教导的新颖功能的特定机器或设备,例如多核转发体系结构。对于电气工程和软件工程领域来说,可以通过将可执行软件加载到计算机中来实现的功能可以通过公知的设计规则被转换为硬件实现。在软件和硬件中实现概念之间的决定通常依赖于设计的稳定性和要生产的单元的数量的考虑,而不是涉及从软件域到硬件域的转换的任何问题。通常,仍然经受频繁改变的设计可以优选地在软件中实现,因为重新开发硬件实现比重新进行软件设计更昂贵。通常,在硬件中,例如在ASIC中,可以优选地实现将大批量生产的稳定的设计,因为对于大批量生产运行,硬件实现可以比软件实现便宜。通常,可以以软件形式开发和测试设计,并随后通过公知的设计规则将其转换为ASIC中的等效硬件实现,所述ASIC对软件的指令进行硬连线。以与由新ASIC控制的机器相同的方式是特定的机器或设备,同样,已经被编程和/或加载了可执行指令的计算机可以被视为特定的机器或设备。
图3是示出根据本发明的各种实施例的在通信系统100中建立和实现cBGP会话的方法300的消息序列图。方法300由通信系统100中的NE 109-115实现,例如NE 111、NE 112和NE 114。在一个实施例中,NE 111可以被实现为通信系统100的控制器或RR。在已经在NE111和NE 112之间建立的iBGP会话之后,以及在NE 111和NE 114之间完成传输控制协议(Transmission Control Protocol,简称TCP)三次握手之后,执行方法300。
在完成TCP三次握手时,NE 111和NE 114尝试使用OPEN消息306和309建立cBGP会话。在步骤307,NE 114填充OPEN消息306并将其发送到NE 111。OPEN消息306包括描述在建立NE 111和NE 114之间的cBGP会话之前NE 114应该被NE 111协商和接受的信息。OPEN消息306包括NE 114能够实现的BGP版本、NE 114的AS号、指示消息之间的建议秒数的抑制定时器、指示NE 114的标识的BGP标识,以及一个或多个可选参数。在一个实施例中,OPEN消息306指示NE 114是否能够建立cBGP会话。例如,OPEN消息306可以包括可选的能力字段,其中,所述能力字段包括指示NE 114是否能够建立cBGP会话的代码。在一个实施例中,能力字段还指示是否实现NE 114或是否充当控制器。由于在该示例中NE 114没有被实现为控制器,因此能力字段可以指示NE 114不是控制器。
在步骤310,NE 111填充OPEN消息309并将其发送到NE 114。OPEN消息309类似于OPEN消息306,除了OPEN消息309包括描述NE 111的信息。OPEN消息309包括NE 111能够实现的BGP版本、NE 111的AS号、指示消息之间的建议秒数的抑制定时器、指示NE 111的标识的BGP标识,以及一个或多个可选参数。在一个实施例中,OPEN消息309指示NE 111是否能够建立cBGP会话。例如,OPEN消息309可以包括可选的能力字段,其中,所述能力字段包括指示NE111是否能够建立cBGP会话的代码。在一个实施例中,能力字段还指示是否实现NE 111或是否充当控制器。因为在该示例中NE 111被实现为控制器,所以所述能力字段可以指示NE111是控制器。
在步骤313和316,NE 114和NE 111基于包含在OPEN消息306和309中的信息来确定是否在NE 114和NE 111之间建立cBGP会话。具体地,在步骤313,NE 114确定在OPEN消息306中从NE 111发送的信息和能力是否与NE 114的能力和特征匹配或兼容。类似地,在步骤316,NE 111确定在OPEN消息309中从NE 114发送的信息和能力是否与NE 111的能力和特征匹配或兼容。
响应于NE 111和NE 114都兼容的特征和能力,NE 111和NE 114在NE 111和NE 114之间建立cBGP会话。相反,当NE 111和NE 114的特征和能力不兼容时,不能在NE 111和NE114之间建立cBGP会话。
在建立NE 111和NE 114之间的cBGP会话之后,允许通过所述cBGP会话传送某些类型的信息,而禁止通过所述cBGP会话传送其他类信息。在一个实施例中,允许通过所述cBGP会话传送控制消息。例如,允许通过所述cBGP会话传送诸如指令和/或状态更新的控制消息。
在图3中,在步骤319,NE 111向NE 114发送指令320。例如,指令320可以是具有控制信息属性的UPDATE消息,所述控制信息属性包含用于链接指令子TLV的分配邻接段标识(SID),其指示NE 114将邻接SID分配给链接。相邻SID和链接在下面参照图10B和图10E所示的子TLV中表示。指示NE 114应当将邻接SID分配给链路的指令320的示例在图11A中引用的子TLV中表示。
在步骤322,响应于接收到UPDATE消息,NE 114将响应或状态323发送回NE 111。例如,响应或状态323指示UPDATE消息中包括的指令的执行的状态或结果。在一个实施例中,响应或状态323是具有包含状态TLV的控制信息属性的另一UPDATE消息,其指示指令的执行是否成功。指示指令320是否被成功执行的响应或状态323的示例在图12中引用的子TLV中表示。
在一个实施例中,仅允许通过所述cBGP会话发送不包含路由信息的控制消息。路由信息是指描述到通信系统100或网络中的目的地的路径的信息。例如,路由信息可以包括沿着到目的地的路径的某些NE的标签、地址或标识。
在一个实施例中,NE 111不从NE 114接收具有路由信息的消息,并且不向NE 114发送具有路由信息265的消息,因为NE 111和NE 114参与cBGP会话。例如,充当RR和控制器的NE 111在从NE 112接收到具有与NE 111的iBGP会话的消息之后不向NE 114发送具有路由信息265的消息。
例如,在图3中,NE 111已经与NE 112建立了iBGP会话,通过该会话允许发送包含路由信息265的消息。在步骤326,NE 112向NE 111发送包含路由信息265的UPDATE消息,并且NE 111接收UPDATE消息。在BGP中,NE 111用于将该UPDATE消息分发到所连接的BGP对等体,例如NE 114。然而,由于NE 111已经与NE 114建立了cBGP会话,因此禁止NE 111将包含路由信息265的UPDATE消息转发到NE 114。也就是说,NE 111不向NE 114发送包含路由信息265的UPDATE消息。
类似地,禁止由NE 114获知的路由信息265被分发或转发到与其建立了cBGP会话的NE 111。在一些实施例中,当NE 111或114接收路由信息265时,禁止NE 111和NE 114将路由信息265转发或分发到任何其他cBGP对等体。
在一些实施例中,禁止iBGP对等体和eBGP对等体向NE 114或与其建立了cBGP会话的任何其他NE发送UPDATE消息。在NE 114接收到UPDATE消息的情况下,NE 114用于丢弃、放弃或忽略所述UPDATE消息。因此,在NE 111和NE 114之间建立的cBGP会话防止不必要的业务通过通信系统100转发并阻塞网络资源。
图4是示出根据本发明的各种实施例用于实现cBGP的通信系统400的图。图4的通信系统400类似于图1的通信系统100,区别在于图4的通信系统400示出了在NE 111与NE109-110和NE 112-115之间建立的不同BGP会话404-411。另外,图4的通信系统400示出了可以在单个NE对之间建立不同类型的BGP会话。
类似于图1的通信系统100。在图4的通信系统400中,NE 111被实现为通信系统400的控制器和RR。这样,NE 111已经与通信系统400中的其他NE 109-110和NE 112-115建立了不同类型的BGP会话或连接。具体地,位于AS 106内的NE 111已经建立了与NE 109和NE110的单独的eBGP会话,这两者都位于AS 103内。如图4所示,NE 111已经建立了与NE 109的eBGP会话404和与NE 110的eBGP会话405。
NE 111还已经与NE 112、NE 113、NE 114和NE 115建立了单独的iBGP会话,所有这些都位于同一AS 106内。如图4所示,NE 111已经与NE 112建立了iBGP会话406,与NE 113建立了iBGP会话407,与NE 114建立了iBGP会话408,以及与NE 115建立了iBGP会话409。
在一些实施例中,NE 111用于与已经与其建立了其他BGP会话类型的NE 110和NE112中的一些建立cBGP会话。如图4所示,NE 111已经建立了与NE 110的eBGP会话405和与NE112的iBGP会话406。在一个实施例中,NE 111用于另外与NE 110和NE 112建立cBGP会话。具体地,NE 111用于与NE 110建立cBGP会话410,并且与NE 112建立cBGP会话411。
NE 111另外以两种不同的方式建立cBGP会话410和411。在第一种方式中,NE 111独立于现有BGP会话建立cBGP会话410和411。例如,NE 111分别与NE 110建立cBGP会话410,例如,作为来自现有的eBGP会话405的独立隧道。在该示例中,通过不同类型的BGP会话(例如,eBGP会话405和cBGP会话410)在NE 111和NE 110之间传送不同类型的消息。在一个实施例中,允许通过所述cBGP会话410传送第一类消息,其中第一类消息是排除路由信息265的控制消息。在本实施例中,包括路由信息265的第二类消息应该通过eBGP会话405传送。
例如,当NE 111从另一BGP对等体方接收到UPDATE消息时,NE 111可以首先基于UPDATE消息的格式来确定UPDATE消息的消息类型。响应于确定UPDATE消息包含路由信息265,NE 111确定UPDATE消息应当通过eBGP会话405而不是cBGP会话410被转发到NE 110。在这种情况下,NE 111通过eBGP会话405向NE 110发送UPDATE消息。
相反,当NE 111向NE 110发送指令时,NE 111首先确定指令的消息类型。响应于确定指令是不包含路由信息265的控制消息,NE 111确定指令应该通过所述cBGP会话410被转发到NE 110。在这种情况下,NE 111通过所述cBGP会话410向NE 110发送指令。
当NE 111与NE 112分别与现有iBGP会话406建立cBGP会话411时,使用类似的方法。例如,NE 111与NE 112分别建立cBGP会话411,例如,作为来自现有的eBGP会话406的独立隧道。在该示例中,通过不同类型的BGP会话(例如,iBGP会话406和cBGP会话411)在NE111和NE 112之间传送不同类型的消息。在一个实施例中,允许通过所述cBGP会话411传送第一类消息,其中第一类消息是排除路由信息265的控制消息。在本实施例中,包括路由信息265的消息应该通过iBGP会话406传送。
在建立cBGP会话的第二种方式中,NE 111通过将cBGP会话410和411与现有的eBGP会话405和iBGP会话406组合来建立cBGP会话410和411。例如,不是为新的cBGP会话410创建单独的隧道,而是NE 111通过将cBGP会话410添加到现有的eBGP会话405来创建与NE 110的组合BGP会话。在该示例中,允许通过组合BGP会话在NE 111和NE 110之间传送不同类型的消息。在本实施例中,允许通过组合BGP会话传送第一类消息,其中第一类消息是排除路由信息265的控制消息。在本实施例中,还允许通过组合BGP会话来传送包括路由信息265的第二类消息。
当NE 111与已经与其建立了iBGP会话406的NE 112建立组合BGP会话时,使用类似的方法。例如,NE 111通过例如向现有iBGP会话406添加cBGP会话411来建立与NE 112的组合BGP会话。在该示例中,允许通过组合BGP会话在NE 111和NE 112之间传送不同类型的消息。
因此,在此公开的实施例使得能够灵活地与其他NE建立cBGP会话,而不管是否已经与其他NE建立了其他类型的BGP会话。当使用第一种方式建立cBGP会话时,cBGP会话与其他现有BGP会话分开和独立地建立。在此第一种方式中,cBGP NE用于基于消息的类型过滤消息,以确定通过哪个BGP会话发送消息。当使用第二种方式建立cBGP会话时,cBGP会话与现有BGP会话组合。在此第二种方式中,可以通过组合BGP会话来发送所有类消息。
图5是示出根据本发明的各种实施例的由图1的通信系统100或图4的通信系统400中的NE发送的能力TLV 500的图。在一个实施例中,能力TLV 500包括指示NE 109-115是否能够与另一NE 109-115建立cBGP会话的信息。在一个实施例中,能力TLV 500作为可选参数被包括在OPEN消息中,类似于图3的OPEN消息306和309。在另一个实施例中,能力TLV 500是在通信系统100中的NE 109-115之间传输的新的和分离的消息,以指示NE 109-115的相应性能。
在图5所示的实施例中,能力TLV 500包括能力代码503、能力长度506和能力值509。能力代码503是携带代码的一个字节字段,所述代码指示发送能力TLV 500的NE 109-115是否能够与另一NE 109-115建立cBGP会话。在一个实施例中,代码是表示NE 109-115是否能够与另一NE 109-115建立cBGP会话或者NE 109-115是否不能够与另一NE 109-115建立cBGP会话的值。
能力长度506是指示能力值509的长度是2字节的1字节字段。能力值509是携带各种标志的2字节字段。在一个实施例中,能力值509携带C标志511和I标志514。在一个实施例中,C标志511被设置为指示发送能力TLV 500的NE 109-115是否充当通信系统100的控制器。例如,当C标志511被设置为1时,C标志511指示发送能力TLV 500的NE 109-115充当通信系统100的控制器。类似地,当C标志511被设置为0时,C标志511指示发送能力TLV 500的NE109-115不充当通信系统100的控制器。
在一个实施例中,I标志514被设置为指示发送能力TLV 500的NE 109-115用于在可应用时创建单独的cBGP会话还是组合的BGP会话,如以上参考图4所述。4.例如,当I标志514被设置为1时,发送能力TLV 500的NE 109-115用于创建与另一个NE 109-115的cBGP会话,所述另一个NE 109-115与任何其他现有BGP会话是分开的并且是独立的。例如,发送能力TLV 500的NE 109-115用于通过创建与另一NE 109-115的单独的隧道或路径来创建新的cBGP会话。类似地,当I标志514被设置为0时,发送能力TLV 500的NE 109-115用于创建与另一NE 109-115的组合BGP会话。
图6是示出根据本发明的各种实施例的用于实现对等体组内的cBGP对等会话的通信系统600的图。在图6中,所述通信系统600包括控制器603和两个对等体组606和609。所述对等体组606和609指的是通信系统600中共享类似特性或策略的NE 615-617和NE620-622的集合或组。
在图6中,所述对等体组606包括NE 615、NE 616和NE 617,而所述对等体组609包括NE 620、NE 621和NE 622。在所述对等体组606内,NE 615-617基于共享特性或策略分组在一起。共享特征或策略可以包括,例如,共享租户标识(identifier,简称ID)、类似地理区域、类似区域、类似组名、加密或解密方法等。例如,NE 615-617与同一租户相关联,并且因此与同一租户标识相关联,即使NE 615-617可以位于不同的地理区域中。为此,NE615-617被一起分组为单个对等体组606。
类似地,在所述对等体组609内,基于共享特性或策略将NE 620-622分组在一起。例如,NE 620-622可以与同一公司名称相关联,因此,可以属于同一对等体组609,即使NE620-622位于不同的地理区域中。
在一个实施例中,NE 615-617和NE 620-622类似于所述通信系统100和400的NE109-115。在另一个实施例中,NE 615-617和620-622被实现为用户驻地设备(customerpremises equipment,简称CPE),所述用户驻地设备是位于用户驻地并连接到运营商的电信电路的终端或设备。
NE 615-617和620-622各自分别通过链路630-632和633-635耦合到控制器603。链路630-632和633-635可以类似于链路120-125,因为链路630-632和633-635可以是将NE615-617和620-622中的每一个互连到控制器603的有线或无线链路或接口。链路630-632和633-635用于根据诸如BGP(例如,iBGP、eBGP和cBGP)的各种路由协议来转发流量。
在一个实施例中,所述控制器603类似于NE 111,因为控制器可以充当所述通信系统600的RR。在另一个实施例中,所述控制器603可以是通信系统600中包括的AS外部的单独服务器或站点。
在一些实施例中,所述控制器603、NE 615-617和620-622用于通过在对等体组606和609的成员与控制器603之间建立cBGP会话来选择性地传送某些类型的信息。在一个实施例中,控制器603与NE 615-617建立cBGP会话。所述控制器603分别与NE 620-622建立cBGP会话。
在所述控制器603与所述对等体组606和609的成员之间建立了cBGP会话之后,所述控制器603确定是转发还是分发从所述对等体组606和609内的其他成员NE 615-617和620-622接收的信息。在本实施例中,某些类型的信息可以被允许转发或分发到同一对等体组606和609内的NE 615-617和620-622。
例如,可以在对等体组606和609的成员NE 615-617和620-622内共享的信息包括:同一对等体组606和609内的NE 615-617和620-622的私有地址;同一对等体组606和609内的特定NE 615-617和620-622的端口的端口地址;同一对等体组606和609内的NE 615-617和620-622的安全相关信息;描述同一对等体组606和609内的NE 615-617和620-622的以太网虚拟专用网(Ethernet virtual private network,简称EVPN)的信息;描述同一对等体组606和609内的NE 615-617和620-622的智能虚拟专用网(intelligent virtual privatenetwork,简称IVPN)的信息等。例如,当所述通信系统600是软件定义广域网(SoftwareDefined Wide Area Network,简称SD-WAN)时,可以在对等体组606和609的成员NE 615-617和620-622内共享的信息包括端节点广域网(wide area network,简称WAN)自动发现信息,例如SD-WAN节点私有地址,WAN端口或向SD-WAN控制器注册的地址等。在该示例中,在对等体组606和609的成员NE 615-617和620-622内也共享在WAN端口之间的控制器辅助的因特网协议安全(Internet Protocol security,简称IPsec)关联信息建立。在一个实施例中,路由信息265也可以在同一对等体组606和609的成员NE 615-617和620-622之间共享。
在一个实施例中,网络管理员或运营商预先配置控制器603以包括特定对等体组606和609内的NE 615-617和620-622中的每一个的标识、标签或地址。在另一个实施例中,所述控制器603基于与NE 615-617和620-622相关联的特性或属性智能地确定对等体组606和609的成员NE 615-617和620-622。例如,所述控制器603可以获得用于每个NE 615-617的租户标识,然后基于用于NE 615-617的匹配的租户标识创建对等体组606。
在一个实施例中,所述控制器603基于由网络管理员或运营商定义的对等体组策略275来分发信息,所述对等体组策略275指定可以在对等体组606或609的成员NE 615-617和620-622内共享的信息的类型。在另一个实施例中,所述控制器603可以用于智能地确定对等体组策略275,所述对等体组策略275定义了可以在对等体组606或609的成员NE 615-617和620-622之间安全地共享的信息的类型。
图7是示出根据本发明的各种实施例的在图6的通信系统600中实现cBGP的方法700的消息序列图。方法700由所述通信系统600中的NE实现,例如所述控制器603和NE 615、616、620和621。在所述控制器603已经与NE 615、616、620和621建立了cBGP会话之后以及在建立了对等体组606和609之后,执行方法700。如上所述,所述对等体组606包括NE 615和616,而所述对等体组609包括NE 620和621。
所述控制器603可以通过生成对等体数据780A和780B或者从另一BGP对等体/NE接收对等体数据780A和780B来获得对等体数据780A和780B。例如,所述对等体数据780A包括来自所述对等体组606的NE 617的地址(参见图6),所述对等体数据780B可以包括关于来自对等体组609的NE 622的端口信息(参见图6)。
在将对等体数据780A-780B发送到相应的对等体组606和609的其他成员NE之前,控制器603基于为对等体组606和609中的每一个定义的对等体组策略275来确定对等体数据780A-780B是否包括被允许分发或转发到相应的对等体组606和609的其他成员NE的数据类型。在一个实施例中,对等体组策略275指示可以在相应的对等体组606和609之间共享的数据的类型。在本实施例中,所述控制器603将对等体数据780A-780B与每个对等体组606和609的相应对等体组策略275进行比较,以确定是否允许共享对等体数据780A-780B。
当用于对等体组606的对等体组策略275指示地址信息被允许与对等体组606中的其他NE共享时,在步骤703,所述控制器603将对等体数据780A发送到对等体组606的NE616。值得注意的是,所述控制器603不将对等体数据780A转发到作为不同对等体组609的成员的NE 620或621。类似地,当用于对等体组609的对等体组策略275指示端口信息被允许与对等体组609中的其他NE共享时,在步骤706,所述控制器603将对等体数据780B发送到对等体组609的NE 620。值得注意的是,所述控制器603不将对等体数据780B转发到作为不同对等体组606的成员的NE 615或616。在一个实施例中,对等体组606和609内的NE还本地存储用于确定是否共享对等体数据780A-780B的对等体组策略275。
图8A-C是示出根据本发明的各种实施例的基于BGP 4编码的UPDATE消息800的示图。所述UPDATE消息800的编码方式可类似于Y.Rekhter等人于2006年1月提交的名为“ABorder Gateway Protocol 4(BGP-4)”的域间路由工作组(Inter-Domain RoutingWorking Group,简称IDR WG)征求意见稿(Request for Comments,简称RFC)4271(以下称为RFC 4271)中描述的UPDATE消息。如图8所示,所述UPDATE消息800包括消息头802和各种属性810。
在一个实施例中,例如,在图3的步骤319中可以由NE 111发送UPDATE消息800,或者例如,在步骤322中可以由NE 114发送UPDATE消息800。结合图8-12,术语“节点”可以与“NE”互换使用。
消息头802包括标记803、长度806和类型809。标记803是为了兼容性而包括的16个八位字节的字段,并且可以被设置为全1。长度806是指示以八位字节为单位的UPDATE消息800(包括消息头802)的总长度的2八位字节无符号整数。类型809是指示携带属性810,特别是控制信息830的UPDATE消息800的类型代码的1字节无符号整数。在一个实施例中,类型代码是2,它是现有UPDATE消息的现有类型代码。当UPDATE消息通过所述cBGP会话被发送时,它包含控制信息830。在另一个实施例中,类型代码是不同于2的新编号。该新编号(即,新类型代码)指示该消息是包含控制信息830的UPDATE消息。
属性810包括用于向对等体通告共享公共路径属性的可行路由,或者用于从服务撤销多个不可行路由的细节。如图8所示,属性810包括撤回路由长度812、撤回路由815、总路径属性长度818、路径属性821、NLRI 824或控制信息830中的至少一个。撤回路由长度812是指示以八位字节表示的撤回路由815的总长度的2八位字节无符号整数。撤回路由815是包含用于从服务撤回路由的IP地址前缀的列表的可变长度字段。每个IP地址前缀被编码为形式<长度,前缀>的单个2元组。
图8B示出了用于用信号通知撤回路由815中的每个IP地址前缀的2元组形式。2元组包括长度853 1-八位字节字段,其指示IP地址前缀856字段的以位为单位的长度。IP地址前缀856字段携带IP地址前缀。
总路径属性长度818是指示以八位字节为单位的路径属性821的总长度的2八位字节无符号整数。路径属性821是存在于每个UPDATE消息800中的路径属性的可变长度序列,除了仅携带撤回路由的UPDATE消息。每个路径属性821被反映为包括属性类型、长度和值的三元组。NLRI 824是包含IP地址前缀列表的可变长度字段。NLRI 824中的可达性信息被编码为形式<长度,前缀>的一个或多个2元组。
图8C示出了用于用信号通知NLRI 824中的每个IP地址前缀的2元组形式。2元组包括长度863 1-八位字节字段,其指示IP地址前缀866字段的以位为单位的长度。IP地址前缀863字段携带IP地址前缀。
根据一些实施例,属性810包括控制信息830。在一个实施例中,指令320和上面参考图3描述的响应或状态323在UPDATE消息800的控制信息830中携带。在本实施例中,已经彼此建立cBGP会话的NE或节点仅被允许发送携带指令320和/或控制信息830中的响应或状态323的UPDATE消息800。
图9是示出根据本发明的各种实施例的更新消息800中所包括的控制信息830的图。控制信息属性830包括各种字段,诸如属性标志903、属性类型906、长度909、标识912和一个或多个子TLV 915。属性标志903包括8位,其中每位都是表示关于控制信息830的信息的标志。在一个实施例中,位0是指示控制信息830是可选的还是公知的可选位。例如,如果控制信息830是可选的,则位0被设置为1;或者如果控制信息830是公知的,则位0被设置为0。位1可以是指示控制信息830是可传递的还是不可传递的可传递位。例如,如果控制信息830是可传递的,则将位1设置为1;或者如果控制信息830是不可传递的,则将位1设置为0。位2可以是指示控制信息830是部分还是完整的部分位。例如,如果控制信息830是部分的,则位2被设置为1;或者如果控制信息830是完成的,则位2被设置为0。位3是指示控制信息830的长度909字段是1或2个八位字节的扩展长度位。例如,如果控制信息830的长度909是1个八位字节,则位3被设置为0;或者如果控制信息830的长度909是2个八位字节,则位3被设置为1。在一个实施例中,对于控制信息830,位0被设置为1,因为控制信息830是可选的,而位1被设置为0,因为控制信息830是不可传递的。
属性类型906包括指示属性是控制信息830的代码或值。长度909是指示控制信息830中的字节数的8位或16位值。标识912是标识控制信息830中的一组指令的32位字段。子TLV 915包括一个或多个携带信息,指令320或状态323的子TLV 915,这将在下面的示例中进一步描述。
图10A-E是示出根据本发明的各种实施例的包括在控制信息属性830中的子TLV915A-E的示例的图。图10A-E中所示的子TLV 915A-E携带与执行指令320有关的节点/NE、链路或接口的信息。
图10A示出了指示接收指令320的节点/NE的节点子TLV 915A。节点子TLV 915A包括各种字段,例如节点类型1003、长度1006和节点IP地址1009。节点类型1003携带指示子TLV 915A是节点子TLV 915A的值。基于节点IP地址1009承载IPv4地址还是IPv6地址,长度1006指示4字节或16字节。当节点IP地址1009携带IPv4地址时,长度1006指示4字节。当节点IP地址1009携带IPv6地址时,长度1006指示16字节。节点IP地址1009承载接收指令320的节点/NE的IP地址(IPv4地址或IPv6地址)。
图10B示出了指示指令320被应用到的链接的链接子TLV 915B。链路子TLV 915B包括各种字段,诸如链路类型1011、长度1012、链路本地IP地址1013和链路远程IP地址1014。链接类型1011携带指示子TLV 915B是链接子TLV 915B的值。长度1006指示8字节或32字节,这取决于包括在链路本地IP地址1013和链路远程IP地址1014中的IP地址是IPv4地址(4字节)还是IPv6地址(16字节)。链路本地IP地址1013携带链路的本地IP地址作为IPv4地址或IPv6地址。链路远程IP地址1014携带链路的远程IP地址作为IPv4地址或IPv6地址。
图10C和图10D是指示指令320所应用的前缀的IP前缀子TLV 915C和915D。具体地,图10C示出了携带IPv4前缀的IPv4前缀子TLV 915C,而图10D示出了携带IPv6前缀的IPv6前缀子TLV 915D。
如图10C所示,IPv4前缀子TLV 915C包括各种字段,例如IPv4前缀类型1021、长度1022、前缀长度1023和IPv4前缀1024。IPv4前缀类型1021携带指示子TLV 915C是IPv4前缀子TLV 915C的值。长度1022承载除类型字段1021和长度1022字段之外的IPv4前缀子TLV915C的长度,其中,所述长度1022字段可以是可变长度。前缀长度1023携带IPv4前缀1024的长度,并且IPv4前缀1024携带IPv4前缀。
如图10D所示,IPv6前缀子TLV 915D包括各种字段,例如IPv6前缀类型1031、长度1032、前缀长度1033和IPv6前缀1034。IPv6前缀类型1031携带指示子TLV 915D是IPv6前缀子TLV 915D的值。长度1032承载IPv6前缀子TLV 915D的长度,不包括类型字段1031和长度1032字段,其可以是可变长度。前缀长度1033携带IPv6前缀1034的长度,IPv6前缀1034携带IPv6前缀。
图10E示出了指示指令320将被应用到的邻接SID的邻接段标识(adjacencysegment identifier,简称SID)子TLV 915E。邻接SID子TLV 915E包括各种字段,诸如邻接SID类型1041、长度1042、标志1043、权重1044、保留位,以及SID、标签或索引1045。邻接SID类型1041包括指示子TLV 915E是邻接SID子TLV 915E的值。长度1042承载除类型字段1041和长度1042字段之外的相邻SID子TLV 915E的长度。标志1043携带各种位或标志,例如备份标志、值索引标志、局部/全局标志、组标志或永久标志。权重1044用于负载平衡目的。SID、标签或索引1045携带定义SID/标签空间中的偏移的4个八位字节索引、3个八位字节本地标签或SID。关于SID子TLV 915E的其他细节在P.Psenak等人于2018年12月3日提交的名为“OSPF扩展段路由”的开放式最短路径优先IGP草案文件中有进一步描述。
图10A-E示出了携带与执行指令320有关的节点/NE、链路或接口的信息的子TLV915A-E。图10A-E仅示出了可以在UPDATE消息800的控制信息830中携带的此类TLV 915的一些示例。应当理解,携带其他类型信息的其他子TLV 915可以另外包括在UPDATE消息800的控制信息830中。
图11A-B是示出根据本发明的各种实施例的包括在控制信息830中携带的指令320的子TLV 915F-G的图。指令320是将在节点/NE、链路、前缀或段上执行的指令,如由例如一个或多个子TLV 915A-E所标识的。在一个实施例中,允许在cBGP会话期间传送包括指令320的子TLV 915F-G。
图11A示出了根据本发明的各种实施例的对链接子TLV 915F的分配邻接SID。将邻接SID分配给链接子TLV 915F包括用于节点/NE接收更新消息800以将邻接SID分配给链接的指令320。分配邻接SID给链接子TLV 915F包括各种字段,例如,分配邻接SID链接类型1103、长度字段1106、邻接SID子TLV 915E和链接子TLV 915B。分配邻接SID链接类型1103携带指示子TLV 915F是到链接子TLV 915F的分配邻接SID的值。长度1106承载到链接子TLV915F的指定邻接SID的长度,而不包括类型字段1103和长度1106字段。如上所述,邻接SID子TLV 915E携带SID、标签或索引1045,而链路子TLV 915B携带链路本地IP地址1013和链路远程IP地址1014。该信息由接收分配邻接SID到链接子TLV 915F的节点/NE使用,以将在分配邻接SID到链接子TLV 915F中标识的邻接SID分配到也在分配邻接SID到链接子TLV 915F中标识的链接。
图11B示出了根据本发明的各种实施例的流重定向子TLV 915G。流重定向子TLV915G包括用于节点接收UPDATE消息800以重定向数据流的指令320。流重定向子TLV 915G包括各种字段,诸如流重定向类型1153、长度字段1156、间接ID 1159和流规范1161。流重定向类型1153携带指示子TLV 915G是流重定向子TLV 915G的值。长度1106承载除类型字段1153和长度1156字段之外的流的重定向子TLV 915G的长度。间接ID 1159标识业务应该通过其被重定向的隧道。在一个实施例中,间接ID 1159是32位。流规范1161描述了应该通过由间接ID 1159标识的隧道重定向的业务。在一个实施例中,流规范1161是链路子TLV 915B,其指示流是来自链路子TLV给出的链路的业务。在另一个实施例中,流规范1161是描述业务流的IPv4前缀子TLV 915C。该信息由接收流重定向子TLV 915G的节点/NE使用,以将由流规范1161描述的业务重定向到在间接ID 1159中标识的隧道。
图12是示出根据本发明的各种实施例的包括在控制信息830中携带的响应或状态323的状态子TLV 915H的示图。状态子TLV 915H被填充在携带指示接收第一UPDATE消息800的节点是否成功地执行在第一UPDATE消息800中携带的指令320的信息的新UPDATE消息800中。状态子TLV 915H包括各种字段,例如状态类型1203、长度1206、保留位、状态简述(status brief,简称SB)1212、错误代码1215,以及故障发生的原因1217。状态类型1203携带指示子TLV 915H是状态子TLV 915H的值。长度1206携带除类型字段1203和长度1206字段之外的状态子TLV 915H的长度。SB 1212包括指示指令320是否被成功执行的值。例如,如果指令320被成功执行,则SB 1212可以被设置为1;如果指令320未被成功执行或失败,则SB1212可以被设置为2;如果指令320仅被部分执行,则SB 1212可以被设置为3。当指令320不能成功地执行时,错误代码1215可携带错误代码或值,以识别为什么指令320不能成功地执行的预定原因。故障发生的原因1217是可选字段,其可以携带描述指令320不能成功执行的原因的附加信息。
在一个实施例中,在cBGP会话期间,当节点/NE接收到包含控制信息830的第一UPDATE消息800时,其中控制信息830携带指令320,节点/NE可以首先尝试执行指令320。例如,控制信息830可以包括对链接子TLV 915F的分配邻接SID。节点/NE可以尝试将在分配邻接SID中标识的邻接SID分配给链接子TLV 915F,所述链接也在分配邻接SID中标识给链接子TLV 915F。节点然后可以用控制信息830填充新的(或第二)UPDATE消息800,所述控制信息830包括指示邻接是否被正确分配的状态子TLV 915H和来自第一UPDATE消息800中的控制信息830的标识912。这样,cBGP会话允许携带控制信息830的UPDATE消息800在已经建立cBGP会话的NE或节点之间通信。在一个实施例中,仅允许携带控制信息830的UPDATE消息800和没有其他属性810在已经建立cBGP会话的NE或节点之间通信。在另一个实施例中,无论UPDATE消息800是否包括其他属性810,仅允许携带控制信息830的UPDATE消息800在已经建立cBGP会话的NE或节点之间通信。
图13是示出根据本发明的各种实施例的建立cBGP会话并通过所述cBGP会话传送数据的方法1300的流程图。方法1300可以由控制器来实现,例如通信系统100、400或600的NE 111、NE 200或603。方法1300可以在所述控制器已经与另一个NE(例如,NE 114)建立TCP三方握手之后实现。
在步骤1303,所述控制器建立与NE 114的cBGP对等会话。例如,NE 111通过发送指示NE 111能够建立cBGP对等会话的OPEN消息来建立与NE 114的cBGP对等会话。然后,NE111从NE 114接收OPEN消息,所述OPEN消息指示NE 114能够建立cBGP对等会话。如参考图3所述,当NE 111和NE 114都能够建立cBGP对等会话时,在NE 111和NE 114之间建立cBGP对等会话。在一个实施例中,允许通过cBGP对等会话传送第一类消息。例如,第一类消息包括除路由信息265之外的控制消息,例如指令、对指令的响应以及状态消息。在本实施例中,禁止通过所述cBGP会话传送包含路由信息265的消息。
在步骤1306,NE 111通过cBGP对等会话向NE 114发送消息。例如,NE 111的Tx/Rx210通过cBGP对等会话向NE 114发送消息。例如,所述消息是关于NE 114的接口的指令,并且不包含路由信息265。
在步骤1309,NE 111基于该消息是否携带路由信息265来确定是否允许通过所述cBGP会话传送该消息。例如,cBGP模块224由处理器230执行,以基于该消息是否携带路由信息265来确定该消息是否被允许通过所述cBGP会话传送。
在步骤1311,如果允许通过所述cBGP会话传送消息,则NE 111通过所述cBGP会话向NE发送消息。例如,如果允许通过所述cBGP会话传送消息(即,如果消息不包含路由信息265),则NE 111的Tx/Rx 210将消息发送到NE 114。
在步骤1315,NE 111通过所述cBGP会话从所述NE接收响应消息。例如,NE 111的Tx/Rx 210通过cBGP对等会话从NE 114接收响应消息。例如,响应消息指示NE 114是否已经成功地将段标识(segment identifier,简称SID)分配给在步骤1306发送的消息中标识的接口。
图14是示出根据本发明的各种实施例的建立cBGP会话并通过所述cBGP会话传送数据的另一种方法1400的流程图。方法1400可以由不是控制器的通信系统100中的NE来实现,例如NE 109-110或112-115。方法1400可以在NE(例如,NE 109)已经与控制器(例如,NE111)建立TCP三次握手之后实现。
在步骤1403,NE 109与NE 111建立cBGP对等会话。例如,NE 109通过发送指示NE109能够建立cBGP对等会话的OPEN消息来建立与NE 111的cBGP对等会话。然后,NE 109从NE111接收OPEN消息,所述OPEN消息指示NE 111能够建立cBGP对等会话。如参考图3所述,当NE111和NE 109都能够建立cBGP对等会话时,在NE 111和NE 109之间建立cBGP对等会话。在一个实施例中,允许通过cBGP对等会话传送第一类消息。例如,第一类消息包括除路由信息265之外的控制消息,例如指令、对指令的响应以及状态消息。在本实施例中,禁止通过所述cBGP会话传送包含路由信息265的消息。
在步骤1406,NE 109通过cBGP对等会话从NE 111接收消息。例如,NE 109的Tx/Rx210通过cBGP对等会话从NE 111接收消息。例如,第一类消息是关于NE 109的接口的指令,并且不包含路由信息265。
在步骤1409,NE 109基于该消息是否携带路由信息265来确定是否允许通过所述cBGP会话传送该消息。例如,cBGP模块224由处理器230执行,以基于该消息是否携带路由信息265来确定该消息是否被允许通过所述cBGP会话传送。
在步骤1412,NE 109通过cBGP对等会话向NE 111发送响应消息。例如,NE 109的Tx/Rx 210通过cBGP对等会话向NE 111发送响应消息。例如,响应消息指示NE 109是否已经成功地将段标识(segment identifier,简称SID)分配给在步骤1406发送的消息中标识的接口。
图15是示出根据本发明的各种实施例的用于建立cBGP会话并通过所述cBGP会话传送数据的装置1500的图。所述设备1500包括建立装置1503、发送装置1506、确定装置1508和接收装置1509。
在装置1500被实现为控制器的实施例中,所述建立装置1503包括用于与通信系统(例如,通信系统100或400)中的另一个NE建立cBGP对等会话的装置。例如,NE 111通过发送指示NE 111能够建立cBGP对等会话的OPEN消息以及从NE 114接收指示NE 114能够建立cBGP对等会话的OPEN消息来建立与NE 114的cBGP对等会话。如参考图3所述,当NE 111和NE114都能够建立cBGP对等会话时,在NE 111和NE 114之间建立cBGP对等会话。在一个实施例中,所述接收装置1509包括用于接收用于通过所述cBGP会话传送到NE 114的消息的装置。在本实施例中,所述确定装置1508包括用于基于消息是否携带路由信息265来确定是否允许通过所述cBGP会话传送消息的装置。在本实施例中,所述发送装置1506包括用于通过所述cBGP会话将消息发送到通信系统中的另一个NE的装置。在本实施例中,所述接收装置1509包括用于通过所述cBGP会话从通信系统中的其他NE接收响应消息的装置。
在所述装置1500被实现为网络中除控制器之外的NE的实施例中,所述建立装置1503包括与通信系统的控制器建立cBGP对等会话。例如,NE 109通过发送指示NE 109能够建立cBGP对等会话的OPEN消息以及从NE 111接收指示NE 111能够建立cBGP对等会话的OPEN消息来建立与NE 111的cBGP对等会话。如参考图3所述,当NE 111和NE 109都能够建立cBGP对等会话时,在NE 111和NE 109之间建立cBGP对等会话。用于接收的装置1509包括通过所述cBGP会话从控制器接收消息。所述确定装置1508包括用于确定是否允许通过所述cBGP会话传送消息的装置。所述发送装置1506包括通过所述cBGP会话向控制器发送响应消息。
虽然在本发明中已经提供了几个实施例,但是应当理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其他具体形式来实现。本实施例应被视为是说明性的而不是限制性的,并且本发明不限于本文给出的细节。例如,可以将各种元件或组件组合或集成在另一系统中,或者可以省略或不实现某些特征。允许通过组合BGP会话传送第一类消息,其中第一类消息是排除路由信息265的控制消息。在本实施例中,还允许通过组合BGP会话来传送包括路由信息265的第二类消息。
此外,在不脱离本发明的范围的情况下,可以将在各个实施例中描述和示出为分立或单独的技术、系统、子系统和方法与其他系统、模块、技术或方法组合或集成。示出或讨论为彼此耦合或直接耦合或通信的其他项目可以是通过某些接口、设备或中间部件进行的间接耦合或通信,无论其形式是电的、机械的或其他的。改变、替换和变化的其他示例是本领域技术人员可确定的,并且可以在不脱离本文所公开的精神和范围的情况下进行。

Claims (30)

1.一种由用于在通信系统中实现边界网关协议BGP的控制器执行的方法,其特征在于,包括:
与网元NE建立控制器边界网关协议 cBGP会话;
接收用于通过所述cBGP会话传送到所述NE的消息;
基于所述消息是否携带路由信息来确定所述消息是否被允许通过所述cBGP会话进行通信,其中所述消息不包含路由信息表征允许通过所述cBGP会话传送消息;
如果允许通过所述cBGP会话传递消息,则通过所述cBGP会话将消息发送到所述NE;
通过所述cBGP会话从所述NE接收第一类响应消息。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收用于通过所述cBGP会话传送到所述NE的第二消息;
基于所述第二消息是否携带所述路由信息,确定是否允许通过所述cBGP会话传递所述第二消息;
响应于包括所述路由信息的第二消息,丢弃所述第二消息。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述路由信息包括描述沿着从所述通信系统中的源到目的地的路径的网元的信息。
4.根据权利要求1至2中任一项所述的方法,其特征在于,还包括:
接收来自另一NE的携带所述路由信息的BGP UPDATE消息;
丢弃所述BGP UPDATE消息。
5.根据权利要求1至2中任一项所述的方法,其特征在于,还包括:
接收携带所述路由信息和指令的BGP UPDATE消息;
从所述BGP UPDATE消息中删除路由信息;
通过所述cBGP会话向NE仅发送BGP UPDATE消息的指令。
6.根据权利要求1至2中任一项所述的方法,其特征在于,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带所述路由信息的消息,所述控制器和所述NE被包括在公共自治系统AS中;其中,所述方法还包括:
与所述NE建立内部边界网关协议 iBGP会话,其中,所述iBGP会话与所述cBGP会话分离且不同;
基于第二消息的格式,确定从所述NE接收的第二消息是否包括路由信息。
7.根据权利要求1至2中任一项所述的方法,其特征在于,第一类消息是携带指令的消息,第二类消息是携带所述路由信息的消息,所述控制器和所述NE被包括在公共自治系统AS中;其中,所述方法还包括与所述NE建立内部边界网关协议 iBGP会话,所述iBGP会话与所述cBGP会话组合,且允许通过组合会话传送所述第一类消息和所述第二类消息。
8.根据权利要求1至2中任一项所述的方法,其特征在于,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带所述路由信息的消息,所述控制器被包括在第一自治系统AS中,所述NE包含在不同于所述第一AS的第二AS中;其中,所述方法还包括:
与所述NE建立外部边界网关协议 eBGP会话,其中,所述eBGP会话与所述cBGP会话分离且不同;
基于第二消息的格式,确定从所述NE接收的第二消息是否包括路由信息。
9.根据权利要求1至2中任一项所述的方法,其特征在于,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器被包括在第一自治系统AS中,所述NE被包括在不同于所述第一AS的第二AS中;其中,所述方法还包括与所述NE建立外部边界网关协议 eBGP会话,所述eBGP会话与所述cBGP会话组合,并且所述第一类消息和所述第二类消息被允许通过所述组合的会话进行通信。
10.根据权利要求1所述的方法,其特征在于,还包括:
获取对等体组,所述对等体组包括多个NE,所述多个NE包括所述NE,其中在所述控制器与所述多个NE中的每一个之间建立cBGP会话;
从所述NE接收包括第一类信息的第三消息;
响应于允许基于对等体组策略将第一类信息分发到对等体组中的其他NE,将所述第三消息分发到所述对等体组中的其他NE。
11.根据权利要求10所述的方法,其特征在于,基于租户标识ID、地理区域、区域、组名或加密方法中的至少一个,将所述对等体组中的多个NE分组在一起。
12.根据权利要求1或11所述的方法,其特征在于,所述与所述NE建立所述cBGP会话包括:
向所述NE发送第一OPEN消息,其中,所述第一OPEN消息包括所述控制器支持的能力;
从所述NE接收第二OPEN消息,其中,所述第二OPEN消息包括所述NE支持的能力。
13.根据权利要求12所述的方法,其特征在于,所述第一OPEN消息包括I标志和C标志,其中,所述I标志被设置为指示要建立独立的cBGP会话还是要建立组合的cBGP会话,所述C标志被设置为指示所述控制器发送所述第一OPEN消息。
14.根据权利要求1至2中任一项所述的方法,其特征在于,所述控制器是自治系统(autonomous system,简称AS)内的路由反射器RR。
15.一种由用于在通信系统中实现边界网关协议BGP的网元NE执行的方法,其特征在于,包括:
与所述通信系统的控制器建立控制器边界网关协议 cBGP会话;
通过所述cBGP会话从控制器接收消息;
基于所述消息是否携带路由信息来确定所述消息是否被允许通过所述cBGP会话进行通信,其中所述消息不包含路由信息表征允许通过所述cBGP会话传送消息;
通过所述cBGP会话向所述控制器发送响应消息。
16.根据权利要求15所述的方法,其特征在于,还包括:
接收用于通过所述cBGP会话与所述控制器通信的第二消息;
基于所述第二消息是否携带所述路由信息,确定是否允许通过所述cBGP会话传递所述第二消息;
响应于包括所述路由信息的第二消息,丢弃所述第二消息。
17.根据权利要求15至16中任一项所述的方法,其特征在于,所述路由信息包括描述沿着从所述通信系统中的源到目的地的路径的网元的信息。
18.根据权利要求15至16中任一项所述的方法,其特征在于,还包括:
接收来自另一NE的携带所述路由信息的BGP UPDATE消息;
丢弃所述BGP UPDATE消息。
19.根据权利要求15至16中任一项所述的方法,其特征在于,还包括:
接收携带所述路由信息和指令的BGP UPDATE消息;
从所述BGP UPDATE消息中删除路由信息;
通过所述cBGP会话仅将所述BGP UPDATE消息的指令传输到所述控制器。
20.根据权利要求15至16中任一项所述的方法,其特征在于,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带所述路由信息的消息,所述控制器和所述NE被包括在公共自治系统AS中;其中,所述方法还包括:
与所述控制器建立内部边界网关协议 iBGP会话,其中,所述iBGP会话与所述cBGP会话是分离的并且是不同的;
基于第二消息的格式确定从控制器接收的所述第二消息是否包括路由信息。
21.根据权利要求15至16中任一项所述的方法,其特征在于,第一类消息是携带指令的消息,第二类消息是携带路由信息的消息,所述控制器和所述NE被包括在公共自治系统AS中;其中,所述方法还包括与所述控制器建立内部边界网关协议 iBGP会话,其中,所述iBGP会话与所述cBGP会话组合,并且所述第一类消息和第二类消息被允许通过所述组合会话进行通信。
22.根据权利要求15至16中任一项所述的方法,其特征在于,允许通过所述cBGP会话传送第一类消息,并且禁止通过所述cBGP会话传送第二类消息,其中,所述第一类消息是携带指令的消息,所述第二类消息是携带所述路由信息的消息,所述控制器被包括在第一自治系统AS中,所述NE包含在不同于所述第一AS的第二AS中;其中,所述方法还包括:
与所述控制器建立外部边界网关协议 eBGP会话,其中,所述eBGP会话与所述cBGP会话分离且不同;
基于第二消息的格式,确定从所述NE接收的第二消息是否包括路由信息。
23.根据权利要求15至16中任一项所述的方法,其特征在于,第一类消息是携带指令的消息,第二类消息是携带所述路由信息的消息,所述控制器被包括在第一自治系统AS中,所述NE被包括在不同于所述第一AS的第二AS中;其中,所述方法还包括与所述NE建立外部边界网关协议 eBGP会话,所述eBGP会话与所述cBGP会话组合,并且所述第一类消息和所述第二类消息被允许通过所述组合的会话进行通信。
24.根据权利要求15所述的方法,其特征在于,基于租户标识ID、地理区域、区域、组名或加密方法中的至少一个,将对等体组中的多个NE分组在一起,其中,所述对等体组包括多个NE,所述多个NE包括所述NE,其中在所述控制器与所述多个NE中的每一个之间建立cBGP会话。
25.根据权利要求15或24所述的方法,其特征在于,所述与所述通信系统的控制器建立所述cBGP会话包括:
向所述控制器发送第一OPEN消息,其中,所述第一OPEN消息包括所述NE支持的能力;
从所述控制器接收第二OPEN消息,其中,所述第二OPEN消息包括控制器支持的能力。
26.根据权利要求25所述的方法,其特征在于,所述第一OPEN消息包括I标志和C标志,其中,所述I标志被设置为指示是要建立独立的cBGP会话还是要建立组合的cBGP会话,所述C标志被设置为指示所述控制器不发送所述第一OPEN消息。
27.一种建立cBGP会话并通过所述cBGP会话传送数据的装置,其特征在于,包括:
存储器,用于存储指令;
处理器,所述处理器耦合到所述存储器,且用于执行所述指令,其中,所述指令在由所述处理器执行时使所述处理器用于:
与网元(network element,简称NE)建立控制器边界网关协议 cBGP对等会话;
接收用于通过所述cBGP会话传送到所述NE的消息;
基于所述消息是否携带路由信息来确定是否允许通过所述cBGP会话传递所述消息,其中所述消息不包含路由信息表征允许通过所述cBGP会话传送消息;
如果允许通过所述cBGP会话传递消息,则通过所述cBGP会话将消息发送到NE;
通过所述cBGP会话从所述NE接收第一类响应消息。
28.根据权利要求27所述的装置,其特征在于,所述指令进一步使所述处理器用于:
接收用于通过所述cBGP会话传送到所述NE的第二消息;
基于所述第二消息是否携带所述路由信息,确定是否允许通过所述cBGP会话传递所述第二消息;
丢弃所述第二消息以响应包括所述路由信息的所述第二消息。
29.一种建立cBGP会话并通过所述cBGP会话传送数据的装置,其特征在于,包括:
存储器,用于存储指令;
处理器,所述处理器耦合到所述存储器,且用于执行所述指令,其中,所述指令在由所述处理器执行时使所述处理器用于:
与通信系统的控制器建立控制器边界网关协议 cBGP对等会话;
通过所述cBGP会话从所述控制器接收消息;
基于所述消息是否携带路由信息来确定是否允许通过所述cBGP会话传递所述消息,其中所述消息不包含路由信息表征允许通过所述cBGP会话传送消息;
通过所述cBGP会话向控制器发送响应消息。
30.根据权利要求29所述的装置,其特征在于,所述指令进一步使所述处理器用于:
接收用于通过所述cBGP会话与所述控制器通信的第二消息;
基于所述第二消息是否携带所述路由信息,确定是否允许通过所述cBGP会话传递所述第二消息;
丢弃所述第二消息以响应包括所述路由信息的所述第二消息。
CN201980067029.2A 2018-11-02 2019-10-30 用于实现控制器边界网关协议(cBGP)的系统及方法 Active CN113273147B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862754859P 2018-11-02 2018-11-02
US62/754,859 2018-11-02
PCT/US2019/058876 WO2020092575A1 (en) 2018-11-02 2019-10-30 System and method for implementing controller border gateway protocol (cbgp)

Publications (2)

Publication Number Publication Date
CN113273147A CN113273147A (zh) 2021-08-17
CN113273147B true CN113273147B (zh) 2022-08-26

Family

ID=68766837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980067029.2A Active CN113273147B (zh) 2018-11-02 2019-10-30 用于实现控制器边界网关协议(cBGP)的系统及方法

Country Status (4)

Country Link
US (1) US20210250275A1 (zh)
EP (1) EP3861692A1 (zh)
CN (1) CN113273147B (zh)
WO (1) WO2020092575A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542128B (zh) * 2018-10-12 2023-03-31 华为技术有限公司 一种发送路由信息的方法和装置
EP3941006B1 (en) * 2020-07-16 2022-10-26 Anapaya Systems AG System and method for carrying and optimizing internet traffic over a source-selected path routing network
KR20240048009A (ko) * 2021-09-14 2024-04-12 소프트뱅크 가부시키가이샤 통신 시스템, 컨트롤러, 프로그램, 및 정보 처리 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005474A (zh) * 2015-07-06 2017-08-01 华为技术有限公司 路由控制的方法、设备和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534246B (zh) * 2009-03-04 2011-12-21 华为技术有限公司 Vrf的迁移方法、迁移装置及其系统
US8995446B2 (en) * 2009-12-21 2015-03-31 Cisco Technology, Inc. Efficient generation of VPN-based BGP updates
JP5416596B2 (ja) * 2010-01-07 2014-02-12 アラクサラネットワークス株式会社 ネットワーク中継装置、ネットワークシステム、それらの制御方法
US8705394B2 (en) * 2011-04-18 2014-04-22 Cisco Technology, Inc. BGP slow peer detection
US9007941B1 (en) * 2012-07-25 2015-04-14 Cisco Technology, Inc. Self-organizing and scalable MPLS VPN transport for LTE
CN103944822A (zh) * 2013-01-21 2014-07-23 杭州华三通信技术有限公司 Bgp路由通告方法和装置及bgp路由维护方法和装置
US9680694B1 (en) * 2015-03-05 2017-06-13 Juniper Networks, Inc. Overload functionality in overlay networks using fault detection protocols
US9882806B2 (en) * 2015-06-03 2018-01-30 Cisco Technology, Inc. Network description mechanisms for anonymity between systems
US9883264B2 (en) * 2015-12-31 2018-01-30 Infinera Corporation Systems and methods for multilayer peering
US10454821B2 (en) * 2016-10-14 2019-10-22 Cisco Technology, Inc. Creating and maintaining segment routed traffic engineering policies via border gateway protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107005474A (zh) * 2015-07-06 2017-08-01 华为技术有限公司 路由控制的方法、设备和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《BGP for Internet Service Providers》;Philip Smith;《https.//cn.bing.com》;20030102;参见第38页至第48页,及第86-93页 *

Also Published As

Publication number Publication date
WO2020092575A1 (en) 2020-05-07
EP3861692A1 (en) 2021-08-11
CN113273147A (zh) 2021-08-17
US20210250275A1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
USRE49485E1 (en) Overlay management protocol for secure routing based on an overlay network
US7075933B2 (en) Method and apparatus for implementing hub-and-spoke topology virtual private networks
EP1997017B1 (en) Technique for preventing routing loops by disseminating bgp attribute information in an ospf-configured network
JP5797849B2 (ja) ホストが仮想プライベートネットワークに参加/離脱するための境界ゲートウェイプロトコルの拡張
US7486659B1 (en) Method and apparatus for exchanging routing information between virtual private network sites
US9306855B2 (en) System and method for using label distribution protocol (LDP) in IPv6 networks
US7953103B2 (en) Multi-homing using controlled route leakage at a backup service provider
EP1867103B1 (en) Dynamic shared risk node group (srng) membership discovery
US20210250275A1 (en) System and Method for Implementing Controller Border Gateway Protocol (cBGP)
US20210226882A1 (en) Extending Border Gateway Protocol Link State for Controller
US9398553B2 (en) Technique for improving LDP-IGP synchronization
US20210273876A1 (en) Border gateway protocol (bgp) for routing policy distribution
US9338080B2 (en) Performing offline BGP prefix origin and path validation at route reflectors
US9578551B2 (en) Method and apparatuses for establishing a link between two devices
Marques et al. Internal BGP as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)
US20220393936A1 (en) System and Method for Border Gateway Protocol (BGP) Controlled Network Reliability
US11888596B2 (en) System and method for network reliability
WO2012084626A1 (en) Method for inter-domain communications
US20240243998A1 (en) Output state synchronization for border gateway protocol (bgp) processes
CN116530065A (zh) 使用路径计算单元协议创建sr策略的方法、装置及系统
WO2023250218A1 (en) Pce for distributing binding for protection
Farrel et al. RFC 9015: BGP Control Plane for the Network Service Header in Service Function Chaining
WO2024092288A1 (en) Segment routing (sr) binding protection
WO2023244795A1 (en) Reversing direction of packet transmission in a network having a ring topology and label distribution protocol (ldp) convergence in ring topologies
WO2020231740A1 (en) Open shortest path first (ospf) service grouping capability, membership, and flooding

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