MP-BGP (Multiprotocol BGP) is an extensions to BGP protocol. Standard BGP only supports IPv4 unicast address family, 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) is introduced”.
Multi protocol BGP supports IPv4 and IPv6 address families and their unicast and multicast variants.
MPBGP also supports Layer 2 VPN address families. EVPN (Ethernet VPN) is a mechanism which the mac addresses are exchanged between PE devices over 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 setup only for IPv4 BGP address family and later on extra protocol such as L3 VPN address family is added, BGP session goes down. Thats why careful planning is an important to avoid downtime even in a maintenance windows since some networks cannot even tolerate planned failure.
If MP-BGP needs to be setup between two BGP nodes (It can be between Route Reflector and Route Reflector Clients in BGP Route Reflector topologies), 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-as 100
address-family vpnv4 unicast
neighbor x.x.x.x activate
neighbor x.x.x.x send-community extended
In the above example, Router in AS 1000 creates an vpnv4 neighborship with the router x.x.x.x (IP address). Vpnv4 address family is activated and 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 not only used in the Internet but also on the Private WAN networks, and in the Datacenters as well.
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 constrains [RFC4684]
133 IPv4 dissemination of flow specification rules [RFC5575]
134 VPNv4 dissemination of flow specification rules [RFC5575]