MPLS L3VPN OptionC 跨域简单分析

digest [复制链接]
发表于 : 2018-1-4 10:19:38 最新回复:2018-01-05 21:18:07
1900 15
忧郁的红雨伞  专家  

各位好:
  
      基于上次有同学提出了有关MPLS L3VPN Option C 跨域的问题,做一简单分析,主要对内部路由、外部路由、IGP LSP、BGP LSP、VPNV4路由传递等基本概念予以说明。
                                             

    简要的示例拓扑如上图,两个VPN Site 属于同一个VPN,Site1通过AS100接入、Site2通过AS200接入,现有互通需求,拟定采用Option C跨域方式,实现跨AS的MPLS L3VPN互通。

     首先,阐述两个基本概念,内部路由和外部路由。简单来讲一个AS一般都是一个运营商网络,运营商为自己的服务对象从自身地址块内分配的IP即为AS的内部地址,而其他AS的地址块会被认为是外部地址,一般本AS不会对其他AS的地址块路由予以存储、传递。
    例如:本例中AS100为AS200从本地址块里分配的地址,AS200将这些地址配置在各路由器的loopback 0上,那么对于AS100来讲这些地址就是内部地址,需要在本AS的路由器中存储路由、转发数据。而对于AS200中的VPN路由、其他路由即为外部地址,一般本AS不存储也不负责转发这些地址的路由。内部路由器可以通过IGP承载,也可以通过IBGP承载。

    其次,简单说一下Option C方式的好处,采用该方式的好处主要是便于扩展、管理,ASBR无需存储VPNV4路由,也符合MPLS L3VPN 的设计理念,即VPN路由都在PE设备上承载,中间设备无需感知这些路由,仅作标签转发即可。

   下面对关键设备的一些配置加以说明:

  (1). ASBR间使用BGP协议通告AS内部路由(即对方AS分配给本AS的地址块),包含PE、RR、ASBR的loopback 0接口地址,同时使用BGP的Label + 扩展,在发送IPV4路由的同时发布该路由的MPLS标签。
结合路由策略,仅仅对PE、RR、ASBR的loopback 0地址发布标签路由。

[ASBR1-bgp]dis this
[V200R003C00]
#
bgp 100
 peer 20.1.1.2 as-number 100 
 peer 20.1.1.2 connect-interface LoopBack0
 peer 34.1.1.4 as-number 200 
 #
 ipv4-family unicast
  undo synchronization
  network 20.1.1.1 255.255.255.255 
  network 20.1.1.2 255.255.255.255 
  network 20.1.1.3 255.255.255.255 
  peer 20.1.1.2 enable
  peer 34.1.1.4 enable
  peer 34.1.1.4 route-policy 20 export
  peer 34.1.1.4 label-route-capability
 # 

[ASBR1-bgp]display ip ip-prefix
Prefix-list 20
Permitted 6
Denied 0
        index: 10               permit  20.1.1.1/32             
        index: 20               permit  20.1.1.2/32             
        index: 30               permit  20.1.1.3/32             
[ASBR1-bgp]display  route-policy
Route-policy : 20
  permit : 10 (matched counts: 3)
    Match clauses : 
      if-match ip-prefix 20
    Apply clauses : 
      apply mpls-label 

 [ASBR1-GigabitEthernet0/0/2]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/2
 ip address 34.1.1.3 255.255.255.0 
 mpls
#
    在ASBR间互联的接口需要使能MPLS,无需使能LDP,因为BGP协议已经可以在发布IPV4路由的同时,发布路由与标签的绑定关系。

  (2).在AS内部运行IGP(ISIS、OSPF)发布直连接口、loopback 0 接口,在互联接口上开启MPLS、LDP。

  (3).在ASBR上需要开启MPLS 的 BGP Lable路由的触发功能,开启该功能主要是为了打通BGP LSP 与LDP LSP 建立端到端的LSP。
[ASBR1-mpls]dis this
[V200R003C00]
#
mpls lsr-id 20.1.1.3
mpls
 lsp-trigger bgp-label-route
#
return
[ASBR1-mpls]ls
[ASBR1-mpls]lsp-trigger  ?
  all              Trigger all FEC for IGP
  bgp-label-route  Trigger Host FEC for public labeled BGP

   (4).在ASBR上将BGP路由引入到IGP中,保证本端路由器具有到达对端路由器loopback 0接口的路由,在做该操作后,可以通过查看标签抓发表看到上面提到的 BGP LSP 与 LDP LSP打通了。另外,引入时可以结合路由策略仅匹配带有label的32位BGP路由。在AS内部ASBR可以通过LDP协议将对端32地址的BGP Label 通告给内部的其他路由器了,这样端到端的LSP就打通了。

[ASBR1-isis-10]dis this
[V200R003C00]
#
isis 10
 is-level level-2
 cost-style wide
 network-entity 49.0001.0030.0300.3003.00
 import-route bgp 
#

