Saturday, October 21, 2017

MPLS Traffic Engineering (TE) over L2VPN VPWS-AtoM

Here are my lab notes for VPWS-AToM TE testing.  TE was added to the existing VPWS-AToM lab and used Customer C’s CE devices for testing.  A manual pseudowire interface was used to configure the virtual circuit to facilitate the TE.

Testing was from CE12 to CE19 with and without Traffic Engineering tunnels over a point to point AToM L2VPN network.  The TE tunnel was configured to force a suboptimal path to show proof of concept.

  • Diagram
  • Configuration
  • Verification
    • CE12 to CE19 without TE
      • Pings without TE tunnel
      • MPLS L2Transport VC detail
      • MPLS forwarding trace
    • CE12 to CE19 with TE (PE13 to PE15)
      • Pings with TE tunnel
      • MPLS L2Transport VC detail
      • MPLS Traffic-Engineering Tunnel details
      • MPLS forwarding trace
  • Issues
  • References

Diagram




Configuration

Configurations displayed below were made on only one provider edge router (PE13).  TE tunnel’s destination was configured to PE15 and was set unidirectional.  Similar configuration must be applied on PE15 and PE13 to allow TE in the opposite direction (not covered here).


Provider Edge Router (PE13)

Create the explicit path for the TE tunnel from PE13 to PE15.

ip explicit-path name LSP_PE13_2_PE15_VPWS enable
 next-address 10.1.1.17
 next-address 10.0.0.2
 next-address 10.0.0.14
 next-address 10.0.0.21
 next-address 10.1.1.34


Create TE tunnel interface to PE15.

interface Tunnel21
 description TE TO PE15 - VPWS
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 15.15.15.15
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng priority 1 1
 tunnel mpls traffic-eng bandwidth 10
 tunnel mpls traffic-eng path-option 1 explicit name LSP_PE13_2_PE15_VPWS
 tunnel mpls traffic-eng path-option 2 dynamic


Create the pseudowire interface and configure the tunnel as the preferred path.

interface pseudowire20
 description VPWS TO CUSTOMER_C
 encapsulation mpls
 neighbor 15.15.15.15 20
 preferred-path interface Tunnel21


Create the L2VPN XConnect defining GigEthernet3 as AC interface.

l2vpn xconnect context VPWS_CUSTOMER_C
 remote link failure notification
 member pseudowire20
 member GigabitEthernet3 service-instance 20

interface GigabitEthernet3
 description TO CE_R12 - VPWS
 mtu 9216
 bandwidth 100
 no ip address
 negotiation auto
 no keepalive
 service instance 20 ethernet
  encapsulation dot1q 2000-2100



Verification (without TE Tunnel, CE16 to CE18)

Ping

CE_R12#ping 192.168.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/9/11 ms


MPLS L2Transport VC detail (to PE15)

The Virtual Circuit (VC) to PE15 is forwarding out the normal physical interface with a VC label of 1538 and a forwarding label of 221.

PE_R13#sh mpls l2transport vc detail  

..snip..

Local interface: Gi3 up, line protocol up, Ethernet:20 up
  Destination address: 15.15.15.15, VC ID: 20, VC status: up
    Output interface: Gi1.25, imposed label stack {221 1538}
    Preferred path: Tunnel21,  no route
    Default path: active
    Next hop: 10.1.1.21
  Create time: 1d10h, last status change time: 1d10h
    Last label FSM state change time: 00:11:30
  Signaling protocol: LDP, peer 15.15.15.15:0 up
    Targeted Hello: 13.13.13.13(LDP Id) -> 15.15.15.15, LDP is UP
    Graceful restart: not configured and not enabled
    Non stop routing: not configured and not enabled
    Status TLV support (local/remote)   : enabled/supported
      LDP route watch                   : enabled
      Label/status state machine        : established, LruRru
      Last local dataplane   status rcvd: No fault
      Last BFD dataplane     status rcvd: Not sent
      Last BFD peer monitor  status rcvd: No fault
      Last local AC  circuit status rcvd: No fault
      Last local AC  circuit status sent: No fault
      Last local PW i/f circ status rcvd: No fault
      Last local LDP TLV     status sent: No fault
      Last remote LDP TLV    status rcvd: No fault
      Last remote LDP ADJ    status rcvd: No fault
    MPLS VC labels: local 1337, remote 1538
    Group ID: local 8, remote 8
    MTU: local 9216, remote 9216
    Remote interface description: TO CE_R19 - VPWS
  Sequencing: receive disabled, send disabled
  Control Word: On (configured: autosense)
  SSO Descriptor: 15.15.15.15/20, local label: 1337
  Dataplane:
    SSM segment/switch IDs: 20495/12298 (used), PWID: 3
  VC statistics:
    transit packet totals: receive 83, send 82
    transit byte totals:   receive 9362, send 11758
    transit packet drops:  receive 0, seq error 0, send 0


