华为MPLS ×××跨域实现方法及特点

     1. 前言
    随着ALL IP趋势的明朗,运营商建设统一的IP承载网已经势在必行,各种业务承载在一张IP网络上,为了保证不同业务的QOS水平,业务之间的有效隔离成为大家关注的一个焦点。MPLS ×××技术是当前发展最快、成熟度最高的技术之一,通过近几年在一定领域的部署实施,证明了该技术在运营商网络是切实可行的,是业务隔离的有效工具。目前在运营商网络部署实施的MPLS ×××大部分在在一个AS内,然而,实际部署的业务,如运营商内部的语音业务,企业客户的×××专线业务,往往都是跨越多个AS,×××如何有效跨越多个AS,是目前需要关注和解决的问题。
    2. MPLS ×××跨域方法概述
    同在单个AS内建立×××的过程一样,跨域×××的建立过程也同样关注两个方面,一是×××信息的传递方法,一是×××隧道的建立方法,经过近几年的实践和快速发展,业界提出了几种×××跨域方法,即OPTION A/B/C三种,不同方法采用不同的×××信息传递模式和×××隧道构建方法,具有鲜明的特点和适合不同的应用场景。
    另外,MPLS ×××可以分为MPLS/BGP三层×××和MPLS L2×××,两种×××都支持上述的三种跨域方法,采用相同的跨域理念,只不过MPLS/BGP ×××由于使用较早和部署较广,其对应的跨域方法已经标准化,MPLS L2×××目前在标准化进程上稍微落后,其对应的跨域标准还没有正式发布,但一些主流厂家对此已有部分或全部支持。
