The Role of BGP in MPLS networks

In almost every book you will read about MPLS, the author will state that one of the MPLS benefits is having a BGP free core network; sometimes they explain it sometimes not. However, to really understand this statement I encourage you to imagine removing MPLS from your core network and see what adjustments you need to do in order to get the transit traffic to its destination. Do this  just in your mind's eye please :)

If you are not willing to do this I will try in this post to bring the picture closer to you.

Lets first examine the role of BGP in MPLS networks:

BGP provides great scalability for MPLS networks by playing a big role in separating the control plane from the forwarding plane. Using labels to aggregate forwarding information while maintaining different routing hierarchies allows the network to scale, as different parts of the network will carry only information required to perform its specific function.  For example core routers need to hold label information and internal network information in internal gateway protocols; VPN information will be distributed only to edge routers that have something to do with those VPNs only and not to all edge routers.

BGP is a protocol used to carry external routing information such as customers' routing information or the internet routing information. In a MPLS network that is used to provide internet services and L3 VPN services BGP is typically carrying the internet routing table, customers' IPv4/IPv6 routing information and VPNv4 routing information with VPN labels.

The MPLS tunneling mechanism allows core routers to forward packets using labels only without the need to look up their destinations in IP routing tables. Only edge routers forward packets by looking up their destinations in the routing table. This means that edge routers are the only routers that need to have this information, so they need to run BGP.

To summarize; BGP is used to carry the following information:

  • Internet routing information.
  • Customers' routing information.
  • VPNv4 routing information with VPN labels piggybacked.
  • In some MPLS applications BGP is also used to distribute label information piggybacked in its updates.

Now imagine removing MPLS from the core and see what happens:

  • Core routers is no longer using labels to forward packets and they need to lookup the destination addresses of transit packets, thus you will have one of two options to provide IP/Internet services:
  1. Run BGP in the core with all the complexities involved in this in terms of configuration overhead, full meshing, Route reflector bottlenecks, confederations and network maintenance.
  2. Redistribute BGP into your IGP. I have never seen this in real life scenarios.
  • MPLS VPN labeled packets can no more be forwarded by your core routers. This implies the following historical complexities:
  1. The need to redistribute your customers' VPN routing information to your core routers by again distributing them in BGP and running BGP in the core or redistributing them in your IGP. Just imagine how hard is it maintain up to date filtering policies to filter VPN information from going out to the internet.
  2. The luxury of using overlapping network information is no longer available because all customers' information are currently in the global routing table and we are back to VPN peer to peer model with all implied shortcomings.

I can't imagine having our network without MPLS, most of the services we are providing today won't be available. I also believe that MPLS and BGP are two companions and MPLS is scaling that much because how MPLS engineers are utilizing and using BGP in their networks .

Subscribe to

Check Also

Best AI tools list