安全 : 多协议标签交换 (MPLS)

配置在Cisco IOS XR的Unified MPLS

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2016 年 4 月 21 日) | 反馈

简介

本文描述Unified多协议标签交换(MPLS)目的并且提供在Cisco IOS XR的配置示例。

贡献用卢克De Ghein, Cisco TAC工程师。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文是特定对Cisco IOS XR,但是没有限制到一个特定软件版本或硬件。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

背景信息

unified MPLS目的是所有关于比例缩放。为了扩展MPLS网络,有不同种类的平台和服务在网络的部分中,它有意义分割网络到不同的区域。一典型的设计引入有一个核心在有聚合的中心在侧的层级。为了扩展,那里可以在不同的内部网关协议(IGP)在核心与聚合。为了扩展,您不能分配从一个IGP的IGP前缀到其他。如果不分配从一个IGP的IGP前缀到另一个IGP,端到端标签交换路径(LSP)不是可能的。

为了提供端到端MPLS的服务,您需要LSP端到端。目标是保持MPLS服务(MPLS VPN, MPLS L2VPN),因为他们是,但是引入更加极大的可扩展性。为了执行此,请搬入某些IGP前缀边界网关协议(BGP) (服务商边缘路由器的环回前缀),然后分配端到端的前缀。

配置

注意:使用命令查找工具仅限注册用户)可获取有关本部分所使用命令的详细信息。

网络图

图1显示与三个不同的区域的网络:一个核心和两个聚合区域在侧。各个领域运行其自己的IGP,没有再分配在他们之间在区域边界路由器(ABR)。使用BGP是需要的为了提供一端到端MPLS LSP。BGP通告PE路由器的环回用在整体域间的一个标签,并且提供一端到端LSP。BGP部署在观点扫描器和ABR之间与RFC 3107 (BGP被标记的单播),因此意味着BGP发送IPv4前缀+标签(地址家族标识符(AFI) 1和随后的地址家族标识符(SAFI) 4)。

图 1

因为网络的核心和聚合零件集成,并且提供端到端LSP, Unified MPLS解决方案也指“无缝的MPLS”。

这里,只没有使用新技术或协议MPLS、标签转发协议(LDP)、IGP和BGP。因为您不要分配PE路由器的环回前缀从网络的一部分的到另一个部分,您需要运载在BGP的前缀。内部边界网关协议(iBGP)用于一网络,因此前缀的下一跳地址是PE路由器的环回前缀,不由IGP在网络的其他部分中知道。这意味着下一跳地址不可能用于对IGP前缀的递归。窍门是做ABR路由器路由反射器(RR)和设置下一跳为自已,为反射的iBGP前缀。

支持此体系结构的仅RR需要软件。因为RR通告BGP前缀下一跳设置对他们自己,他们分配本地MPLS标签到BGP前缀。这意味着在数据层面,在这些端到端LSP转发的数据包有一个额外的MPLS标签在标签栈。RR在转发路径。

注意:在此体系结构,提供所有MPLS服务。例如,服务MPLS VPN或MPLS L2VPN提供在PE路由器之间。在数据层面的差异这些数据包的是他们当前有三个标签在标签栈,而他们有两个标签在标签栈,当未使用Unified MPLS。

有两个可能的情况:

  • ABR不设置下一跳为ABR通告的(反射由BGP)前缀的自已到网络的聚合零件。因此, ABR需要重新分配ABR的环回前缀从核心IGP的到聚合IGP。如果这执行,仍有可扩展性。仅ABR环回前缀(从核心)需要通告到聚合零件,从PE路由器的不是环回前缀从远程聚合零件。
  • ABR设置下一跳为ABR通告的(反射由BGP)前缀的自已到聚合零件。因此, ABR不需要重新分配ABR的环回前缀从核心IGP的到聚合IGP。

在两种情况下, ABR设置下一跳为从网络的聚合零件的ABR通告的(反射由BGP)前缀的自已到核心零件。如果这没有执行, ABR需要重新分配观点扫描器的环回前缀从聚合IGP的到核心IGP。如果这执行,没有可扩展性。

为了设置下一跳为反射的iBGP的自已标记了单播路由,您必须配置路由策略语言(RPL)在ABR。

这些解决方案不工作为了启用在Cisco IOS XR的RFC 3107 :

  • next-hop-self不工作。

    例如:

    router bgp 1
     neighbor 10.100.1.1
      remote-as 1
      update-source Loopback0
      address-family ipv4 labeled-unicast
       route-reflector-client
        next-hop-self
      !
  • 与set next-hop自已的RPL不工作。

    例如:

    router bgp 1
     neighbor 10.100.1.1
      remote-as 1
      update-source Loopback0
      address-family ipv4 labeled-unicast
       route-reflector-client
       route-policy nhs-ibgp-3107 out
       !

    route-policy nhs-ibgp-3107
      set next-hop self
    end-policy
  • 对对等地址的set next-hop不是附上点的一个有效操作员。

    例如:

    route-policy nhs-ibgp-3107-peer
      set next-hop peer-address
    end-policy

    router bgp 1
     neighbor 10.100.1.1
      address-family ipv4 labeled-unicast
       route-policy nhs-ibgp-3107-peer out

    !!% Could not find entry in list: Policy [nhs-ibgp-3107-peer]
    uses 'set-to-peer-address next-hop'. 'set' is not a valid
    operator for the 'next-hop' attribute at the bgp neighbor-out-dflt attach point.
      !
     !
    !
    end

工作的唯一的解决方案将设置对有效IP地址的下一跳地址,有下跳赛弗和有ibgp策略强制执行修改

例如:

router bgp 1
 ibgp policy out enforce-modifications
!
neighbor 10.100.1.1
  remote-as 1
  update-source Loopback0
  address-family ipv4 labeled-unicast
   route-reflector-client
   route-policy nhs-ibgp-3107 out
   next-hop-self
  !
 !
!

route-policy nhs-ibgp-3107
  set next-hop 10.100.1.3
end-policy

在PE1的配置

hostname PE1
!
vrf one     <<< MPLS service is MPLS VPN
 address-family ipv4 unicast
  import route-target
   1:1
  !
  export route-target
   1:1
  !
 !
 address-family ipv6 unicast
  import route-target
   1:1
  !
  export route-target
   1:1
  !
 !
interface Loopback0
 ipv4 address 10.100.1.1 255.255.255.255
!
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.1.1.1 255.255.255.0
!
!
interface GigabitEthernet0/0/0/1   <<< VRF interface to CE1
 vrf one
 ipv4 address 10.9.1.3 255.255.255.0
!
!
router ospf 1
 router-id 10.100.1.1
 area 0
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
router bgp 1
 address-family ipv4 unicast
  network 10.100.1.1/32    <<< advertise PE loopback in BGP
  allocate-label all
 !
 address-family vpnv4 unicast
 !
 neighbor 10.100.1.3
  remote-as 1
  update-source Loopback0
  address-family ipv4 labeled-unicast
  !
 !
 neighbor 10.100.1.7     <<< vpnv4 iBGP session to PE2
  remote-as 1
  update-source Loopback0
  address-family vpnv4 unicast
  !
 !
 vrf one
  rd 1:1
  address-family ipv4 unicast
  !
  neighbor 10.9.1.2    <<< eBGP session to CE1
   remote-as 65001
   address-family ipv4 unicast
    route-policy pass in
    route-policy pass out
   !
  !
 !
!
mpls ldp
 mldp
  logging notifications
  address-family ipv4
  !
 !
 router-id 10.100.1.1
 address-family ipv4
 !
 interface GigabitEthernet0/0/0/0
  address-family ipv4
  !
 !
!

在ABR1的配置

hostname ABR1
!
interface Loopback0
 ipv4 address 10.100.1.3 255.255.255.255
!
!
interface GigabitEthernet0/0/0/0
 ipv4 address 10.1.3.3 255.255.255.0
!
interface GigabitEthernet0/0/0/1
 ipv4 address 10.1.2.3 255.255.255.0
!
route-policy nhs-ibgp-3107
  set next-hop 10.100.1.3    <<< set next hop to loopback
end-policy
!
route-policy connected-into-ospf2
  if destination in (10.100.1.3/32) then
    pass
  endif
end-policy
!
router ospf 1
 router-id 10.100.1.3
 area 0
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
 !
!
router ospf 2
 redistribute connected route-policy connected-into-ospf2
 area 0
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
router bgp 1
 ibgp policy out enforce-modifications
 address-family ipv4 unicast
  allocate-label all
 !
 neighbor 10.100.1.1     <<< iBGP neighbor PE1
  remote-as 1
  update-source Loopback0
  address-family ipv4 labeled-unicast
   route-reflector-client
   route-policy nhs-ibgp-3107 out
   next-hop-self
  !
 !
 neighbor 10.100.1.5      <<< iBGP neighbor ABR2
  remote-as 1
  update-source Loopback0
  address-family ipv4 labeled-unicast
   route-policy nhs-ibgp-3107 out
   next-hop-self
  !
 !
!
mpls ldp
 mldp
  address-family ipv4
  !
 !
 router-id 10.100.1.3
 interface GigabitEthernet0/0/0/0
  address-family ipv4
   discovery transport-address interface
  !
 !
 interface GigabitEthernet0/0/0/1
  address-family ipv4
  !
 !

注意allocate-label全部allocate-label路由策略是需要的。否则被标记的单播路由没有他们需要的一个本地标签,因为ABR是iBGP反射的路由的下一跳。

注意:核心IGP (OSPF 2)的再分配到聚合IGP里(OSPF1或OSPF 3)或反之亦然没有执行。然而,在聚合IGP必须也知道RR的环回前缀,因此在PE路由器的BGP能并列与ABR/RR的环回。对于此,已连接路由的再分配到聚合IGP里用RPL执行。再分布的已连接路由对ABR的环回前缀与RPL的被限制。

验证

命令输出解释程序工具仅限注册用户)支持某些 show 命令。请使用Output Interpreter Tool为了查看show命令输出分析。

参见图2为了验证控制层面操作:

图 2

参见图3为了验证MPLS标签广告:

图 3

参见图4为了验证信息包转发:

图 4

这是数据包如何从PE1转发到PE2。PE2环回前缀是10.100.1.7/32,因此前缀是利益。

RP/0/0/CPU0:PE1#traceroute                                  
Protocol [ipv4]:
Target IP address: 10.100.1.7
Source address: 10.100.1.1
Numeric display? [no]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:

Type escape sequence to abort.
Tracing the route to 10.100.1.7

 1  10.1.1.2 [MPLS: Labels 24000/24005 Exp 0] 439 msec  119 msec  109 msec
 2  10.1.2.3 [MPLS: Label 24005 Exp 0] 109 msec  109 msec  109 msec
 3  10.1.3.4 [MPLS: Labels 24001/24003 Exp 0] 99 msec  99 msec  149 msec
 4  10.1.4.5 [MPLS: Label 24003 Exp 0] 119 msec  119 msec  99 msec
 5  10.1.5.6 [MPLS: Label 24001 Exp 0] 109 msec  139 msec  99 msec
 6  10.1.6.7 109 msec  *  109 msec

标签24000是从前缀的10.100.1.3/32 P2了解的LDP标签。标签24005是为前缀了解的BGP RFC 3107标签10.100.1.7/32。

RP/0/0/CPU0:PE1#show route 10.100.1.7/32

Routing entry for 10.100.1.7/32
  Known via "bgp 1", distance 200, metric 0, [ei]-bgp, type internal
  BIER rid=0x0, flags=0x0, count=0
  Installed May 27 02:52:07.184 for 00:08:52
  Routing Descriptor Blocks
    10.100.1.3, from 10.100.1.3 <<< next-hop is ABR1
      Route metric is 0
  No advertising protos.
RP/0/0/CPU0:PE1#show cef 10.100.1.7/32  
10.100.1.7/32, version 89, internal 0x1000001 0x0 (ptr 0xa1470f74)
[1], 0x0 (0xa1456614), 0xa08 (0xa16181e0)
 Updated May 27 02:52:07.203
 Prefix Len 32, traffic index 0, precedence n/a, priority 4
   via 10.100.1.3, 3 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0xa16806f4 0x0]
    recursion-via-/32
    next hop 10.100.1.3 via 24001/0/21
     local label 24003
     next hop 10.1.1.2/32 Gi0/0/0/0    labels imposed {24000 24005}
RP/0/0/CPU0:PE1#show bgp ipv4 unicast labels 
BGP router identifier 10.100.1.1, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 44
BGP main routing table version 44
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop        Rcvd Label      Local Label
*> 10.100.1.1/32      0.0.0.0         nolabel         3               
*>i10.100.1.7/32      10.100.1.3      24005           24003           

Processed 2 prefixes, 2 paths

有往ABR1的Penultimate Hop Popping (PHP)。

RP/0/0/CPU0:P2#show mpls forwarding labels 24000
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24000  Pop         10.100.1.3/32      Gi0/0/0/1    10.1.2.3        694765      

标签24005用在ABR1的标签24003交换。

RP/0/0/CPU0:ABR1#show bgp ipv4 unicast labels 
BGP router identifier 10.100.1.3, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 60
BGP main routing table version 60
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop        Rcvd Label      Local Label
*>i10.100.1.1/32      10.100.1.1      3               24003           
*>i10.100.1.7/32      10.100.1.5      24003           24005           

Processed 2 prefixes, 2 paths
RP/0/0/CPU0:ABR1#show mpls forwarding labels 24005
Wed May 27 04:08:24.255 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24005  24003       10.100.1.7/32                   10.100.1.5      6347        

有PHP从P1到ABR2。

RP/0/0/CPU0:P1#show mpls forwarding labels 24001
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24001  Pop         10.100.1.5/32      Gi0/0/0/1    10.1.4.5        348835      

RFC 3107路由10.100.1.7/32 receivd的BGP标签由从PE2的ABR2是3。这是指示PHP的隐式空标签。

RP/0/0/CPU0:ABR2#show bgp ipv4 unicast labels 
BGP router identifier 10.100.1.5, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 47
BGP main routing table version 47
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop        Rcvd Label      Local Label
*>i10.100.1.1/32      10.100.1.3      24003           24005           
*>i10.100.1.7/32      10.100.1.7      3               24003           

Processed 2 prefixes, 2 paths

标签24003用在ABR2的标签24001交换。

RP/0/0/CPU0:ABR2#show mpls forwarding labels 24003
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24003  24001       10.100.1.7/32      Gi0/0/0/0    10.1.5.6        403676      

有PHP从P3到PE2。

RP/0/0/CPU0:P3#show mpls forwarding labels 24001
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24001  Pop         10.100.1.7/32      Gi0/0/0/1    10.1.6.7        685191      
RP/0/0/CPU0:PE2#show bgp ipv4 unicast labels 
BGP router identifier 10.100.1.7, local AS number 1
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000   RD version: 42
BGP main routing table version 42
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop        Rcvd Label      Local Label
*>i10.100.1.1/32      10.100.1.5      24005           24004           
*> 10.100.1.7/32      0.0.0.0         nolabel                       

Processed 2 prefixes, 2 paths

故障排除

目前没有针对此配置的故障排除信息。

相关信息



Document ID: 119191