MPLS TE Forwarding Adjacency

MPLS Traffic Engineering (TE) Forwarding Adjacency allows you to advertise a TE tunnel as a link in your IGP.







Why would you want to use this? Let’s take a look at the following scenario:

Mpls Te Forwarding Adjacency Two Paths

Imagine we want to load balance traffic from CE1 to CE2. All interfaces have the same metric. We have two paths, but because the path through PE1 is the shortest path, that’s the only path we will use. You could solve this by configuring two MPLS TE tunnels on CE1 destined for CE2:

Mpls Te Forwarding Adjacency Ce Load Balancing

This would solve the issue. CE1 will have two TE tunnels and can load balance all traffic using both paths. This solution has two problems, though:

  • You need to configure MPLS TE on the CE routers.
  • It doesn’t scale.

The topology above is a small network. Now imagine we have 25 Points of Presence (POP), where each POP has two PE routers and ten CE routers.

25 POPs x 10 CE routers = 250 CE routers.

All CE routers have to communicate with each other, so we need a full mesh of TE tunnels. The full mesh formula looks like this:

number of TE tunnels = N * (N-1) / 2 

Where N is the number of CE routers. This means we’ll have the following:

250 x (250 - 1) / 2 = 31.125 unidirectional TE tunnels. 

TE tunnels are unidirectional, so you’ll need two tunnels if you want to load balance from CE1 to CE2 and vice versa. We’ll have 31.125 x 2 = 62.250 bidirectional TE tunnels. That is a lot of LSPs!

We can solve the scalability issue by moving the TE tunnels up one level in the hierarchy:

Mpls Te Forwarding Adjacency Pe Load Balancing

We now have a TE tunnel between PE1/PE3 and PE2/PE4. The CE routers won’t have to run MPLS TE anymore. This also dramatically reduces the number of required TE tunnels.

With 25 POPs and 50 PE routers, we’ll have the following:

50 x (50 - 1) / 2 = 1.225 undirectional TE tunnels.

We want to load balance in both ways, so we’ll have 1.225 x 2 = 2.450 bidirectional TE tunnels. That is a significant improvement.

However, this introduces another issue…

The problem is that our CE routers don’t know about the TE tunnels on the PE routers. Enabling autoroute doesn’t solve this issue because it’s a local change in the routing table of the PE routers. The PE routers won’t advertise anything to other routers.

This is why we need forwarding adjacency. It allows the PE routers to advertise the TE tunnel as a link in your IGP.

Configuration

Let’s take a look at this in action.







This is the topology we’ll use:

Mpls Te Forwarding Adjacency

All P routers run MPLS TE. We have four TE tunnels:

  • PE1 to PE3
  • PE2 to PE4
  • PE3 to PE1
  • PE4 to PE1

MPLS TE tunnels are unidirectional, but IS-IS or OSPF assume links are bidirectional. Because forwarding adjacency advertises the TE tunnel as a link in your IGP, we need tunnels in both directions. If you only configure unidirectional TE tunnels and enable forwarding adjacency, the IGP won’t use the link.

The CE routers only run IS-IS. Our goal is to load balance traffic from CE1 to CE2 using both paths.

Configurations

Want to take a look for yourself? Here you will find the startup configuration of each device.

CE1

hostname CE1
!
ip cef
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/0
 ip address 192.168.12.1 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/1
 ip address 192.168.13.1 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
router isis
 net 49.0001.0001.0001.0001.0001.00
 is-type level-2-only
 metric-style wide
!
end

CE2

hostname CE2
!
ip cef
!
interface Loopback0
 ip address 7.7.7.7 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/0
 ip address 192.168.57.7 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/1
 ip address 192.168.67.7 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
router isis
 net 49.0007.0007.0007.0007.0007.00
 is-type level-2-only
 metric-style wide
!
end

P1

hostname P1
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/0
 ip address 192.168.34.4 255.255.255.0
 ip router isis 
 mpls traffic-eng tunnels
 mpls ip
 isis circuit-type level-2-only
 ip rsvp bandwidth 1000000
!
interface GigabitEthernet0/1
 ip address 192.168.46.4 255.255.255.0
 ip router isis 
 mpls traffic-eng tunnels
 mpls ip
 isis circuit-type level-2-only
 ip rsvp bandwidth 1000000
!
router isis
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-2
 net 49.0001.0004.0004.0004.0004.00
 is-type level-2-only
 metric-style wide
!
mpls ldp router-id Loopback0 force
!
end

PE1

hostname PE1
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface Tunnel1
 ip unnumbered Loopback0
 isis metric 4 level-2
 tunnel mode mpls traffic-eng
 tunnel destination 5.5.5.5
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 750
 tunnel mpls traffic-eng path-option 1 dynamic
 no routing dynamic
!
interface GigabitEthernet0/0
 ip address 192.168.12.2 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/1
 ip address 192.168.25.2 255.255.255.0
 ip router isis 
 mpls traffic-eng tunnels
 mpls ip
 isis circuit-type level-2-only
 ip rsvp bandwidth 1000000
!
router isis
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-2
 net 49.0001.0002.0002.0002.0002.00
 is-type level-2-only
 metric-style wide
!
mpls ldp router-id Loopback0 force
!
end

PE2

hostname PE2
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface Tunnel1
 ip unnumbered Loopback0
 isis metric 4 level-2
 tunnel mode mpls traffic-eng
 tunnel destination 6.6.6.6
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 750
 tunnel mpls traffic-eng path-option 1 dynamic
 no routing dynamic
