MPLS BGP 跨域(OptionA/B/C(一/二))

文章目录

  • 跨域MPLS BGP VPN跨域背景
    • 三种跨域VPN解决方案:
  • 跨域VPN方案原理
    • Option-A方案原理
    • Option-B方案原理
    • Option-C方案原理
    • 跨域VPN-OptionC方式-方案一
    • 跨域VPN-OptionC方式-方案二
  • 跨域VPN方案的配置
    • Option-A方案配置
    • Option-B方案配置
    • Option-C方案配置(方案一)
    • Option-C方案配置(方案二)


跨域MPLS BGP VPN跨域背景

MPLS BGP 跨域(OptionA/B/C(一/二))_第1张图片
一般的MPLS VPN体系结构都是在一个自治系统内运行,任何VPN的路由信息都是只能在一个自治系统内按需扩散,没有提供自治系统内的VPN信息向其他自治系统扩散的功能。

如上图,基于MPLS的VPN可以将私有网络的不同Site连接起来,形成一个统一的网络,基于 MPLS的VPN还支持对不同VPN间的互通控制。CE(Customer Edge)是用户边缘设备;PE(Provider Edge)是服务商边缘路由器,位于骨干网络;P(Provider),是服务提供商网络中的骨干路由器,不与CE直接相连。

MPLS BGP 跨域(OptionA/B/C(一/二))_第2张图片
如果同一VPN的两个站点位于不同的AS,那么普通的MPLS BGP VPN是否还合适于业务的部署?

答案是否定的。因为此时连接VPN的PE路由器已经无法简单地建立IBGP邻居关系了,或是与RR建立邻居关系。因此,需要一些手段通过建立EBGP邻居关系来传递VPNv4路由。

为了支持不同AS之间的VPN路由信息交换,就需要扩展现有的协议和修改MPLS VPN体系框架,提供一个不同于基本的MPLS VPN体系结构所提供的互连模型——跨域(Inter-AS)的MPLS VPN,以便可以穿过AS间的链路来发布路由前缀和标签信息。

三种跨域VPN解决方案:

  • 跨域VPN-OptionA(Inter-Provider Backbones Option A)方式∶需要跨域的VPN在ASBR间通过专用的接口管理自己的VPN路由,也称为VRF-to-VRF ;
  • 跨域VPN-OptionB(Inter-Provider Backbones Option B)方式∶ ASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为EBGP redistribution of labeled VPN-IPv4 routes;
  • 跨域VPN-OptionC(Inter-Provider Backbones Option C)方式∶PE或RR间通过Multi-hop MP-EBGP发布标签VPN-IPv4路由,也称为Multihop EBGP redistribution of labeled VPN-IPv4 routes。

跨域VPN方案原理

Option-A方案原理

跨域VPN-OptionA是基本BGP/MPLS IP VPN在跨域环境下的应用,ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。这种方式下,两个AS的边界路由器ASBR直接相连,ASBR同时也是各自所在自治系统的PE。两个ASBR都把对端 ASBR看作自己的CE设备,使用EBGP方式向对端发布IPv4路由。

跨域VPN-OptionA方式-拓扑

MPLS BGP 跨域(OptionA/B/C(一/二))_第3张图片
在本方案中,ASBR-PE之间直接相连。两台ASBR-PE之间用多个接口(包括子接口)互连,每个接口关联一个VPN,每个ASBR-PE都把对端当成CE。因此,ASBR-PE相连的接口(包括子接口)需要绑定VRF,并通过eBGP邻居关系把VPNv4路由转变成普通IPv4路由从一个AS传递到另一个AS。因此,两个ASBR相连,但不需要启用MPLS。此方案在MPLS BGP VPN业务属性上没有做扩展。

跨域VPN-OptionA方式-控制平面

