I've been working on some multicast protocols and I came across MBGP and I want to know why is it needed. The way everyone uses MBGP is that they set up PIM in every routers, and for the inter domain protocol, they use MBGP. I don't understand why can'g BGP forward these packets. It's not like multicast packets are different in forwarding than unicast. BGP is capable of forwarding every other packet, why not multicast? Why must we use MBGP? Thanks

  • 1
    BGP never forwards packets. It exchanges routing information.
    – Teun Vink
    Jul 6, 2016 at 9:59
  • 1
    "It's not like multicast packets are different in forwarding than unicast." Multicast routing is very different than IP routing, and it needs to be separately enabled and configured.
    – Ron Maupin
    Jul 6, 2016 at 17:25
  • My opinion: There is so much to learn/know, don't get bogged down with BGP unless you find yourself working for a telco/carrier. Jul 6, 2016 at 19:16
  • @RonRoyston as a matter of fact, it is about the carrier. it's one of my tasks.
    – ipinlnd
    Jul 7, 2016 at 3:28
  • @TeunVink even better! So it should easily be able to do it for multicast too!
    – ipinlnd
    Jul 7, 2016 at 3:32

2 Answers 2


MBGP or Multiprotocol BGP extensions

The first BGP specification was published in 1989, well before IPv6 was created and only shortly after multicast was added to IPv4. Even BGP-4 doesn’t support IPv6, multicast or VPNs. Until 1998, that is, when RFC 2283 introduced the multiprotocol extensions. These allow BGP to handle routing information for arbitrary "address families". In practice, an address family is associated with a specific network layer protocol, such as IPv4, IPv6, IPX or AppleTalk. There are also Address Family Identifier (AFI) numbers for tunneling mechanisms such as VPNs and MPLS. A Subsequent Address Family Identifier (SAFI) further specifies unicast versus multicast or more tunneling options.

When routers make a BGP connection, they exchange the AFIs and SAFIs they’re prepared to exchange routing information for. If the two routers agree on those, they’ll send UPDATE messages containing the regular path attributes with the prefixes (also known as Network Layer Reachability Information, NLRI) and next hops encoded in an MP_REACH_NLRI attribute. Withdrawn routes are encoded in an MP_UNREACH_NLRI attribute.

  • Thanks for the information. I don't have problem with VPN or IPv6. We already have those. My only problem is multicast. I don't understand the need for MBGP. Why can't BGP do it itself?
    – ipinlnd
    Jul 7, 2016 at 3:30
  • 1
    BGP itself is carrying the following information that is specific for IPv4 only: Next hop, Aggregator and NLRI. But don't have such capabilities to associate a network layer protocol with next_hop or with NLRI. For this purpose AFI and SAFI fields are implemented in extension of BGP – MBGP. So in case you want to route different than unicast IPv4 traffic via BGP then you need to use MBGP. The routes associated with multicast routing are used by the Protocol Independent Multicast (PIM) feature to build data distribution trees.
    – Noction
    Jul 7, 2016 at 18:27
  • So in consequence, to exchange multicast routing information, PIM should be associated using set of AFI and SAFI values in MBGP updates which cannot be done using standard BGP updates.
    – Noction
    Jul 7, 2016 at 18:27

One of the most important thing for Multicast protocol is RPF (Reverse Path Forwarding) - this is the feature which would check and make sure that for a coming multicast packet (sent by a multicast source) there is only one route pointing back to the source and this is route is the best, which means that if a router receives a multicast packet from the same source via different interfaces then this router must use only one interface to accept the traffic from, otherwise the multicast packet received from one interface could be forwarded through another and vice versa, thus creating potential loops and increase of bandwidth usage.

Taking into consideration RPF feature, the standard BGP protocol doesn’t have the ability to perform RPF checking due to its limitations, while MBGP is an extended protocol which besides previously mentioned AFI and SAFI values has the same standard routing table as BGP: – Unicast RIB (U-RIB) • This RIB contains the unicast prefixes that was previously used by BGP for IPv4 unicast traffic forwarding.

And an additional routing table: – Multicast RIB (M-RIB) • This new RIB contains the same type of unicast prefixes contained in the URIB except that the prefixes stored in the M-RIB are used to RPF check arriving multicast traffic.

Therefore this new Multicast RIB can make the multicast protocol working, while standard BGP can’t.

We hope this does make sense and has been useful.

  • Thanks. I have a question about this. the loop only happens in PIM-DM, right?
    – ipinlnd
    Jul 8, 2016 at 9:36
  • 1
    The loops are avoided using MBGP on early multicast routing protocols (PIM-DM DVMRP) Unlike above protocols, PIM-SM explicitly constructs a tree from each sender to the receivers in the multicast group.
    – Noction
    Jul 11, 2016 at 6:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.