MPLS Forwarding Trace

The path without TE is via the normal lowest cost path (CE12 à PE13 à P2 à P4 à PE15 à CE19).

PE13 imposes label 221 and forwards to P2.

PE_R13#sh mpls forwarding-table 15.15.15.15 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
1334       221        15.15.15.15/32   0             Gi1.25     10.1.1.21  
        MAC/Encaps=18/22, MRU=9216, Label Stack{221}
        000C294A72B4000C29B9AA98810000198847 000DD000
        No output feature configured


On P2, swap label to 416 and forward to P4.

P_R02#sh mpls forwarding-table 15.15.15.15 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
221        416        15.15.15.15/32   28508678      Gi1.13     10.0.0.14  
        MAC/Encaps=18/22, MRU=9216, Label Stack{416}
        000C2999C1D7000C294A72B48100000D8847 001A0000
        No output feature configured


On P4, pop label off and forward to PE15.

P_R04#sh mpls forwarding-table 15.15.15.15 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
416        Pop Label  15.15.15.15/32   27016438      Gi1.29     10.1.1.38  
        MAC/Encaps=18/18, MRU=9220, Label Stack{}
        000C2980E80A000C2999C1D78100001D8847
        No output feature configured


On PE15, lookup label of 1538, which identifies the VC.

PE_R15#sh mpls forwarding-table labels 1538 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
1538       No Label   l2ckt(6)         9362          Gi3        point2point
        MAC/Encaps=0/0, MRU=0, Label Stack{}
        No output feature configured



Verification (with TE Tunnel, CE12 to CE19)

Ping

CE_R12#ping 192.168.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 11/11/12 ms


MPLS L2Transport VC detail (to PE15)

This command displays the VC to PE15 forwarding out the Tunnel interface. Here it imposes forwarding label of 116 with local VC label of 1337 and remote VC label of 1538.

The Virtual Circuit (VC) to PE15 is forwarding out the tunnel physical interface with a VC label of 1538 and a forwarding label of 116.

PE_R13#sh mpls l2transport vc detail

..snip..

Local interface: Gi3 up, line protocol up, Ethernet:20 up
  Destination address: 15.15.15.15, VC ID: 20, VC status: up
    Output interface: Tu21, imposed label stack {116 1538}
    Preferred path: Tunnel21,  active
    Default path: ready
    Next hop: point2point
  Create time: 00:09:35, last status change time: 00:09:35
    Last label FSM state change time: 00:09:35
  Signaling protocol: LDP, peer 15.15.15.15:0 up
    Targeted Hello: 13.13.13.13(LDP Id) -> 15.15.15.15, LDP is UP
    Graceful restart: not configured and not enabled
    Non stop routing: not configured and not enabled
    Status TLV support (local/remote)   : enabled/supported
      LDP route watch                   : enabled
      Label/status state machine        : established, LruRru
      Last local dataplane   status rcvd: No fault
      Last BFD dataplane     status rcvd: Not sent
      Last BFD peer monitor  status rcvd: No fault
      Last local AC  circuit status rcvd: No fault
      Last local AC  circuit status sent: No fault
      Last local PW i/f circ status rcvd: No fault
      Last local LDP TLV     status sent: No fault
      Last remote LDP TLV    status rcvd: No fault
      Last remote LDP ADJ    status rcvd: No fault
    MPLS VC labels: local 1337, remote 1538
    Group ID: local 8, remote 8
    MTU: local 9216, remote 9216
    Remote interface description: TO CE_R19 - VPWS
  Sequencing: receive disabled, send disabled
  Control Word: On (configured: autosense)
  SSO Descriptor: 15.15.15.15/20, local label: 1337
  Dataplane:
    SSM segment/switch IDs: 20495/12298 (used), PWID: 3
  VC statistics:
    transit packet totals: receive 10, send 10
    transit byte totals:   receive 1180, send 1480
    transit packet drops:  receive 0, seq error 0, send 0