3. MPLS/BGP跨域
    3.1 OPTIONA跨域实现方法
 
    OPTION A跨域也叫做背靠背跨域,即两个AS的边界 路由器ASBR互相作为PE和CE,如上图所示,ASBR1作为AS1的PE设备,ASBR2在此看作ASBR1连接的CE设备,反之亦然。
    ×××信息传递
    同一AS的PE和ASBR之间通过正常的MBGP 协议传递×××路由信息,ASBR之间通过正常的PE和CE之间的路由传递方法传送×××路由信息,如上图,×××A2通过IGP 协议把路由信息传递给PE2,PE2通过MBGP 协议把×××A2的信息传递给ASBR2,ASBR2作为ASBR1的CE设备,通过IGP协议把×××A2的信息传递给ASBR1,ASBR1再通过MBGP协议把×××A2的信息传递给PE1,PE1再通过IGP协议把×××A2的信息传递到×××A1,至此,×××信息传递完毕。
    ×××隧道构建
    在OPTIONA跨域方法中,×××隧道构建比较简单,各个AS单独构建PE到ASBR的LSP双层隧道,内层标签代表×××信息,外层标签代表到达×××路由下一跳PE的公网标签,和在单个AS内LSP隧道的建立过程和方式一样,ASBR和ASBR之间通过裸IP转发,没有LSP隧道。
     特点
    ASBR需要处理×××路由信息,并且需要配置VRF实例
    ASBR需要为每个×××分配一个物理或逻辑链路
    每个AS内单独建立双层LSP隧道,ASBR之间依靠IP连接
    适用于×××业务开展初期,×××数量较少的情况下
   3.2 OPTION B跨域实现方法
    OPTION B跨域也叫单跳MP-EBGP跨域,AS内通过正常的MPLS/BGP传递×××信息和构建LSP隧道,AS之间通过单跳的MP-EBGP协议传递×××信息并构建LSP隧道。
    ×××信息传递
    如上图所示,CE2通过IGP传递私网信息给PE2,PE2通过MP-IBGP传递×××信息到ASBR2,ASBR2通过单跳的MP-EBGP传递×××路由信息给ASBR1,然后,ASBR1再通过MP-IBGP传递×××信息给PE1,PE1再通过IGP协议把私网信息传递给CE1,至此,CE1拥有到达CE2的路由信息。如果中间跨域多个AS,AS内部全部按照MP-IBGP协议传递,ASBR之间全部按照单跳的MP-EBGP传递。
    LSP隧道构建
    当使用BGP传递路由时,如果是EBGP传递,下一跳必定改变为自己,如果通过IBGP传递,下一跳可以改变为自己也可以不改变,另外,当采用MP-BGP传递×××路由信息,下一跳更改时,那么就需要为×××重新分配标签。
    如上图所示,在OPTION B跨域中,ASBR2向ASBR1传递×××路由时,下一跳必定改变为自己,同时ASBR2重新为×××分配标签,ASBR1向PE1传递×××路由信息时,分两种情况考虑,一是ASBR1向PE1传递×××路由信息时,下一跳改变为自己,一是ASBR1向PE1传递私网路由信息时,下一跳不改变,也就是下一跳仍然为ASBR2。
    在改变路由下一跳为ASBR1的情况下,ASBR1重新为×××分配标签,×××从PE1到达PE2的路径为PE1→ASBR1→ASBR2→PE2,在AS1内,构建PE1到ASBR1的双层LSP隧道,内层为×××标签(ASBR1分配的),外层为PE1到ASBR1的公网隧道,在ASBR之间构建单层LSP隧道,只携带×××标签(ASBR2分配的),在AS2内构建双层LSP隧道,内层为×××标签,PE2分配的,外层为ASBR2到PE2的公网隧道。在两个ASBR处由于×××标签都重新分配,所以最底层的标签在两个ASBR处都会有SWAP操作,也正是通过×××标签的SWAP,把两个AS的×××隧道连接起来。
    如果不改变×××路由的下一跳,那么PE1接收的×××路由的下一跳就是AS2域内的ASBR2,则×××从PE1到PE2的路径为PE1→ASBR2→PE2,那么就需要构建一条从PE1一直到ASBR2的双层LSP隧道,内层为×××标签(ASBR2分配的),外层为PE1到ASBR2的公网隧道,ASBR2到PE2也构建双层LSP隧道,内层为×××标签(PE2分配的),外层为ASBR2到PE2的公网隧道。在这种情况下,ASBR2和ASBR1之间需要运行某种标签分发协议,目的是分发ASBR2的公网标签,另外,在ASBR2处LSP的内外层标签都会进行SWAP操作,从而把两条LSP粘结成一个端到端的LSP隧道。
    特点
    ASBR需要处理×××信息,但不需要配置VRF实例
    ASBR之间一条链路传递所有×××信息
    根据不同的情况,ASBR之间构建单层或双层LSP隧道
    当×××业务发展到一定阶段,ASBR之间的链路受限时,可以考虑OPTION B跨域方法
    3.3 OPTION C跨域实现方法
  
    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隧道。
    当×××业务大规模发展时,可以使用OPTION C跨域方法
    3.4 OPTION A/B/C跨域方法对比
   
项目
方法
OPTION A
OPTION B
OPTION C
备注
ASBR ×××感知
 需要处理×××信息,并配置VRF
需要处理×××信息,不配置VRF
不感知×××信息
 
ASBR负载
 处理所有×××信息,负载重
处理所有×××信息,负载重
不处理×××信息,负载轻
 
链路
 每个×××在ASBR之间占用一个链路
 一个链路
 一个链路
 
跨域×××传递
ASBR通过IGP传递×××
ASBR之间通过MP-EBGP传递×××信息
 源、宿端PE直接通过MP-EBGP传递
 
对接
对接简单,ASBR互为PE、CE设备,IP对接
当MP-IBGP不改变下一跳为自己时,ASBR之间需要运行LDP
ASBR之间需要运行BGP扩展来传递公网标签
除宿端AS外的其他AS内也要运行BGP扩展来传送公网标签
隧道
AS内部建立双层LSP,ASBR之间IP转发
ASBR之间单层或ASBR到上游PE之间建立双层LSP
宿端AS、ASBR之间建立双层LSP,其他AS建立三层LSP隧道
 
维护
简单
复杂
复杂
 