MPLS BGP 跨域(OptionA/B/C(一/二))_第4张图片
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Client1连接,如上图,现在需要把Client1这条路由从CE1穿过AS100和AS200传递到CE2∶

  1. 在AS100中,通过运行LDP协议,PE1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1。
  2. 在AS100中,通过运行LDP协议,P1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T2给ASBR-PE1。
  3. 在AS200中,同样通过运行LDP协议,ASBR-PE2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T3给P2。
  4. 在AS200中,通过运行LDP协议,P2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T4给PE2。
  5. CE1 通告路由Client1给PE1,路由的下一跳为CE1的接口地址。
  6. PE1将IPv4路由Client1通过MP-BGP重发布为VPNv4路由,并且下一跳改为PE1,分配一个VPN标签V1,然后通告给ASBR-PE1。
  7. ASBR-PE1将VPNv4路由变为IPv4路由,把IPv4路由Client1通告给ASBR-PE2,并且下一跳指向ASBR-PE1。
  8. ASBR-PE2将IPv4路由Client1通过MP-BGP重发布为VPNv4路由,并且下一跳为ASBR-PE2,为该路由分配一个VPN标签V2,将其通告给PE2。
  9. PE2将VPNv4路由转变为IPv4路由Client1,把路由Client1通告给CE2,并且下一跳指向PE2。

跨域VPN-OptionA方式-转发平面

MPLS BGP 跨域(OptionA/B/C(一/二))_第5张图片
通过前文的过程分析,我们从反向来分析转发平面的工作过程,即CE2要发送一个目的地为 Client1的IP报文给CE1,如上图所示∶

  1. CE2发送一个目的地为Client1的IP报文给PE2。
  2. PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V2,再封装外层标签T4,然后将此报文发送给P2。
  3. P2进行标签交换,把外层标签T4换成T3,然后将此报文发送给ASBR-PE2。
  4. ASBR-PE2去掉所有标签,将报文(普通IP报文)转发给ASBR-PE1。
  5. ASBR-PE1收到IP报文后进行MPLS标签的封装,先封装VPN标签V1,再封装外层标签T2,然后将此报文发送给P1。
  6. P1进行标签交换,把外层标签T2换成T1,然后将此报文发送给PE1。 7.PE1收到后去掉所有标签,将报文普通IP报文)转发给CE1。

跨域VPN-OptionA方式的特点

  • 优点是配置简单∶由于ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。
  • 缺点是可扩展性差∶由于ASBR需要管理所有VPN路由,为每个VPN创建VPN实例。这将导致ASBR上的VPN-IPv4路由数量过大。并且,由于ASBR间是普通的IP转发,要求为每个跨域的VPN使用不同的接口,从而提高了对PE设备的要求。如果跨越多个自治域,中间域必须支持VPN业务,不仅配置量大,而且对中间域影响大。在需要跨域的VPN数量比较少的情况,可以优先考虑使用。

Option-B方案原理

跨域VPN-OptionB中,两个ASBR通过MP-EBGP交换它们从各自AS的PE设备接收的标签VPN-IPv4路由。

跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN-IPv4路由,再把VPN-IPv4路由发布出去。但MPLS VPN的基本实现中,PE上只保存与本地VPN实例的VPN Target相匹配的VPN路由。因此,可以在ASBR上配置不做 RT过滤来传递路由,因此无需在ASBR创建VPN实例,无需绑定任何接口。

可以在网络中叠加部署RR设备,专门负责客户侧VPN路由的传递。

跨域VPN-OptionB方式 - 拓扑

MPLS BGP 跨域(OptionA/B/C(一/二))_第6张图片
在此方案中,PE通过MP-iBGP将VPNv4路由通告给ASBR-PE或是VPN RR(其中ASBR-PE是其客户机)。ASBR-PE再通过MP-eBGP将VPNv4通告给另一个AS的ASBR-PE,再由这个ASBR-PE将 VPNv4路由通告给该AS内的PE。

跨域VPN-OptionB方式-控制平面(无RR场景)

