TE was the main driver and reason for MPLS invention. To utilize bandwidth of unused links, to have flexibility in path selection just like previous WAN switching technologies. To create Virtual circuits on top of IP networks. IP Routing is performed hop by hop and you can not dictate a policy to other hops. TE is configured on Head-End LSR and gets/uses a particular label for a particular path. (Explicit Routing/Source-based routing)
RSVP is used to prepare a path and create a tunnel and label to route packets through the network. Link State routing protocols are required as well to report available bandwidth on each link and also other extra information such as Maximum reserve-able bandwidth and so on. Extensions were made to RSVP (Carry Label, Record Route), OSPF and ISIS (Constrained Metric) to be able to do Traffic Engineering. So once that we want to enable Traffic Engineering on our SP backbone, we have to enable specific technologies in order to run TE, such as:
-
Enable TE (mpls traffic-engineering tunnels) on routers and ports.
-
Adjust reversable bandwidth with “ip rsvp bandwidth” on ports.
-
Tune your link state routing protocol to deliver TE attributes.
-
Create your tunnel on the head-end LSR (uni-directional) and send packets through it.
Example:
In our example, we will configure a TE tunnel from R3 to R4, and from R4 to R3 (reverse direction) to transit our traffic through R3 – R1 – R2 – R4.
Configuration
R3:
mpls traffic-eng tunnels
!
interface Tunnel1000
ip unnumbered Loopback0
tunnel destination 10.10.4.4
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 100
tunnel mpls traffic-eng path-option 5 explicit name myway
!
interface Loopback0
ip address 10.10.3.3 255.255.255.255
!
interface FastEthernet0/0
ip address 10.10.35.3 255.255.255.0
mpls ip
!
interface FastEthernet0/1
ip address 10.10.34.3 255.255.255.0
mpls traffic-eng tunnels
mpls ip
ip rsvp bandwidth 1000
!
interface ATM2/0
ip address 10.10.13.3 255.255.255.0
ip ospf network point-to-point
mpls traffic-eng tunnels
mpls ip
ip rsvp bandwidth 1000
pvc 100/0
protocol ip 10.10.13.1 broadcast
!
!
router ospf 10
network 10.10.0.0 0.0.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
!
ip explicit-path name myway enable
next-address 10.10.1.1
next-address 10.10.12.2
next-address 10.10.24.4
!
R1:
mpls traffic-eng tunnels
!
interface Loopback0
ip address 10.10.1.1 255.255.255.255
!
interface FastEthernet0/0
ip address 10.10.12.1 255.255.255.0
mpls traffic-eng tunnels
mpls ip
ip rsvp bandwidth 1000
!
interface ATM2/0
ip address 10.10.13.1 255.255.255.0
ip ospf network point-to-point
mpls traffic-eng tunnels
mpls ip
ip rsvp bandwidth 1000
pvc 100/0
protocol ip 10.10.13.3 broadcast
!
!
router ospf 10
network 0.0.0.0 255.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
!
R2:
mpls traffic-eng tunnels
!
interface Loopback0
ip address 10.10.2.2 255.255.255.255
!
interface Ethernet0/0
ip address 10.10.12.2 255.255.255.0
mpls label protocol ldp
mpls ip
mpls traffic-eng tunnels
ip rsvp bandwidth 1000
!
interface Serial1/0
ip address 10.10.24.2 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-point
mpls ip
mpls traffic-eng tunnels
frame-relay map ip 10.10.24.2 204
frame-relay map ip 10.10.24.4 204 broadcast
no frame-relay inverse-arp
ip rsvp bandwidth 1000
!
router ospf 10
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
network 0.0.0.0 255.255.255.255 area 0
!
R4:
mpls traffic-eng tunnels
!
interface Loopback0
ip address 10.10.4.4 255.255.255.255
!
interface Tunnel1000
ip unnumbered Loopback0
tunnel destination 10.10.3.3
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng path-option 5 explicit name myway
no routing dynamic
!
interface Ethernet0/0
ip address 10.10.46.4 255.255.255.0
mpls ip
!
interface Ethernet0/1
ip address 10.10.34.4 255.255.255.0
mpls ip
mpls traffic-eng tunnels
ip rsvp bandwidth 1000
!
interface Serial1/0
ip address 10.10.24.4 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-point
mpls ip
mpls traffic-eng tunnels
frame-relay map ip 10.10.24.2 402 broadcast
frame-relay map ip 10.10.24.4 402
no frame-relay inverse-arp
ip rsvp bandwidth 1000
!
router ospf 10
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
log-adjacency-changes
network 10.10.0.0 0.0.255.255 area 0
!
ip explicit-path name myway enable
next-address 10.10.24.2
next-address 10.10.12.1
next-address 10.10.13.3
!
R3#show mpls traffic tunnel
Name: R3_t1000 (Tunnel1000) Destination: 10.10.4.4
Status: Admin: up Oper: up Path: valid Signalling: connected
path option 5, type explicit myway (Basis for Setup, path weight 66)
Config Parameters:
Bandwidth: 100 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 100 bw-based
auto-bw: disabled
InLabel : -
OutLabel : ATM2/0, 26
RSVP Signalling Info:
Src 10.10.3.3, Dst 10.10.4.4, Tun_Id 1000, Tun_Instance 176
RSVP Path Info:
My Address: 10.10.13.3
Explicit Route: 10.10.13.1 10.10.12.1 10.10.12.2 10.10.24.4 10.10.4.4
Record Route: NONE
Tspec: ave rate=100 kbits, burst=1000 bytes, peak rate=100 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=100 kbits, burst=1000 bytes, peak rate=100 kbits
LSP Tunnel R4_t1000 is signalled, connection is up
InLabel : ATM2/0, implicit-null
OutLabel : -
RSVP Signalling Info:
Src 10.10.4.4, Dst 10.10.3.3, Tun_Id 1000, Tun_Instance 131
Verification
Before:
R5#trace 10.10.6.6
Type escape sequence to abort.
Tracing the route to 10.10.6.6
1 10.10.35.3 [MPLS: Label 23 Exp 0]
2 10.10.34.4 [MPLS: Label 17 Exp 0]
3 10.10.46.6
After:
R5#trace 10.10.6.6
Type escape sequence to abort.
Tracing the route to 10.10.6.6
1 10.10.35.3 [MPLS: Labels 23 Exp 0]
2 10.10.13.1 [MPLS: Label 26 Exp 0]
3 10.10.12.2 [MPLS: Label 25 Exp 0]
4 10.10.24.4
5 10.10.46.6
Dynamic Path Configuration:
interface Tunnel1000
ip unnumbered Loopback0
tunnel destination 10.10.4.4
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 100
tunnel mpls traffic-eng path-option 10 dynamic
!
R3(config-if)#do sh mpls traf tu
Name: R3_t1000 (Tunnel1000) Destination: 10.10.4.4
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, type dynamic (Basis for Setup, path weight 1)
Config Parameters:
Bandwidth: 100 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 100 bw-based
auto-bw: disabled
InLabel : -
OutLabel : FastEthernet0/1, implicit-null
RSVP Signalling Info:
Src 10.10.3.3, Dst 10.10.4.4, Tun_Id 1000, Tun_Instance 178
RSVP Path Info:
My Address: 10.10.34.3
Explicit Route: 10.10.34.4 10.10.4.4
Record Route: NONE
R5#trace 10.10.6.6
Type escape sequence to abort.
Tracing the route to 10.10.6.6
1 10.10.35.3 [MPLS: Labels 23 Exp 0]
2 10.10.34.4
3 10.10.46.6
R3(config-if)#int fa 0/1
R3(config-if)#no mpls tra tun
R3#sh mpls tra tun
Name: R3_t1000 (Tunnel1000) Destination: 10.10.4.4
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, type dynamic (Basis for Setup, path weight 66)
Config Parameters:
Bandwidth: 100 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 100 bw-based
auto-bw: disabled
InLabel : -
OutLabel : ATM2/0, 26
RSVP Signalling Info:
Src 10.10.3.3, Dst 10.10.4.4, Tun_Id 1000, Tun_Instance 180
RSVP Path Info:
My Address: 10.10.13.3
Explicit Route: 10.10.13.1 10.10.12.1 10.10.12.2 10.10.24.4
10.10.4.4
Record Route: NONE
Tspec: ave rate=100 kbits, burst=1000 bytes, peak rate=100 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=100 kbits, burst=1000 bytes, peak rate=100 kbits
History:
Tunnel:
Time since created: 2 hours, 42 minutes
Time since path change: 12 seconds
Current LSP:
Uptime: 12 seconds
Prior LSP:
ID: path option 10 [179]
Removal Trigger: tunnel shutdown
LSP Tunnel R4_t1000 is signalled, connection is up
InLabel : ATM2/0, implicit-null
OutLabel : -
RSVP Signalling Info:
Src 10.10.4.4, Dst 10.10.3.3, Tun_Id 1000, Tun_Instance 136