BGP for SR
IGP for SR只能在自治系统AS(Autonomous System)域内分配SID,通过对AS域内SID的合理编排,可以规划出AS域内的最优路径。为了组建大规模网络,通常需要跨越多个AS,此时IGP for SR无能为力。BGP for SR是BGP针对Segment Routing的扩展,能够针对BGP的Peer相关信息分配BGP Peer SID,并将该信息上报给控制器。之后SR-MPLS TE在编排路径时,使用BGP Peer SID作为编排路径中的一环,从而得到跨域E2E SR-MPLS TE最优路径。BGP for SR主要包括BGP EPE(Egress Peer Engineering)扩展和BGP LS扩展。
BGP EPE
Peer-Node SID用于指示一个对等体节点。每一个BGP会话都会分配Peer-Node SID。对于基于Loopback接口建立的EBGP邻居,其对应的物理链路可能有多条,那么针对该邻居的Peer-Node SID就会对应多个出接口,转发时可以使用任意一个出接口转发,也可以使用多个出接口负载分担。
Peer-Adj SID用于指示到达对等体的一个邻接。对于基于Loopback接口建立的EBGP邻居,其对应的物理链路可能有多条,则每个邻接都会分配一个Peer-Adj SID,转发时只能使用指定的链路(对应指定的出接口)进行转发。
- Peer-Set SID用于指示一组邻居。BGP支持将一组邻居规划为一个Set,然后基于该组分配SID,这个SID称为Peer-Set SID,Peer-Set SID在转发时可以对应多个出接口。一个Peer-Set由众多Peer-Node和Peer-Adj组成,那么针对该Peer-Set分配的SID就会对应到多个Peer-Node SID和Peer-Adj SID。
在图2-39中,ASBR1-ASBR3间存在两条直连物理链路,二者通过LoopBack接口建立EBGP邻居,BGP EPE针对Peer分配了Peer-Node SID 28001,为物理链路分配了Peer-Adj SID 18001和18002。而对于使用直连物理接口建立的EBGP邻居,则BGP EPE只分配Peer-Node SID,不再分配Peer-Adj SID,如图2-39中的ASBR1-ASBR5,ARBR2-ASBR4,以及ASBR2-ASBR5,BGP EPE分别仅分配了Peer-Node SID 28002,28003和28004。
Peer-Node SID和Peer-Adj SID均是局部标签,在本机有效。不同设备的Peer-Node SID和Peer-Adj SID可以重复。当前BGP EPE仅支持EBGP邻居场景,对于多跳EBGP邻居,也必须是通过物理链路直连,因为如果存在中间节点,则中间节点上没有BGP Peer SID信息,会造成转发失败。
SR LSP是转发器直接基于域内IGP SID信息进行动态计算得到的,而BGP EPE分配的Peer SID信息并不能被IGP使用,因此当前无法支持跨域SR LSP。
SR-MPLS TE可以通过静态指定路径的方式来建立一条E2E隧道,也可以由网络控制器编排,只要指定的路径里包含AS域间的链路信息即可。
BGP LS
字段 |
解释 |
---|---|
NLRI |
网络层可达信息(Network Layer Reachability Information)。
|
LinkAttribute |
链路信息。是Link NLRI的一部分。
|
字段名 |
长度 |
含义 |
---|---|---|
Type |
16比特 |
TLV类型。 |
Length |
16比特 |
报文长度。 |
Flags |
8比特 |
标志位。用于Peer-Adj SID TLV中。其格式如图2-43所示。
各个标志位详细解释如下:
|
Weight |
8比特 |
权重。代表Adj-SID权重,可以用于负载分担。 |
SID/Index/Label (variable) |
可变长度 |
根据V和L标志,可能包含以下内容之一:
|