Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?



The Juniper Networks vMX lw4o6 VNF is an elastic, high-performance solution that carriers can use to expand their existing pool of public IPv4 network addresses. It is available for Juniper Networks vMX virtual routers running Junos OS 16.1R3 or later.

As shown in Figure 1, it is common for Network Address Port Translation (NAPT) at the subscribers’ home gateway to perform IPv4 encapsulation in IPv6 packets for transmission over the IPv6 cloud. At the other end of the cloud, however, there might or might not be a corresponding NAPT to decapsulate the IPv6 packets for transmission across an IPv4 network. The vMX lw4o6 VNF fills this gap by providing highly scalable Address Family Transition Router (AFTR) tunnel termination. The AFTR is stateless, which simplifies redundancy because there is no need to synchronize the session state. Multiple AFTRs share the same tunnel address (similar to anycast), and they share the workload using equal-cost multipath (ECMP).

Figure 1: Encapsulation and decapsulation of IPv4 packets over a IPv6 network.
Encapsulation and decapsulation of
IPv4 packets over a IPv6 network.

The vMX lw4o6 VNF is packaged with Snabb, an open-source fast packet networking engine, in a Docker container so that all dependencies are kept together in a controlled environment. The vMX provides all network protocol functions, including ARP, IPv6 NDP, OSPF, BFD, BGP, SNMP, syslog, and NETCONF. The vMX consists of a Packet Forwarding Engine VNF, virtual forwarding plane (VFP), and a control plane VNF (that is, the Routing Engine, or virtual control plane, VCP). Traffic between the Snabb and the VFP is provided by the vhost-user infrastructure. Juniper’s operating system, Junos OS, provides a uniform control plane, and Juniper’s JET (through YANG and NETCONF) extends the management plane across the VNF for additional ease of use. Snabb provides lw4o6 encapsulation and decapsulation, ICMP processing, and any fragmentation, reassembly, or both that might occur. Binding tables and any Snabb-related configurations (with the exception of the Snabb-assigned PCI address), are located within the Junos OS CLI.

For more information, see the Juniper white paper vMX Lightweight 4over6 Virtual Network Function  .

How the Solution Works

With lw4o6, carriers can effectively subdivide a single IPv4 address into many hosts by combining the IP with a unique TCP/UDP port range. Each IPv4-port combination can then be mapped to a unique IPv6 address for use on public networks, as shown in Table 1.

This example of the IPv6 to IPv4 binding shows the same public IPv4 address being shared with multiple customers. Source NAT is used with a range of 1024 ports, which in this case allows 63 subscribers to share the same IPv4 address. Other sharing ratios are also possible.

Table 1: IPv4 to IPv6 Binding Table

Subscriber Public IPv6

Shared Public IPv4

UDP/TCP Port Range


1024 – 2047


2048 – 3071


3072 – 4095





64512 - 65535


1024 - 2047

Common ports, in the range of 0 through 1023, are reserved for inbound services such as SSH and HTTP. Carriers thus have the option of mapping this range to select subscribers, or providing the services at an additional charge.