Skip to main content

Why We Need to Explicitly Activate the address-family ipv4

Separation of Address Families in BGP:

    • In modern versions of Cisco IOS, BGP is designed to support multiple address families beyond just IPv4. BGP can handle:
      • IPv4 unicast (standard routing for IPv4 addresses)
      • IPv6 unicast (for IPv6 routing)
      • VPNv4 and VPNv6 (for MPLS Layer 3 VPNs)
      • Multicast for IPv4 or IPv6
      • And other extensions like EVPN or MPLS VPN.
    • The address-family command is used to tell BGP which specific type of routes you want to activate. By default, no address-family is active, so you need to manually specify which ones BGP should work with.
  1. Default BGP Behavior:

    • In older Cisco IOS versions, BGP only supported IPv4 unicast by default, so this wasn't an issue. However, newer versions of IOS require explicit activation of the IPv4 unicast address family to avoid ambiguity and to support flexibility for other address families.
    • Without the address-family ipv4 activation, even though you configure neighbors in BGP, no routes would be exchanged because BGP doesn’t know which address family (e.g., IPv4, IPv6, VPNv4) it should advertise.
  2. BGP Flexibility:

    • Activating the address-family ipv4 ensures that BGP is processing and exchanging IPv4 unicast routes between neighbors. This structure allows you to later extend your configuration for:
      • IPv6 routing (by activating the address-family ipv6).
      • MPLS VPN routing (by activating address-family vpnv4).

What Happens If You Don’t Activate the Address Family?

  • Without explicitly activating address-family ipv4 unicast, BGP sessions may come up (you’ll see the BGP neighbor state as Established), but no IPv4 routes will be exchanged between the routers.
  • This is because the BGP process hasn’t been told to handle and exchange IPv4 routes. By activating the IPv4 address family, you are instructing BGP to advertise and accept IPv4 routes from the neighbors.

Conclusion:

Even though you're using IPv4 in the network, activating the address-family ipv4 command is essential in modern Cisco IOS versions to ensure BGP knows to process and advertise IPv4 unicast routes between peers. This flexibility also allows for easy extension of your BGP configuration to support other address families like IPv6 or VPNv4 in the future.

Comments

Popular posts from this blog

How to import Putty Saved Connections to mRemoteNG

Just started using mRemoteNG and its being very cool to connect to different remote connection with different protocols e.g Window Remote Desktop, VNC to Linux, SSH, HTTP connection etc. from a single application. As new user I configured some remote desktop connection which was quite easy to figure out. But when I wanted to add SSH connections, it came in my mind to import all of the saved connections in the putty. But I couldn't figure it out how can it be done, though it was quite easy and here are the steps. Open your mRemoteNG Create a folder if you want segregation of multiple networks Create a new connection Enter the IP address of remote server under connection in Config pane Under the config pane, select protocol " SSH version 2 ".  Once you select protocol to SSH version 2 you are given option to import putty sessions, as shown in the snap below. In the above snap, I have imported CSR-AWS session from my saved sessions in Putty.

BGP Local Preference Controlling Outbound Traffic in BGP

In BGP, Local Preference is used to control the outbound traffic path. It helps you decide which egress point (exit point) should be used when you have multiple connections to external networks, such as ISPs. Local Preference is an attribute that is local to your AS and is shared with all iBGP peers but not with eBGP neighbors. Higher Local Preference = More preferred outbound path. Example Scenario : You have two external links: ISP1 (via CE1) and ISP2 (via CE2). You want traffic to prefer ISP1 for all outbound traffic. Network Topology : CE1 (connected to ISP1): 10.0.1.1/30 CE2 (connected to ISP2): 10.0.2.1/30 iBGP Router (Internal) connected to both CE1 (10.0.1.2/30) and CE2 (10.0.2.2/30). Configuration on CE1 (Higher Local Preference) : Create a route map to set the local preference to 200 for routes learned from CE1: route-map SET_LOCAL_PREF permit 10 set local-preference 200 In the BGP configuration for CE1, apply this route map to the neighbor: router bgp 65001 ne...

BGP MED: Managing Inbound Traffic with Multi-Exit Discriminator

The Multi-Exit Discriminator (MED) is used in BGP to control inbound traffic into your AS. It tells a neighboring AS which entry point into your network it should prefer when there are multiple links between your AS and the neighboring AS. The lower the MED value , the more preferred the path. MED is only honored between the same neighboring AS . Example Scenario : You are connected to ISP1 via two routers, CE1 and CE2 , and want to control which router ISP1 uses to send traffic into your AS. Network Topology : CE1 (connected to ISP1): 10.0.1.1/30 CE2 (connected to ISP1): 10.0.2.1/30 iBGP Router (Internal) connected to both CE1 (10.0.1.2/30) and CE2 (10.0.2.2/30). Configuration on CE1 (Lower MED, More Preferred) : Create a route map to set the MED to 50 for CE1: route-map SET_MED permit 10 set metric 50 Apply this route map to the neighbor in the BGP configuration for CE1: router bgp 65001 neighbor 10.0.1.1 remote-as 65000 neighbor 10.0.1.1 route-map SET_MED out Configuratio...