Home / Routing / BGP / The Role of BGP in MPLS networks

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 www.networkers-online.com


  1. fantastic ,
    i have just completed reading ebgp .no mpls at all but still i am able to understand meaning of BGP free core network

  2. I am assuming that you are writing this from the view of a service provider – ?

    If I were an end customer with 100 remote offices _I_ would never think of running BGP on my “CE” routers. To me the MPLS could is just an invisible layer 2-like invisible string between sites.

    I see so many folks write about MPLS networks when in reality they are the CE and could not care less what the SP is using. But it makes it sound exotic …

  3. I am talking from the service provider perspective in most of the posts. But regarding your VPN what service are you using L2 or L3?

  4. Thank you,
    that is one of the best explainations of WHY BGP is used in a SP network i have ever read .

    well done.

  5. Thanks Stephen, glad you liked it.

  6. So, we seem to be runing BGP on some of our edge routers and on our core routers. However, I see that on some of the edge routers we do not have BGP – what would be the point of running MPLS without BGP on the edge routers?

  7. chris stand –

    Hey Chris,

    We have MPLS and I’ve always wondered why we run BGP also. Every single 1 of our remote branches also run BGP, but 1 doesn’t and that 1 branch has a default static route out to the internet and works fine just like all the other branches. Even in reading this article, I don’t understand why we run BGP on our MPLS service when it’s the same thing…or at least feels the same.