共用方式為


Windows Server 的 Hyper-V 網路虛擬化技術詳細資料

伺服器虛擬化可以讓多個伺服器執行個體同時在單一實體主機上執行;且伺服器執行個體還可以彼此獨立。 每部虛擬機器的基本操作方式就像是實體電腦上唯一執行的伺服器一樣。

網路虛擬化提供類似的功能,多個虛擬網路 (可能具備重疊 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 Interfaces (SBI,包括 OVSDB) 將管線傳送到主機代理程式。 在強制執行 Hyper-V 交換器的 VFP 延伸模組中,主機代理程式程式原則。

    重要

    本主題著重於 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 的虛擬網路介面卡,而不需要周遊閘道。

注意

在上述封包流程說明中,「虛擬機器」這個術語實際上代表的是虛擬機器上的「虛擬網路介面卡」。 常見情況是虛擬機器只會有單一虛擬網路介面卡。 在這個情況下,「虛擬機器」和「虛擬網路介面卡」等字詞概念上都是代表同一件事。

每個虛擬子網路都會定義第 3 層 IP 子網路,而第 2 層 (L2) 廣播網域界限會與 VLAN 類似。 當虛擬機器廣播封包時,HNV 會使用單播複寫 (UR) 來製作原始封包的複本,並將目的地 IP 和 MAC 取代為位於相同 VSID 中的每個 VM 位址。

注意

當隨附 Windows Server 2016 時,將會使用單播複寫來實作廣播和子網路多播。 不支援跨子網路多播路由和 IGMP。

除了做為廣播網域之外,VSID 還提供隔離功能。 HNV 中的虛擬網路介面卡會連線到 Hyper-V 交換器連接埠,此連接埠會將 ACL 規則直接套用至連接埠 (virtualNetworkInterface REST 資源) 或其所屬的虛擬子網路 (VSID)。

Hyper-V 交換器連接埠必須套用 ACL 規則。 此 ACL 可以是 ALLOW ALL、DENY ALL 或更具體只允許以 5 元組 (來源 IP、目的地 IP、來源連接埠、目的地連接埠、通訊協定) 為基礎的特定類型流量比對。

注意

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 位址。

注意

做為 OVSDB 伺服器的主機代理程式會使用 VTEP 結構描述的變體來儲存 CA-PA 對應、MAC 資料表等等。

如果 MAC 位址可用,則主機代理程式會插入 ARP 回應,並將此回應傳回虛擬機器。 虛擬機器的網路堆疊具有所有必要的 L2 標頭資訊之後,框架就會傳送至 V 交換器上的對應 Hyper-V 連接埠。 在內部,Hyper-V 交換器會針對指派給 V-Port 的 N-Tuple 比對規則來測試此框架,並根據這些規則將特定轉換套用至框架。 最重要的是,視網路控制卡所定義的原則而定,會套用一組封裝轉換以使用 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 網路中,系統管理員可以建立靜態路由,並將這些路由指派給網路介面。 此外,「預設閘道」通常會設定為傳送預設路由 (0.0.0.0/0) 封包介面上的下一個躍點 IP 位址。 如果沒有任何特定路由存在,則封包會傳送至此預設閘道。 這通常是實體網路的路由器。 HNV 會使用屬於每個主機的內建路由器,並在每個 VSID 中都有介面,可建立虛擬網路的分散式路由器。

由於 HNV 會假設星型拓撲,因此 HNV 分散式路由器會做為所有位於相同 VSID 網路的虛擬子網路之間的單一預設閘道。 做為預設閘道的位址預設為 VSID 中最低的 IP 位址,並且會指派給 HNV 分散式路由器。 此分散式路由器可有效地讓 VSID 網路中的所有流量正確路由,因為每個主機都不需要媒介就能直接將流量路由到適當的主機。 當相同的實體主機上的兩部虛擬機器位於相同 VM 網路,但不同虛擬子網路時,這非常有用。 您將會在本節稍後看到,封包完全不需要離開實體主機。

PA 子網路之間的路由

相較於為每個虛擬子網路配置一個 PA IP 位址的 HNVv1,HNVv2 現在會針對每個交換器內嵌小組 (SET) NIC 小組成員使用一個 PA IP 位址。 預設部署會假設有兩個 NIC 小組,並為每個主機指派兩個 PA IP 位址。 單一主機具有從相同 VLAN 上的相同提供者 (PA) 邏輯子網路指派的 PA IP。 相同虛擬子網路中的兩個租用戶 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 會使用網路虛擬化 Generic Routing Encapsulation (NVGRE) 或虛擬 eXtensible 區域網路 (VXLAN) 來實作重疊租用戶網路。 VXLAN 為預設值。

虛擬 eXtensible 區域網路 (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)。

VXLAN 封包標頭

Generic Routing Encapsulation (NVGRE)

這個網路虛擬化機制使用 Generic Routing Encapsulation (NVGRE) 做為通道標頭的一部分。 在 NVGRE 中,虛擬機器的封包會封裝於其他封包內部。 這個新封包的標頭除了虛擬子網路識別碼之外,還擁有適當的來源與目的地 PA IP 位址,虛擬子網路識別碼儲存於 GRE 標頭的索引鍵欄位中,如圖 7 所示。

NVGRE 封裝

圖 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 Server (名為 SQL),在 IP 位址 10.1.1.12 上執行網頁伺服器 (名為 Web) 並使用 SQL Server 進行資料庫交易。

  • Fabrikam Corp 會執行 SQL Server (也稱為 SQL) 並指派 IP 位址 10.1.1.11,以及執行網頁伺服器 (也稱為 Web),IP 位址為 10.1.1.12 並使用 SQL Server 進行資料庫交易。

我們假設裝載服務提供者先前已透過網路控制卡建立提供者 (PA) 邏輯網路,以對應至其實體網路拓撲。 網路控制卡會從主機連線的邏輯子網路 IP 首碼配置兩個 PA IP 位址。 網路控制卡也會指出套用 IP 位址的適當 VLAN 標籤。

使用網路控制卡、Contoso Corp 和 Fabrikam Corp,然後建立其虛擬網路和子網路,由裝載服務提供者所指定的提供者 (PA) 邏輯網路所支援。 Contoso Corp 和 Fabrikam Corp 都各自將 SQL Server 和網頁伺服器移到相同裝載提供者的共用 IaaS 服務,且剛好都在 Hyper-V 主機 1 上執行 SQL 虛擬機器,以及在 Hyper-V 主機 2 上執行 Web (IIS7) 虛擬機器。 所有虛擬機器都會保留原始的內部網路 IP 位址 (它們的 CA)。

這兩家公司都會由網路控制卡指派下列虛擬子網識別碼 (VSID),如下所示。 每個 Hyper-V 主機上的主機代理程式都會從網路控制卡接收配置的 PA IP 位址,並在非預設的網路區間中建立兩個 PA 主機 vNIC。 網路介面會指派給指派 PA IP 位址的每個主機 vNIC,如下所示:

  • 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 連線時,會發生下列狀況:

  • 目的地 MAC 位址為 10.1.1.11 的 VM ARP

  • 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 引擎會根據 IP 和乙太網路標頭,為每個層 (例如虛擬網路層) 執行規則比對或流程表查閱。

  • 虛擬網路層中的相符規則會參考 CA-PA 對應空間,並執行封裝。

  • 封裝類型 (VXLAN 或 NVGRE) 會與 VSID 一起在 VNet 層中進行指定。

  • 在 VXLAN 封裝的情況下,外部 UDP 標頭是以 VXLAN 標頭中的 VSID 5001 所建構。 外部 IP 標頭是使用指派給 Hyper-V 主機 2 (192.168.2.20) 和 Hyper-V 主機 1 (192.168.1.10) 的來源和目的地 PA 位址,分別根據 SDN 主機代理程式的原則存放區來建構。

  • 此封包接著會流向 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 連接埠。

A similar process for traffic between the Fabrikam Corp WebSQL 虛擬機器間流量類似的程序會針對 Fabrikam Corp. 使用 HNV 原則設定。結果,Fabrikam Corp 和 Contoso Corp 虛擬機器透過 HNV 進行互動,如同在原始的內部網路一般。 即使它們使用相同的 IP 位址,也絕對無法彼此互動。

個別的位址 (CA 和 PA)、Hyper-V 主機的原則設定,以及輸入和輸出虛擬機器流量 CA 和 PA 之間的位址轉譯,使用 NVGRE 金鑰或 VLXAN VNID 來隔離這些伺服器組。 此外,虛擬化對應和轉換會分隔實體網路基礎架構與虛擬網路架構。 即使 Contoso SQLWeb 及 Fabrikam SQLWeb 都位於它們自己的 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 流程引擎,其內部 API 會向 SDN 主機代理程式公開以進行程式設計網路原則。 SDN 主機代理程式本身會透過 OVSDB 和 WCF SouthBound 通訊通道從網路控制卡接收網路原則。 不僅虛擬網路原則 (例如 CA-PA 對應),還有其他原則也是使用 VFP 進行程式設計,例如 ACL、QoS 等等。

vSwitch 和 VFP 轉送延伸模組的物件階層如下:

  • vSwitch

    • 外部 NIC 管理

    • NIC 硬體卸載

    • 全域轉送規則

    • Port

      • 髮夾的輸出轉送層

      • 對應和 NAT 集區的空間清單

      • 整合流程表

      • VFP 層

        • 流程表

        • 群組

        • 規則

          • 規則可以參考空格

在 VFP 中,會為每個原則類型 (例如虛擬網路) 建立一個圖層,且為一組一般規則/流程表。 在將特定規則指派給該層以實作這類功能之前,其沒有任何內建功能。 每個圖層都會獲指派優先順序,而圖層會藉由遞增優先順序指派給連接埠。 規則主要會根據方向和 IP 位址系列而組織成群組。 群組也會獲指派優先順序,且一個群組中的規則最多可以符合一個指定的流程。

VSwitch 與 VFP 延伸模組的轉送邏輯如下所示:

  • 輸入處理 (從傳入連接埠封包的觀點來看為輸入)

  • 轉寄

  • 輸出處理 (從離開連接埠封包的觀點來看為輸出)

VFP 支援 NVGRE 和 VXLAN 封裝類型的內部 MAC 轉送,以及外部 MAC VLAN 型轉送。

VFP 延伸模組具有封包周遊的慢速路徑和快速路徑。 流程中的第一個封包必須周遊每一層中的所有規則群組,並執行作業成本高昂的規則查閱。 不過,一旦流程在包含動作清單 (根據符合的規則) 的整合流程表中進行註冊之後,所有後續封包都會根據整合流程表項目進行處理。

HNV 原則是由主機代理程式進行程式設計。 每個虛擬機器網路介面卡都是利用 IPv4 位址來設定。 虛擬機器將使用 CA 來彼此通訊,而它們會存在於來自虛擬機器的 IP 封包中。 HNV 會根據儲存在主機代理程式資料庫中的網路虛擬化原則,將 CA 框架封裝在 PA 框架中。

HNV 架構

圖 9:HNV 架構

摘要

雲端式資料中心可以提供許多優點,例如,改善的延展性和較佳的資源使用率。 若要了解這些潛在優點,需要具備基本上可以在動態環境中處理多組織用戶共享延展性問題的技術。 HNV 的設計就是要解決這些問題,同時透過分離實體網路拓撲的虛擬網路拓撲來提升資料中心的運作效率。 HNV 會以現有的標準為基礎,在現今的資料中心內執行,並使用您現有的 VXLAN 基礎結構運作。 使用 HNV 的客戶現在可以將他們的資料中心合併到私人雲端,或是將他們的資料中心流暢地擴充到含有混合式雲端的主機伺服器提供者環境。

若要深入了解 HNVv2,請參閱下列連結:

Content type 參考資料
社群資源 - 私人雲端架構部落格
- 詢問問題:cloudnetfb@microsoft.com
RFC - NVGRE 草稿 RFC
- VXLAN - RFC 7348
相關技術 如需 Windows Server 2012 R2 中 Hyper-V 網路虛擬化的技術詳細資料,請參閱 Hyper-V 網路虛擬化技術詳細資料
- 網路控制卡