一、背景说明
之前介绍的OptionA与OptionB在生产环境中不常使用的原因在于,不管是哪种方案,ASBR都需要管理客户(CE)端路由,为了解决这个问题,引入了OptionC,如下图所示:
CE端将路由传递给PE后,2个AS之间的PE端通过“一跳”的方式,通过建立对等体直接传送路由,这样ASBR上就不需要管理客户端路由
二、实现方式
- 为了能够“一跳”的传递路由,首先需要2个PE之间建立EBGP对等体,而且是MP-EBGP
- 由于P设备不运行BGP,所以在通信时,数据包到P设备上就会因为路由表中没有目的地址而丢弃,此处就需要借助标签路径来进行通信
- 由于ASBR之间运行的是EBGP,当通过BGP协议将对端AS的路由学过来后,默认情况下MPLS是不会为BGP路由分配标签,需要人为让他分配标签,以保证ASBR之间传输时也是走标签转发路径
三、操作步骤
1.PE环回口之间LSP建立
- AS底层建立好OSPF邻居
- AS建立LSP标签路径
- 建立BGP对等体
- 在ASBR是上起源PE环回口地址
- ASBR之间建立LSP通道
- AS内让ASBR将通过IPV4-EBGP学到的标签发往PE
2.CE之间通过MP-EBGP传递路由
- R2与R7之间建立MP-EBGP对等体
- AS 234区域PE路由双向引入
- AS 567区域PE路由双向引入
四、通信详解
此时R1与R8之间通信正常,在R8上查看标签路径如下所示:
1.控制面
- AS 567区域
R2与R7之间建立建立的MP-EBGP对等体,通过“一跳”的方式将路由直接传送给R7,在update报文的扩展community属性中携带了label,此处能看到R2为1.1.1.1/32分配的label值为1026作为最内层标签
而1.1.1.1/32路由是R2通告给R7的,所以要去往1.1.1.1/32必须先到达R2,在R7上看到2.2.2.2/32分配的label值为1027,此处的值由R5分配,作为外层标签。默认情况下MPLS是不会为BGP路由分配label,通过路由策略让MPLS为BGP路由分配标签
通过上面得知,去往R2又要先到R5,所以最外层标签采用R6上5.5.5.5/32的label值,此处为1025
最终在AS 567内,标签的传递如下图所示,与R8上看到了第1条LSP一致 - ASBR之间
ASBR之间通过IPV4-EBGP建立对等体关系,默认是不分配标签,通过路由策略,让MPLS分配标签后,此处能看到对于2.2.2.2/32,在经过ASBR时需要做一个标签替换的动作
此时LSP路径对应R8上看到的第3、4条 - AS 234区域
进入AS 234区域后,R3通过LDP告知R4去往2.2.2.2/32的label值为1025
此时最外层标签加上1025,对应R8上看到的第5条
最后在R3上弹出最外层标签,送往R2,在R2上根据MP-BGP分配的label值,进入VRF a,最后送往CE
2.转发面
转发面与控制面是反方向,根据控制面的描述,转发面传输如下图所示: