MPLS-TE Path Protectionの設定

Eve-NGを使ってMPLS-TEの環境を作り、Path Protectionを試してみる。

Path Protectionについて

Path ProtectionはGlobal Repairと呼ばれる方式の1つであり、プライマリパスのどこかで障害が発生した際、あらかじめ準備しておいたセカンダリパスに切り替えることで復旧を行う。Local Repair方式でリンクやノードに対してProtectionを設定するFast Reroute(Link Protection/Node Protection)とは異なる。

参考:

環境

  • Eve-NG Community Edition Version 2.0.3-112
  • IOL Version 15.5(2)T

検証構成

f:id:tk_n:20210130135836p:plain

R1~R4で、Loopback I/Fも含めてOSPFを設定しておく。

設定

共通設定(R1~R4)

  • MPLS-TEの有効化
mpls traffic-eng tunnels
  • 各I/FでMPLS-TE有効化+RSVPで帯域確保
interface Ethernet0/0
 mpls traffic-eng tunnels
 ip rsvp bandwidth 300
!         
  • OSPF-TEの有効化
router ospf 1
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
!

確認

R1#show ip rsvp interface 
interface    rsvp  allocated  i/f max  flow max sub max  VRF            
Et0/0        ena   0          300K     300K     0       
Et0/1        ena   0          300K     300K     0       

RSVPでI/Fごとに帯域が割り当てられているのがわかる。 (まだパスは作っていないのでallocatedは0)

OSPF-TEを有効にする時(もしくは割当帯域を変える時)にパケットキャプチャすると、LS Updateで帯域使用率等の情報が広報されるのが見える。 f:id:tk_n:20210130140230p:plain

プライマリパスの作成(R1)

プライマリパスはR1->R2->R3とする。 Head-EndとなるR1で、Tunnelインターフェースとして設定

interface Tunnel123
 description R1->R2->R3
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 10.10.10.3
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng bandwidth 150
 tunnel mpls traffic-eng path-option 10 explicit name PRIMARY
 tunnel mpls traffic-eng record-route
!
ip explicit-path name PRIMARY enable
 next-address 10.10.10.2
 next-address 10.10.10.3
!         

確認

R1#show mpls traffic-eng tunnels           

Name: R1->R2->R3                          (Tunnel123) Destination: 10.10.10.3
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type explicit PRIMARY (Basis for Setup, path weight 20)

  Config Parameters:
    Bandwidth: 150      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    AutoRoute:  enabled   LockDown: disabled  Loadshare: 150      bw-based
    auto-bw: disabled
  Active Path Option Parameters:
    State: explicit path option 10 is active
    BandwidthOverride: disabled  LockDown: disabled  Verbatim: disabled

  InLabel  :  - 
  OutLabel : Ethernet0/0, 17
  RSVP Signalling Info:
       Src 10.10.10.1, Dst 10.10.10.3, Tun_Id 123, Tun_Instance 5
    RSVP Path Info:
      My Address: 192.168.1.1   
      Explicit Route: 192.168.1.2 192.168.2.1 192.168.2.2 10.10.10.3 
      Record   Route: 
      Tspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
    RSVP Resv Info:
      Record   Route:  192.168.2.1 192.168.2.2
      Fspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
  History:
    Tunnel:
      Time since created: 4 minutes, 25 seconds
      Time since path change: 1 minutes, 9 seconds
      Number of LSP IDs (Tun_Instances) used: 5
    Current LSP:
      Uptime: 1 minutes, 9 seconds
      Selection: reoptimization
    Prior LSP:
      ID: path option 10 [4]
      Removal Trigger: configuration changed

Statusがupになり、Explicit Routeが登録されている。

R1#show ip rsvp interface 
interface    rsvp  allocated  i/f max  flow max sub max  VRF            
Et0/0        ena   150K       300K     300K     0       
Et0/1        ena   0          300K     300K     0 

Et0/0がAllocatedになった。

R1#show ip rsvp reservation 
To            From          Pro DPort Sport Next Hop      I/F      Fi Serv BPS
10.10.10.3    10.10.10.1    0   123   5     192.168.1.2   Et0/0    SE LOAD 150K

reservationが登録されている。

R2#show mpls forwarding-table 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
17         Pop Label  10.10.10.1 123 [5]   \
                                       0             Et0/1      192.168.2.2 

R2でmpls forwarding-tableを見てみると、エントリが追加されている。

R1->R3へtraceroute

R1#traceroute 10.10.10.3
Type escape sequence to abort.
Tracing the route to 10.10.10.3
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 [MPLS: Label 17 Exp 0] 1 msec 1 msec 1 msec
  2 192.168.2.2 1 msec 1 msec * 

登録されたLSPを使ったMPLSでR2->R3と経由していることがわかる。

セカンダリパスの設定(R1)

セカンダリパスはR1->R4->R3とする。 プライマリ同様にHead-End(R1)で設定。

interface Tunnel123
 tunnel mpls traffic-eng path-option protect 10 explicit name SECONDARY
!
ip explicit-path name SECONDARY enable
 next-address 10.10.10.4
 next-address 10.10.10.3

確認

R1#show mpls traffic-eng tunnels 

Name: R1->R2->R3                          (Tunnel123) Destination: 10.10.10.3
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type explicit PRIMARY (Basis for Setup, path weight 20)
    Path Protection: 0 Common Link(s), 0 Common Node(s)
    path protect option 10, type explicit SECONDARY (Basis for Protect, path weight 20)

  Config Parameters:
    Bandwidth: 150      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    AutoRoute:  enabled   LockDown: disabled  Loadshare: 150      bw-based
    auto-bw: disabled
  Active Path Option Parameters:
    State: explicit path option 10 is active
    BandwidthOverride: disabled  LockDown: disabled  Verbatim: disabled

  InLabel  :  - 
  OutLabel : Ethernet0/0, 17
  RSVP Signalling Info:
       Src 10.10.10.1, Dst 10.10.10.3, Tun_Id 123, Tun_Instance 5
    RSVP Path Info:
      My Address: 192.168.1.1   
      Explicit Route: 192.168.1.2 192.168.2.1 192.168.2.2 10.10.10.3 
      Record   Route: 
      Tspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
    RSVP Resv Info:
      Record   Route:  192.168.2.1 192.168.2.2
      Fspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
  History:
    Tunnel:
      Time since created: 27 minutes, 35 seconds
      Time since path change: 24 minutes, 20 seconds
      Number of LSP IDs (Tun_Instances) used: 5
    Current LSP:
      Uptime: 24 minutes, 20 seconds
      Selection: reoptimization
    Prior LSP:
      ID: path option 10 [4]
      Removal Trigger: configuration changed

path protect option 10, type explicit SECONDARYが追加された。 Path Protection:の行はプライマリパスと共有しているリンクとノードの数(Head-end, Tail-endは除く)なので、この構成の場合0となる。

R1#show mpls traffic-eng tunnels tunnel 123 protection 
R1->R2->R3
  LSP Head, Tunnel123, Admin: up, Oper: up
  Src 10.10.10.1, Dest 10.10.10.3, Instance 5
  Fast Reroute Protection: None
  Path Protection: 0 Common Link(s), 0 Common Node(s)
    Primary lsp path:192.168.1.1 192.168.1.2 
                     192.168.2.1 192.168.2.2 
                     10.10.10.3 
    Protect lsp path:192.168.3.1 192.168.3.2 
                     192.168.4.2 192.168.4.1 
                     10.10.10.3 
    Path Protect Parameters:
      Bandwidth: 150      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
      Metric Type: TE (default)
    InLabel  :  - 
    OutLabel : Ethernet0/1, 16
    RSVP Signalling Info:
         Src 10.10.10.1, Dst 10.10.10.3, Tun_Id 123, Tun_Instance 9
      RSVP Path Info:
        My Address: 192.168.3.1   
        Explicit Route: 192.168.3.2 192.168.4.2 192.168.4.1 10.10.10.3 
        Record   Route: 
        Tspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
      RSVP Resv Info:
        Record   Route:  192.168.4.2 192.168.4.1
        Fspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits

