MP-BGP (Multiprotocol BGP) is an extension of the BGP protocol. Standard BGP only supports IPv4 unicast address families, whereas MP-BGP supports more than 15 different BGP address families.
RFC4760 defines the extensions for BGP protocol and states that ” in order to bring extra functionality to BGP protocol, new BGP AFI (Address Family Identifier) and BGP SAFI (Sub Address Family Identifier) are introduced”.
Multiprotocol BGP supports IPv4 and IPv6 address families and their unicast and multicast variants.
MP-BGP also supports Layer 2 VPN address families. EVPN (Ethernet VPN) is a mechanism by which the mac addresses are exchanged between PE devices over the BGP control plane.
All these address families are exchanged between BGP neighbors over a single BGP session in parallel.
BGP neighbors exchange their capability in the BGP open message. If BGP neighborship is set up only for IPv4 BGP address family and later on an extra protocol such as L3 VPN address family is added, the BGP session goes down. That's why careful planning is important to avoid downtime even in maintenance windows since some networks cannot even tolerate planned failure.
If MP-BGP needs to be set up between two BGP nodes (It can be between Route Reflector and Route Reflector Clients in BGP Route Reflector topologies, a new address family needs to be explicitly activated.
Here is an example configuration on Cisco IOS device to enable MP-BGP (Multiprotocol BGP)
router bgp 1000
no bgp default ipv4-unicast
neighbor x.x.x.x remote-as100
address-family vpnv4 unicast
neighbor x.x.x.x activate
neighbor x.x.x.x send-community extended
In the above example, the Router in AS 1000 creates a vpnv4 neighborship with the router x.x.x.x (IP address). Vpnv4 address family is activated and the send-community extended configuration knob is used to send RT (Route Target) community values between the MP-BGP neighbors.
As I mentioned in the beginning, in order to enable MP BGP, new AFI and SAFI are defined by IANA. Below are the SAFI values which are assigned by IANA. As you can see BGP really supports Multi-Protocol thus today BGP is not only used on the Internet but also on the Private WAN networks, and in the Datacenters as well.
There are many protocols, and technologies that are using BGP as an Underlay, and understanding MP BGP and its capabilities will provide you a road map for learning new technologies.
I strongly recommend checking the BGP Course for those who want to learn more about this topic.
MP-BGP RFCs
BGP SAFI VALUE – DESCRIPTION
- 1 Network Layer Reachability Information used for unicast forwarding [RFC4760]
- 2 Network Layer Reachability Information used for multicast forwarding [RFC4760]
- 4 Network Layer Reachability Information (NLRI) with MPLS Labels [RFC3107]
- 5 MCAST-VPN [RFC6514]
- 6 Network Layer Reachability Information used for Dynamic Placement of Multi-Segment Pseudowires [RFC7267]
- 7 Encapsulation SAFI [RFC5512]
- 8 MCAST-VPLS [RFC7117]
- 65 Virtual Private LAN Service (VPLS) [RFC4761][RFC6074]
- 66 BGP MDT SAFI [RFC6037]
- 67 BGP 4over6 SAFI [RFC5747]
- 69 Layer-1 VPN auto-discovery information [RFC5195]
- 70 BGP EVPNs [RFC7432]
- 71 BGP-LS [RFC7752]
- 72 BGP-LS-VPN [RFC7752]
- 128 MPLS-labeled VPN address [RFC4364]
- 129 Multicast for BGP/MPLS IP Virtual Private Networks (VPNs) [RFC6513][RFC6514]
- 132 Route Target constraints [RFC4684]
- 133 IPv4 dissemination of flow specification rules [RFC5575]
- 134 VPNv4 dissemination of flow specification rules [RFC5575]
To have a great understanding of SP Networks, you can check my newly published Service Provider Networks Design and Perspective Book. It covers the SP network Technologies and also explains in detail a factious SP network.