Виртуализация сетевых функций (Network Function Virtualization, NFV) – это современный подход к предоставлению сетевых услуг, в котором вместо специализированного оборудования для маршрутизации, защиты и уравновешивания нагрузки применяются программные решения, которые запускаются как виртуальные машины на серверах отраслевого стандарта. Предпосылками к появлению концепций программно-конфигурируемых сетей (Software-Defined Networking, сокр. SDN) и виртуализации сетевых функций (NFV) были стремительный рост трафика, изменение его структуры, сложные сети и рост количества подключаемых к сети устройств. Технология SDNотделяет функции сетевого управления от функций сетевой пересылки, а технология NFV – абстрагирует сетевую пересылку и другие сетевые функции от оборудования, на котором она работает.
До появления NFV, при использовании традиционного подхода, для введения очередной сетевой функции необходимо было, как правило, установить другое устройство. В NFV сетевые функции отделены от аппаратных устройств и перенесены на виртуальные серверы. Поставщик услуг реализует добавление клиенту новой сетевой функции путем запуска новой виртуальной машины. Аналогично в случае отсутствия необходимости дальнейшего использования сетевой функции её работа прекращается. Вместо развертывания в сети нового аппаратного устройства, например, для шифрования, поставщик услуг может внедрить шифровальное программное обеспечение на стандартизированном сервере или коммутаторе, уже включенном в сеть. Виртуализация сетевых функций позволяет устанавливать сервисы там, тогда и в том количестве, которое востребовано сейчас и в данном месте.
Архитектура NFV состоит из трёх основных подсистем (рисунок 1):
виртуализированные сетевые функции (Virtualized Network Function, сокр. NFV);
подсистема управления и оркестрации (Management and Orchestration, сокр. MANO).
Рисунок 1
NFV позволяет виртуализировать множество сетевых функций, включая, например, Службу доменных имён (DNS), трансляцию сетевых адресов (NAT), межсетевые экраны, кэширование.