MPLS Traffic Engineering Tunnel Details

This command displays the TE tunnel details for the TE path of CE12 à PE13 à P1 à P2 à P4 à P3 à PE15 à CE19 over tunnel 21.

PE13’s TE tunnel to PE15 details.

PE_R13#sh mpls traffic-eng tunnels

P2P TUNNELS/LSPs:

..snip..

Name: TE TO PE15 - VPWS                   (Tunnel21) Destination: 15.15.15.15
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 1, type explicit LSP_PE13_2_PE15_VPWS (Basis for Setup, path weight 20)
    path option 2, type dynamic

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


  InLabel  :  -
  OutLabel : GigabitEthernet1.24, 116
  Next Hop : 10.1.1.17
  RSVP Signalling Info:
       Src 13.13.13.13, Dst 15.15.15.15, Tun_Id 21, Tun_Instance 1
    RSVP Path Info:
      My Address: 10.1.1.18  
      Explicit Route: 10.1.1.17 10.0.0.2 10.0.0.14 10.0.0.21
                      10.1.1.34 15.15.15.15
      Record   Route:   NONE
      Tspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
  History:
    Tunnel:
      Time since created: 5 hours, 4 minutes
      Time since path change: 4 hours, 25 minutes
      Number of LSP IDs (Tun_Instances) used: 1
    Current LSP: [ID: 1]
      Uptime: 4 hours, 25 minutes

P2MP TUNNELS:

P2MP SUB-LSPS:


P1 TE tunnel details.

P_R01#sh mpls traffic-eng tunnels

P2P TUNNELS/LSPs:

..snip..

LSP Tunnel TE TO PE15 - VPWS is signalled, connection is up
  InLabel  : GigabitEthernet1.24, 116
  Prev Hop : 10.1.1.18
  OutLabel : GigabitEthernet1.10, 232
  Next Hop : 10.0.0.2
  RSVP Signalling Info:
       Src 13.13.13.13, Dst 15.15.15.15, Tun_Id 21, Tun_Instance 1
    RSVP Path Info:
      My Address: 10.0.0.1  
      Explicit Route: 10.0.0.2 10.0.0.14 10.0.0.21 10.1.1.34
                      15.15.15.15
      Record   Route:   NONE
      Tspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits

P2MP TUNNELS:

P2MP SUB-LSPS:


P2 TE tunnel details.

P_R02#sh mpls traffic-eng tunnels

P2P TUNNELS/LSPs:

..snip..

LSP Tunnel TE TO PE15 - VPWS is signalled, connection is up
  InLabel  : GigabitEthernet1.10, 232
  Prev Hop : 10.0.0.1
  OutLabel : GigabitEthernet1.13, 432
  Next Hop : 10.0.0.14
  RSVP Signalling Info:
       Src 13.13.13.13, Dst 15.15.15.15, Tun_Id 21, Tun_Instance 1
    RSVP Path Info:
      My Address: 10.0.0.13  
      Explicit Route: 10.0.0.14 10.0.0.21 10.1.1.34 15.15.15.15
      Record   Route:   NONE
      Tspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits

P2MP TUNNELS:

P2MP SUB-LSPS:


P4 TE tunnel details.