MPLS BGP 跨域(OptionA/B/C(一/二))_第7张图片
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Ciet1连接∶

  1. 在AS100中,通过运行LDP协议,PE1分配一个与去往PE1的路由相关联的隧道标签外层标签)T1给P1
  2. 在AS100中,通过运行LDP协议,P1分配一个与去往PE1的路由相关联的隧道标签外层标 签)T2给ASBR-PE1
  3. 在AS200中,同样通过运行LDP协议,ASBR-PE2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T3给P2
  4. 在AS200中,通过运行LDP协议,P2分配一个与去往ASBRPE2的路由相关联的隧道标签外层标签)T4给PE2
  5. CE1 通告路由Client1给PE1,路由的下一跳为CE1的接口地址
  6. PE1将IPV4路由Client1通过MP-IBGP重发布为VPNv4路由,并且下一跳改为PE1,分配一个VPN标签V1,然后通告给ASBR-PE1
  7. ASBR-PE1通过MP-EBGP将Cient1的VPNv4路由通告给ASBR-PE2,将下一跳改为ASRPE1,并重新分配一个VPN标签V2
  8. ASBR-PE2将收到的Client1的VPN4路由通过MP-IBGP通告给PE2,将下一跳指向自己,并重新分配一个VPN标签V3
  9. PE2将Client1的VPN4路由变为IPv4路由,把路由Client1通告给CE2,并且下一跳改为PE2

跨域VPN-OptionB方式-控制平面(带RR场景)

MPLS BGP 跨域(OptionA/B/C(一/二))_第8张图片
当VPN实例数量较多时,可以部署专门的RR设备。如图,AS内的PE和ASBR设备只与RR设备建立 MP-BGP邻居关系,由RR负责路由的反射传递,PE和ASBR之间无需建立BGP邻居。

RR只负责控制平面的VPNv4路由传递,数据转发时,流量不经过RR。

跨域VPN-OptionB方式-控制平面(无RR)

MPLS BGP 跨域(OptionA/B/C(一/二))_第9张图片
通过上文的过程分析,我们从反向来分析转发平面的工作过程 ∶

  1. CE2发送一个目的地为Client1的IP报文给PE2。
  2. PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V3,再封装外层标签T4,然后将此报文发送给P2。
  3. P2进行标签交换,把外层标签T4换成T3,然后将此报文发送给ASBR-PE2。
    4.ASBR-PE2去掉外层标签,将VPN标签V3交换为V2,再将其转发给ASBR-PE1(此时报文仅带有一层私网标签)。
  4. ASBR-PE交换VPN标签V2成V1,再加一个外层标签T2,并将报文转发给P1。 6. P1进行标签交换,把外层标签T2换成T1,然后将此报文发送给PE1。 7. PEl收到后去掉所有标签,将报文(普通IP报文)转发给CE1。

跨域VPN-OptionB方式的特点

不同于OptionA,OptionB方案不受ASBR之间互连链路数目的限制。

局限性∶VPN的路由信息是通过AS之间的ASBR来保存和扩散的,当VPN路由较多时,ASBR负担重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再负责公网IP转发。

Option-C方案原理

跨域VPN-OptionC方式-方案一

跨域VPN-OptionC中,ASBR通过MP-IBGP向各自AS内的PE设备发布标签IPv4路由,并将到达本AS内PE的标签IPv4路由通告给它在对端AS的ASBR对等体,过渡自治系统中的ASBR也通告带标签的IPv4路由。这样,在入口PE和出口ASBR之间建立一条BGP LSP。

不同AS的PE之间建立Multihop方式的EBGP连接,交换VPNv4路由。

ASBR上不保存VPN-IPv4路由,相互之间也不通告VPNv4路由。

当网络规模较大时,可以在方案中部署RR设备,专门负责用户侧路由的传递。即, PE与RR建立MP-IBGP邻居,RR1与RR2建立MP-EBGP邻居,路由传递为PE1- RR1-RR2-PE2,PE之间无需直接建立BGP邻居关系,当VPN数量较多时,引入RR的方式可以减轻PE的工作负担。

跨域VPN-OptionC方式-拓扑

