虛擬網路功能(virtual network function, VNF)
/ VNF spelled out: V-N-F /
虛擬網路功能是某一項特定的網路工作,用軟體而非專用盒子來完成。如果硬體防火牆是你鎖進機架的單一用途設備,那麼對應的 VNF 就是同一套防火牆邏輯,被包裝成一支程式,跑在普通伺服器上的虛擬機或容器裡。功能一樣——檢查與過濾流量——但現在它是一段軟體,你能像任何其他雲端應用那樣複製、搬移、伸縮它。
具體來說,VNF 是網路功能虛擬化的基本構件。常見的例子有虛擬防火牆、虛擬負載平衡器、虛擬路由器、虛擬 VPN 閘道、NAT,或深度封包檢測功能。每個都以軟體執行,從虛擬網路介面收到封包、處理它們、再送出去。因為 VNF 只是軟體,編排器能把它放到任何合適的伺服器上、為了容量開好幾份、重啟掛掉的那份,並靠佈署新映像來升級。數個 VNF 常被依序連接,讓流量按選定的順序流經它們——服務串接——例如先防火牆、再負載平衡器、再流量塑形器。
為什麼重要:VNF 正是讓網路中段變得有彈性、可程式化,而非固定在硬體裡的關鍵,這也是 NFV 的全部用意。但誠實的提醒是真的。在通用 CPU 上以軟體做封包處理,每個封包通常比特製 ASIC 更慢、更耗電,所以負載沉重的 VNF 需要細心的效能工程。而且 VNF 繼承了軟體與伺服器的故障模式(崩潰的行程、同一台主機上吵鬧的鄰居),所以韌性必須靠冗餘與監控刻意設計進去,不能憑空假設。
維運者不用實體的負載平衡設備,而是把一個負載平衡 VNF 當成容器來跑。當促銷把流量推高,編排器再啟動同一個 VNF 的三份副本,把負載分散到它們之間;事後再縮回一份。每份副本都是從同一映像啟動的相同軟體——容量是靠複製一支程式來增加,而不是靠買硬體。
一個網路功能,以可複製的軟體執行,按需求伸縮。
VNF 是被虛擬化的網路功能;NFV 則是這麼做的整體方法。別假設 VNF 自動就能達到硬體設備的吞吐量——CPU 上的軟體往往得靠快速封包 I/O 技術或硬體卸載才接近得了。