Primary lspとProtect lspの経路情報が登録されている。

R1#show ip rsvp interface 
interface    rsvp  allocated  i/f max  flow max sub max  VRF            
Et0/0        ena   150K       300K     300K     0       
Et0/1        ena   150K       300K     300K     0     

R1#show ip rsvp reservation 
To            From          Pro DPort Sport Next Hop      I/F      Fi Serv BPS
10.10.10.3    10.10.10.1    0   123   5     192.168.1.2   Et0/0    SE LOAD 150K
10.10.10.3    10.10.10.1    0   123   9     192.168.3.2   Et0/1    SE LOAD 150K

Et0/1側も帯域がallocatedになった。セカンダリの分のreservationも登録されている。

R4#show mpls forwarding-table 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
16         Pop Label  10.10.10.1 123 [9]   \
                                       0             Et0/1      192.168.4.1 

R4のmpls forwarding-tableを確認。確かに登録されている。

動作確認

R2のEthernet0/1をshutしてみる。

R2(config)#int e 0/1
R2(config-if)#shut  
R2(config-if)#
*Jan 30 06:11:18.905: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.4.1 on Ethernet0/
1 from FULL to DOWN, Neighbor Down: Interface down or detached
R2(config-if)#
*Jan 30 06:11:20.899: %LINK-5-CHANGED: Interface Ethernet0/1, changed state to
 administratively down
*Jan 30 06:11:21.908: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet
0/1, changed state to down

tunnel 123のプロテクション状態を確認

R1#show mpls traffic-eng tunnels tunnel 123 protection 
R1->R2->R3
  LSP Head, Tunnel123, Admin: up, Oper: up
  Src 10.10.10.1, Dest 10.10.10.3, Instance 9
  Fast Reroute Protection: None
  Path Protection: Backup lsp in use.

Path Protection: Backup lsp in use.となり、セカンダリが使われていることがわかる。

R1#traceroute 10.10.10.3
Type escape sequence to abort.
Tracing the route to 10.10.10.3
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.3.2 [MPLS: Label 16 Exp 0] 0 msec 2 msec 1 msec
  2 192.168.4.1 1 msec 1 msec * 

セカンダリパスを使って通信が行われている。

R1#show mpls traffic-eng tunnels
(中略)
InLabel  :  - 
  OutLabel : Ethernet0/1, 16
  RSVP Signalling Info:
       Src 10.10.10.1, Dst 10.10.10.3, Tun_Id 123, Tun_Instance 9
    RSVP Path Info:
      My Address: 192.168.3.1   
      Explicit Route: 192.168.3.2 192.168.4.2 192.168.4.1 10.10.10.3 
      Record   Route: 
      Tspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
    RSVP Resv Info:
      Record   Route:  192.168.4.2 192.168.4.1
      Fspec: ave rate=150 kbits, burst=1000 bytes, peak rate=150 kbits
  History:
    Tunnel:
      Time since created: 54 minutes, 58 seconds
      Time since path change: 5 minutes, 29 seconds
      Number of LSP IDs (Tun_Instances) used: 9
    Current LSP:
      Uptime: 27 minutes, 42 seconds
      Selection: 
    Prior LSP:
      ID: path option 10 [5]
      Removal Trigger: path error
      Last Error: PCALC:: No addresses to connect 10.10.10.2 to 10.10.10.3

Explicit Routeがセカンダリのものになっている。また、History欄に10.10.10.2-10.10.10.3間で疎通が取れなくなったことが記録されている。

R1#show ip rsvp int         
interface    rsvp  allocated  i/f max  flow max sub max  VRF            
Et0/0        ena   0          300K     300K     0       
Et0/1        ena   150K       300K     300K     0 

帯域割り当てもプライマリ側は解除されている。

参考