MPLS BGP 跨域(OptionA/B/C(一/二))_第10张图片
在此方案中,ASBR不再维护或是通告VPN4路由(所以如上图,此处将ASBR-PE路由器改名为 ASBR)。ASBR只需要维护所有去往PE的带标签路由,并通过EBGP通告给对端AS。在transitAS内的ASBR也同样需要使用EBGP通告这些带标签的IPV4路由。这样在不同AS的PE之间给会建立-条LSP,从而可以建立起PE之间的多跳MP-EBGP连接并进行VPNv4路由的通告。

如果每个AS的P路由器都能够知道去往其他AS的PE路由器的路由,那情况会比较简单。但是如果 P不知道,那么当PE收到从CE收到VPN数据时,就要加上三层标签,底层标签是由对端PE分配的与VPN路由相关联的VPN标签,中间的标签是ASBR分配的与去往对端PE的路由相关联的标签,外层标签则是与去往下一跳ASBR的路由相关联的标签。

为了进一步扩展性能,多跳MP-EBGP会话可以建立在不同的AS的VPNRR之间。并且当这些VPN RR通告VPNv4路由时不改变下一跳信息。PE只与VPN RR建立MP-iBGP会话。

注意∶为了方便,如上图,使用的是对称的LSP进行示意,但是实际上在控制平面和数据平面的工作过程上,两端AS的LSP结构是不对称的。下文将会详细讲解。

跨域VPN-OptionC方式-控制平面(无RR场景)

MPLS BGP 跨域(OptionA/B/C(一/二))_第11张图片
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Sitel有一VPN路由Client1连接,并且P1与P2路由器都没有去往另一个AS的PE的路由,以上图为例∶

  • 在AS100中,通过运行LDP协议,PE1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1
  • 在AS100中,通过运行LDP协议,P1分配一个与去往PE1的路由相关联的隧道标签(外层标 签)T2给ASBR-PE1
  • 在AS200中,同样通过运行LDP协议,ASBR-PE2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T3给P2
  • 在AS200中,通过运行LDP协议,P2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T4给PE2
  • ASBR1通过EBGP会话通告一条去往PE1的带标签的IPv4路由给ASBR2,其中下一跳为ASBR1,标签为BGP标签,值为B1
  • ASBR2通过BGP会话通告一条去往PE1的带标签的IPv4路由给PE2,其中下一跳为ASBR2,标签为BGP标签,值为B2。
  • 注意∶这里假设PE2与ASBR1所在的AS已经为去往它们的路由分配了隧道标签(公网标
    签),并且去往PE2的带标签路由也已经被通告。PE1与PE2建立起MP-EBGP会话
  • CE1 通告路由Client1给PE1,路由的下一跳为CE1的接口地址
  • PE1将IPv4路由Client1通过MP-EBGP重发布为VPNv4路由,并且下一跳改为PE1,分配一个VPN标签V1,将其通告给PE2
  • PE2将VPNv4路由变为IPV4路由,把IPv4路由Client通告给CE2,并且下一跳改为PE2

跨域VPN-OptionC方式-控制平面(带RR场景)

MPLS BGP 跨域(OptionA/B/C(一/二))_第12张图片

  • VPNv4邻居 ∶ 本端PE只与本端R建立VPNv4邻居,本端RR与对端RR建立VPNv4邻居,实现了跨域VPN路由的传递。

  • ASBR,PE同RR建立BGP单播IPv4邻居∶
    ASBR通过ipv4邻居学习将从对端ASBR学到的RR的loopback,传递给本端RR,用于本端RR与对端RR建立v4邻居。

    ASBR通过ipv4邻居学习将从对端ASBR学到的R和PE的loopback,传递给本端R,本端RR再将其反射给PE,用于跨域之间的PE建立BGP LSP。

  • 带RR场景中,RR负责控制平面IPv4的路由反射、VPNv4路由的传递,转发平面的流量不经过RR。

跨域VPN-OptionC方式-转发平面

