← Back to Engineering Blog
πŸ—“οΈ Aug 1, 2012⏱️ 2 min read

Solving IPv4 Exhaustion: Building an MP-BGP Dual-Stack IPv6 Carrier Core

How we migrated a Tier-3 ISP core network to MP-BGP Dual-Stack IPv6, allocating /48 enterprise subnets and managing dual-stack routing tables.

πŸŽ™οΈ Listen to ArticleREADY
AI Audio Synthesis Narrator
Share Post:

β€œRunning dual-stack networking is easy until your IPv4 and IPv6 BGP neighbor topologies diverge during an upstream fiber failover.”

The Setup

In August 2012 at Net4 India, APNIC announced the final stage of IPv4 address allocation depletion in the Asia-Pacific region. As a Tier-3 ISP and hosting provider, we needed to ensure all new client allocations could operate over native IPv6 without losing IPv4 connectivity.

We initiated an enterprise-wide migration to Multiprotocol BGP (MP-BGP) Dual-Stack across our core routers, edge firewalls, and DNS infrastructure.


The Mess

Our initial deployment enabled IPv6 unicast address families alongside IPv4 on existing BGP sessions. However, during a scheduled maintenance window on a primary upstream carrier, IPv6 traffic dropped completely while IPv4 remained online:

[CRITICAL] 2012-08-15 02:14:10 - Cisco 7606 Core Router Log
%BGP-5-ADJCHANGE: neighbor 2001:db8:ffff::1 Down - Interface flap
%BGP-3-NOTIFICATION: sent to neighbor 2001:db8:ffff::1 3/1 (update message error - subcode 9: malformed attribute)
Status: IPv4 BGP Peering (202.54.1.1) UP | IPv6 BGP Peering (2001:db8:ffff::1) DOWN

The issue stemmed from an uncoordinated BGP Capability Negotiation mismatch: the upstream carrier router did not support extended next-hop encoding for IPv6 routes over IPv4 TCP sessions.

IPv6 routes were advertised with IPv4 next-hop addresses, causing BGP route withdrawal loops that blackholed all client IPv6 traffic.


The Solution

I completely separated IPv4 and IPv6 BGP peering topologies using explicit MP-BGP address family configurations and dedicated IPv6 transport peering sessions:

  1. Dedicated IPv6 BGP Transport: Configured separate BGP sessions over native IPv6 link-local and global unicast addresses.
  2. Strict Address-Family Isolation: Isolated address-family ipv4 unicast and address-family ipv6 unicast route-maps.
  3. Enterprise /48 Subnet Allocation: Automated /48 IPv6 prefix delegation for enterprise hosting clients using DHCPv6-PD.
! Cisco 7606 MP-BGP Dual-Stack Configuration
router bgp 45120
 bgp router-id 202.54.1.1
 !
 neighbor 2001:db8:ffff::1 remote-as 174
 neighbor 2001:db8:ffff::1 update-source GigabitEthernet3/0
 !
 address-family ipv6 unicast
  neighbor 2001:db8:ffff::1 activate
  neighbor 2001:db8:ffff::1 route-map IPV6_IN in
  neighbor 2001:db8:ffff::1 route-map IPV6_OUT out
  network 2001:db8:1000::/48
 exit-address-family

Key Takeaway

Always isolate IPv4 and IPv6 BGP address families onto native transport sessions. Never rely on IPv4 BGP sessions to carry IPv6 routes without verifying extended next-hop encoding support across all upstream peers.


Architecture and decisions: mine. Debugging sessions at odd hours: mine. AI assistance: structure, syntax, first draft. β€” Sachin

SKS

Sachin Kumar Sharma

Associate Director (Infrastructure & Cloud Architecture Strategy) | 20+ Yrs Exp

Architecting resilient multi-cloud enterprise landing zones, SDN overlay fabrics, DevSecFinOps automation pipelines, and autonomous Agentic AI platforms.

πŸ“¬

πŸ“¬ Stay Updated on Tech Releases

Sign up to get notified when I publish new production war stories, agentic AI architecture blueprints, or open-source infrastructure tools.

⚑ Theme Adaptive Shift
Switching layouts matching domain reading affinity...