P_R04#sh mpls traffic-eng tunnels

P2P TUNNELS/LSPs:

..snip..

LSP Tunnel TE TO PE15 - VPWS is signalled, connection is up
  InLabel  : GigabitEthernet1.13, 432
  Prev Hop : 10.0.0.13
  OutLabel : GigabitEthernet1.15, 316
  Next Hop : 10.0.0.21
  RSVP Signalling Info:
       Src 13.13.13.13, Dst 15.15.15.15, Tun_Id 21, Tun_Instance 1
    RSVP Path Info:
      My Address: 10.0.0.22  
      Explicit Route: 10.0.0.21 10.1.1.34 15.15.15.15
      Record   Route:   NONE
      Tspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits

P2MP TUNNELS:

P2MP SUB-LSPS:


P2 TE tunnel details.

P_R03#sh mpls traffic-eng tunnels

P2P TUNNELS/LSPs:

..snip..

LSP Tunnel TE TO PE15 - VPWS is signalled, connection is up
  InLabel  : GigabitEthernet1.15, 316
  Prev Hop : 10.0.0.22
  OutLabel : GigabitEthernet1.28, implicit-null
  Next Hop : 10.1.1.34
  RSVP Signalling Info:
       Src 13.13.13.13, Dst 15.15.15.15, Tun_Id 21, Tun_Instance 1
    RSVP Path Info:
      My Address: 10.1.1.33  
      Explicit Route: 10.1.1.34 15.15.15.15
      Record   Route:   NONE
      Tspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits

P2MP TUNNELS:

P2MP SUB-LSPS:


PE15 TE tunnel details.

PE_R15#sh mpls traffic-eng tunnels

P2P TUNNELS/LSPs:

LSP Tunnel TE TO PE15 - VPWS is signalled, connection is up
  InLabel  : GigabitEthernet1.28, implicit-null
  Prev Hop : 10.1.1.33
  OutLabel :  -
  RSVP Signalling Info:
       Src 13.13.13.13, Dst 15.15.15.15, Tun_Id 21, Tun_Instance 1
    RSVP Path Info:
      My Address: 15.15.15.15  
      Explicit Route:  NONE
      Record   Route:   NONE
      Tspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=10 kbits, burst=1000 bytes, peak rate=10 kbits

P2MP TUNNELS:

P2MP SUB-LSPS:


MPLS Forwarding Trace

The path with TE is via the explicit path (CE12 à PE13 à P1 à P2 à P4 à P3 à PE15 à CE19).
On PE13 there are 2 MPLS forwarding entries since we have 2 TE tunnels.  Tunnel 12 is used for VPLS TE and Tunnel 21 is used for VPWS/AToM TE.  Here it imposes label 116 and forwards to P1.

PE_R13#sh mpls forwarding-table 15.15.15.15 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
1334       Pop Label  15.15.15.15/32   0             Tu12       point2point
        MAC/Encaps=18/22, MRU=9216, Label Stack{214}, via Gi1.25
        000C294A72B4000C29B9AA98810000198847 000D6000
        No output feature configured
    Per-destination load-sharing, slots: 0 2 4 6 8 10 12 14
           Pop Label  15.15.15.15/32   0             Tu21       point2point
        MAC/Encaps=18/22, MRU=9216, Label Stack{116}, via Gi1.24
        000C29DEA41E000C29B9AA98810000188847 00074000
        No output feature configured
    Per-destination load-sharing, slots: 1 3 5 7 9 11 13 15


On P1, swap labels 116 to 232 and forward to P2.

P_R01#sh mpls forwarding-table labels 116 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
116        232        13.13.13.13 21 [1]   \
                                       1480          Gi1.10     10.0.0.2   
        MAC/Encaps=18/22, MRU=9216, Label Stack{232}
        000C294A72B4000C29DEA41E8100000A8847 000E8000
        No output feature configured


On P2, swap labels 232 to 432 and forward to P4.

