Search This Blog

Friday, December 7, 2012

MPLS-TE basic configuration

 This is the topology I’m going to use for MPLS-TE LAB:



So first make sure that all IGP (OSPF), LDP, BGP and MP-BGP are configured, for this post I will use R1 and R9 which belongs to the same customer and running on VRF RED.

Both customer routers are connected to PE using EIGRP and each one of them advertise his own direct link and loopback 1, so traceroute from R9 to R1 should use the shortest path available through the SP backbone which is R9->R7->R6->R3->R1:

R9#traceroute 192.168.10.1

Type escape sequence to abort.
Tracing the route to 192.168.10.1

  1 10.1.79.7 28 msec *  28 msec
  2 10.1.67.6 [MPLS: Labels 19/25 Exp 0] 76 msec 72 msec 36 msec
  3 10.1.13.3 [MPLS: Label 25 Exp 0] 56 msec 28 msec 36 msec
  4 10.1.13.1 56 msec *  68 msec

Note that the IGP is responsible for determining the MPLS labels switch path (LSP).

So now It’s time to start configuring MPLS-TE tunnels.
     1.       Make sure all P and PE routers have loopback interface configured

     2.       Enable MPLS-TE on router on global configuration mode:
Rx(config)#mpls traffic-eng tunnels

     3.        Configure MPLS-TE on IGP, in my case OSPF:
Rx(config)#router ospf 1
Rx(config-router)#mpls traffic-eng router-id loopback 0
Rx(config-router)#mpls traffic-eng area 0

     4.        Configure MPLS-TE on backbone interfaces:
Rx(config-if)#interface fa 2/0
Rx(config-if)#mpls traffic-eng tunnels

     5.       Configure RSVP for each router interface, here in my lab I configured 100Kbps for all  
            links between R3-R4-R5-R7 and 50Kbps for each link between R3-R6-R7:
Rx(config-if)#interface fa 2/0
Rx(config-if)#ip rsvp bandwidth 100

     6.        Configure the MPLS-TE tunnel:
R3:
interface tunnel 37
 ip unnumbered lo0
 tunnel destination 7.7.7.7
 mpls ip
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng bandwidth 100
 tunnel mpls traffic-eng priority 0 0
 tunnel mpls traffic-eng path-option 1 dynamic
!

           Remember that the tunnel interface is unidirectional so we need to configure it both  
           directions, on R3 to R7 and on R7 to R3:

R7:
interface tunnel 37
 ip unnumbered lo0
 tunnel destination 3.3.3.3
 mpls ip
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng bandwidth 100
 tunnel mpls traffic-eng priority 0 0
 tunnel mpls traffic-eng path-option 1 dynamic
!

          Explanation on the tunnel interface:
-          The IP is taken from the loopback interface while the destination is the loopback IP of tailend router.
-          We must activate MPLS on the interface in order to have an LSP
-          The tunnel mode is MPLS-TE
-          The autoroute announce command allow us advertise the tunnel as legitimate interface to the IGP routing table.
-          The bandwidth command constrain the tunnel to choose a path with at least 100Kbps available, earlier on I configured the path R3-R4-R5-R7 with 100Kbps while the path R3-R6-R7 has configured with 50Kbps so the last can’t be the tunnel path due to insufficient bandwidth.
-          The priority command sets the tunnel preference among other tunnels where lower is better.
-          The path-option command sets the preference of the tunnel among other tunnels with dynamic path selection used by the IGP
  
Now let’s look on the configured tunnel:
R3#sh mpls traffic-eng tunnels

Name: R3_t37                              (Tunnel37) Destination: 7.7.7.7
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 1, type dynamic (Basis for Setup, path weight 3)

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


  InLabel  :  -
  OutLabel : FastEthernet2/0, 24
  RSVP Signalling Info:
       Src 3.3.3.3, Dst 7.7.7.7, Tun_Id 37, Tun_Instance 1
    RSVP Path Info:
      My Address: 10.1.34.3  
      Explicit Route: 10.1.34.4 10.1.45.4 10.1.45.5 10.1.57.5
                      10.1.57.7 7.7.7.7
      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: 16 minutes, 50 seconds
      Time since path change: 16 minutes, 40 seconds
      Number of LSP IDs (Tun_Instances) used: 1
    Current LSP:
      Uptime: 16 minutes, 40 seconds

LSP Tunnel R7_t37 is signalled, connection is up
  InLabel  : FastEthernet2/0, implicit-null
  OutLabel :  -
  RSVP Signalling Info:
       Src 7.7.7.7, Dst 3.3.3.3, Tun_Id 37, Tun_Instance 1
    RSVP Path Info:
      My Address: 3.3.3.3  
      Explicit Route:  NONE
      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

We can see the tunnel status, tunnel attributes, out label and also the tunnel path.
Let’s check R9 path to R1:
R9#traceroute 192.168.10.1                                        

Type escape sequence to abort.
Tracing the route to 192.168.10.1

  1 10.1.79.7 44 msec 36 msec 12 msec
  2 10.1.57.5 [MPLS: Labels 23/25 Exp 0] 56 msec 64 msec 100 msec
  3 10.1.45.4 [MPLS: Labels 23/25 Exp 0] 84 msec 56 msec 104 msec
  4 10.1.13.3 [MPLS: Label 25 Exp 0] 56 msec 76 msec 52 msec
  5 10.1.13.1 88 msec *  92 msec

You can see that the path is going through R9->R7->R5->R4->R3->R1 and this is due to the MPLS-TE which I just configured.

No comments:

Post a Comment