Il termine Network functions virtualization (NFV)[1] nell'ambito delle reti di telecomunicazioni indica un approccio architetturale che sfrutta le tecnologie IT per virtualizzare intere classi di funzioni dei nodi di rete come blocchi elementari che possono essere interconnessi per implementare servizi di comunicazione.
Una funzione di rete virtualizzata consiste in una o più macchine virtuali che gestiscono diversi software e processi su server standard ad alta capacità, switch e dispositivi di memoria o anche su un'infrastruttura in cloud, invece di utilizzare differenti dispositivi hardware per ogni funzione di rete. In questo modo, elaborazioni tradizionalmente residenti nei nodi di rete possono essere eseguite in modo centralizzato sulla macchina virtuale, alleggerendo il carico elaborativo sui nodi di rete che assumono, rispetto alla funzione virtualizzata, il ruolo di attuatori. L'approccio è mirato sia a ridurre il costo dei nodi di rete (per la minore complessità richiesta o in casi estremi eliminando la necessità del nodo fisico stesso) che a integrarsi in una gestione di rete di tipo SDN, contesto in cui le NFV possono essere usate in modo sinergico.[2][3]
Come esempi applicativi, è possibile definire un session border controller virtuale per proteggere una rete senza i costi e la complessità di approvvigionamento ed installazione di unità di protezione di rete fisiche. Altri esempi dell'utilizzo di NFV includono load balancer, firewall, dispositivi di rilevamento di intrusioni, acceleratori WAN[4] e anche router (che in tal caso vengono detti "router virtuali" o "virtual router")[5] di cui esistono già implementazioni commerciali da parte dei principali costruttori.[6]