軟體定義網路與 NFV

網路功能虛擬化(network function virtualization, NFV)

/ NFV spelled out: N-F-V /

數十年來,網路在中途對流量所做的每一項工作——防火牆、負載平衡器、VPN 閘道、流量塑形器——都以各自的專用設備出現:一台你買來、上架、接線、要擴容時就得整台換掉的特製盒子。這有點像每一項任務都備一個只能做單一用途的廚房小家電。網路功能虛擬化(NFV)就是要擺脫這種做法:不再用專用硬體,而是把這些功能各自當成軟體,跑在普通的商用伺服器上——也就是你拿來跑任何雲端工作負載的同一種通用機器。

具體來說,NFV 把過去住在特製中介盒(middlebox)裡的網路功能,包裝成軟體——一個虛擬網路功能(virtual network function, VNF)——跑在標準伺服器上的虛擬機或容器裡。防火牆變成一支防火牆程式;負載平衡器變成一支負載平衡程式。因為它們只是軟體,你可以在流量上升時開更多實例、下降時收掉、在資料中心之間搬移,並靠佈署新程式碼來升級。一套編排系統管理它們的生命週期(每個 VNF 放哪、要跑幾個、如何串接),而數個 VNF 可以串在一起,讓流量依序流經它們——這就是服務串接(service chaining)。

為什麼重要:NFV 把網路功能與專屬硬體解耦,能降低成本、加速佈署、增添彈性——把當初讓雲端運算吸引人的那些力量,套用到網路的中段。它與 SDN 天然成對:SDN 程式化流量如何被導引,NFV 提供被導引穿過的軟體功能。但要誠實面對取捨:在通用 CPU 上跑的軟體,每個封包的速度與效率通常不如特製晶片,所以高吞吐量的 VNF 需要細心工程(快速封包 I/O、硬體卸載)才跟得上;而且你是拿單純的專用盒子,換來一套更複雜、需要維運的軟體系統。

某公司過去為每個新辦公室買一台硬體防火牆設備。改用 NFV 後,它改在自己已有的商用伺服器上,把防火牆軟體當成 VNF 來跑。當某分行流量翻倍,它幾分鐘內就能再開一個防火牆實例,而不必再寄送、安裝另一台盒子——尖峰過後,再把多開的實例關掉。

網路功能變成可以上下伸縮的軟體,而不是非買不可的盒子。

NFV(在商用伺服器上以軟體實作功能)與 SDN(可程式化、集中控制轉送)是兩個不同的想法,常被一起使用,但兩者誰也不需要誰。常見的錯誤是把它們當成同一件事。

又称
NFV網路功能虛擬化