架構和功能 vSwitch 廣泛套用在基於IaaS(Infrastructure as a Service,基礎架構即服務)的Internet服務中。通過運行在虛擬化平台上的虛擬交換機,為本台物理機上的VM(Virtual Machine,虛擬機)提供二層網路接入和部分三層網路功能。VM(虛擬機)通過vSwitch來連線網路,vSwitch則通過物理主機上的物理網卡作為上行鏈路與外界網路進行連線,如vSwitch示意圖所示:
vSwitch示意圖
跟物理主機一樣,每個VM有自己的虛擬網卡(virtual NIC),每個虛擬網卡有自己的MAC地址和IP位址。ABCDE是vSwitch上的虛擬連線埠vPort(virtual Port),該虛擬交換機連線虛擬網卡和物理網卡,將虛擬機上的數據報文從物理網卡轉發出去,並從物理網卡上接收報文轉發給對應的虛擬網卡。根據需要,vSwitch還可以支持安全控制、VLAN、網路監控、連線埠鏡像、QoS、自動化網管等功能。
每個vSwitch與物理交換機一樣,包含一定數量的連線埠,相同特性的虛擬連線埠vPort集合就是VLAN(或稱連線埠組),不同VLAN內的報文在傳輸時是相互隔離的,各VLAN內的用戶不能和其它VLAN內的用戶直接通信。如果不同VLAN要進行通信,則需要通過路由器、三層交換機等三層設備。
主要套用 目前業界套用比較廣泛的vSwitch,開源的有Open vSwitch,商用的有VMware的VSS(vSphere Standard vSwitch,vSphere標準虛擬交換機)和VDS(vSphere Distributed vSwitch,vSphere分散式虛擬交換機)、Cisco的Nexus 1000V、微軟的Hyper-V虛擬交換機等。
Open vSwitch示意圖
vSwitch的典型套用是Open vSwitch(參見中文百科Open vSwitch詞條),如圖所示。Open vSwitch採用開源模式,並充分考慮了在不同虛擬化平台之間的移植性,使用與平台無關的C語言開發,遵循Apache 2.0許可,無論是自研還是商用都可以滿足基本需求。Open vSwitch目標:做一個具有產品級質量的多層虛擬交換機。通過可程式擴展,可以實現大規模網路的自動化(配置、管理、維護)。它支持現有標準管理接口和協定(如NetFlow、sFlow、IPFIX、RSPAN、CLI、LACP、802.1ag等)。Open vSwitch解決了訪問策略、網路隔離、流量監控、數據包分析、QoS配置、流量最佳化等。
安全(Security):Open vSwitch通過在Host上虛擬出一個軟體交換機,相當於在物理交換機上級聯了一台交換機,所有VM通過級聯交換機接入,能夠像配置物理交換機一樣把同一台Host上的眾多VM分配到不同VLAN中去,實現隔離和流量過濾。
QoS:在共享同一個物理網卡的眾多VM中,我們期望給每台VM配置不同的速度和頻寬,以保證核心業務VM的網路性能。通過在Open vSwitch連線埠上給各個VM配置QoS,可以實現物理交換機的traffic queuing(流量排隊)和traffic shaping(流量整形)功能。
監控(Monitoring):(1)流量監控:Open vSwitch通過Netflow、sFlow技術對數據包採樣,記錄關鍵域,發往Analyzer處理,進而實現包括網路監控、套用軟體監控、用戶監控、網路規劃、安全分析、審計結算、以及網路流量資料庫分析和挖掘在內的各項操作。(2)數據包分析:當對某一連線埠的數據包感興趣時,通過配置把該連線埠的數據包複製轉發到指定連線埠,通過抓包工具進行分析。Open vSwitch支持SPAN、RSPAN和GRE-tunneled mirrors。
自動控制(Automated Control):使用OpenFlow協定等,擴展虛擬化網路管理功能。