场景
×××数量少,业务开展早期
 ×××数量始终,ASBR之间链路受限,业务开展中期
 ×××数量大,业务大量开展时期
 4. L2 ×××跨域
    L2 ×××跨域理念和MPLS/BGP跨域理念类似,但L2 ×××有一些自己不同的实现方法,下面主要就L2 ×××跨域和MPLS/BGP跨域的不同点进行说明。
    4.1 传递×××信息的协议不同
    我们知道,目前L2 ×××的实现主要包括两种方式,即MARTINI和KOMPELLA,MARTINI通过扩展的远程LDP会话传送L2 ×××信息,KOMPELLA通过扩展的MP-BGP来传递×××信息。
    4.2 传递×××信息的内容不同
    L3 ×××传递IP路由和×××对应的标签,L2 ×××不包括IP路由信息,它传递的主要是二层相关的信息,如MARTINI L2 ×××传递VC ID、二层接口信息以及对应的标签,KOMPELLA L2 ×××传递CE ID及标签块信息。
    注:KOMPELLA L2 ×××通过分配标签块,可以自动和新的CE站点建立连接,方便日后扩容,而且,通过BGP特有的RR,可以有效减少连接数目,适合较为复杂的拓扑,MARTINI L2 ×××所有的连接需要手工配置,不支持自动发现站点功能,有FULL MESH的限制,适合于较为简单的网络拓扑。
    4.3 支持×××跨域的方法
    两种L2 ×××跨域都可以支持OPTION A/C,但鉴于OPTION B跨域逐段传递×××信息的特点,KOMPELLA L2×××天然可以支持,但MARTINI L2 ×××不适合采用OPTION B跨域。
    4.4 L2 ×××采用OPTION B跨域的特点
    KOMPELLA L2 ×××采用分配标签块的方法,和L3 ×××在ASBR形成单个的标签SWAP表项有所不同,参考上面OPTION B跨域说明,PE2为CE2分配一个标签块,假设包括10个标签,用于和10个其他CE建立连接,标签块到达ASBR2时,ASBR2会重新分配一个范围为10的标签块给ASBR1,这样,在ASBR2处就会形成一个标签SWAP表,假设形成10个连接,就会包括10个SWAP表项,CE2和CE1的连接会对应SWAP的第一个表项,依次类推,按照CE ID的不同,最终通过ASBR2的所有连接都会对应一个SWAP表项。
   4.5 VPLS跨域
    VPLS可以看作L2 ×××的特例,实现方法也主要包括MARTINI和KOMPELLA两种,也有OPTION A/B/C三种跨域方法(注意MARTINI和KOMPELLA支持跨域方法的不同),研究VPLS跨域时,不需要考虑VSI实例的学习转发功能,只需要考虑PE和PE之间PW的建立,此时就和L2 ×××的跨域理念和实现方法一模一样。
     4.6 L2 ×××跨域和MPLS/BGP跨域的比较

项目×××
MPLS/BGP
×××
L2 ×××
备注
MARTINI
KOMPELLA
协议
MP-BGP
扩展的远程LDP
MP-BGP
VPLS跨域和L2 ×××跨域相同
×××信息内容
×××路由和标签
VC ID和标签
CE ID和标签块
跨域方法
OPTION A/B/C
OPTION A/C
OPTION A/B/C
网络拓扑
复杂
简单
复杂

5. 华为公司产品对×××跨域的支持
    华为公司充分考虑了运营商×××业务发展的需求,对作为PE和ASBR的系列设备的×××功能进行了全面开发,以适应不同厂家设备的对接以及应对不同发展阶段的需求。华为公司的NE40/80,NE40E/80E是作为运营商网络中PE和ASBR的理想设备,它支持全面的MPLS ×××功能,包括MPLS/BGP ×××,MARTINI/KOMPELLA L2 ×××和VPLS,他们也支持MPLS/BGP ×××的三种跨域方法,支持MARTINI L2 ×××/VPLS的OPTION A/C的跨域方法以及KOMPELLA L2 ×××/VPLS的OPTION A/B/C的三种跨域方法