[ASBR1]display mpls lsp 
-------------------------------------------------------------------------------
                 LSP Information: BGP  LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
20.1.1.1/32        1026/NULL     -/-                                           
20.1.1.2/32        1027/NULL     -/-                                           
20.1.1.3/32        1028/NULL     -/-                                           
10.1.1.1/32        NULL/1024     -/-                                           
10.1.1.2/32        NULL/1025     -/-                                           
10.1.1.3/32        NULL/1026     -/-                                           
-------------------------------------------------------------------------------
                 LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
20.1.1.1/32        NULL/3        -/GE0/0/1                                     
20.1.1.1/32        1024/3        -/GE0/0/1                                     
20.1.1.3/32        3/NULL        -/-                                           
20.1.1.2/32        NULL/3        -/GE0/0/0                                     
20.1.1.2/32        1025/3        -/GE0/0/0                                     
10.1.1.1/32        1029/1024     -/-                                           
10.1.1.2/32        1030/1025     -/-                                           
10.1.1.3/32        1031/1026     -/-                           
  
    (5).在两个AS的RR路由间建立多条MPEBGP邻居关系,用于互相通告VPN Site的VPNV4路由。需要注意的是由于两台RR建立的是EBGP邻居关系,按照常规的BGP规则EBGP邻居在更新路由时会将next-hop属性修改为自身地址,由于在Option C方案中PE到PE的LSP已经建立,完全可以通过该LSP转发VPN数据,在RR上配置向对端RR发送路由时不修改下一跳地址,这样在RR反射给本端PE路由时,保持下一跳为对端PE的loopback0地址,这样可以避免VPN流量都需要到RR在进行转发。

[AS100_RR-bgp]dis this
[V200R003C00]
#
bgp 100
 undo default ipv4-unicast
 peer 10.1.1.2 as-number 200 
 peer 10.1.1.2 ebgp-max-hop 255 
 peer 10.1.1.2 connect-interface LoopBack0
 peer 20.1.1.1 as-number 100 
 peer 20.1.1.1 connect-interface LoopBack0
 peer 20.1.1.3 as-number 100 
 peer 20.1.1.3 ignore
 peer 20.1.1.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.1.2 enable
  undo peer 20.1.1.1 enable
  undo peer 20.1.1.3 enable
 # 
 ipv4-family vpnv4
  undo policy vpn-target  //由于RR上并没有VPN-instance,也就没有RT,关闭路由自动过滤功能
  peer 10.1.1.2 enable
  peer 10.1.1.2 next-hop-invariable 
  peer 20.1.1.1 enable
  peer 20.1.1.1 reflect-client
  peer 20.1.1.1 next-hop-invariable 

  (6).在PE路由器创建VPN-instance时,需要注意的是由于AS内部都会有自己的RD和RT规则,在配置RT时一定需要将对端PE的RT导出值,进行导入。
   [PE1-vpn-instance-vpn1]dis this
[V200R003C00]
#
ip vpn-instance vpn1
 ipv4-family
  route-distinguisher 100:100
  vpn-target 100:100 export-extcommunity
  vpn-target 100:100 200:100 import-extcommunity
#
  
   (7).两端AS设备做类似配置后,在PE路由器上查看VPNV4路由,可以看到由于配置了EBGP不修改下一跳,RR在将路由反射给本端PE时下一跳保持了对端PE的loopback 0地址。
 VPN-Instance vpn1, Router ID 23.1.1.2:

 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal  Path/Ogn

 *>   11.11.1.0/24       12.1.1.1        0                              0         65535i
 *>i  11.11.2.0/24       10.1.1.3                          100        0   

    (8).由于在本例中CE与PE间运行BGP协议,且CE所在的AS均为65535,根据BGP的防环原则CE会将PE发送的包含自身AS的Update丢弃,需要配置CE允许 update中包含自身AS,以学习到对端的VPN路由。
 [CE1-bgp]dis this
[V200R003C00]
#
bgp 65535
 router-id 1.1.1.1
 peer 12.1.1.2 as-number 100 
 #
 ipv4-family unicast
  undo synchronization
  network 11.11.1.0 255.255.255.0 
  peer 12.1.1.2 enable
  peer 12.1.1.2 allow-as-loop
#
   (9).在CE1上指定源地址pingCE2的业务地址,同时在ASBR互联链路上抓取数据包。
  
[CE1]ping -a 11.11.1.1 11.11.2.1
  PING 11.11.2.1: 56  data bytes, press CTRL_C to break
    Reply from 11.11.2.1: bytes=56 Sequence=1 ttl=251 time=80 ms
    Reply from 11.11.2.1: bytes=56 Sequence=2 ttl=251 time=40 ms
    Reply from 11.11.2.1: bytes=56 Sequence=3 ttl=251 time=40 ms
    Reply from 11.11.2.1: bytes=56 Sequence=4 ttl=251 time=50 ms
    Reply from 11.11.2.1: bytes=56 Sequence=5 ttl=251 time=40 ms


  
   ping包带有两层MPLS 标签,标签值分别为1026与1029。
    
     
  其中1029标签为PE2为11.11.2.0/24的VPNV4路由分配的标签,用于告知对端PE,建立CE到CE的转发面。