MPLS BGP 跨域(OptionA/B/C(一/二))_第13张图片
通过上文的过程分析,我们从反向来分析转发平面的工作过程∶

  1. CE2发送一个目的地为Client1的IP报文给PE2。
  2. PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V1,由于去往Client1的下一跳
    PE1不是直连邻居,通过查表发现去往PE1的BGP路由是带标签的路由,因此加上分配的 BGP标签B2做为中间标签,最后,由于去往PE1的路由的下一跳ASBR2也不是直连邻居,通过查表发现去往ASBR2也有关联的标签T4,因此,封装上外层标签T4。
  3. P2进行标签交换,把外层标签T4换成T3,然后将此报文发送给ASBR-PE2。
  4. ASBR2去掉外层标签,将BGP标签B2交换为B1,再将其转发给ASBR1。
  5. 当ASBR1收到报文后,发现B1是它分配的,所以去掉B1进一步查表转发,发现此时去往PE1的路由有一个关联的标签T2,因此,ASBR1将其加在栈顶,并转发给P1。
  6. P1进行标签交换,把外层标签T2换成T1,然后将此报文发送给PE1。
  7. PE1收到后去掉所有标签,将报文(普通IP报文)转发给CE1。

跨域VPN-OptionC方式-方案二

跨域VPN-OptionC方案二与方案一大体相似。

不同之处在于,方案一中,需要使用三层标签,即VPN label,BGP LSP, Tunnel LSP来承载流量,而方案二只需要两层。

方案一,ASBR在收到对端ASBR发来的BGP标签路由后,需要配置策略产生一个新的标签并发布给AS内的PE或者RR设备,以建立一条完整的BGP LSP。方案二中, ASBR需要配置MPLS触发为BGP标签路由分发标签,因此在AS内的PE上可以看到去往对端PE的LDP LSP,而非BGP LSP。

同理,方案二支持RR设备的部署。

跨域VPN-OptionC方式-拓扑

MPLS BGP 跨域(OptionA/B/C(一/二))_第14张图片
在此方案中,ASBR不再维护或是通告VPNv4路由。ASBR只需要维护所有去往PE的带标签路由,并通过EBGP通告给对端ASBR。

对端ASBR收到带BGP标签路由后,MPLS LDP会触发为该BGP标签路由产生标签,并在AS内的 LDP邻居间传递。因此,在PE上可以看到去往对端PE的LDP LSP。

为了进一步扩展性能,多跳MP-EBGP会话可以建立在不同的AS的VPN RR之间,本AS内的PE只需要与RR建立MP-IBGP即可。这些VPN RR通告VPNv4路由时不改变下一跳信息,进而当对端PE转发流量时,可以迭代至正确的隧道。

跨域VPN-OptionC方式-控制平面(无RR场景)

MPLS BGP 跨域(OptionA/B/C(一/二))_第15张图片
我们只通过单方向来解释控制平面的工作过程,同时假设在站点Site1有一VPN路由Client1连接,并且P1与P2路由器都没有去往另一个AS的PE的路由,以上图为例∶

  1. 在AS100中,通过运行LDP协议,PE1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1。
  2. 在AS100中,通过运行LDP协议,P1分配一个与去往PE1的路由相关联的隧道标签(外层标 签)T2给ASBR1。
  3. 在AS200中,同样通过运行LDP协议,ASBR2分配一个与去往ASBR2的路由相关联的隧道标签(外层标签)T3给P2。
  4. 在AS200中,通过运行LDP协议,P2分配一个与去往ASBR2的路由相关联的隧道标签(外层 标签)T4给PE2。
  5. ASBR1通过EBGP会话通告一条去往PE1的带标签的IPV4路由给ASBR2,其中下一跳为 ASBR1,标签为BGP标签,值为B1。
  6. ASBR2为这条BGP标签路由触发建立LSP,分发LDP标签T5至P2,P2进而分发T6至PE2。
  7. PE1与PE2建立起MP-EBGP会话。
  8. CE1通告路由Clientl给PE1,路由的下一跳为CE1的接口地址。
  9. PE1将IPv4路由Client1通过MP-EBGP重发布为VPNv4路由,并且下一跳改为PE1,分配一 个VPN标签V1,将其通告给PE2。
  10. PE2将VPNv4路由变为IPV4路由,把IPv4路由Client通告给CE2,并且下一跳改为PE2。

