Hi Everyone!

The Challenge
People tend to underestimate the important of IGP routing features in modern network. So here is a small challenge scenario for you to practice OSPF traffic engineering. Take a look at the diagram below for information on the topology and link bandwidth. You may assume that every router has a loopback interface for network testing and OSPF router-id selection.


There is a large cloud of media servers behind R4, and the users behind R1 need to use full 300Mbps of bandwidth when downloading files off the servers. The network is running single-area OSPF for IP routing. Ensure you can accomplish the above goal without using MPLS Traffic Engineering or Policy Based Routing. You are allowed to create additional logical interfaces, but the routing protocol, OSPF areas, physical links and their characteristics should remain unchanged. Keep the amount of changes to minimum and do not introduce new IP addresses.

The first person to provide a working solution will receive 100 rack rental tokens from our partner company GradedLabs. Please use your valid e-mail address when posting a comment, so we can locate your INE account.

OK I forgot to rule out the "route-via" option :) Try solving the task without relying on any "policy-based" routing decisions.

The winner is: Antonie Henning ( Ivan Pepelnjak helped finding a logical "loophole" in my scenario by pointing to the "route-via" option available with GRE tunnels and correctly stating there should be 6 end-to-end tunnels to implement proper load-balancing. Hans Verkerk was close in his idea, but used static routing which was slightly against the rules and not as elegant as Antonie's solution. Chris Stos-Gale and Nitzan Tzelniker came with the correct solution as well, but Antonie completed the challenge ahead of them. Thanks to everyone for participating in the challenge, it's been fun!

The Solution:

The problem is that there are three paths with varying minimum bandwidth values (50, 100 and 150, totaling to 300Mbps). Since OSPF does not support unequal-cost load-balancing, it is somewhat challenging to fully use the available bandwidth. There was a lot of ideas posted in the comments, and they mainly fall in three main categories:

1) Modify OSPF costs to create three equal cost paths from R4 to R1. This will result in slow (50Mbps) link oversaturation. Another variation was using three tunnel interfaces between R1/R4 with the same ECMP logic. This results in the same problem.
2) Create six tunnels between R4 and R1 and configure the network so that 3 tunnels go across the fastest path, 2 tunnels take the medium path and one tunnel take the slowest path. This is somewhat similar to MPLS TE. To steer the tunnels you may use either static routes or the "route-via" option (Thanks to Ivan Pepelnjak to pointing me that!!). This solution would work, but violate the "updated" requirement not to use any "policy-based" routing decision, relying purely on OSPF path selection.
3) The solution that I had on mind was splitting the links connecting R4 to it's neighbors into "sub-channels" proportional to the bandwidth assigned to a given path:


The link labels represent OSPF costs. You only need to split the links at R4, as this is the "source" of the traffic flows. Link splitting could be done in two ways: using logical virtual circuits (e.g. FR PVCs or Ethernet VLANs/VCs) or by using IP tunnels. You will only need to run the IP tunnels between R4 and the directly attached routers, disabling OSPF on the physical link and enabling it on the tunnels. Sample output at R4 for R1's prefix:

R4#show ip route
Routing entry for
Known via "ospf 1", distance 110, metric 4, type intra area
Last update from on Tunnel341, 00:46:50 ago
Routing Descriptor Blocks:
*, from, 00:46:50 ago, via Serial0/0/0.45
Route metric is 4, traffic share count is 1, from, 00:46:50 ago, via Tunnel340
Route metric is 4, traffic share count is 1, from, 00:46:50 ago, via Tunnel341
Route metric is 4, traffic share count is 1, from, 00:46:50 ago, via Tunnel142
Route metric is 4, traffic share count is 1, from, 00:46:50 ago, via Tunnel140
Route metric is 4, traffic share count is 1, from, 00:46:50 ago, via Tunnel141
Route metric is 4, traffic share count is 1


I would like to thank everyone who participated in the "challenge", I read all your responses but had to stop commenting when I found the right solution. I hope you enjoyed that little scenario as much as I did. Personally, I have some incline toward the "traditional" traffic engineering solutions based on pure IGP metric manipulation. Even though the solution presented does not scale in the real world, where you may resort to a different option (e.g. end-to-end route-via tunnels), it perfectly illustrates the little hacks you can do to a link-state IGP to break the default "ECMP paradigm".

Petr Lapukhov, 4xCCIE/CCDE
About Petr Lapukhov, 4xCCIE/CCDE

Petr Lapukhov has more than 12 years of experience working with Cisco Systems products. Not only is he the only person in the world to have earned four CCIEs (Routing & Switching, Security, Service Provider, and Voice) in just two years, he also passed every exam the first time. He shares his knowledge and experience with INE’s students through our various products and programs. Petr works with all of the technologies covered within his four CCIE tracks on a daily basis, staying current with any changes in the industry. He has also received his Cisco Certified Design Expert (CCDE) certification, joining a small group of distinguished individuals who have achieved this status. Petr is a contributor to INE’s blog and our INE IEOC Community Forum. You may contact Petr Lapukhov at

Subscribe to INE Blog Updates

New Blog Posts!