RFC 8950: Announcing IPv4 Routes with an IPv6 Next-Hop

RFC 8950 allows BGP to announce IPv4 routes with an IPv6 next-hop, decoupling address family binding and enabling IPv6 single-stack backbones.
RFC 8950 defines a new (IPv4 NLRI, IPv6 Next Hop) address family combination, allowing BGP peers to use an IPv6 address as the next-hop for IPv4 prefixes within a single IPv6 session, breaking the traditional BGP constraint that IPv4 NLRI must be bound to an IPv4 next-hop. The mechanism is implemented via the MP_REACH_NLRI attribute of MP-BGP (RFC 4760). While the control plane solves the advertisement problem, the forwarding plane must support cross-protocol-family recursive route resolution, imposing new requirements on hardware forwarding table structures and performance. Its practical value lies in making it more natural for IPv6-only backbones to carry IPv4 routes, simplifying dual-stack operations, and aligning with technology directions like SRv6. However, deployment faces challenges including uneven vendor implementations, more complex interpretation of troubleshooting tools like traceroute, and the need to re-adapt ACL and uRPF security policies. A time gap remains between standardization and actual large-scale adoption.
RFC 8950: Announcing IPv4 Routes with an IPv6 Next-Hop
In the networking world, BGP (Border Gateway Protocol) scalability is always a hot topic. A document numbered RFC 8950 has drawn attention in the technical community, with a title that gets straight to the point: Announce IPv4 with an IPv6 next-hop — allowing IPv6 addresses to serve as the next-hop for IPv4 routes within a BGP session. This seemingly minor change addresses a real pain point in the evolution of dual-stack networks.

