【网络协议】BGP-LU调研

2019-04-15 15:55发布

BGP-LU调研(RFC3017)

1.BGP-LU标准

BGP-LU用作域间(inter-AS)和域内(intra-AS)路由协议。BGP-LU可以在IGP区域和自治系统之间通告MPLS传输路径。这些路由可能跨越一个或多个路由器跃点(hop)。 当BGP用于分发特定路由时,它还可以用于分发映射到该路由的MPLS标签。本文规定了完成此操作的方式。特定路由的标签映射信息(Label mapping information)捎带在用于分发路由本身的相同的BGP更新消息(BGP Updata information)中。 在以下情况中,这是比较有用的: 如果两个紧邻的标签交换路由器(LSRs)也是BGP对等体,则可以在不需要任何其他标签分发协议的情况下完成标签分发。 假设一个网络由LSR的两个“类”组成:外部LSR(与其他网络连接)和内部LSR(仅用于承载外部LSR之间的流量)。假设外部LSR是BGP发言者。如果BGP发言者将MPLS标签与它们分发的每条路由相互分配,那么只要内部路由器支持MPLS,它们就不需要从BGP发言者那里接收任何BGP路由。

2.标签分发

如果外部路由器A需要向目的地D发送分组,并且A的A的BGP下一跳是外部路由器B,并且B已经将标签L映射到D,则A首先将L推送到分组的标签栈。然后A查询其IGP以找到到B的下一跳,称之为C.如果C已经向A分发了用于到B的路由的MPLS标签,则A可以在该分组的标签栈上推送该标签,然后将该分组发送到C 。 如果一组BGP发言者正在通过路由反射器[BGP-RR]交换路由,那么通过将标签分发搭载到路由分发上,可以使用路由反射器来分发标签。这极大地提高了可扩展性。  请注意,如果路由反射器不在转发路径中,则甚至无法转发MPLS数据包。 通过使用BGP-4多协议扩展的属性将标签分发搭载到BGP更新信息(BGP Update message)中。标签被编码到属性的NLRL域,SAFI("Subsequent Address Family Identifier")被用作说明NLRL包含一个标签。BGP发言者不得使用BGP向特定BGP对等体发送标签,除非该对等体通过BGP能力通告指示它可以使用指定的SAFI字段处理更新消息。

3.携带标签映射信息(Carrying Label Mapping Information)

标签映射信息作为多协议扩展属性中的网络层可达性信息(NLRI)的一部分进行传输。像往常一样,AFI表示相关路由的地址族。通过将SAFI值设为4标识NLRL包含一个标签。 网络层可达性信息被编码为形如的一个或多个三元组,形如: 这些区域的使用及意义如下: a.Length:说明了地址前缀加上标签的总bit数 b.Label:该区域携带了一个或多个标签(对应于标签的堆栈)。每个标签编码为3个八位字节,其中高阶20位包含标签值,低阶位包含“底部堆栈”(如[MPLS-ENCAPS]中所定义)。 c.Prefix:Prefix字段包含地址前缀,后跟足够的尾随位,以使字段的末尾落在八位字节边界上。请注意,尾随位的值无关紧要。 为特定路由指定的标签(以及与其地址前缀相关联)必须由LSR分配,该LSR由路由的Next Hop属性的值标识。 当BGP发言者重新分​​配路由时,除非发言者更改路由的下一跳属性的值,否则不得更改分配给该路由的标签(除非省略)。 BGP发言者可以通过以下方式撤销先前通告的路由(以及该路由与标签之间的绑定):(a)使用与先前通告的路由相同的NLRI通告新路由(和标签),或者(b)在Update消息的Withdrawn Routes字段中列出先前公布的路由的NLRI。

4.将多个路由通告给目的地

BGP发言者可以维护(并向其对等体通告)到达给定目的地的多于一条路由,只要每条这样的路由具有其自己的标签即可。上述编码允许单个BGP更新消息携带多个路由,每个路由具有其自己的标签。在BGP发言者向目的地通告多条路由的情况下,如果撤销路由,并且在撤销时指定标签,则仅撤销具有相应标签的相应路由。如果撤销一条路由,并且在撤回时没有指定标签,则只撤回相应的未标记路线;标记的路线留在原地。

5.可达性通告

使用多协议扩展来携带标签映射信息的BGP发言者应该使用[BGP-CAP]中定义的Capabilities Optional Parameter来告知其对等体这种能力。 [BGP-MP]中定义的MP_EXT能力代码用于通告特定连接上可用的(AFI,SAFI)对。 除非在两个发言者之间存在标签交换路径(LSP),否则BGP发言者不应将此功能通告给另一个BGP发言者。能够处理到目的地的多条路由的BGP发言者(如上所述)应该使用[BGP-CAP]中定义的功能可选参数来向其对等方通知该功能。此功能的值为4。  

6.当BGP对等体不直接相邻时

考虑以下LSR拓扑:A  -  B  -  C  -  D.假设D将标签L分配给A.在此拓扑中,A不能简单地将L推送到数据包的标签堆栈,然后将结果数据包发送到B.D必须是在堆栈顶部看到L的唯一LSR。在A将数据包发送到B之前,它必须推送另一个由B分发的标签。B必须用另一个由C分发的标签替换此标签。换句话说,A和D之间必须有一个LSP。如果没有这样的LSP,则A不能使用标签L.每当标签在非相邻LSR之间分配时都是如此,无论该分发是由BGP还是通过其他方法完成的。本文档未指定任何实时确保非相邻LSR之间的标签分发仅在网络中存在适当的MPLS基础设施或连接两个LSR的网络时完成的过程。确保存在适当的基础设施是网络管理和运营的一个问题。