Free sample content / demo version
Course Introduction
Interior Gateway Protocol
Border Gateway Protocol
MPLS LDP
MPLS L3VPN
MPLS Traffic Engineering
Segment Routing
MPLS L2VPN
MPLS QoS
Security and Services
Automation and Assurance
Final Lab1
Final Lab 2

Demo – MPLS TE Class-Based Tunnel Selection (CBTS)

Diagram:

This image has an empty alt attribute; its file name is Screen-Shot-2021-11-27-at-22.03.41.png

(For this lab, ensure you need to load the initial configuration named “lab67-initial” for all the devices before going through the task lists. The final configuration/solution for this lab (lab67-final) can also be loaded to the devices. For more information about accessing our labs and/or loading the configuration to the devices, please refer to the lab instructions section in the course introduction chapter.)

Tasks:

  • Configure CE device R7 to classify and mark IP precedence values as below, use access-list.
    • 7.7.7.7 – IPP4
    • 77.77.77.77 – IPP5
  • Configure MPLS TE tunnels Tunnel 213 and 132 on R2 to R13. Tunnel 213 should use dynamic path option while Tunnel 132 should choose route via explicit-path R1-R11-R3-R13. You can use auto-route to steer VPN traffic down to tunnel interface.
  • R2 should manage to forwarded traffic with IPP5 QoS markings via Tunnel132, Customer traffic with other QoS marking can be forwarded via Tunnel213.
  • Once completed, the traceroute operation from R7 with IPP4 and IPP5 markings should choose different paths as determined by MPLS TE tunnel signaling.

Technology Overview:

CBTS (Class Based Tunnel Selection) allows service provider to have customer traffic routed dynamically over to the MPLS TE tunnel based on the defined experimental values as part of the QoS deployment. When the customer packets come at the PE router, that is classified and marked with the necessary EXP values and they would be steered via tunnel interface where the match is found. In order for the CBTS to work, the tunnel destination for both the member tunnels and the master tunnel should be the same. The master tunnel is defined and the regular tunnel with the experimental values are configured as a member of the master tunnel, called exp-bundle.

Detailed Explanation:

Here we have a requirement to classify traffic based on the ACL entry created on the R7 and mark with IP precedence values 4 and R5 for the loopback prefixes as given in the task. The MQC can be used to accomplish this activity as we are familiar with this from the earlier lab demonstration. Now, the idea is to steer customer traffic to the same destination via different available tunnel interfaces to discriminate them based on the priority level. In order to define traffic with EXP 5 to route via Tunnel 132, we can define accurate value under the tunnel interface. However, rest of the QoS markings can be matched by defining default keyword.

Configuration:

R7:

enable
configure ter
access-list 7 permit 7.7.7.7
access-list 77 permit 77.77.77.77
!
class-map match-all ipp5
match access-group 77
class-map match-all ipp4
match access-group 7
!
policy-map pmap
class ipp4
set ip precedence 4
class ipp5
set ip precedence 5
!
interface GigabitEthernet6
service-policy output pmap
end


R2:

enable
configure ter

interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 13.13.13.13
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng exp-bundle master
tunnel mpls traffic-eng exp-bundle member Tunnel213
tunnel mpls traffic-eng exp-bundle member Tunnel132
!
interface Tunnel132
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 13.13.13.13
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 20000
tunnel mpls traffic-eng path-option 1 explicit name to-r13-exp5
tunnel mpls traffic-eng exp 5
!
interface Tunnel213
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 13.13.13.13
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 20000
tunnel mpls traffic-eng path-option 1 dynamic
tunnel mpls traffic-eng exp default
!
ip explicit-path name to-r13-exp5 enable
index 1 next-address 1.1.1.1
index 2 next-address 4.4.4.4
index 3 next-address 3.3.3.3
index 4 next-address 13.13.13.13
end

Verification:

Considering that the underlying configuration required for the establishment of MPLS TE tunnel, we are only required to create tunnels and steer traffic based on the QoS marking, there are three tunnel interfaces, the first being the master followed by the member tunnels.

R7#sh policy-map inter gi6
GigabitEthernet6

Service-policy output: pmap

Class-map: ipp4 (match-all)
87 packets, 4554 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group 7
QoS Set
ip precedence 4
Marker statistics: Disabled

Class-map: ipp5 (match-all)
18 packets, 756 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: access-group 77
QoS Set
ip precedence 5
Marker statistics: Disabled

Class-map: class-default (match-any)
28 packets, 1778 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any

R2#sh mpls traffic-eng exp

Destination: 13.13.13.13

Master: Tunnel0 Status: up

Members Status Conf Exp Actual Exp
Tunnel213 up (Active) Default 0 1 2 3 4 6 7
Tunnel132 up (Active) 5 5


(D) : Destination is different
(NE): Exp values not configured on tunnel

This is how the marking of experimental values defined under the respective tunnels. The default refers to the making values except defined for the other tunnel under the same master tunnel.

Let’s observe tunnels we have created for this particular task.

R2#sh mpls traffic-eng tunnels 

P2P TUNNELS/LSPs:

Name: R2_t0 (Tunnel0) Destination: 13.13.13.13
Status: Master
Admin: up Oper: up Signalling: N/A