跨域VPN-OptionC方式-控制平面(带RR场景)

MPLS BGP 跨域(OptionA/B/C(一/二))_第16张图片

  • VPNv4邻居∶ 本端PE只与本端RR建立VPNv4邻居,本端RR与对端RR建立VPNV4邻居,实现了跨域VPN路由的传递。
  • 带RR场景中,RR只负责控制平面VPNv4路由的传递,转发平面的流量不经过RR。

跨域VPN-OptionC方式-转发平面

MPLS BGP 跨域(OptionA/B/C(一/二))_第17张图片
通过上文的过程分析,我们从反向来分析转发平面的工作过程∶

  1. CE2发送一个目的地为Client1的IP报文给PE2。
  2. PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V1,由于去往Client1的下一跳PE1不是直连邻居,通过查表发现去往PE1的标签为T6,打上T6。
  3. P2进行标签交换,把外层标签T6换成T5,然后将此报文发送给ASBR2。
  4. ASBR2去掉外层标签,将T5交换为B1,再将其转发给ASBR1。
  5. 当ASBR1收到报文后,发现B1是它分配的,所以去掉B1进一步查转发表,发现此时去往
    PE1的路由有一个关联的标签T2,因此,ASBR1将其加在栈顶,并转发给P1。
  6. P1进行标签交换,把外层标签T2换成T1,然后将此报文发送给PE1。
  7. PE1收到后去掉所有标签,将报文(普通IP报文)转发给CE1。

跨域VPN-OptionC方式的特点

VPN路由在入口PE和出口PE之间直接交换,不需要中间设备的保存和转发。

VPN的路由信息只出现在PE设备上,而P和ASBR只负责报文的转发,使得中间域的设备可以不支持MPLS VPN业务,只需支持MPLS转发,ASBR设备不再成为性能瓶颈。因此跨域VPN-OptionC更适合在跨越多个AS时使用。

更适合支持MPLS VPN的负载分担。

缺点是维护一条端到端的PE连接管理代价较大。

跨域VPN方案的配置

Option-A方案配置

MPLS BGP 跨域(OptionA/B/C(一/二))_第18张图片

MPLS BGP 跨域(OptionA/B/C(一/二))_第19张图片
配置步骤

MPLS BGP 跨域(OptionA/B/C(一/二))_第20张图片
配置较为简单,不做赘述,只做以下测试:

R2(P1)为例,查看mpls ldp:

MPLS BGP 跨域(OptionA/B/C(一/二))_第21张图片
R1与R3,R6与R4之间配置IBGP和MP-IBGP,结果验证:

MPLS BGP 跨域(OptionA/B/C(一/二))_第22张图片
在PE(R1,R6)和ASBR(R3,R4)上配置VPN实例并关联到相应接口,在PE与CE,ASBR1与ASBR2之间在VPN实例中配置EBGP,测试:

MPLS BGP 跨域(OptionA/B/C(一/二))_第23张图片
CE之间能学习到对方接口路由,CE1和CE2能够相互ping通。
以CE1的显示为例:

MPLS BGP 跨域(OptionA/B/C(一/二))_第24张图片

Option-B方案配置

MPLS BGP 跨域(OptionA/B/C(一/二))_第25张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第26张图片

MPLS BGP 跨域(OptionA/B/C(一/二))_第27张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第28张图片
配置验证

上述配置完成后,CE之间能学习到对方的接口路由,CE1与CE2可以相互ping通
MPLS BGP 跨域(OptionA/B/C(一/二))_第29张图片
在ASBR上执行display bgp v4 all routing-table命令,可以看到VPNv4路由
MPLS BGP 跨域(OptionA/B/C(一/二))_第30张图片

