伺服器虛擬化可以讓多個伺服器執行個體同時在單一實體主機上執行;且伺服器執行個體還可以彼此獨立。 每部虛擬機器的基本操作方式就像是實體電腦上唯一執行的伺服器一樣。
網路虛擬化提供類似的功能,多個虛擬網路 (可能具備重疊 IP 位址) 在相同實體網路基礎結構上執行,而且每個虛擬網路的操作方式就像是共用網路基礎結構上唯一執行的虛擬網路一樣。 圖 1 顯示此關係。
圖 1:伺服器虛擬化與網路虛擬化
Hyper-V 網路虛擬化概念
在 Hyper-V 網路虛擬化 (HNV) 中,客戶或租用戶會定義為部署在企業或資料中心一組 IP 子網路的「擁有者」。 客戶可以是私人資料中心內設有多個部門或業務單位 (需要網路隔離) 的公司或企業,或是服務提供者所裝載公用資料中心的租用戶。 每個客戶都可以在數據中心內有一或多個 虛擬網路 ,而每個虛擬網路都包含一或多個 虛擬子網。
Windows Server 2016 中提供兩個 HNV 實作:HNVv1 和 HNVv2。
HNVv1
HNVv1 與 Windows Server 2012 R2 和 System Center 2012 R2 Virtual Machine Manager (VMM) 相容。 HNVv1 的設定依賴 WMI 管理和 Windows PowerShell Cmdlet (透過 System Center VMM 輔助) 來定義隔離設定和客戶位址 (CA) - 虛擬網路 - 實體位址 (PA) 對應和路由。 Windows Server 2016 中未將其他功能新增至 HNVv1,且未規劃任何新功能。
- SET Teaming 和 HNV V1 在平台層級並不相容。
o 若要使用 HA NVGRE 閘道,使用者必須使用 LBFO 小組或無小組。 Or
o 使用由網路控制器部署的閘道,並搭配使用 SET 組隊的交換器。
HNVv2
HNVv2 中包含大量新功能,其使用 Hyper-V 交換器中的 Azure 虛擬篩選平台 (VFP) 轉送延伸模組來進行實作。 HNVv2 與 Microsoft Azure Stack 完全整合,其中包含軟體定義網路 (SDN) 堆疊中的新網路控制卡。 虛擬網路策略是透過 Microsoft 網路控制器 並使用 RESTful Northbound (NB) API 來定義,再透過多個 Southbound 訪問介面(SBI),包括 OVSDB,將配置傳送至主機代理程式。 主機代理程式會在 Hyper-V 交換器的 VFP 延伸模組中設定原則,並在該處加以強制執行。
Important
本主題著重於 HNVv2。
虛擬網路
每個虛擬網路都包含一或多個虛擬子網路。 虛擬網路會形成隔離界限,虛擬網路內的虛擬機器只能彼此通訊。 傳統上,此隔離是使用具有隔離 IP 位址範圍和 802.1q 標籤或 VLAN 識別碼的 VLAN 來強制執行。 但在 HNV 中,會透過 NVGRE 或 VXLAN 封裝來強制實施隔離,以建立覆疊網路,且不同客戶或租用戶之間的 IP 子網路可彼此重疊。
每個虛擬網路在主機上都有唯一的路由網域識別碼 (RDID)。 此 RDID 大致對應至資源識別碼,以識別網路控制卡中的虛擬網路 REST 資源。 虛擬網路 REST 資源會使用具有附加資源識別碼的統一資源識別項 (URI) 命名空間進行參考。
虛擬子網
虛擬子網路會針對相同虛擬子網路中的虛擬機器,實作第 3 層 IP 子網路語意。 虛擬子網路會形成廣播網域 (類似於 VLAN),並使用 NVGRE 租用戶網路識別碼 (TNI) 或 VXLAN 網路識別碼 (VNI) 欄位強制執行隔離。
每個虛擬子網路都屬於單一虛擬網路 (RDID),且會使用封裝封包標頭中的 TNI 或 VNI 金鑰來指派唯一的虛擬子網路識別碼 (VSID)。 VSID 在資料中心內必須是唯一的,且範圍從 4096 到 2^24-2。
虛擬網路和路由網域的主要優點在於允許客戶將他們自己的網路拓撲 (例如,IP 子網路) 帶到雲端。 圖 2 顯示的範例是 Contoso 公司擁有兩個獨立的網路:R&D 網路和銷售網路。 由於這兩個網路具有不同的路由網域識別碼,因此彼此無法互動。 也就是說,Contoso R&D 網路與 Contoso 銷售網路相互隔離,即使這兩者的擁有者都是 Contoso 公司。Contoso R&D Net 包含三個虛擬子網路。 請注意,RDID 和 VSID 在資料中心內都是唯一的。
圖 2:客戶網路和虛擬子網路
第 2 層轉送
在圖 2 中,VSID 5001 中的虛擬機器可透過 Hyper-V 交換器將其封包轉送至 VSID 5001 中的虛擬機器。 VSID 5001 中虛擬機器的傳入封包會傳送至 Hyper-V 交換器上特定的 VPort。 Hyper-V 交換器會對這些封包套用輸入規則 (例如 encap) 和對應項 (例如封裝標頭)。 接著,封包會轉送至 Hyper-V 交換器上的不同 VPort (如果目的地虛擬機器已連結至相同主機),或轉送至不同主機上的不同 Hyper-V 交換器 (如果目的地虛擬機器位於不同的主機上)。
第 3 層路由
同樣地,VSID 5001 中的虛擬機器可將其封包路由傳送至 VSID 5002 或 VSID 5003 中的 HNV 分散式路由器,這些路由器會存在每個 Hyper-V 主機的 VSwitch 中。 將封包遞送到 Hyper-V 交換器時,HNV 會將連入封包的 VSID 更新為目的地虛擬機器的 VSID。 只有當這兩個 VSID 位於相同 RDID 時才會發生此情況。 因此,具有 RDID1 的虛擬網路介面卡若不經過閘道,便無法將封包傳送至具有 RDID2 的虛擬網路介面卡。
Note
在上述封包流程說明中,「虛擬機器」這個術語實際上代表的是虛擬機器上的「虛擬網路介面卡」。 常見情況是虛擬機器只會有單一虛擬網路介面卡。 在這個情況下,「虛擬機器」和「虛擬網路介面卡」等字詞概念上都是代表同一件事。
每個虛擬子網路都會定義第 3 層 IP 子網路,而第 2 層 (L2) 廣播網域界限會與 VLAN 類似。 當虛擬機器廣播封包時,HNV 會使用單播複寫 (UR) 來製作原始封包的複本,並將目的地 IP 和 MAC 取代為位於相同 VSID 中的每個 VM 位址。
Note
當 Windows Server 2016 推出時,廣播和子網路多播將會使用單播複寫來實作。 不支援跨子網路多播路由和 IGMP。
除了做為廣播網域之外,VSID 還提供隔離功能。 HNV 中的虛擬網路介面卡會連線到 Hyper-V 交換器連接埠,此連接埠會將 ACL 規則直接套用至連接埠 (virtualNetworkInterface REST 資源) 或其所屬的虛擬子網路 (VSID)。
Hyper-V 交換器連接埠必須套用 ACL 規則。 此 ACL 可以是 ALLOW ALL、DENY ALL,或更具體地根據 5 元組(來源 IP、目的地 IP、來源連接埠、目的地連接埠、通訊協定)比對結果,只允許特定類型的流量。
Note
Hyper-V 交換器延伸模組無法在新的軟體定義網路 (SDN) 堆疊中使用 HNVv2。 HNVv2 是使用 Azure 虛擬篩選平台 (VFP) 交換器延伸模組來實作,無法與任何其他協力廠商交換器延伸模組搭配使用。
Hyper-V 網路虛擬化中的交換與路由
HNVv2 會實作正確的第 2 層 (L2) 切換和第 3 層 (L3) 路由語意,就像實體交換器或路由器的運作一樣。 當連線到 HNV 虛擬網路的虛擬機器嘗試與相同虛擬子網路 (VSID) 中的另一部虛擬機器建立連線時,必須先了解遠端虛擬機器的 CA MAC 位址。 如果來源虛擬機器 ARP 資料表中目的地虛擬機器的 IP 位址有 ARP 項目,則會使用這個項目中的 MAC 位址。 如果項目不存在,則來源虛擬機器會傳送 ARP 廣播,並要求傳回對應至目的地虛擬機器 IP 位址的 MAC 位址。 Hyper-V 交換器會攔截此要求,並將其傳送至主機代理程式。 主機代理程式會在其本機資料庫中尋找所要求目的地虛擬機器 IP 位址的對應 MAC 位址。
Note
做為 OVSDB 伺服器的主機代理程式會使用 VTEP 結構描述的變體來儲存 CA-PA 對應、MAC 資料表等等。
如果 MAC 位址可用,則主機代理程式會插入 ARP 回應,並將此回應傳回虛擬機器。 在虛擬機器的網路通訊堆疊具備所有必要的 L2 標頭資訊後,該訊框會傳送至 V-Switch 上對應的 Hyper-V 連接埠。 在內部,Hyper-V 交換器會依據指派給 V-Port 的 N 元組比對規則檢查此訊框,並根據這些規則對該訊框套用特定的轉換。 最重要的是,視網路控制卡所定義的原則而定,會套用一組封裝轉換以使用 NVGRE 或 VXLAN 來建構封裝標頭。 根據主機代理程式所設定的原則,使用 CA-PA 對應來判定目的地虛擬機器所在之 Hyper-V 主機的 IP 位址。 Hyper-V 交換器可確保正確的路由規則和 VLAN 標籤會套用至外部封包,使其到達遠端 PA 位址。
如果連線到 HNV 虛擬網路的虛擬機器想要與位於不同虛擬子網路 (VSID) 的虛擬機器建立連線,則封包就需要據此進行路由。 HNV 假設星形拓撲,其中 CA 空間中只有一個 IP 位址,用來做為下一個躍點以觸達所有 IP 首碼 (這表示一個預設路由/閘道)。 目前,這會對單一預設路由強制執行限制,且不支援非預設路由。
虛擬子網路間的路由
在實體網路中,IP 子網路是第二層 (L2) 網域,其中的電腦 (虛擬和實體) 可彼此直接通訊。 L2 網域是廣播網域,ARP 表項(IP 與 MAC 位址的對應關係)是透過在所有介面上廣播的 ARP 要求來學得,而 ARP 回應則會傳回發出要求的主機。 電腦會使用 ARP 回應中所學到的 MAC 資訊,以完整建構 L2 框架,包括乙太網路標頭。 不過,如果 IP 位址位於不同的 L3 子網路中,ARP 要求就不會跨越此 L3 界限。 相反地,具有來源子網路內 IP 位址的 L3 路由器介面(下一跳或預設閘道)必須以其自身的 MAC 位址回應這些 ARP 請求。
在標準 Windows 網路中,系統管理員可以建立靜態路由,並將這些路由指派給網路介面。 此外,「預設閘道」通常會設定為某個介面上的下一跳 IP 位址,而目的地為預設路由 (0.0.0.0/0) 的封包會透過該介面傳送。 如果沒有任何特定路由存在,則封包會傳送至此預設閘道。 這通常是實體網路的路由器。 HNV 會使用屬於每個主機的內建路由器,並在每個 VSID 中都有介面,可建立虛擬網路的分散式路由器。
由於 HNV 會假設星型拓撲,因此 HNV 分散式路由器會做為所有位於相同 VSID 網路的虛擬子網路之間的單一預設閘道。 做為預設閘道的位址預設為 VSID 中最低的 IP 位址,並且會指派給 HNV 分散式路由器。 此分散式路由器可有效地讓 VSID 網路中的所有流量正確路由,因為每個主機都不需要媒介就能直接將流量路由到適當的主機。 當位於同一部實體主機上的兩個虛擬機器處於同一個 VM 網路中、但屬於不同的虛擬子網路時,這種情況尤其如此。 您將會在本節稍後看到,封包完全不需要離開實體主機。
PA 子網路間的路由
相較於為每個虛擬子網路配置一個 PA IP 位址的 HNVv1,HNVv2 現在會針對每個交換器內嵌小組 (SET) NIC 小組成員使用一個 PA IP 位址。 預設部署會假設有兩個 NIC 小組,並為每個主機指派兩個 PA IP 位址。 單一主機被指派了多個 PA IP 位址,這些位址來自同一 VLAN 上的同一個 Provider (PA) 邏輯子網路。 位於同一個虛擬子網路中的兩個租戶 VM,確實可能位於兩台不同的主機上,而這兩台主機分別連接到兩個不同的提供者邏輯子網路。 HNV 會根據 CA-PA 對應來建構封裝封包的外部 IP 標頭。 不過,它會依賴主機 TCP/IP 堆疊對預設 PA 閘道執行 ARP 解析,然後根據 ARP 回應建立外層乙太網路標頭。 通常,此 ARP 回應來自實體交換器或主機所連線 L3 路由器上的 SVI 介面。 因此,HNV 會依賴 L3 路由器,在提供者邏輯子網路/VLAN 之間路由傳送封裝的封包。
在虛擬網路外路由
大多數客戶部署通常都需要從 HNV 環境到不屬於 HNV 環境之資源的通訊。 這樣必須要有網路虛擬化閘道,才允許在這兩種環境之間通訊。 需要 HNV 閘道的基礎結構包括私人雲端和混合式雲端。 基本上,需要 HNV 閘道,才能在內部與外部 (實體) 網路 (包括 NAT) 之間,或在使用 IPSec VPN 或 GRE 通道的不同網站和/或雲端 (私人或公用) 之間進行第 3 層路由傳送。
閘道可以有不同的實際規格。 這些閘道可以部署在 Windows Server 2016 上、整合至作為 VXLAN 閘道的機櫃頂端(TOR)交換器中、透過負載平衡器所公告的虛擬 IP(VIP)來存取、整合至其他現有的網路設備中,或者作為全新的獨立式網路設備。
如需 Windows RAS 閘道選項的詳細資訊,請參閱 RAS 閘道。
封包封裝
HNV 中的每個虛擬網路介面卡都會與下列兩個 IP 位址相關聯:
客戶位址 (CA) 根據客戶的內部網路基礎結構指派的IP位址。 這個位址可讓客戶和虛擬機器交換網路流量,就像其尚未從公用或私人雲端移除一樣。 虛擬機器可以看見 CA,而客戶也可以連線至該 CA。
提供者位址 (PA) 主機提供者或資料中心系統管理員根據其實體網路基礎結構指派的 IP 位址。 PA 會出現在網路的封包中,這些封包會與執行裝載虛擬機器之 Hyper-V 的伺服器進行交換。 您可以在實體網路上看見 PA,但虛擬機器看不見該 PA。
CA 會維護客戶的網路拓樸;該拓樸已虛擬化,並與實際的底層實體網路拓樸及位址解耦,而這是由 PA 所實作。 下圖顯示網路虛擬化之後的虛擬機器 CA 和網路基礎結構 PA 之間的概念性關係。
圖 6:實體基礎結構的網路虛擬化概念性圖表
在這個圖中,客戶虛擬機器正在 CA 空間中傳送資料封包,透過其自己的虛擬網路或「通道」來周遊實體網路基礎架構。 在上述範例中,通道可以視為 Contoso 與 Fabrikam 資料封包的「信封」,上面含有綠色的出貨標籤 (PA 位址),該「信封」會從左邊的來源主機遞送到右邊的目的地主機。 重點在於主機如何判定對應於 Contoso 與 Fabrikam CA 的「寄送地址」(PA)、如何在封包外加上「信封」,以及目的地主機如何拆開封包並將其正確遞送至 Contoso 與 Fabrikam 的目的地虛擬機器。
這個簡單的比喻可以突顯網路虛擬化的重點概念:
每個虛擬機器 CA 都對應至實體主機 PA。 而多個 CA 可以和同一 PA 建立關聯。
虛擬機器會在 CA 位址空間中傳送資料封包,而這些封包會根據映射關係被放入包含 PA 來源與目的位址配對的「信封」中。
CA-PA 對應必須能夠讓主機區分不同客戶虛擬機器的封包。
如此一來,將網路虛擬化的機制就是將虛擬機器使用的網路位址虛擬化。 網路控制卡負責位址對應,而主機代理程式會使用 MS_VTEP 結構描述來維護對應資料庫。 下一節將說明實際的位址虛擬化機制。
透過位址虛擬化進行網路虛擬化
HNV 會使用網路虛擬化泛型路由封裝 (NVGRE) 或虛擬可延伸區域網路 (VXLAN) 來實現覆疊租用戶網路。 VXLAN 為預設值。
虛擬可延伸區域網路 (VXLAN)
虛擬 eXtensible 局域網路 (VXLAN) (RFC 7348) 協議已在市場中廣泛採用,並且獲得 Cisco、Brocade、Arista、Dell、HP 等廠商的支援。 VXLAN 通訊協定會使用 UDP 做為傳輸。 VXLAN 的 IANA 指派 UDP 目的連接埠為 4789,而 UDP 來源連接埠則應為根據內層封包資訊計算出的雜湊值,以用於 ECMP 分流。 在 UDP 標頭之後,VXLAN 標頭會附加至封包,其中包含保留的 4 位元組欄位,隨後接著 VXLAN 網路識別碼 (VNI) - VSID - 的 3 位元組欄位,隨後接著另一個保留的 1 位元組欄位。 在 VXLAN 標頭之後,會附加原始 CA L2 框架 (不含 CA 乙太網路框架 FCS)。
一般路由封裝 (NVGRE)
這個網路虛擬化機制使用 Generic Routing Encapsulation (NVGRE) 做為通道標頭的一部分。 在 NVGRE 中,虛擬機器的封包會封裝於其他封包內部。 這個新封包的標頭除了虛擬子網路識別碼之外,還擁有適當的來源與目的地 PA IP 位址,虛擬子網路識別碼儲存於 GRE 標頭的索引鍵欄位中,如圖 7 所示。
圖 7:網路虛擬化 - NVGRE 封裝
虛擬子網路識別碼可讓主機針對任何特定封包識別客戶的虛擬機器,即使封包中的 PA 和 CA 可能重疊也是如此。 這樣可讓相同主機上的所有虛擬機器共用單一 PA,如圖 7 所示。
共用 PA 對網路延展性有很大的影響。 網路基礎結構需要知道的 IP 和 MAC 位址數目會大幅減少。 例如,如果每部終端主機平均擁有 30 部虛擬機器,則網路基礎結構需要知道的 IP 和 MAC 位址數目會降低 30 倍。封包中內嵌的虛擬子網路識別碼也能夠輕易地將封包相互關聯到實際的客戶。
Windows Server 2012 R2 的 PA 共用機制是每個主機上的每個 VSID 對應一個 PA。 對於 Windows Server 2016,配置方式是 NIC 小組中的每個成員各有一個 PA。
使用 Windows Server 2016 及更新版本,HNV 可以完全立即支援 NVGRE 和 VXLAN,不需要升級或購買新的網路硬體,例如 NIC (網路介面卡)、交換器或路由器。 這是因為線上的這些封包是 PA 空間中的一般 IP 封包,這與現今的網路基礎架構相容。 不過,若要獲得最佳效能,請使用支援工作卸載的最新驅動程式所支援的 NIC。
多租戶部署範例
下圖顯示位於雲端資料中心中的兩個客戶的範例部署,其 CA-PA 關係由網路原則定義。
圖 8:多租戶部署範例
討論圖 8 中的範例。 遷移至託管提供者的共用 IaaS 服務之前:
Contoso Corp 在 IP 位址 10.1.1.11 執行名為 SQL 的 SQL Server ,並在 IP 位址 10.1.1.12 執行名為 Web 的 Web 伺服器,Web 伺服器使用 SQL Server 進行資料庫交易。
Fabrikam Corp 執行了一個名為 SQL 的 SQL Server,並指派 IP 位址 10.1.1.11,以及名為 Web 的網頁伺服器,也會在 IP 位址 10.1.1.1.12 使用其 SQL Server 進行資料庫交易。
我們將假設主機服務提供者先前已透過網路控制器建立提供者 (PA) 邏輯網路,使其對應其實體網路拓撲。 網路控制器會從主機所連線之邏輯子網路的 IP 首碼中配置兩個 PA IP 位址。 網路控制卡也會指出套用 IP 位址的適當 VLAN 標籤。
Contoso Corp 和 Fabrikam Corp 接著使用網路控制器,建立各自的虛擬網路和子網路,而這些網路和子網路是以主機代管服務提供者所指定的提供者 (PA) 邏輯網路為基礎。 Contoso Corp 和 Fabrikam Corp 會將各自的 SQL Server 和 Web 伺服器移至相同的主機提供者共用 IaaS 服務,巧合的是,它們會在 Hyper-V 主機 1 和 Hyper-V 主機 2 上的 Web (IIS7) 虛擬機上執行 SQL 虛擬機。 所有虛擬機器都會保留原始的內部網路 IP 位址 (它們的 CA)。
這兩家公司都會由網路控制卡指派下列虛擬子網識別碼 (VSID),如下所示。 每個 Hyper-V 主機上的主機代理程式都會從網路控制卡接收配置的 PA IP 位址,並在非預設的網路區間中建立兩個 PA 主機 vNIC。 這些主機 vNIC 各自都會被指派一個網路介面,並在該介面上指派 PA IP 位址,如下所示:
Contoso Corp 的虛擬機 VSID 和 PA: VSID 為 5001,SQL PA 為 192.168.1.10,Web PA 為 192.168.2.20
Fabrikam Corp 的虛擬機 VSID 和 PA: VSID 為 6001,SQL PA 為 192.168.1.10,Web PA 為 192.168.2.20
網路控制器會將所有網路原則(包括 CA-PA 對應)下發至 SDN 主機代理程式,而該代理程式會將這些原則維護在持續性存放區中(即 OVSDB 資料庫資料表)。
當 Hyper-V 主機 2 上的 Contoso Corp Web 虛擬機器 (10.1.1.12) 在 10.1.1.11 建立 SQL Server 的 TCP 連線時,會發生下列狀況:
VM 透過 ARP 查詢 10.1.1.11 的目的地 MAC 位址
vSwitch 中的 VFP 延伸模組會攔截此封包,並將其傳送至 SDN 主機代理程式
SDN 主機代理程式會在其原則存放區中尋找 10.1.1.11 的 MAC 位址
如果找到 MAC 位址,主機代理程式會將 ARP 回應封包回傳給 VM。
如果找不到 MAC,則不會傳送任何回應,且 VM 中 10.1.1.11 的 ARP 項目會標示為無法連線。
VM 現在會建構具有正確 CA 乙太網路和 IP 標頭的 TCP 封包,並將其傳送至 vSwitch
vSwitch 中的 VFP 轉送延伸模組會根據接收到此封包的來源 vSwitch 連接埠所指派的 VFP 層(如下所述)來處理此封包,並在 VFP 統一流量表中建立新的流項目
VFP 引擎會根據 IP 和乙太網路標頭,為每個層 (例如虛擬網路層) 執行規則比對或流程表查閱。
虛擬網路層中的相符規則會參考 CA-PA 對應空間,並執行封裝。
封裝類型 (VXLAN 或 NVGRE) 會與 VSID 一起在 VNet 層中進行指定。
在 VXLAN 封裝情況下,會建構一個外層 UDP 標頭,並在 VXLAN 標頭中將 VSID 設為 5001。 外部 IP 標頭會根據 SDN Host Agent 的原則存放區建立,其來源與目的 PA 位址分別指定為 Hyper-V 主機 2 (192.168.2.20) 和 Hyper-V 主機 1 (192.168.1.10)。
此封包接著會流向 VFP 中的 PA 路由層。
VFP 中的 PA 路由層會參考用於 PA 空間流量和 VLAN 識別碼的網路區間,並使用主機的 TCP/IP 堆疊,正確地將 PA 封包轉送至 Hyper-V 主機 1。
收到封裝封包時,Hyper-V 主機 1 會在 PA 網路區間中接收封包,並將其轉送至 vSwitch。
VFP 會透過其 VFP 層處理封包,並在 VFP 整合流程表中建立新的流程項目。
VFP 引擎會比對虛擬網路層中的輸入規則,並去除外部封裝封包的乙太網路、IP 和 VXLAN 標頭。
接著,VFP 引擎會將封包轉送至目的地 VM 所連線的 vSwitch 連接埠。
Fabrikam Corp Web 與 SQL 虛擬機之間流量的類似流程會使用 Fabrikam Corp 的 HNV 政策設定。因此,透過 HNV,Fabrikam Corp 和 Contoso Corp 虛擬機的互動就如同它們位於原本的內部網路中一樣。 即使它們使用相同的 IP 位址,也絕對無法彼此互動。
個別的位址 (CA 和 PA)、Hyper-V 主機的原則設定,以及輸入和輸出虛擬機器流量 CA 和 PA 之間的位址轉譯,使用 NVGRE 金鑰或 VLXAN VNID 來隔離這些伺服器組。 此外,虛擬化對應和轉換會分隔實體網路基礎架構與虛擬網路架構。 雖然 Contoso SQL 和 Web 和 Fabrikam SQL 和 Web 位於自己的 CA IP 子網中(10.1.1/24),但其實體部署分別發生在不同 PA 子網的兩部主機上,分別是 192.168.1/24 和 192.168.2/24。 這暗示跨子網路的虛擬機器佈建和即時移轉可以透過 HNV 執行。
Hyper-V 網路虛擬化架構
在 Windows Server 2016 中,HNVv2 是使用 Azure 虛擬篩選平台 (VFP) 進行實作,這是 Hyper-V 交換器內的 NDIS 篩選延伸模組。 VFP 的核心概念在於,它是一個 Match-Action 流程引擎,並向 SDN 主機代理程式公開內部 API,以設定網路原則。 SDN 主機代理程式本身會透過 OVSDB 和 WCF SouthBound 通訊通道從網路控制卡接收網路原則。 不僅虛擬網路原則(例如 CA-PA 對應)會透過 VFP 進行設定,其他原則(例如 ACL、QoS 等)也同樣如此。
vSwitch 和 VFP 轉送延伸模組的物件階層如下:
vSwitch
外部 NIC 管理
NIC 硬體卸載
全域轉送規則
Port
髮夾的輸出轉送層
映射和 NAT 集區的位址清單
整合流程表
VFP 層
流程表
Group
規則
- 規則可以引用空間
在 VFP 中,會為每個原則類型 (例如虛擬網路) 建立一個圖層,且為一組一般規則/流程表。 在將特定規則指派給該層以實作這類功能之前,其沒有任何內建功能。 每個圖層都會被指派一個優先順序,並依優先順序由低到高指派給連接埠。 規則主要會根據方向和 IP 位址系列而組織成群組。 群組也會獲指派優先順序,且一個群組中的規則最多可以符合一個指定的流程。
VSwitch 與 VFP 延伸模組的轉送邏輯如下所示:
輸入處理 (從傳入連接埠封包的觀點來看為輸入)
Forwarding
出口處理(從封包離開連接埠的角度來看為出口)
VFP 支援 NVGRE 和 VXLAN 封裝類型的內部 MAC 轉送,以及外部 MAC VLAN 型轉送。
VFP 擴充功能有封包傳遞的慢速路徑和快速路徑。 流量中的第一個封包必須依序通過每一層的所有規則群組,並執行規則查找,而這是一項成本高昂的操作。 不過,一旦流程在包含動作清單 (根據符合的規則) 的整合流程表中進行註冊之後,所有後續封包都會根據整合流程表項目進行處理。
HNV 原則是由主機代理程式進行程式設計。 每個虛擬機器網路介面卡都是利用 IPv4 位址來設定。 虛擬機器將使用 CA 來彼此通訊,而它們會存在於來自虛擬機器的 IP 封包中。 HNV 會根據儲存在主機代理程式資料庫中的網路虛擬化原則,將 CA 框架封裝在 PA 框架中。
圖 9:HNV 架構
Important
HNVv2 包含 vfpctrl.exe 作為 VFP 診斷的工具。 管理員應僅在 Microsoft 支援服務 的指導下使用此工具。 任何其他 vfpctrl.exe 的使用都不被支援,可能導致系統不穩定或安全受損,使 Hyper-V 主機容易受到虛擬機攻擊。
Summary
雲端式資料中心可以提供許多優點,例如,改善的延展性和較佳的資源使用率。 若要了解這些潛在優點,需要具備基本上可以在動態環境中處理多組織用戶共享延展性問題的技術。 HNV 的設計就是要解決這些問題,同時透過分離實體網路拓撲的虛擬網路拓撲來提升資料中心的運作效率。 HNV 會以現有的標準為基礎,在現今的資料中心內執行,並使用您現有的 VXLAN 基礎結構運作。 使用 HNV 的客戶現在可以將他們的資料中心合併到私人雲端,或是將他們的資料中心流暢地擴充到含有混合式雲端的主機伺服器提供者環境。
另請參閱
若要深入了解 HNVv2,請參閱下列連結:
| 內容類型 | References |
|---|---|
| 社群資源 |
-
私人雲端架構部落格 - 詢問問題:cloudnetfb@microsoft.com |
| RFC |
-
NVGRE 草稿 RFC - VXLAN - RFC 7348 |
| 相關技術 | 如需 Windows Server 2012 R2 中 Hyper-V 網路虛擬化的技術詳細資料,請參閱 Hyper-V 網路虛擬化技術詳細資料 - 網路控制站 |