Member Tunnels: Member Autoroute: Inactive

Tunnel213: Config Exp: default
Tunnel132: Config Exp: 5

Path-selection Tiebreaker:
Global: not set Tunnel Specific: not set Effective: min-fill (default)
Hop Limit: disabled
Cost Limit: disabled
Path-invalidation timeout: 10000 msec (default), Action: Tear
Reason for the tunnel being down: No path option is configured

History:
Tunnel:
Time since created: 2 hours, 23 minutes
Number of LSP IDs (Tun_Instances) used: 0

The first tunnel that is a master for two member tunnels. It has no signaling status since this is responsible to bundle two member tunnels as shown below. Let’s see the member tunnel status.

Name: R2_t132                             (Tunnel132) Destination: 13.13.13.13
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type explicit to-r13-exp5 (Basis for Setup, path weight 4)

Config Parameters:
Bandwidth: 20000 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
Path-selection Tiebreaker:
Global: not set Tunnel Specific: not set Effective: min-fill (default)
Hop Limit: disabled [ignore: Explicit Path Option with all Strict Hops]
Cost Limit: disabled
Path-invalidation timeout: 10000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 20000 [0] bw-based
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: explicit path option 1 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
Node Hop Count: 4

InLabel : -
OutLabel : GigabitEthernet1, 116
Next Hop : 10.1.12.1
RSVP Signalling Info:
Src 2.2.2.2, Dst 13.13.13.13, Tun_Id 132, Tun_Instance 48
RSVP Path Info:
My Address: 10.1.12.2
Explicit Route: 10.1.12.1 10.1.14.1 10.1.14.4 10.1.34.4
10.1.34.3 10.1.133.3 10.1.133.13 13.13.13.13
Record Route: NONE
Tspec: ave rate=20000 kbits, burst=1000 bytes, peak rate=20000 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=20000 kbits, burst=1000 bytes, peak rate=20000 kbits

History:
Tunnel:
Time since created: 3 hours, 31 minutes
Time since path change: 1 hours, 26 minutes
Number of LSP IDs (Tun_Instances) used: 48
Current LSP: [ID: 48]
Uptime: 1 hours, 26 minutes
Prior LSP: [ID: 47]
ID: path option unknown
Removal Trigger: path error

Above output indicates that this tunnel has been following path defined within explicit-path option. There is no fallback path defined for this tunnel.

Name: R2_t213                             (Tunnel213) Destination: 13.13.13.13
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type dynamic (Basis for Setup, path weight 2)

Config Parameters:
Bandwidth: 20000 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
Path-selection Tiebreaker:
Global: not set Tunnel Specific: not set Effective: min-fill (default)
Hop Limit: disabled
Cost Limit: disabled
Path-invalidation timeout: 10000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 20000 [0] bw-based
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: dynamic path option 1 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
Node Hop Count: 2

InLabel : -
OutLabel : GigabitEthernet4, 4004
Next Hop : 10.1.24.4
RSVP Signalling Info:
Src 2.2.2.2, Dst 13.13.13.13, Tun_Id 213, Tun_Instance 54
RSVP Path Info:
My Address: 10.1.24.2
Explicit Route: 10.1.24.4 10.1.134.4 10.1.134.13 13.13.13.13
Record Route: NONE
Tspec: ave rate=20000 kbits, burst=1000 bytes, peak rate=20000 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=20000 kbits, burst=1000 bytes, peak rate=20000 kbits

History:
Tunnel:
Time since created: 3 hours, 33 minutes
Time since path change: 1 hours, 26 minutes
Number of LSP IDs (Tun_Instances) used: 54
Current LSP: [ID: 54]
Uptime: 1 hours, 26 minutes
Prior LSP: [ID: 53]
ID: path option unknown
Removal Trigger: path error

The second member tunnel interface has dynamic path option configured which means that the regular IGP path defined by the OSPF would be followed to route the traffic down this tunnel.

R7#traceroute 8.8.8.8 sou l0
Type escape sequence to abort.
Tracing the route to 8.8.8.8
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.27.2 2 msec 1 msec 1 msec
2 10.1.24.4 [MPLS: Labels 4004/24014 Exp 4] 11 msec 3 msec 1 msec
3 10.1.134.13 [MPLS: Label 24014 Exp 4] 206 msec 10 msec 4 msec
4 10.1.138.8 2 msec * 2 msec

R7#traceroute 8.8.8.8 sou l77
Type escape sequence to abort.
Tracing the route to 8.8.8.8
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.27.2 1 msec 1 msec 1 msec
2 10.1.12.1 [MPLS: Labels 116/24014 Exp 5] 3 msec 2 msec 2 msec
3 10.1.14.4 [MPLS: Labels 4001/24014 Exp 5] 3 msec 2 msec 2 msec
4 10.1.34.3 [MPLS: Labels 25/24014 Exp 5] 2 msec 2 msec 2 msec
5 10.1.133.13 [MPLS: Label 24014 Exp 5] 8 msec 15 msec 6 msec
6 10.1.138.8 3 msec * 3 msec

The above trace reports indicate that the packets destined for 8.8.8.8 are following through the different tunnel interfaces as we have defined tunnels with the experimental values that are mapped with the IP precedence values on the PE router.