Option-C方案配置(方案一)

MPLS BGP 跨域(OptionA/B/C(一/二))_第31张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第32张图片

如上图所示,共分为4个AS,AS100和AS200作为ISP,PE1,P1,RR1和ASBR1属于AS100, PE2,P2,RR2和ASBR2属于AS200。CE1和CE2属于同一个VPN,CE1通过AS100的PE1接入, CE2通过AS200的PE2接入。

每台路由器的IP地址规划详见拓扑图。

本例为OptionC方式实现方案一,可以采用PE1与PE2直接建立MP-EBGP(不带RR)来传递跨域 VPN路由,也可以采用RR1与RR2建立MP-EBGP邻居(PE1与RR1,PE2与RR2建立MP-IBGP邻居)传递跨域VPN路由,两者相似,本例采用RR方式实现OptionC方案一。

配置步骤

MPLS BGP 跨域(OptionA/B/C(一/二))_第33张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第34张图片
R1配置:(R10参考R1)

#
sysname R1
#
interface Ethernet0/0/0
 ip address 14.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 11.11.11.11 255.255.255.255
#
bgp 1
 peer 14.1.1.2 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 11.11.11.11 255.255.255.255
  peer 14.1.1.2 enable
#

R4配置:(R9参考R4)

#
sysname R4
#
ip -instance 1
 ipv4-family
  route-distinguisher 1:1
  -target 1:1 export-extcommunity
  -target 1:1 import-extcommunity   //配置VPN实例
#
mpls lsr-id 4.4.4.4   //配置MPLS,并在相应接口上开启
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip binding -instance 1
 ip address 14.1.1.2 255.255.255.0   //配置接口与VPN实例关联
#
interface Ethernet0/0/1
 ip address 34.1.1.1 255.255.255.0
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255
#
bgp 100
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 2.2.2.2 label-route-capability   //使能PE与RR之间相互交换标签IPv4路由的能力
 #
 ipv4-family v4
  policy -target
  peer 2.2.2.2 enable
 #
 ipv4-family -instance 1
  peer 14.1.1.1 as-number 1   //在PE的VPN实例中配置与CE的EBGP
#
ospf 1 router-id 4.4.4.4
 area 0.0.0.0
  network 4.4.4.4 0.0.0.0
  network 34.1.1.0 0.0.0.255
#

R2配置:(R7参考R2)

#
sysname R2
#
mpls lsr-id 2.2.2.2
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip address 23.1.1.1 255.255.255.0
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
bgp 100
 peer 4.4.4.4 as-number 100
 peer 4.4.4.4 connect-interface LoopBack0
 peer 5.5.5.5 as-number 100
 peer 5.5.5.5 connect-interface LoopBack0
 peer 7.7.7.7 as-number 200
 peer 7.7.7.7 ebgp-max-hop 10
 peer 7.7.7.7 connect-interface LoopBack0   //R2与R7(RR1与RR2)之间建立E-BGP关系
 #
 ipv4-family unicast
  undo synchronization
  peer 4.4.4.4 enable
  peer 4.4.4.4 reflect-client
  peer 4.4.4.4 label-route-capability
  peer 5.5.5.5 enable
  peer 5.5.5.5 reflect-client
  peer 5.5.5.5 label-route-capability
  peer 7.7.7.7 enable
 #
 ipv4-family v4
  undo policy -target
  peer 4.4.4.4 enable
  peer 4.4.4.4 next-hop-invariable   
  peer 7.7.7.7 enable
  peer 7.7.7.7 next-hop-invariable   //RR传递给PE和对端RR的路由不修改下一跳,路由可以递归然后走P设配
#
ospf 1 router-id 2.2.2.2
 area 0.0.0.0
  network 2.2.2.2 0.0.0.0
  network 23.1.1.0 0.0.0.255
#

R3配置:(R6参考R3)

#
sysname R3
#
mpls lsr-id 3.3.3.3
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip address 34.1.1.2 255.255.255.0
 mpls
 mpls ldp
