MPLS ××× option C 标签查看_第1张图片

 

OPTION C跨域也叫多跳MP-EBGP跨域,由于BGP只要能建立TCP连接,就能成为BGP邻居并传递路由信息,因此,OPTION C通过多跳的MP-EBGP直接在源、宿端PE之间传递×××路由信息,然后在源、宿端PE之间构建LSP公网隧道。

×××信息传递

OPTION C跨域时×××信息传递比较简单,即直接在源和宿端PE间通过多跳MP-EBGP传递,如上图,PE2和PE1之间建立多跳的MP-EBGP连接,×××信息直接从PE2传递到PE1。


LSP隧道构建

从×××信息传递的方式可以看出,×××从PE1到PE2之间只有一跳,×××的下一跳为PE2,PE2为×××分配标签,并且一直不会改变。
现在重要的是确定PE1到PE2的外层LSP怎样建立,首先,PE2和ASBR2在一个AS,通过IGP协议,ASBR2会有PE2的路由信息,通过正常的LDP协议,ASBR2和PE2会构建一个LSP隧道,ASBR1和PE2不在一个AS,ASBR1没有PE2的路由信息,此时可以通过EBGP协议把 PE2的路由信息传递给ASBR1,另外,对BGP协议进行扩展(RFC3107),让BGP在传递路由时同时分配标签,这样,ASBR1和ASBR2之间的LSP形成,并在ASBR2处形成标签SWAP,同样,ASBR1和PE1之间也通过扩展的IBGP传送PE2的路由信息,同时分配标签,并在 ASBR1处形成标签SWAP,但这一段LSP的建立和ASBR之间LSP的建立不一样,ASBR之间是直连的,下一跳直接可达,PE1和ASBR1之间不是直连的,但PE1和ASBR1位于同一个AS,通过LDP可以构建一个LSP隧道,这样,在PE1到ASBR1之间的LSP隧道最终包括三层标签,最底层×××标签(PE2分配),中间一层为到PE2的标签(ASBR1通过扩展BGP分配),最外层为到ASBR1的标签(LDP分配),ASBR之间构建一个双层LSP隧道,底层为×××标签(PE2分配),外层为到PE2的标签(ASBR2通过扩展BGP分配),ASBR2到PE2之间为双层LSP隧道,内层为×××标签(PE2分配),外层为到PE2的标签(LDP分配)这三段隧道通过在ASBR处的标签SWAP粘结起来,最终形成端到端的LSP隧道。

特点

ASBR不需要处理×××信息,最符合×××的要求,即中间设备不感知×××信息
使用BGP扩展来传递公网标签
在宿端AS之外的AS出现三层标签的LSP隧道。

MPLS ××× option C 标签查看_第2张图片

使用一张书上的图,有颜色的链路为测试使用的链路。

R2/R1/R3的AS为100,使用IGP为ospf

R5/R4/R7的AS为200,使用IGP为ospf

R2:10.0.6.2 R1:10.0.6.1 R3:10.0.3.3 R5:10.0.3.5 R4:10.0.3.4 R7:10.0.9.7

R2和R7为两个PE,R3和R5为两个ASBR

juniper@Boll-Lab> show route table *** logical-router r2

***-1.inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.0.5.0/24        *[Direct/0] 1d 01:20:44
                   
>via ge-0/1/7.19
10.0.5.2/32        *[Local/0] 1d 01:20:44
                      Local via ge-0/1/7.19
172.16.0.0/30      *[BGP/170] 06:33:00, localpref 100, from 10.0.9.7
                      AS path: 200 I
                   
> to 10.0.4.5 via ge-0/1/7.12, Push 16, Push 101072, Push 100288(top) //压入2层×××标签,一层LDP标签

juniper@Boll-Lab>show route table mpls.0 logical-router r1 label 100288

mpls.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

100288             *[LDP/9] 23:47:10, metric 1
                   
> to 10.0.4.14 via ge-0/1/5.13, Pop     
100288(S=0)        *[LDP/9] 23:47:10, metric 1
                   
>to 10.0.4.14 via ge-0/1/5.13, Pop     

juniper@Boll-Lab> show route table mpls.0 logical-router r3 label 101072  //弹出LDP标签,进入BGP的LSP,在ASBR上进行中间BGP标签的SWAP     

mpls.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

101072             *[×××/170] 22:48:54
                   
> to 10.0.2.2 via ge-0/1/6.35, Swap 101136

juniper@Boll-Lab> show route table mpls.0 logical-router r5 label 101136 //弹出中间层的BGP标签

mpls.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

101136             *[×××/170] 22:49:26
                  
> to 10.0.2.9 via ge-0/1/7.45, Pop     
101136(S=0)        *[×××/170] 22:49:26
                   
> to 10.0.2.9 via ge-0/1/7.45, Pop

juniper@Boll-Lab> show route table inet.3 10.0.9.7 logical-router r5 //进入LDP的LSP,压入到10.0.9.7的LDP标签

inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.0.9.7/32        *[LDP/9] 1d 00:46:23, metric 1
                   
> to 10.0.2.9 via ge-0/1/7.45, Push 100624

juniper@Boll-Lab> show route table mpls.0 label 100624 logical-router r4

mpls.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

100624             *[LDP/9] 23:24:37, metric 1
                   
> to 10.0.2.18 via ge-0/1/5.47, Pop     
100624(S=0)        *[LDP/9] 23:24:37, metric 1
                   
> to 10.0.2.18 via ge-0/1/5.47, Pop     

juniper@Boll-Lab> show route table mpls.0 logical-router r7 //弹出LDP标签,弹出最里层的BGP标签,进入×××转发

mpls.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0                  *[MPLS/0] 1d 01:24:11, metric 1
                      Receive
1                  *[MPLS/0] 1d 01:24:11, metric 1
                      Receive
2                  *[MPLS/0] 1d 01:24:11, metric 1
                      Receive
16                 *[×××/0] 1d 01:24:11
                      to table ***-4.inet.0, Pop     
100304             *[LDP/9] 23:24:58, metric 1
                   
> to 10.0.2.17 via ge-0/1/6.47, Pop     
100304(S=0)        *[LDP/9] 23:24:58, metric 1
                   
> to 10.0.2.17 via ge-0/1/6.47, Pop     
100320             *[LDP/9] 23:24:58, metric 1
                   
> to 10.0.2.17 via ge-0/1/6.47, Swap 100640