What Problem Does This RFC Solve?
In traditional BGP design, UPDATE messages carrying IPv4 NLRI (Network Layer Reachability Information) must be paired with an IPv4 next-hop address, while IPv6 prefixes require an IPv6 next-hop. This binding works well in pure IPv4 or pure IPv6 environments, but begins to show its limitations in dual-stack scenarios.
Consider a typical scenario: an ISP network has completed its IPv6 backbone upgrade, and edge devices run both IPv4 and IPv6 protocol stacks. If a router needs to advertise IPv4 prefixes to a peer, under the old rules it must maintain a separate IPv4 next-hop — even if the underlying transport network is entirely IPv6-based. This means devices must maintain additional IPv4 address resources, which is increasingly unrealistic against the backdrop of IPv4 address exhaustion.
The value of RFC 8950 lies in decoupling: IPv4 NLRI can be freely combined with an IPv6 next-hop. BGP peers only need to establish a single IPv6 session (or leverage existing multiprotocol extension capabilities) to exchange both IPv4 and IPv6 routing information simultaneously.
NLRI (Network Layer Reachability Information) is the field in a BGP UPDATE message used to express "reachable prefixes." In the BGP message structure, an UPDATE consists of three parts: Withdrawn Routes, Path Attributes, and Network Layer Reachability Information. The NLRI portion is essentially a list of "prefix + prefix length," such as 192.0.2.0/24, telling peers "these address blocks are reachable through me."
The key point is that NLRI is just the "destination," while the Next Hop is the "how to get there" — in traditional BGP, the two are bound within the same address family. IPv4 NLRI must be paired with an IPv4 next-hop, and IPv6 NLRI must be paired with an IPv6 next-hop. This is the default behavior of RFC 4271 (BGP-4). What RFC 8950 does is allow these two to come from different address families within the MP_REACH_NLRI attribute, thereby breaking this implicit constraint.
Key Technical Implementation Details
Extension of Address Family Combinations
RFC 8950 defines a new set of BGP capability negotiation parameters, with the core being the introduction of the (IPv4 NLRI, IPv6 Next Hop) address family combination. When two BGP peers both support this capability, they can exchange IPv4 prefixes within the same BGP session while filling the next-hop field with an IPv6 address.
This mechanism relies on BGP multiprotocol extensions (RFC 4760). In the MP_REACH_NLRI attribute, the NLRI portion carries IPv4 prefixes, while the Next Hop field's length and format follow IPv6 encoding rules.
BGP Multiprotocol Extensions (MP-BGP) are defined by RFC 4760 and represent a significant extension to base BGP-4. While original BGP-4 can only carry IPv4 unicast routes, MP-BGP introduces two new path attributes — MP_REACH_NLRI (Multiprotocol Reachable NLRI) and MP_UNREACH_NLRI (Multiprotocol Unreachable NLRI) — enabling BGP to carry routes for any address family, including IPv6, VPNv4, multicast, EVPN, and more.
Each MP_REACH_NLRI attribute carries an AFI/SAFI field: AFI (Address Family Identifier) identifies the address family (1=IPv4, 2=IPv6), and SAFI (Subsequent Address Family Identifier) identifies the sub-address family (1=unicast, 128=VPN, etc.). In RFC 8950's mechanism, when AFI=1 (IPv4) and SAFI=1 (unicast), the Next Hop field of MP_REACH_NLRI allows a 16-byte IPv6 address length instead of the traditional 4 bytes. This is precisely how "IPv4 NLRI with IPv6 next-hop" is realized at the protocol encoding level.
Forwarding Plane Requirements
The control plane solves the advertisement problem, but the forwarding plane must cooperate accordingly. When a router receives an IPv4 route but the next-hop is an IPv6 address, it needs to perform a recursive lookup through the IPv6 routing table to find the outgoing interface, then forward based on the IPv4 destination address. This requires devices to support cross-protocol-family recursive route resolution, placing new demands on hardware forwarding table structures.
In early vendor implementations, this recursive lookup could lead to forwarding performance degradation or hardware table exhaustion — risk points that need to be evaluated during actual deployment.
Practical Impact on Network Architecture
The Possibility of an IPv6 Single-Stack Backbone
RFC 8950's most direct impact is making it more natural for an IPv6-only backbone to carry IPv4 traffic. ISPs can run only IPv6 at the core layer, with edge devices injecting IPv4 reachability through this mechanism. Compared to RFC 5549 (which also defines carrying IPv4 NLRI with an IPv6 next-hop but targets different scenarios), 8950 focuses more on the standardized address family negotiation process.
RFC 5549 is an important reference for understanding RFC 8950's positioning. RFC 5549 also defines the capability to "carry IPv4 NLRI with an IPv6 next-hop," but its motivation and context differ: it was originally designed for scenarios outside BGP (such as certain MPLS or tunnel environments) and broader extension needs, without unified provisions for the capability negotiation process between BGP peers.
The core difference between the two lies in the degree of standardization of capability negotiation. RFC 8950 explicitly defines the process for negotiating the (IPv4 NLRI, IPv6 Next Hop) combination through BGP Capabilities Advertisement, enabling both peers to reliably confirm whether each supports the capability, avoiding compatibility issues where "one side sends and the other cannot parse." It can be said that RFC 8950 represents a standardization convergence of the direction opened by RFC 5549 — elevating "it works" to "it's interoperable and negotiable." In actual deployments, vendor implementations often reference both documents, but RFC 8950's capability negotiation semantics are clearer.
Simplifying Dual-Stack Operations
For most enterprise networks, a full IPv6 transition still takes time. RFC 8950 provides a transition path: newly deployed devices can establish BGP sessions with only IPv6 addresses configured while maintaining IPv4 route reachability. This reduces address management complexity and lowers the probability of configuration errors in dual-stack environments.
Synergy with Emerging Technologies like SRv6
In Segment Routing over IPv6 (SRv6) architectures, network programming capabilities rely on IPv6 extension headers. RFC 8950 naturally aligns with such technologies — once the underlying forwarding plane is unified as IPv6, the carriage of IPv4 services can be more smoothly integrated into the overall traffic engineering framework.
SRv6 (Segment Routing over IPv6) is a source routing technology based on the IPv6 data plane. It uses the Segment Routing Header (SRH) in IPv6 extension headers to carry an ordered set of "Segment Identifiers (SIDs)," where each SID is an IPv6 address representing an instruction or node in the network. Packets execute these instructions in sequence during forwarding, enabling traffic engineering, fast reroute, and service function chaining capabilities.
The convergence point between SRv6 and RFC 8950 lies in the unification of the underlying forwarding plane. SRv6 requires the entire network (or at least the core layer) to use IPv6 as the sole transport protocol, which aligns perfectly with the "IPv6-only backbone" direction promoted by RFC 8950. When the backbone runs SRv6 over IPv6, edge IPv4 routes can be injected through the RFC 8950 mechanism — the next-hop for IPv4 prefixes is the IPv6 address of an SRv6-capable node, and IPv4 traffic can then be encapsulated into SRv6 paths for forwarding. This combination enables ISPs to maintain IPv4 service continuity while bringing all network traffic into a unified IPv6/SRv6 traffic engineering framework.
Deployment Status and Challenges
RFC 8950 is not a brand-new concept — it was published as early as 2020. However, community discussion has been muted (only 9 points and zero comments on Hacker News), reflecting a reality of network protocol evolution: there is a long time gap between standardization completion and actual large-scale deployment.
The main challenges center on several aspects:
- Uneven vendor support: Different equipment vendors have varying implementation timelines for this RFC, and some legacy hardware cannot support cross-family recursive forwarding
- Increased troubleshooting complexity: When the next-hop of an IPv4 route becomes an IPv6 address, the output of tools like traceroute requires additional interpretation
- Security policy adaptation: ACLs, uRPF (Unicast Reverse Path Forwarding), and other security mechanisms need rules redesigned for mixed address family scenarios
For network teams planning their IPv6 evolution roadmap, RFC 8950 is worth including in technical evaluation lists. It may not be the current first choice, but it provides an IETF-standardized option for the architectural direction of carrying IPv4 services over an IPv6 single stack.
One-line Summary
RFC 8950 allows BGP to announce IPv4 routes with an IPv6 next-hop, decoupling address family binding and enabling IPv6 single-stack backbones.
Paragraph Summary
RFC 8950 defines a new (IPv4 NLRI, IPv6 Next Hop) address family combination, allowing BGP peers to use an IPv6 address as the next-hop for IPv4 prefixes within a single IPv6 session, breaking the traditional BGP constraint that IPv4 NLRI must be bound to an IPv4 next-hop. The mechanism is implemented via the MP_REACH_NLRI attribute of MP-BGP (RFC 4760). While the control plane solves the advertisement problem, the forwarding plane must support cross-protocol-family recursive route resolution, imposing new requirements on hardware forwarding table structures and performance. Its practical value lies in making it more natural for IPv6-only backbones to carry IPv4 routes, simplifying dual-stack operations, and aligning with technology directions like SRv6. However, deployment faces challenges including uneven vendor implementations, more complex interpretation of troubleshooting tools like traceroute, and the need to re-adapt ACL and uRPF security policies. A time gap remains between standardization and actual large-scale adoption.
Related articles

GPT-Next Leak, Gemini 4 Argon Imminent: AI News Roundup
GPT-Next leak suggests extreme efficiency; OpenAI's 28-day shipping pledge boosts speed 50%; Gemini 4 Argon nears release; Anthropic subscription value report sparks debate.

GPT-Next Leaked, Gemini 4 Argon Speeds Up, Fable 5.5 May Launch Today
OpenAI's GPT-Next model leaks, expected to be extremely low-cost and possibly part of the 28-day release plan; Gemini 4 Argon internal testing accelerates, NanoBanana 2.1 is live; Semi Analysis tests show Claude Max's equivalent API value is about 5 times that of ChatGPT Pro; Fable 5.5 may launch today.

Gemini 4 Argon Launches Globally: Key Highlights from the AI Daily Brief
Google opens Gemini 4 Argon globally across Pro and Ultra subscriptions and the API, and demonstrates robot control. This article rounds up open-source models, Agent infrastructure, cost transparency, and safety governance updates.