* [Topics](/en/topics "Topics")
* [Containers](/en/topics/containers "Containers")
* VNF and CNF, what’s the difference?
VNF and CNF, what’s the difference?
===================================
Published  July 28, 2022•*4*-minute read
Copy URL
Jump to section
---------------
VNFs and CNFsVNF challengesThe evolution to CNFsThe promise of CNFsConclusionWhy choose Red Hat?
Overview
--------
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)](/en/topics/virtualization/what-is-a-virtual-machine) 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 Services on OpenShift®](/en/technologies/cloud-computing/openstack-services-on-openshift) 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.
[Read more: What is NFV?](/en/topics/virtualization/what-is-nfv "article | what is NFV?")
The challenge facing VNFs
-------------------------
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](/en/topics/5g-networks/what-is-private-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.
[See how NFV is helping telcos adapt to edge computing](/en/topics/edge-computing/telecommunications)
Recommended for you
Start Your Modernization Journey with a Unified Platform for Virtualization and Containers
------------------------------------------------------------------------------------------
[Watch the webinar](https://www.redhat.com/en/events/webinar/start-your-modernization-journey-with-a-unified-platform-for-virtualization-and-containers?percmp=RHCTG0250000455235)
CNFs: An evolution from VMs to containers
-----------------------------------------
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. ](/rhdc/managed-files/The%20journey%20of%20network%20functions%20in%20telecommunications-figure7-desktop%20%281%29_0.png "Figure: The journey of network functions in telecommunications ")
*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.*
[Learn more: How are VMs and containers different?](https://www.youtube.com/watch?v=ZQlQumDZ0Zw)
The promise of CNFs
-------------------
The adoption of CNFs can resolve some of the fundamental limitations of VNFs, by moving many of these functions into containers. [Containerization](http://www.redhat.com/en/topics/cloud-native-apps/what-is-containerization) of network components makes it possible to manage how and where the functions run across [clusters](http://www.redhat.com/en/topics/containers/what-is-a-kubernetes-cluster) 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](http://www.redhat.com/en/topics/microservices/why-choose-red-hat-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](http://www.redhat.com/en/topics/open-source/what-is-open-source), and rigorous testing and certification are critical for providers now more than ever.
VNFs and CNFs: Key digital transformation technologies
------------------------------------------------------
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.
Why choose Red Hat for virtualization?
--------------------------------------
This video can't play due to privacy settings
To change your settings, select the "Cookie Preferences" link in the footer and opt in to "Advertising Cookies or try disabling adblockers."
Is OpenShift Virtualization right for your VMs? Video duration: 1:57
### Migrate your VMs and maintain your momentum
Red Hat’s trusted products and partner ecosystem deliver comprehensive [virtualization solutions](/en/products/virtualization). Migrate your virtual machines now to [Red Hat OpenShift Virtualization](/en/technologies/cloud-computing/openshift/virtualization), a modern app platform–based on [KVM](/en/topics/virtualization/what-is-KVM) and [KubeVirt](/en/topics/virtualization/what-is-kubevirt)–that integrates virtual and containerized workloads to provide flexibility without added complexity. Or, for a dedicated virtualization solution, explore [Red Hat OpenShift Virtualization Engine](/en/technologies/cloud-computing/openshift/virtualization-engine), a streamlined, cost-effective offering to deploy, manage, and scale VMs exclusively. The included [migration toolkit for virtualization](https://access.redhat.com/products/migration-toolkits-virtualization) provides the tools you need to start your migration in a few simple steps.
### Automate your migration
Use automation to accelerate delivery with [Red Hat Ansible® Automation Platform](/en/technologies/management/ansible/virtual-infrastructure-management)–from migration at scale to Day 2 operations and remediation. With this flexible approach, you can automate tasks to improve speed and efficiency of IT operations.
### Manage and modernize at your own pace
Monitor the security and performance of your VMs from a single console with [Red Hat Advanced Cluster Management](/en/technologies/management/advanced-cluster-management). With additional support options and partner integrations, you can rely on Red Hat to keep your virtual infrastructure running smoothly throughout the hybrid cloud–and help you modernize when you’re ready.
[Explore virtualization with Red Hat](/en/products/virtualization)
Hub
The official Red Hat blog
-------------------------
Get the latest information about our ecosystem of customers, partners, and communities.
[Keep reading](/en/blog "The official Red Hat blog")
Recommended for you
Network Automation with Red Hat Ansible Automation Platform
-----------------------------------------------------------
Learn how to use Red Hat Ansible Automation for Networking to remotely automate configuration of network devices and perform key tests and corrections.
[View course](https://www.redhat.com/en/services/training/do457-ansible-network-automation?percmp=RHCTG0250000455236)
Keep reading
------------
### What is a Linux container?
Find out more about Linux containers, which are a set of 1 or more processes that are isolated from the rest of the system.
[Read the article](/en/topics/containers/whats-a-linux-container "article | what is a linux container?")
### What is container orchestration?
Container orchestration automates the deployment, management, scaling, and networking of containers.
[Read the article](/en/topics/containers/what-is-container-orchestration "article | what is container orchestration?")
### What is Kubernetes?
Kubernetes is a container orchestration platform that eliminates many manual processes involved in deploying and scaling containerized applications.
[Read the article](/en/topics/containers/what-is-kubernetes "article | what is kubernetes?")
Containers resources
--------------------
### Related content
* Blog post
  [Introducing Red Hat OpenStack VMware migration toolkit](/en/blog/red-hat-openstack-vmware-migration-toolkit-simplify-your-journey-openshift)
* Blog post
  [Red Hat and Sylva unify the future for telco cloud](/en/blog/red-hat-and-sylva-unify-future-telco-cloud)
* Blog post
  [Simplify virtualization deployments with the Assisted Installer](/en/blog/simplify-virtualization-deployments-assisted-installer)
* Blog post
  [Bridging the gap: Secure virtual and container workloads with Red Hat OpenShift and Palo Alto Networks](/en/blog/bridging-gap-secure-virtual-and-container-workloads-red-hat-openshift-and-palo-alto-networks)
### Related articles
* [What is a virtual machine (VM)?](/en/topics/virtualization/what-is-a-virtual-machine)
* [What is a Linux container?](/en/topics/containers/whats-a-linux-container)
* [What is container orchestration?](/en/topics/containers/what-is-container-orchestration)
* [Stateful vs stateless applications](/en/topics/cloud-native-apps/stateful-vs-stateless)
* [What's the difference between cloud and virtualization?](/en/topics/cloud-computing/cloud-vs-virtualization)
* [What is Kubernetes?](/en/topics/containers/what-is-kubernetes)
* [What is virtualization?](/en/topics/virtualization/what-is-virtualization)
* [Red Hat OpenShift on VMware](/en/technologies/cloud-computing/openshift/vmware)
* [What is virtualization management?](/en/topics/virtualization/what-is-virtualization-management)
* [How to migrate VMs from VMware to Red Hat OpenShift Virtualization](/en/technologies/cloud-computing/openshift/migrate-vmware-to-openshift-virtualization)
* [KVM vs. VMware](/en/topics/virtualization/kvm-vs-vmware-comparison)
* [What is virtual infrastructure management? And how can automation help?](/en/topics/automation/virtual-infrastructure-management)
* [How to choose a virtualization platform](/en/topics/virtualization/how-to-choose-a-virtualization-platform)
* [What is KVM?](/en/topics/virtualization/what-is-KVM)
* [What is KubeVirt?](/en/topics/virtualization/what-is-kubevirt)
* [What is live migration?](/en/topics/virtualization/what-is-live-migration)
* [Why use Red Hat Ansible Automation Platform with Red Hat OpenShift?](/en/technologies/cloud-computing/openshift/ansible-on-openshift)
* [Why choose Red Hat for virtualization?](/en/topics/virtualization/why-choose-red-hat-for-virtualization)
* [What is Podman Desktop?](/en/topics/containers/what-is-podman-desktop)
* [Why migrate virtual machines to Red Hat?](/en/topics/virtualization/why-migrate-your-virtual-machines-to-red-hat)
* [What is Podman?](/en/topics/containers/what-is-podman)
* [What is the Kubernetes Java client?](/en/topics/cloud-computing/what-is-kubernetes-java-client)
* [What are hosted control planes?](/en/topics/containers/what-are-hosted-control-planes)
* [What is kubernetes security?](/en/topics/containers/kubernetes-security)
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [Containers vs VMs](/en/topics/containers/containers-vs-vms)
* [Edge computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/edge-computing)
* [How Kubernetes can help AI/ML](/en/topics/cloud-computing/how-kubernetes-can-help-ai)
* [What is Kubeflow?](/en/topics/cloud-computing/what-is-kubeflow)
* [What are microservices?](/en/topics/microservices/what-are-microservices)
* [What is container security?](/en/topics/security/container-security)
* [OpenShift vs. OpenStack: What are the differences?](/en/technologies/cloud-computing/openshift/openshift-vs-openstack)
* [What are sandboxed containers](/en/topics/containers/sandboxed-containers)
* [What is Buildah?](/en/topics/containers/what-is-buildah)
* [Kubernetes vs OpenStack](/en/topics/openstack/kubernetes-vs-openstack)
* [What are validated patterns?](/en/topics/cloud-computing/what-are-validated-patterns)
* [Kubernetes on AWS: Self-Managed vs. Managed Applications Platforms](/en/topics/containers/kubernetes-on-aws)
* [What is a hypervisor?](/en/topics/virtualization/what-is-a-hypervisor)
* [What is an image builder?](/en/topics/linux/what-is-an-image-builder)
* [Learn everything you need to know about Open RAN](/en/topics/5g-networks/what-is-open-ran)
* [Red Hat OpenShift vs. OKD](/en/topics/containers/red-hat-openshift-okd)
* [Red Hat OpenShift vs. Kubernetes: What's the difference?](/en/technologies/cloud-computing/openshift/red-hat-openshift-kubernetes)
* [Spring on Kubernetes with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/spring)
* [Why run Apache Kafka on Kubernetes?](/en/topics/integration/why-run-apache-kafka-on-kubernetes)
* [What is high availability and disaster recovery for containers?](/en/topics/containers/high-availability-containers)
* [What is a golden image?](/en/topics/linux/what-is-a-golden-image)
* [What are Red Hat OpenShift cloud services?](/en/technologies/cloud-computing/openshift/what-are-red-hat-openshift-cloud-services)
* [What is a container registry?](/en/topics/cloud-native-apps/what-is-a-container-registry)
* [What is Skopeo?](/en/topics/containers/what-is-skopeo)
* [What are Red Hat OpenShift Operators?](/en/technologies/cloud-computing/openshift/what-are-openshift-operators)
* [Using Helm with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/helm)
* [Kubernetes security best practices](/en/topics/containers/kubernetes-security-best-practices)
* [Orchestrating Windows containers on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/windows-containers-on-red-hat-openshift)
* [What is a Kubernetes operator?](/en/topics/containers/what-is-a-kubernetes-operator)
* [High performance computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/high-performance-computing)
* [What is SD-WAN?](/en/topics/edge-computing/what-is-sd-wan)
* [Advantages of Kubernetes-native security](/en/topics/containers/advantages-of-kubernetes-native-security)
* [What is KubeLinter?](/en/topics/containers/what-is-kubelinter)
* [Intro to Kubernetes security](/en/topics/containers/intro-kubernetes-security)
* [Container and Kubernetes compliance considerations](/en/topics/containers/compliance)
* [How microservices support IT integration in healthcare](/en/topics/microservices/microservices-in-healthcare)
* [Kubernetes cluster management](/en/technologies/cloud-computing/openshift/kubernetes-cluster-management)
* [Red Hat OpenShift on IBM IT infrastructure](/en/technologies/cloud-computing/openshift/what-is-red-hat-openshift-on-IBM-IT-infrastructure)
* [Red Hat OpenShift for business leaders](/en/technologies/cloud-computing/openshift/business-leaders)
* [How to deploy Red Hat OpenShift](/en/technologies/cloud-computing/openshift/deploy-red-hat-openshift)
* [Cost management for Kubernetes on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/cost-management)
* [Kubernetes-native Java development with Quarkus](/en/technologies/cloud-computing/openshift/quarkus)
* [What is enterprise Kubernetes?](/en/topics/containers/what-is-enterprise-kubernetes)
* [What makes Red Hat OpenShift the right choice for IT operations?](/en/technologies/cloud-computing/openshift/it-operations)
* [What makes Red Hat OpenShift the right choice for SAP?](/en/technologies/cloud-computing/openshift/sap)
* [Why choose Red Hat for Kubernetes?](/en/topics/containers/why-choose-red-hat-kubernetes)
* [What is Kubernetes role-based access control (RBAC)](/en/topics/containers/what-kubernetes-role-based-access-control-rbac)
* [What is containerization?](/en/topics/cloud-native-apps/what-is-containerization)
* [What is network virtualization?](/en/topics/virtualization/what-is-network-virtualization)
* [What is a radio access network?](/en/topics/5g-networks/what-is-radio-access-network)
* [What was CoreOS and CoreOS container Linux](/en/technologies/cloud-computing/openshift/what-was-coreos)
* [Learning Kubernetes basics](/en/topics/containers/learning-kubernetes-tutorial)
* [What is service-oriented architecture?](/en/topics/cloud-native-apps/what-is-service-oriented-architecture)
* [What is the Kubernetes API?](/en/topics/containers/what-is-the-kubernetes-api)
* [What is Kubernetes cluster management?](/en/topics/containers/what-is-kubernetes-cluster-management)
* [What is a Kubernetes deployment?](/en/topics/containers/what-is-kubernetes-deployment)
* [Why choose the Red Hat build of Quarkus?](/en/topics/cloud-native-apps/why-choose-red-hat-quarkus)
* [What is software-defined networking?](/en/topics/hyperconverged-infrastructure/what-is-software-defined-networking)
* [What is hyperconverged infrastructure?](/en/topics/hyperconverged-infrastructure/what-is-hyperconverged-infrastructure)
* [Introduction to Kubernetes architecture](/en/topics/containers/kubernetes-architecture)
* [What is CaaS?](/en/topics/cloud-computing/what-is-caas)
* [Introduction to Kubernetes patterns](/en/topics/cloud-native-apps/introduction-to-kubernetes-patterns)
* [What is a Kubernetes cluster?](/en/topics/containers/what-is-a-kubernetes-cluster)
* [What is Quarkus?](/en/topics/cloud-native-apps/what-is-quarkus)
* [What is Jaeger?](/en/topics/microservices/what-is-jaeger)
* [What is NFV?](/en/topics/virtualization/what-is-nfv)
* [What is etcd?](/en/topics/containers/what-is-etcd)
* [What is container-native virtualization?](/en/topics/containers/what-is-container-native-virtualization)
* [What is Knative?](/en/topics/microservices/what-is-knative)
* [What is Clair?](/en/topics/containers/what-is-clair)
* [Why choose Red Hat for microservices?](/en/topics/microservices/why-choose-red-hat-microservices)
* [Why choose Red Hat for containers?](/en/topics/containers/why-choose-red-hat-containers)
* [What is vRAN?](/en/topics/virtualization/what-is-vran)
* [What is Docker?](/en/topics/containers/what-is-docker)
* [What is a Kubernetes pod?](/en/topics/containers/what-is-kubernetes-pod)
[More about this topic](/en/topics/containers "More about this topic")