Cisco Dynamic MPLS Traffic Engineering Tunnels (Auto-Tunnels)

Configuring static MPLS TE tunnels can be a highly unmanageable task if the number of PE grows. On top of that, you also need to manage FRR backup tunnels, which is only going to add complexity. Take an example of the ISP that has 100 PE routers deployed. For 100 PE routers, if you need a full mesh, you need to manually configure 99 tunnels on each of your sites, clearly, the solution is not very easy to manage. Because the total number of MPLS TE tunnels (excluding FRR tunnels) will be 100*99=9900.In this huge network, the failure rate of just 0.5%(49.5 issues) will keep the network team busy. There was a need to solve this problem and Auto-Tunnel mesh in MPLS TE gives a promising solution for that.

With Auto-Tunnel mesh you don’t need to configure those 9900 tunnels as discussed earlier. There will be just one tunnel template configured on the router with the group identity. The role of the router is to refer to the auto template and find all the neighbors belonging to the same group mentioned in the auto template. Once the PE routers with the same group are identified the router will create dynamic tunnels between the group members to form a full mesh.

In below network assume that I need to install a new site PE2 which needs a full mesh with PE1 and PE2.

Configuration and Verification:

Here is the configuration you need on PE2.

mpls traffic-eng auto-tunnel mesh
interface Auto-Template1
 ip unnumbered Loopback0
 tunnel destination mesh-group 10
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng path-option 10 dynamic
tunnel mpls traffic-eng auto-bw frequency 3600
router ospf 1
 mpls ldp autoconfig
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
 mpls traffic-eng mesh-group 10 Loopback0 area 0
 passive-interface Loopback1
 network area 0
 network area 0

Here note that we are just configuring one template only. This template will ensure that the router will form two dynamic tunnels on PE1 and PE3 respectively. Similarly, the PE1 and PE3 routers will also create tunnels to the PE2 router to have full-mesh connectivity. A similar auto-template is configured on PE1 and PE3, mesh group 10 is what binding all these routers together.

Now let’s see how the dynamic tunnels look like. Below are the dynamic tunnels created on the PE2 router.

PE2#sh ip int bri | exc una
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet1/0      YES NVRAM  up                    up
GigabitEthernet2/0      YES NVRAM  up                    up
Auto-Template1            YES TFTP   up                    up
Loopback0                 YES NVRAM  up                    up
Loopback1             YES NVRAM  up                    up
Tunnel64336               YES TFTP   up                    up
Tunnel64337               YES TFTP   up                    up

PE2#sh mpls traffic-eng tunnels tunnel 64336

Name: PE2_t64336                          (Tunnel64336) Destination:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type dynamic (Basis for Setup, path weight 2)

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

  InLabel  :  -
  OutLabel : GigabitEthernet2/0, 204
  RSVP Signalling Info:
       Src, Dst, Tun_Id 64336, Tun_Instance 7831
    RSVP Path Info:
      My Address:
      Explicit Route:
      Record   Route:   NONE
      Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
    RSVP Resv Info:
      Record   Route:
      Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 2 (TE)
    Explicit Route:
      Time since created: 11 minutes, 8 seconds
      Time since path change: 11 minutes, 7 seconds
      Number of LSP IDs (Tun_Instances) used: 2
    Current LSP:
      Uptime: 11 minutes, 7 seconds

How to put traffic on dynamic tunnel ?

The simplest way to put traffic on the MPLS TE tunnel is to configure a static route pointing to the tunnel interface BUT, not in this case. See the restriction on the Cisco website.

So here we cannot do static methods to define the next hop.
In my example, I have put the loopback interface in OSPF and it seems to be the easiest method to me. See the outputs below.

PE2#sh run int lo 1
Building configuration...

Current configuration : 83 bytes
interface Loopback1
 ip address
 ip ospf 1 area 0

Route entry for the loopback configured on PE1. 

PE2#sh ip route
Routing entry for
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from on Tunnel64336, 00:02:07 ago
  Routing Descriptor Blocks:
  *, from, 00:02:07 ago, via Tunnel64336
      Route metric is 3, traffic share count is 1


Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to, timeout is 2 seconds:
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/26/32 ms


The Auto-tunnel mesh in MPLS TE has given an excellent method for big networks to make the configuration and troubleshooting more manageable. I found this feature very useful, next I am going to try FRR in auto-tunnel. Stay tuned for more content like this.

Leave a Reply