Jump to section

VNF and CNF, what’s the difference?

Copy URL

Virtual network functions (VNFs) are software applications that deliver network functions such as directory services, routers, firewalls, load balancers, and more.  They are deployed as virtual machines (VMs) and have often been the next step for telecommunications providers in their digital transformation from the physical network functions (PNFs) of legacy network appliances on proprietary hardware. 

As key components in network functions virtualization (NFV) architecture, VNFs are built on top of NFV infrastructure (NFVI), including a virtual infrastructure manager (VIM) like Red Hat® OpenStack® to allocate resources like compute, storage, and networking efficiently among the VNFs. The framework for managing NFVI and provisioning new VNFs occurs in the management, automation, and network orchestration (MANO) elements defined by NFV. 

While VNFs are currently part of a standard network architecture, they still have limitations as digital service providers move toward delivering more agile services. In the initial transition from physical elements to VNFs, vendors often simply lifted embedded software systems entirely from appliances and created one large VM. However, without attempting to optimize these VMs, they created inefficient, single-purpose virtual appliances that were still hard to manage and maintain. 

In addition, it’s difficult to achieve scalability in cloud environments with these types of legacy VNFs. Some have taken steps to improve their initial VNF implementations, and many service providers have adopted a common, horizontal NFVI cloud platform to simplify their environments for running numerous VNFs. These changes help NFV serve as a foundational technology for 5G or edge networks. Yet the "weight" of VMs can still limit the efficiency of VNFs for  large-scale 5G or edge deployments that need agility, scalability, and lower overhead. 

Digital service providers that adopt a cloud-native approach—using both centralized and distributed locations for applications—can benefit from increased flexibility, scalability, reliability, and portability. Moving beyond virtualization to a fully cloud-native design helps push to a new level the efficiency and agility needed to rapidly deploy innovative, differentiated offers that markets and customers demand.

An important distinguishing feature of the cloud-native approach is that it uses containers rather than VMs. Containers allow users to package software (applications, functions, or microservices, for example) with all of the files necessary to run it—while sharing access to the operating system and other server resources. This approach makes it easy to move the contained component among environments (development, test, production, etc.)—and even among clouds—while retaining full functionality.

As an evolution from VNFs, cloud-native network functions (CNFs) are designed and implemented to run inside containers. This containerization of network architecture components makes it possible to run a variety of services on the same cluster and more easily on-board already decomposed applications, while dynamically directing network traffic to the correct pods.



This figure shows the evolution of network functions from the traditional vertically integrated approach, to VNFs managed by a common VM orchestration platform, to CNFs managed by a common container orchestration platform.

This figure shows the evolution of network functions from the traditional vertically integrated approach, to VNFs managed by a common VM orchestration platform, to CNFs managed by a common container orchestration platform.

The adoption of CNFs can resolve some of the fundamental limitations of VNFs, by moving many of these functions into containers. Containerization of network components makes it possible to manage how and where the functions run across clusters in the environment. 

However, CNFs are more than just the containerization of network functions. To get the full benefit of cloud-native principles beyond container packaging requires further rearchitecting of network function software, like decomposing it into microservices, allowing multiple versions during updates, and using available platform services like generic load-balancers or datastores. 

Additionally, as adoption of cloud-native environments increases, CNFs must co-exist with legacy VNFs during the transition. Digital service providers must fully automate the development, deployment, maintenance, and operation of the network to effectively handle escalating demand, accelerate deployments, and reduce complexity. Standardized methodologies for configuration and deployment, tools matured in open source communities, and rigorous testing and certification are critical for providers now more than ever.

An open, consistent foundation gives telecommunications providers confidence that the services they deliver will run reliably, regardless of location or footprint. Building that foundation on NFV (with VNFs) and especially cloud-native architectures (with CNFs) results in improved flexibility and agility. Automation plays a critical role in keeping the ecosystem operating efficiently and more easily at scale and allows digital service providers to more rapidly change and add services and features to better respond to customer needs and demands.

Keep reading


Stateful vs stateless

Whether something is stateful or stateless depends on how long the state of interaction with it is being recorded and how that information needs to be stored.


What is Quarkus?

Quarkus is a Kubernetes-native Java stack made for Java virtual machines (JVMs) and native compilation, optimizing Java specifically for containers.


What is serverless?

Serverless is a cloud-native development model that allows developers to build and run applications without having to manage servers.

More about cloud-native applications


An enterprise application platform with a unified set of tested services for bringing apps to market on your choice of infrastructure.



Free training

Developing Cloud-Native Applications with Microservices Architectures