P_R02#sh mpls forwarding-table labels 232 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
232        432        13.13.13.13 21 [1]   \
                                       1480          Gi1.13     10.0.0.14  
        MAC/Encaps=18/22, MRU=9216, Label Stack{432}
        000C2999C1D7000C294A72B48100000D8847 001B0000
        No output feature configured


On P4, swap labels 432 to 316 and forward to P3.

P_R04#sh mpls forwarding-table labels 432 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
432        316        13.13.13.13 21 [1]   \
                                       1480          Gi1.15     10.0.0.21  
        MAC/Encaps=18/22, MRU=9216, Label Stack{316}
        000C291EB42A000C2999C1D78100000F8847 0013C000
        No output feature configured


On P3, pop label and forward to PE15.

P_R03#sh mpls forwarding-table labels 316 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
316        Pop Label  13.13.13.13 21 [1]   \
                                       1440          Gi1.28     10.1.1.34  
        MAC/Encaps=18/18, MRU=9220, Label Stack{}
        000C2980E80A000C291EB42A8100001C8847
        No output feature configured


On PE15, lookup label of 1538 which identifies the VC.

PE_R15#sh mpls forwarding-table labels 1538 detail
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop   
Label      Label      or Tunnel Id     Switched      interface             
1538       No Label   l2ckt(6)         1180          Gi3        point2point
        MAC/Encaps=0/0, MRU=0, Label Stack{}
        No output feature configured


Issues

The behavior of TE tunnel selection in this lab was identical to the VPLS TE lab.  When the VPWS specific TE tunnel (tunnel 21) was shutdown while another TE tunnel to the same PE was operational, the VC will indiscriminately use that tunnel.

Based on pseudowire configuration below preferring tunnel 21, I figured it would only use that tunnel while the tunnel was operational and use normal MPLS forwarding when non-operational.

interface pseudowire20
 description VPWS TO CUSTOMER_C
 encapsulation mpls
 neighbor 15.15.15.15 20
 preferred-path interface Tunnel21


However we see that when a VPLS specific tunnel (tunnel 12) is up, the VPWS VC can use that tunnel for TE.

PE_R13#sh mpls l2transport vc detail

..snip..

Local interface: Gi3 up, line protocol up, Ethernet:20 up
  Destination address: 15.15.15.15, VC ID: 20, VC status: up
    Output interface: Tu12, imposed label stack {233 1538}
    Preferred path: Tunnel21,  no route
    Default path: active
    Next hop: point2point
  Create time: 1w0d, last status change time: 1w0d
    Last label FSM state change time: 5d16h
  Signaling protocol: LDP, peer 15.15.15.15:0 up
    Targeted Hello: 13.13.13.13(LDP Id) -> 15.15.15.15, LDP is UP
    Graceful restart: not configured and not enabled
    Non stop routing: not configured and not enabled
    Status TLV support (local/remote)   : enabled/supported
      LDP route watch                   : enabled
      Label/status state machine        : established, LruRru
      Last local dataplane   status rcvd: No fault
      Last BFD dataplane     status rcvd: Not sent
      Last BFD peer monitor  status rcvd: No fault
      Last local AC  circuit status rcvd: No fault
      Last local AC  circuit status sent: No fault
      Last local PW i/f circ status rcvd: No fault
      Last local LDP TLV     status sent: No fault
      Last remote LDP TLV    status rcvd: No fault
      Last remote LDP ADJ    status rcvd: No fault
    MPLS VC labels: local 1337, remote 1538
    Group ID: local 8, remote 8
    MTU: local 9216, remote 9216
    Remote interface description: TO CE_R19 - VPWS
  Sequencing: receive disabled, send disabled
  Control Word: On (configured: autosense)
  SSO Descriptor: 15.15.15.15/20, local label: 1337
  Dataplane:
    SSM segment/switch IDs: 20495/12298 (used), PWID: 3
  VC statistics:
    transit packet totals: receive 116, send 115
    transit byte totals:   receive 11474, send 14860
    transit packet drops:  receive 0, seq error 0, send 0



References






No comments:

Post a Comment