#
interface Ethernet0/0/1
 ip address 23.1.1.2 255.255.255.0
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/0
 ip address 35.1.1.1 255.255.255.0
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
#
ospf 1 router-id 3.3.3.3
 area 0.0.0.0
  network 3.3.3.3 0.0.0.0
  network 23.1.1.0 0.0.0.255
  network 35.1.1.0 0.0.0.255
  network 34.1.1.0 0.0.0.255
#

R5配置:(R8参考R5)

#
sysname R5
#
mpls lsr-id 5.5.5.5
mpls
#
mpls ldp
#
interface Ethernet0/0/0
 ip address 58.1.1.1 255.255.255.0
 mpls
#
interface Ethernet0/0/1
 ip address 35.1.1.2 255.255.255.0
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.255
#
bgp 100
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 peer 58.1.1.2 as-number 200
 #
 ipv4-family unicast
  undo synchronization
  network 2.2.2.2 255.255.255.255
  network 4.4.4.4 255.255.255.255
  peer 2.2.2.2 enable
  peer 2.2.2.2 route-policy policy2 export   //在ASBR1上对向RR1发布的路由应用路由策略,对于向本AS内的RR发布的路由,如果是带有标签的IPv4路由,为其分配新的MPLS标签
  peer 2.2.2.2 label-route-capability
  peer 58.1.1.2 enable
  peer 58.1.1.2 route-policy policy1 export  //对向ASBR2发布的路由应用路由策略,对于从本AS内的RR接收的路由,在向对端AS的ASBR发布时,分配MPLS标签
  peer 58.1.1.2 label-route-capability
#
ospf 1 router-id 5.5.5.5
 area 0.0.0.0
  network 5.5.5.5 0.0.0.0
  network 35.1.1.0 0.0.0.255
#
route-policy policy1 permit node 10
 apply mpls-label   //为匹配条件的路由分配标签
#
route-policy policy2 permit node 10
 if-match mpls-label
 apply mpls-label   //如果路由带有标签,则为其分配标签
#

在R4的E0/0/1接口抓,ce1去往ce2 的ping包

MPLS BGP 跨域(OptionA/B/C(一/二))_第35张图片
在ASBR上display bgp routing-table label命令,可以看到路由的标签信息

MPLS BGP 跨域(OptionA/B/C(一/二))_第36张图片

Option-C方案配置(方案二)

MPLS BGP 跨域(OptionA/B/C(一/二))_第37张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第38张图片

如上图所示,共分为4个AS,AS100和AS200作为ISP,PE1,P1,RR1和ASBR1属于AS100, PE2,P2,RR2和ASBR2属于AS200。CE1和CE2属于同一个VPN,CE1通过AS100的PE1接入, CE2通过AS200的PE2接入。

每台路由器的IP地址规划详见拓扑图。

本例为OptionC方式实现方案二。方案二的实现与方案一大致相似,主要区别在于,当本端ASBR收到对端ASBR传递来的labeled-IPv4-Route后,触发LDP为BGP标签路由分标签。

MPLS BGP 跨域(OptionA/B/C(一/二))_第39张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第40张图片
和OptionA配置不同之处:

RR与ASBR之间没有建立BGP邻居,在ASBR上BGP路由中宣告本AS的RR的环回接口,然后将BGP重发布到OSPF中,在OSPF进程中引入BGP路由,是为了让RR1与RR2能够顺利建立EBGP邻居关系,进而传递VPN路由。建议在OSPF中引入BGP路由时配置路由策略,做好精确的明细引入,减少不必要的路由进入IGP域。

MPLS BGP 跨域(OptionA/B/C(一/二))_第41张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第42张图片
其他配置基本一样

在PE上执行display mpls lsp命令,可以看到去往对方PE的LDP LSP

MPLS BGP 跨域(OptionA/B/C(一/二))_第43张图片
MPLS BGP 跨域(OptionA/B/C(一/二))_第44张图片

你可能感兴趣的:(路由交换,mpls,bgp)