!
interface GigabitEthernet0/0
 ip address 192.168.13.3 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/1
 ip address 192.168.34.3 255.255.255.0
 ip router isis 
 mpls traffic-eng tunnels
 mpls ip
 isis circuit-type level-2-only
 ip rsvp bandwidth 1000000
!
router isis
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-2
 net 49.0001.0003.0003.0003.0003.00
 is-type level-2-only
 metric-style wide
!
mpls ldp router-id Loopback0 force
!
end

PE3

hostname PE3
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface Tunnel1
 ip unnumbered Loopback0
 isis metric 4 level-2
 tunnel mode mpls traffic-eng
 tunnel destination 2.2.2.2
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 750
 tunnel mpls traffic-eng path-option 1 dynamic
 no routing dynamic
!
interface GigabitEthernet0/0
 ip address 192.168.57.5 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/1
 ip address 192.168.25.5 255.255.255.0
 ip router isis 
 mpls traffic-eng tunnels
 mpls ip
 isis circuit-type level-2-only
 ip rsvp bandwidth 1000000
!
router isis
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-2
 net 49.0001.0005.0005.0005.0005.00
 is-type level-2-only
 metric-style wide
!
mpls ldp router-id Loopback0 force
!
end

PE4

hostname PE4
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
 ip address 6.6.6.6 255.255.255.255
 ip router isis 
 isis circuit-type level-2-only
!
interface Tunnel1
 ip unnumbered Loopback0
 isis metric 4 level-2
 tunnel mode mpls traffic-eng
 tunnel destination 3.3.3.3
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 750
 tunnel mpls traffic-eng path-option 1 dynamic
 no routing dynamic
!
interface GigabitEthernet0/0
 ip address 192.168.67.6 255.255.255.0
 ip router isis 
 isis circuit-type level-2-only
!
interface GigabitEthernet0/1
 ip address 192.168.46.6 255.255.255.0
 ip router isis 
 mpls traffic-eng tunnels
 mpls ip
 isis circuit-type level-2-only
 ip rsvp bandwidth 1000000
!
router isis
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-2
 net 49.0001.0006.0006.0006.0006.00
 is-type level-2-only
 metric-style wide
!
mpls ldp router-id Loopback0 force
!
end

I use IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M4.

Without Forwarding Adjacency

This is how CE1 can reach CE2’s loopback interface:

CE1#show ip route 7.7.7.7
Routing entry for 7.7.7.7/32
  Known via "isis", distance 115, metric 40, type level-2
  Redistributing via isis
  Last update from 192.168.12.2 on GigabitEthernet0/0, 01:38:06 ago
  Routing Descriptor Blocks:
  * 192.168.12.2, from 7.7.7.7, 01:38:06 ago, via GigabitEthernet0/0
      Route metric is 40, traffic share count is 1

CE1 uses IGP routing, and the shortest path is through PE1. We can verify this with a traceroute:

CE1#traceroute 7.7.7.7 numeric probe 1
Type escape sequence to abort.
Tracing the route to 7.7.7.7
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.12.2 2 msec
  2 192.168.25.5 1 msec
  3 192.168.57.7 3 msec

Enabling autoroute won’t do us any good here because this only changes the routing table of the PE routers. Autoroute doesn’t advertise anything to other routers.

With Forwarding Adjacency

Let’s fix this so that CE1 learns about both TE tunnels. Let’s enable forwarding adjacency on all PE routers:

PE1, PE2, PE3 & PE4
(config)#interface Tunnel 1
(config-if)#tunnel mpls traffic-eng forwarding-adjacency
(config-if)#isis metric 4 level-2

I also set the IS-IS metric of the tunnel interface. We want to ensure the metric is attractive enough for CE1 to use the tunnel interfaces.

Optionally, we can configure a holdtime timer:

PE1(config-if)#tunnel mpls traffic-eng forwarding-adjacency holdtime ?
  <0-4294967295>  Holdtime on MPLS TE Down.

The holdtime is important when the tunnel goes down. When a TE tunnel goes down, the router calculates a new path, and the TE tunnel comes back up. This causes the link to be withdrawn and readvertised in your IGP. The holdtime defines how long the tunnel must be down before telling the IGP it is down.

You can verify forwarding adjacency has been enabled with this command:

PE1#show mpls traffic-eng forwarding-adjacency 
  destination 0005.0005.0005.00, area isis  level-2, has 1 tunnels
    Tunnel1     (load balancing metric 2666666, nexthop 5.5.5.5)
                (flags:  Forward-Adjacency, holdtime 0)
PE2#show mpls traffic-eng forwarding-adjacency 
  destination 0006.0006.0006.00, area isis  level-2, has 1 tunnels
    Tunnel1     (load balancing metric 2666666, nexthop 6.6.6.6)
                (flags:  Forward-Adjacency, holdtime 0)

We can see that the TE tunnels are advertised as links in our IS-IS LSP. Here’s the LSP of PE1:

PE1#show isis database detail PE1.00-00


IS-IS Level-2 LSP PE1.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
PE1.00-00           * 0x000000F0   0x6763                1014/*         0/0/0
  Area Address: 49.0001.0002
  NLPID:        0xCC 
  Router ID:    2.2.2.2
  Hostname: PE1
  Metric: 10         IS-Extended PE1.01
  Metric: 10         IS-Extended PE3.02
  Metric: 4          IS-Extended PE3.00
  IP Address:   2.2.2.2
  Metric: 10         IP 2.2.2.2/32
  Metric: 10         IP 192.168.12.0/24
  Metric: 10         IP 192.168.25.0/24

Above, you see the link with a metric of 4. Here is the LSP of PE2:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 786 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

1585 Sign Ups in the last 30 days

satisfaction-guaranteed
100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!