<PE2>display bgp vpnv4 all routing-table 11.11.2.0 


 BGP local router ID : 46.1.1.6
 Local AS number : 200

 Total routes of Route Distinguisher(200:100): 1
 BGP routing table entry information of 11.11.2.0/24:
 Label information (Received/Applied): NULL/1029

   在ASBR上查看mpls lsp可以看到1026标签为通过BGP协议学习到的有关10.1.1.3/32的标签,同时,本机通过LDP向LDP邻居发送该前缀标签绑定关系时使用1031标签。
<ASBR1>display mpls lsp 
-------------------------------------------------------------------------------
                 LSP Information: BGP  LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
10.1.1.3/32        NULL/1026     -/-                                           
-------------------------------------------------------------------------------
                 LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
10.1.1.3/32        1031/1026     -/-               

   在PE1上查看10.1.1.3/32的LSP,发现出标签为ASBR1分发的1031
<PE1>display mpls  lsp  | begin 10.1.1.3
-------------------------------------------------------------------------------
                 LSP Information: BGP  LSP
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
                 LSP Information: LDP LSP
-------------------------------------------------------------------------------
10.1.1.3/32        NULL/1031     -/GE0/0/1
10.1.1.3/32        1029/1031     -/GE0/0/1                    


    在PE1上通过ping lsp检测到达PE2 loopback 0的LSP联通情况,同时在与ASBR1互联的链路上抓包。可以看到PE1路由器发送的MPLS echo 带有1031的标签。说明当PE1向PE2发送数据时压入的MPLS标签却为1031,(由ASBR1通过LDP分发的)。


<PE1>ping lsp -a 20.1.1.1 ip 10.1.1.3 32
  LSP PING FEC: IPV4 PREFIX 10.1.1.3/32/ : 100  data bytes, press CTRL_C to brea
k
    Reply from 10.1.1.3: bytes=100 Sequence=1 time=30 ms
    Reply from 10.1.1.3: bytes=100 Sequence=2 time=20 ms
    Reply from 10.1.1.3: bytes=100 Sequence=3 time=30 ms
    Reply from 10.1.1.3: bytes=100 Sequence=4 time=10 ms
    Reply from 10.1.1.3: bytes=100 Sequence=5 time=30 ms



   
     总结:OptionC方案在MPLS L3VPN跨域支持方面根据扩展性和灵活性,端到端仅需建立LSP即可完成VPN Site间的数据转发,ASBR上无需保存VPN路由。同时,RR的引入可以兼顾域内、域外VPNV4路由同时传递。

谢谢。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
  • x
  • 常规:

点评 回复

g00275514 发表于 2018-1-10 09:27
ASBR之间几层标签呢?这个怎么理解呢?另外,现网上用LDP的方式很少,因为他是基于MPLS TE来用的,因为LDP必定基于IGP的,路由都是最短路径优先,所以LDP LSP的路由不能很好控制.另外如果是MPLS TE,你还能把BGP的路由引入IGP,利用LDP给BGP 路由分标签吗?这个能实现吗? 
始于此,止于此,了无遗憾。
跳转到指定楼层
忧郁的红雨伞  专家   发表于 2018-1-4 10:27:27 已赞(1) 赞(1)

配置已保存,拓扑文件已打包,请大家自行下载学习。

谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
  • x
  • 常规:

点评 回复

社区管理员咕噜噜 发表于 2018-1-4 11:50
附件已审核,欢迎大家学习! 
始于此,止于此,了无遗憾。
yanglei1125  新锐   发表于 2018-1-4 11:31:53 已赞(0) 赞(0)

感谢分享,学习学习。
  • x
  • 常规:

点评 回复

社区管理员咕噜噜  管理员   发表于 2018-1-4 11:54:47 已赞(0) 赞(0)

阿伞,棒棒哒
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-1-4 12:13:52 已赞(0) 赞(0)

yanglei1125 发表于 2018-1-4 11:31 感谢分享,学习学习。
互相学习。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
忧郁的红雨伞  专家   发表于 2018-1-4 12:14:08 已赞(0) 赞(0)

尽量喽,感谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
林凡  新锐   发表于 2018-1-4 13:12:58 已赞(0) 赞(0)

感谢分享!
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-1-4 13:54:52 已赞(0) 赞(0)

感谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
李宗易  版主   发表于 2018-1-4 14:28:50 已赞(0) 赞(0)

感谢分享
  • x
  • 常规:

点评 回复

忧郁的红雨伞  专家   发表于 2018-1-4 14:34:54 已赞(0) 赞(0)

感谢。
  • x
  • 常规:

点评 回复

始于此,止于此,了无遗憾。
12
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
快速回复 返回顶部