簡介
本文檔介紹NFVIS平台提供的虛擬網路方案,用於在企業和服務網路中通訊VNF。
採用元件
本檔案中的資訊是根據以下硬體和軟體元件:
- 運行NFVIS 4.7.1-FC4的ENCS5412
- 運行NFVIS 4.12.1-FC2的c8300 uCPE 1N20
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
NFVIS中的網路概述
內部管理網路(int-mgmt-net)和網橋(int-mgmt-br)在內部用於VNF監控,分配來自10.20.0.0/24子網的管理IP地址。
ENCS54XX平台
圖1.硬體交換機和WAN/LAN上行鏈路NIC內部連線
Catalyst 8200 uCPE
-
預設情況下,可以通過WAN埠或GE0/2 LAN埠訪問NFVIS以進行管理。
-
預設情況下,WAN網路(wan-net和wan2-net)和WAN網橋(wan-br和wan2-br)設定為啟用DHCP。預設情況下,GE0-0與WAN網橋關聯,GE0-1與WAN2網橋關聯。
-
Catalyst 8200 UCPE上的管理IP地址192.168.1.1可通過GE0-2訪問。
-
GE0-2與LAN網橋關聯。
-
建立內部管理網路(int-mgmt-net)和網橋(int-mgmt-br),並在內部用於系統監控。
圖2. 分配給8200 NIC的內部橋接和虛擬交換機
Catalyst 8300 uCPE 1N20
1.預設情況下可以通過FPGE(前面板Gigabit乙太網)WAN埠或通過GE0-2 LAN埠訪問NFVIS以進行管理
2.預設情況下,WAN網路(wan-net)和WAN網橋(wan-br)設定為啟用DHCP。預設情況下,GE0-0與WAN網橋相關聯
3.預設情況下會建立WAN網路(wan2-net)和WAN網橋(wan2-br),但不會與任何物理埠相關聯
4. GE0-2與LAN網橋關聯,所有其他埠與OVS不關聯
5. C8300-uCPE上的管理IP 192.168.1.1可通過GE0-2訪問
6.建立內部管理網路(int-mgmt-net)和網橋(int-mgmt-br),並在內部用於系統監控。
圖3. 分配給8300 NIC的內部橋接和虛擬交換機
網路虛擬化技術
開放式vSwitch(OVS)
Open vSwitch(OVS)是一種開源多層虛擬交換機,旨在通過程式擴展實現網路自動化,同時支援標準管理介面和協定,如NetFlow、sFlow、IPFIX、RSPAN、CLI、LACP和802.1ag。它廣泛用於大型虛擬化環境,尤其是使用虛擬機器管理程式來管理虛擬機器(VM)之間的網路流量。 它允許建立通過NFVIS介面直接管理的複雜網路拓撲和策略,為網路功能虛擬化提供多功能環境。
圖4.Linux核心中的OVS配置
OVS網橋
它使用虛擬網路網橋和流規則在主機之間轉發資料包。其行為類似於物理交換機,只是進行了虛擬化。
圖5.連線到wan-br網橋的2個VM或VNF的實施示例
上下文切換缺陷
當網路封包到達網路介面卡(NIC)時,會觸發中斷,該中斷是傳送至處理器的訊號,表示需要立即處理。CPU暫停其當前任務以處理中斷,該過程稱為中斷處理。在此階段,CPU在作業系統核心的控制下,將資料包從NIC讀取到記憶體中,並根據資料包的目的和用途決定後續步驟。目標是快速處理資料包或將資料包路由到其預期應用,從而最大限度地減少延遲並最大化吞吐量。
上下文切換是CPU從一個環境(上下文)中的任務切換到另一個環境的過程。在使用者模式和核心模式之間移動時,這一點尤其重要:
當應用程式需要執行需要核心級許可權的操作(例如讀取網路資料包)時,就會發生上下文切換。CPU從使用者模式轉換到核心模式以執行操作。一旦完成,另一情景交換機將CPU返回到使用者模式以繼續執行應用程式。此交換過程對於維護系統的穩定性和安全性至關重要,但會引入可能影響效能的開銷。
OVS主要在作業系統使用者空間運行,隨著資料吞吐量的增加,它可能會成為瓶頸。這是因為CPU需要更多的上下文開關才能移動到核心模式來處理資料包,從而降低了效能。 這種限制在高資料包速率或準確定時至關重要的環境中尤為明顯。 為了解決這些效能限制並滿足現代高速網路的需求,開發了DPDK(資料平面開發套件)和SR-IOV(單根I/O虛擬化)等技術。
資料平面開發套件(DPDK)
DPDK是一組庫和驅動程式,旨在加速各種CPU架構上的資料包處理工作負載。通過繞過傳統核心網路堆疊(避免上下文交換),DPDK可以顯著提高資料平面吞吐量,並降低延遲。這對於需要低延遲通訊的高吞吐量VNF特別有益,使NFVIS成為效能敏感型網路功能的理想平台。
圖6.傳統OVS(左側)和DPDK OVS(右側)上下文交換最佳化
NFVIS 3.10.1(ENCS)和3.12.2(其他平台)開始支援用於OVS的DPDK。
- SRIOV附近的服務鏈吞吐量,優於非DPDK OVS。
- VNF需要虛擬驅動程式。
- 支援的平台:
- ENCS 3.10.1及以上版本。
- UCSE、UCS-C、CSP5K 3.12.1及以上版本。
- 自4.12.1起支援的埠通道的DPDK。
- 資料包/流量捕獲:DPDK不支援。
- PNIC上的SPAN流量:DPDK不支援。
- 啟用OVS-DPDK後,無法將其作為單個功能禁用。禁用DPDK的唯一方法是出廠重置。
資料複製
傳統網路方法通常要求資料在到達VM記憶體中的目標之前被多次複製。例如,必須將資料包從NIC複製到核心空間,然後複製到使用者空間,由虛擬交換機(如OVS)進行處理,最後複製到虛擬機器記憶體。儘管DPDK通過繞過核心網路堆疊提供了效能改進,但每個複製操作都會產生延遲並增加CPU使用率。
這些開銷包括記憶體副本以及在將資料包轉發到VM之前在使用者空間中處理資料包所需的處理時間。PCIe Passthrough和SR-IOV通過允許物理網路裝置(如NIC)直接在多個VM之間共用,而不像傳統虛擬化方法那樣涉及主機作業系統,解決了這些瓶頸。
PCIe傳輸
此策略涉及繞過虛擬機器監控程式,以允許虛擬網路功能(VNF)直接訪問網路介面卡(NIC),從而獲得接近最大吞吐量的吞吐量。這種方法稱為PCI傳輸,它允許完全的網絡卡專用於訪客作業系統,而無需虛擬機器監控程式的干預。在此設定中,虛擬機器的運行方式與其直接連線到NIC。例如,使用兩個NIC卡時,每個NIC可以單獨分配給不同的VNF,從而提供直接訪問。
但是,此方法有一個缺點:如果只有兩個NIC可用且只由兩個獨立的VNF使用,則任何其他VNF(如第三個)將由於缺少專用的可用的NIC而沒有NIC訪問。 另一種解決方案涉及使用單根I/O虛擬化(SR-IOV)。
單根I/O虛擬化(SR-IOV)
是允許單個物理PCI裝置(如網路介面卡(NIC))顯示為多個獨立虛擬裝置的規範。此技術可讓虛擬機器直接訪問物理網路裝置,從而降低開銷並提高I/O效能。它通過將單個PCIe裝置劃分為多個虛擬片,每個虛擬片可分配給不同的VM或VNF,有效地解決了有限數量的NIC所帶來的限制。這些虛擬片(稱為虛擬功能(VF))允許在多個VNF之間共用NIC資源。物理功能(PF)是指促進SR-IOV功能的實際物理元件。
通過利用SR-IOV,NFVIS可以將專用NIC資源分配給特定VNF,通過促進網路資料包的直接記憶體訪問(DMA)直接進入各自的VM記憶體,確保高效能和低延遲。此方法將CPU的參與降至最低,只處理資料包,從而降低CPU的使用率。這對於需要保證頻寬或具有嚴格效能要求的應用程式尤其有用。
圖7.通過硬體功能分離NFVIS SR-IOV PCIe資源
實體功能(PF)
它們是功能齊全的PCIe功能,指的是提供特定網路功能的專用硬體盒;它們是功能齊全的PCIe功能,可以像任何其他PCIe裝置一樣被發現、管理和操作。物理功能包括可用於配置和控制PCIe裝置的SR-IOV功能。
虛擬功能(VF)
它們是精簡型功能,配置資源最少(輕量),僅專注於以簡單的PCIe功能處理I/O。每個虛擬功能都源自一個物理功能。裝置硬體限制了虛擬功能的可能數量。一個乙太網埠(物理裝置)可以對應於許多虛擬功能,然後這些虛擬功能可以分配給不同的虛擬機器。
支援NFVIS的硬體上SR-IOV加速的建議驅動程式
平台 |
網絡卡 |
NIC驅動程式 |
ENCS 54XX |
背板交換器 |
i40e |
ENCS 54XX |
GE0-0和GE0-1 |
IGB |
Catalyst 8200 uCPE |
GE0-0和GE0-1 |
ixgbe |
Catalyst 8200 uCPE |
GE0-2和GE0-5 |
IGB |
DPDK和SR-IOV的使用案例
DPDK優先順序
特別是在網路流量主要以東 — 西方式流動的情況下(這意味著它位於同一伺服器中),DPDK的效能優於SR-IOV。其基本原理很簡單:當流量在伺服器內部管理而不需要訪問NIC時,SR-IOV不會提供任何優勢。事實上,SR-IOV可能會因不必要地擴展流量路徑和消耗NIC資源而導致效率低下。因此,對於內部伺服器流量管理,利用DPDK是更有效的選擇。
圖8.East-to-West流量中的DPDK和SR-IOV資料包遍歷
SR-IOV首選項
在網路流量從北向南、甚至從東向西流動但具體是在伺服器之間流動的情況下,使用SR-IOV比DPDK更具優勢。對於伺服器到伺服器的通訊尤其如此。鑑於此類流量不可避免地必須通過NIC,選擇使用DPDK增強的OVS可能會不必要地帶來額外的複雜性和潛在的效能限制。因此,在這些情況下,SR-IOV會成為首選方案,為處理伺服器間流量提供直接而有效的途徑。
圖9.北向南流量中的DPDK和SR-IOV資料包遍歷
提示:請記住,通過將SR-IOV與DPDK整合到虛擬網路功能(VNF)中,可以增強基於SR-IOV的設定的效能,但不包括DPDK與OVS結合使用的場景(如前所述)。
組態
啟用DPDK
要從GUI啟用DPDK,您必須導航到Configuration > Virtual Machine > Networking > Networks。進入選單後,按一下交換機啟用該功能
圖10GUI上提供的幻燈片按鈕用於DPDK啟用
對於CLI,您必須在配置模式下從全域性系統設定中啟用它。
nfvis(config)# system settings dpdk enable
注意:除非從NFVIS執行出廠重置,否則無法禁用DPDK。
建立新網路並將其與新的OVS網橋關聯
導覽至Configuration > Virtual Machine > Networking > Networks。進入「網路」(Networks)頁面後,按一下「網路」(Networks)表格左上方的加號(+),
圖11NFVIS GUI中的網路表檢視
命名網路並關聯到新網橋。VLAN和介面繫結選項取決於網路基礎設施需求。
圖12.在NFVIS GUI中建立虛擬網路的「新增網路」模式
按一下submit按鈕後,必須能夠檢視附加到Networks表的新建立的網路。
圖 13.NFVIS GUI中的「刷新圖示」位於右上角的網路表檢視(以紅色突出顯示)
註:如果在表中未觀察到新網路,請按一下右上角的刷新按鈕或刷新整個頁面。
如果從CLI執行操作,則每個網路和網橋都從配置模式建立,則工作流程與GUI版本相同。
1.建立新網橋。
nfvis(config)# bridges bridge inter-vnf-br2
nfvis(config-bridge-inter-vnf-br2)# commit
2.建立新網路並將其與以前建立的網橋關聯
nfvis(config)# networks network inter-vnf-net2 bridge inter-vnf-br2 trunk true native-vlan 1
nfvis(config-network-inter-vnf-net2)# commit
連線VNF
要從網路拓撲或單個VFN部署開始,必須導航到Configuration > Deploy。 您可以從選擇清單將VM或容器拖動到拓撲構建區域,以開始建立虛擬化基礎架構。
圖14示例部署為c8000v-1連線Ge0-0 SR-IOV直通和自定義OVS間vnf網路,c8000v-2有2個OVS連線將其與c8000v-1和c8000v-3通訊,c8000v-3有1個OVS內vnf連線,允許與c8000v-2通訊,以及通過Ge0-2 LAN埠網橋(OVS的退出介面。
可以從CLI從映像建立相同拓撲的位置:
c8000v-1配置:
nfvis(config)# vm_lifecycle tenants tenant admin deployments deployment c8000v-1 vm_group c8000v-1 image c8000v-universalk9_16G_serial.17.09.04a.tar.gz flavor C8000V-small
nfvis(config-vm_group-c8kv_group)# interfaces interface 0 network GE0-0-SRIOV-1
nfvis(config-interface-0)# exit
nfvis(config-vm_group-c8kv_group)# interfaces interface 1 network inter-vnf-net
nfvis(config-interface-1)# exit
nfvis(config-vm_group-c8kv_group)# port_forwarding port ssh protocol TCP vnf_port 22 external_port_range 2228 2228
nfvis(config-external_port_range-2228/2228)# commit
c8000v-2配置:
nfvis(config)# vm_lifecycle tenants tenant admin deployments deployment c8000v-2 vm_group c8000v-2 image c8000v-universalk9_16G_serial.17.09.04a.tar.gz flavor C8000V-small
nfvis(config-vm_group-c8kv_group)# interfaces interface 0 network inter-vnf-net
nfvis(config-interface-0)# exit
nfvis(config-vm_group-c8kv_group)# interfaces interface 1 network inter-vnf-net2
nfvis(config-interface-1)# exit
nfvis(config-vm_group-c8kv_group)# port_forwarding port ssh protocol TCP vnf_port 22 external_port_range 2229 2229
nfvis(config-external_port_range-2229/2229)# commit
c8000v-3配置:
nfvis(config)# vm_lifecycle tenants tenant admin deployments deployment c8000v-3 vm_group c8000v-3 image c8000v-universalk9_16G_serial.17.09.04a.tar.gz flavor C8000V-small
nfvis(config-vm_group-c8kv_group)# interfaces interface 0 network inter-vnf-net2
nfvis(config-interface-0)# exit
nfvis(config-vm_group-c8kv_group)# interfaces interface 1 lan-net
nfvis(config-interface-1)# exit
nfvis(config-vm_group-c8kv_group)# port_forwarding port ssh protocol TCP vnf_port 22 external_port_range 2230 2230
nfvis(config-external_port_range-2230/2230)# commit
相關文章和文檔
企業NFV深入探討和實驗操作
使用USB安裝企業NFVIS