04-18-2012 01:07 PM - last edited on 01-11-2022 01:46 PM by Translator
I commonly see BGP configured on a provider (P/PE) router like this (this is a real router snippet just anonymised);
router bgp 12345
neighbour 1.1.1.1 remote-as 12345 ! iBGP peer
address-family ipv4
neighbour 1.1.1.1 remote-as 12345 ! iBGP peer
address-family vpnv4
neighbour 1.1.1.1 remote-as 12345 ! iBGP peer
address-family ipv4 vrf Customer1
neighbour 10.0.0.1 remote-as 67890 ! eBGP peer
What is the need for "address-family ipv4" (without vrf) here, or ever?
What does it provies that "normal" "neighbour" definitions (those directly under "router bgp 12345") and "vpnv4 neighbour" definitions, don't provide?
Solved! Go to Solution.
06-02-2018 01:11 PM
07-27-2018 08:39 AM
Very helpul post.
12-13-2019 06:37 PM - last edited on 01-11-2022 01:36 PM by Translator
Hello team - Resurrecting this old post.
@Peter Paluch you have provided an awesome explanation about "address-family ipv4", but now can you please also help me to understand "address-family vpnv4"?
Kind Regards,
12-15-2019 02:43 PM - last edited on 01-11-2022 01:38 PM by Translator
Hello Alexandro,
Thank you very much for your kind words!
The "VPNv4 address family" is used in MPLS Layer3 VPN deployments. It allows a Provider Edge (PE) router with multiple VRFs to collect all IPv4 routes from all local VRFs en-masse, advertise them to other PE routers, and also learn about VRF routes from these other PE routers and sort them into local VRFs. These routes that are placed into VRFs and can be exchanged with other PEs, along with additional attributes in BGP that allow these routes to be uniquely distinguished and imported into proper VRFs, including MPLS labels, are called "VPNv4 routes" in short for IPv4, and "VPNv6 routes" for IPv6.
As with "address-family ipv4" for plain IPv4 routes, the "address-family vpnv4" section contains a list or neighbors you want to exchange these VPNv4 routes with. Just defining a neighbor at the global BGP level does not allow your router to immediately exchange VPNv4 routes with that neighbor - since that neighbor may not be a PE router at all. If you know that the neighbor is indeed a PE router and if you want to exchange VPNv4 routes with that neighbor, you need to activate it in the "address-family vpnv4" section.
Please feel free to ask further!
Best regards,
Peter
02-22-2020 12:46 PM
Thank you Peter for such a clear and concise explanation of address families.
08-04-2020 09:22 AM
Thanks for the detailed clarification.
08-04-2020 05:38 PM
Thank you Peter!
Great explanation for us to understand :-)
01-11-2022 09:21 AM
Thank you for the clear and concise answer! Well done!
03-04-2024 06:26 PM
wonderful thanks
11-30-2013 05:55 AM - last edited on 01-11-2022 01:42 PM by Translator
This is indeed a great explanation. I just have one small lingerging doubt w.r.t to "ipv4 address family"...
What is the need to explicity define an "ipv4 address family" (automatic or otherwise)?
for ex ...If you are adding a static route, you just meniton "ip route"...
you do not mention "ipv4 route"....
meaning ipv4 is ominipresent...in the same way...there MUST NOT be any "ipv4 address families"...at ALL...
whatever I define directly under router bgp process MUST BE TAKEN AS "ipv4 address family" (no need to auto add this)...
Meaning "ipv4 address family" pre-exists....
So my quesiton is...I disable "bgp default ipv4-unicast" and WILL NOT MANUALLY add the "ipv4 address family"..it must still work on the global level...please clarify...
12-01-2013 10:07 AM - last edited on 01-11-2022 01:45 PM by Translator
Hi Naveen,
Thank you for joining.
What is the need to explicity define an ipv4 address family (automatic or otherwise)?
for ex ...If you are adding a static route, you just meniton ip route...
you do not mention ipv4 route....
Regarding the non-BGP-related commands such as "ip route, ip address, ip summary-address, ip access-group, ip proxy-arp, ip split-horizon" etc., the use of the ip keyword is purely historical. All these commands have been supported in IOS long before IPv6 existed, so there was no reason to force the "v4" into the ip keyword, as the IPv4 was the only IP version in use. And today, no one is going to even suggest to change the syntax of all existing ip commands to ipv4 - it would definitely case backward compatibility issues (you would still have to support the ip keyword to process old configurations gracefully), and it would definitely alienate many users who are accustomed to use ip for IPv4, and ipv6 for IPv6.
Meaning ipv4 address family pre-exists....
With the non-BGP ip commands, it is not about the "pre-existence of the IPv4 address family", rather, it is about accepting the very simple fact that the ip commands have been created and added to IOS and widely used before IPv6 came to being.
The "pre-existence of the IPv4 address family" as discussed here is related exclusively to BGP configuration.
So my quesiton is...I disable "bgp default ipv4-unicast" and WILL NOT MANUALLY add the "ipv4 address family"..it must still work on the global level ...please clarify...
I believe you are confusing the BGP configuration with use of IPv4/IPv6 in global configuration. All discussion about the address families in this thread were relevant and related only to BGP configuration in particular. Other parts of IOS configuration are not affected by it.
I am not sure if this actually clarifies your question but I needed to make sure you understand this first. If you still have doubts please feel welcome to ask further!
Best regards,
Peter
02-13-2014 03:00 AM
I happened to run across this post and couldn't be more thankful to Peter for such an amazing explanation!
06-15-2015 03:21 PM
Wow what a great explanation! Thank you sir!
06-27-2015 12:19 PM
Thank you Peter:)
09-19-2015 04:11 PM
Great answer!
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide