Multiprotocol BGP (MP-BGP) Configuration

This topic is to discuss the following lesson:

Hi Rene,
Can you please explain why do neighbors need to be activated ? In the old syntax ( without address families) these was no “activate”. After declaring the neighbors they were activated by default ? But in the new format they are “born” not activated so we need to activate them ?
Thank you.

Hi Adrian,

In the “global” configuration mode of BGP we configure IPv4 unicast which is activated by default. All the other stuff like IPv6 unicast/multicast, IPv4 multicast and VPN routes are disabled by default so that’s why we need to activate them. I guess it makes sense, BGP is/was mostly used for IPv4 unicast and not everyone uses all the other address families.


Thank you!

Rene, i have a question, on your 1st config on IPv6 adjacency & IPv6 prefixes, you said that
you disabled the ipv4 address family, so you disabled that by typing the command “no neighbor activate” under the address family IPv4?
so by default, the IPv4 was activated?
what will happened if you only typed…

R1(config)#router bgp 1
R1(config-router)#neighbor 2001:db8:0:12::2 remote-as 2
R1(config-router)#address-family ipv6
R1(config-router-af)#neighbor 2001:db8:0:12::2 activate
R1(config-router-af)#network 2001:db8::1/128

this is the 1st time i encounter this command, especially the address family, what does it really do? why do we need to enable or disable this one? as per your explanation, it only specifies “address family”. How the address family affects the bgp?

thanks! sorry for many questions.

Hi John,

MP-BGP supports IPv4 unicast, IPv4 multicast, IPv6 unicast, IPv6 multicast and VPN routes. For each of those, it has an address family.

By default only the IPv4 unicast address family is activated, the rest is inactive. In the first example I disabled IPv4 unicast since we were only going to do IPv6 unicast.


1 Like

Hi. Great post. A couple questions.

  1. For the show command validations I noticed you were using the “show ip bgp ipv6 unicast”, is the latest approach to drop the 'ip" and just issue “show bgp ipv6 unicast”? From what I could see there is no real difference in the options that one can select for this, but I did try to do a soft BGP clear and couldn’t find the same comparable options (as “clear ip bgp ipv6 unicast” didn’t present the option but “clear bgp ipv6 unicast” did)?

  2. So in the two examples above for the first one the MP-BGP different ASNs became neighbors by using IPv6 and then advertising IPv6 prefixes. In the second example the neighbor relationship was established using IPv4 and then sent prefixes via IPv6. I went ahead and did a simple test within my lab and was also able to establish both a IPv6 and IPv4 neighbor relationship below - I assume that would be the method required if wanted to advertise both IPv4 and IPv6 prefixes. Just looking for a sanity check.

    router bgp 200
    bgp log-neighbor-changes
    neighbor remote-as 100
    neighbor 2001:10:36:36::6 remote-as 100
    address-family ipv4
    network mask
    neighbor activate
    no neighbor 2001:10:36:36::6 activate
    address-family ipv6
    network 2001:10:33:33::/64
    neighbor 2001:10:36:36::6 activate

1 Like

Sorry - in some further testing I guess what I have above appears to be technically possible, but the preferred option would be to just enable the “neighbor 2001:10:36:36::6 activate” under the address-family ipv4 configuration as compared to establishing the neighbor relationship for IPv4 via IPv4 addresses and either use IPv4 or IPv6 and not both to establish the neighbor relationship and then from there decide what type of prefixes to advertise (ie IPv4 unicast, IPv6 unicast, etc…)?

Hi Thomas,

  1. I think yes, it makes more sense to use “show bgp ipv6” than “show ip bgp ipv6” somehow since the “ip” parameter normally refers to IPv4. On the other hand, you could establish a BGP peering over IPv4 and exchange IPv6 prefixes…it’s a bit confusing :slight_smile:

  2. The cleanest solution is probably to use two different address families, one for IPv4 and another for IPv6 and then do a peering for each. Something like this:

router bgp 1
neighbor remote-as 2
neighbor 2001:DB8:0:12::2 remote-as 2

address-family ipv4
neighbor activate
no neighbor 2001:DB8:0:12::2 activate

address-family ipv6
neighbor 2001:DB8:0:12::2 activate

This gives you a nice separation between the two protocols and it’s probably also easier if you add route-maps or use any other filtering method, you can use one route-map for IPv4 and another for IPv6.


Thank you Rene for the detailed reply. Just so I fully understand all the options, I can technically have the following:

  1. MP-BGP arrangement with IPv4 neighbor establishment and then advertisement of both IPv4 and IPv6 prefixes
  2. MP-BGP arrangement with IPv6 neighbor establishment and then advertisement of both IPv4 and IPv6 prefixes
  3. MP-BGP arrangement with both IPv4 and IPv6 neighbor establishment and then advertisement of IPv4 prefixes within IPv4 address family and IPv6 prefixes within IPv6 address family

Please confirm when you have a chance. Many thanks.

Hi Thomas,

That’s right. Even though 1+2 are possible, I’d stick to option 3 :slight_smile:


1 Like

i simulated the MP-BGP with IPv6 adjacency & IPv6 prefixes
i followed all the command and the next hop was fixed but it says unaccessible.
any help?

i tried to advertise the ipv6 address of the connecting interface using network command under address-family ipv6, still inaccessible

i solved it now, but it’s weird. i followed all your commands except the route-map and the application of route-map in BGP.
R1 IPv6 address = ABCD::1/64
R2 IPv6 address = ABCD::2/64
first is on route-map, on R1 configuration, instead of issuing “set ipv6 next-hop ABCD::2/64”, i inputted “set ipv6 next-hop ABCD::1/64”
the same on R2, instead of using the next hop of R1, i used the next hop R2 itself.
Then on applying the route-map to neighbor bgp, i use “out” instead of “in”
and after clearing the BGP sessions, it works.

i find it weird why this way works.

1 Like

Hello Rene

A customer of us and me are interested into the RSP720-3CXl-GE / 7600 series.

When i research inside the IOS navigator i find : IPv6 Multicast: Address Family Support for Multiprotocol BGP

Is this what i need when we talk about MBGP ?
I cannot imagen that the 7600 series cannot suport MBGP.

Can you advise ?


Hi Tim,

This shouldn’t be a problem, it’s hard to find a Cisco router nowadays that doesn’t support MP-BGP.

IPv6 multicast is only one of the address families that are supported nowadays:

R1(config)#router bgp 1
R1(config-router)#address-family ?
  ipv4      Address family
  ipv6      Address family
  l2vpn     Address family
  nsap      Address family
  rtfilter  Address family
  vpnv4     Address family
  vpnv6     Address family


Great thanks for the reply , this confirms my feeling …

Have a good day.

Hi Rene,

Can you tell an example for using Address-Family for a multicast ? Do you mean the video streaming traffic or what ?



Hi Ahmad,

I will add an example for this later. MP-BGP allows us to use multicast across ISP network boundaries.


Hi Rene,

i ve tested the mix config ipv6/ipv4
When working with same AS number the ‘route-map in’ works perfectly well

When working with different AS number the ‘route-map in’ doesn’t work.
The next hop is installed in the routing table only after replacing the ip and apply a route-map out

It seems the route-map in works only when we use same AS
so the question is why ?