- Hyper-V 虛擬交換器提供外部模式、內部模式和專用模式,這些模式決定了主機、虛擬機器和網際網路之間的隔離程度。
- 連接埠隔離透過 VLAN、PVLAN、ACL、內部 NAT 和防火牆加強。 Windows無論是在主機上,還是在容器和虛擬機器中。
- System Center VMM 新增了連接埠設定檔和分類,以在實體適配器和虛擬適配器之間強制執行一致的效能和安全性策略。
- NIC 綁定、巨型幀、靜態 IP 和使用合成適配器等最佳實踐可以提高 Hyper-V 網路的效能和安全性。
如果你在 Windows 系統中使用虛擬化技術,遲早都會遇到這個問題。 Hyper-V虛擬交換器和連接埠隔離這不僅僅是勾選幾個選項那麼簡單:網路的設計方式決定了虛擬機器是否受到保護、效能良好,以及在不應該互相接觸的時候不會互相接觸。
在本文中,我們將直奔主題:看看它是如何運作的。 Hyper-V 中的網路隔離選項(連接埠、VLAN、PVLAN、ACL 和 NAT)這一切與 System Center VMM 有何關聯? 技巧 無論是在家中託管還是在大型叢集上,這些都是保持環境清潔、整齊和安全的實用技巧。
Windows Server 和 Hyper-V 中的網路隔離與命名空間
在現代微軟環境中,大部分隔離都是基於以下幾點: TCP/IP協定堆疊網路命名空間與網路區間每個連接點(例如容器或 VM 適配器的連接點)都可以位於自己的隔間中,以便它對網路的視圖與其他部分分離。
主機及其 管理虛擬網路介面卡保留在預設網路命名空間中。每個使用 Hyper-V 隔離運行的 Windows Server 容器都有自己的命名空間,其中安裝了特定於該容器的虛擬適配器。
經典的 Windows Server 容器使用 主機上託管的虛擬網路介面卡用於連接到 Hyper-V 虛擬交換器。同時,處於 Hyper-V 隔離模式的容器透過合成虛擬機器適配器(對實用程式虛擬機器不可見)進行連接,從而加強了主機、容器和其他工作負載之間的隔離。
如果您想查看系統上有哪些網路區間,可以執行下列命令: PowerShell的 並使用 cmdlet 列出所有內容 取得網路隔間在調試容器化和 NAT 環境中罕見的隔離或連接問題時非常有用。
使用存取控制清單 (ACL)、防火牆和虛擬防火牆 (VFP) 實現網路安全和隔離
網路安全和隔離並非完全取決於 Hyper-V;其他因素也發揮作用。 Windows 防火牆、虛擬交換器連接埠 ACL 和 Azure 虛擬篩選平台 (VFP)這取決於您使用的容器類型和網路控制器。
在 Windows Server 容器中,預設原則結合了 主機防火牆(已啟用命名空間)和 VFP 中的規則輸出通常為“允許所有流量”,而對於輸入,則允許未經請求的 TCP、UDP、ICMP 和 IGMP 流量,並阻止其餘未包含的協定。
對於與以下方式運行的容器 Hyper-V 隔離;每個執行個體都執行自己的 Windows 防火牆執行個體 在其隔離的核心內,通常採用寬鬆的預設策略(允許所有),無論是在該內部防火牆還是在 VFP 中,都由您根據工作負載需求來收緊規則。
在 Kubernetes 中,邏輯略有不同:在 pod 內部,首先建立一個基礎架構容器,然後將網路點連接到該容器, Pod 中的所有容器共用同一個網路命名空間這包括IP位址和連接埠空間。 Pod之間的隔離則依賴防火牆、網路原則和虛擬交換器上的存取控制清單(ACL)。
如果您需要修改 預定義連接埠存取控制列表您需要檢查主機網路服務配置,並調整不同網路控制器(透明、NAT、L2Bridge、L2Tunnel、Overlay)上的策略,同時了解在每種情況下哪個元件應用了規則:Windows 防火牆、VFP 還是兩者都應用。
什麼是 Hyper-V 虛擬交換器?交換器有哪些類型?
Hyper-V虛擬交換器本質上是一個 軟體定義二層乙太網路交換機其使命是將您的虛擬機器連接到實體或邏輯網絡,並在虛擬化環境中為您提供必要的隔離、監控和安全工具。
你從一開始就能獲得它 Hyper-V 管理員 隨著 Windows Server 的每個版本更新,它的功能也越來越強大:資源追蹤、針對惡意虛擬機器的新保護措施、進階連接埠流量隔離選項、PVLAN 支援、中繼、擴展 ACL 等。
預設情況下,安裝 Hyper-V 角色後不會建立任何交換器。在配置交換器之前,您的虛擬機器無法存取任何網路。要一鍵管理交換機,請打開… 虛擬交換器管理器 從主機的操作面板。
Hyper-V 允許三種類型的虛擬交換機,每種類型都對網路隔離和交換器連接埠的行為方式有直接影響:
- 外部開關它將主機上的實體網卡與虛擬網卡連接起來,從而提供對實體網路(以及在網路允許的情況下對網際網路)的存取。虛擬機器、主機和外部世界共享此連線。
- 內部開關它提供了一個虛擬網絡,其中連接的虛擬機器和主機本身可以相互通信,但無需存取外部網路。
- 專用總機:建立一個完全隔離的網絡,其中虛擬機只能互相看到;主機和其他網路都無法與此「沙箱」互動。

配置虛擬交換器和關鍵隔離選項
建立外部交換器時,精靈會引導您完成幾個影響選項的操作。 港口的安全和隔離第一步是選擇哪個實體適配器將作為 vSwitch 的上行鏈路;如果您有多個網路卡,流量將流向這些網路卡。
另一個重要的盒子是… 允許管理作業系統共享適配器預設情況下啟用此功能,它會強制主機使用相同網路卡進行自身網路連線。如果取消選中,則會切斷主機通過該路徑的網路連線。這在遠端操作時至關重要,因為您可能只需單擊一下就會失去對伺服器的存取權。
此開關還可以啟用 SR-IOV(單) 根 I/O虛擬化)一項技術,如果 硬件 它支援此功能,可將部分流量直接從實體網卡轉送到虛擬機,繞過虛擬交換器的大部分資料平面,從而降低延遲和 CPU 使用率。但是,SR-IOV 無法對現有交換器進行改造,並且需要與現有交換器相容。 的BIOSCPU(SLAT)和網路卡。
最後,您可以啟動以下選項: 管理作業系統的 VLAN ID這會將主機流量放入特定的 VLAN 中,如果您想要嚴格隔離其餘流量的管理(無論是在實體交換器層級還是在 vSwitch 的虛擬連接埠),這將非常有用。
套用變更後,主機可能會暫時失去連線幾秒鐘。 實體網路卡關閉後,連接到虛擬交換機,一切恢復正常。這是正常現象,但如果你是遠端操作,最好記住這一點,以免驚慌失措。
交換器類型以及主機、虛擬機器和網際網路之間的隔離
如果您擔心某些虛擬機器無法存取主機或互聯網,那麼選擇合適的虛擬交換器類型至關重要。 Hyper-V 中的連接埠隔離.
隨著 專用交換機在這種架構下,虛擬機器之間共用一個隔離的網絡,但它們無法存取主機或外部網路。主機也無法存取連接到自身的虛擬機器。這非常適合測試環境或僅需彼此通訊的高度敏感工作負載。
隨著 內部開關虛擬機器可以與其他虛擬機器和主機通信,但它們仍然無法直接存取外部網路。除非您自行新增虛擬路由器或 NAT,否則無需在此處為虛擬機器的 IP 位址設定網關(沒有必要)。
隨著 外部開關虛擬機器、主機和實體網路共享同一條連結。當您需要「真正」的連線時,這通常是首選方案,但預設隔離性最差,因此通常需要更嚴格的設定管理。 VLAN、連接埠 ACL 和防火牆.
除了選擇交換器的類型外,您還可以嘗試為每個虛擬機使用多個虛擬網路卡,將每個適配器指派給不同的交換機,如果需要,還可以指派給不同的 VLAN,從而將邏輯隔離與詳細的連接埠控制相結合。
Hyper-V 中的內部 NAT:具有外部存取權限的隔離網絡
多年來,如果想要讓一個隔離的內部網路存取互聯網,就必須設定一個虛擬機器來充當路由器或防火牆。從 Windows Server 2016 和最新的 Windows 10 開始,您可以建立一個虛擬機器來充當路由器或防火牆。 作業系統內部整合了具有NAT功能的交換機無需額外機器。
方案很簡單:建立一個內部交換機,在將作為該網路網關的主機上為其指派 IP 位址,然後定義一個 使用 PowerShell 為該前綴建立 NAT 網絡連接到該交換器的虛擬機,如果具有該子網的 IP 位址並指向該網關,則可以存取外部網絡,但內部網路不會直接從外部路由。
基本步驟是:
- 建立內部交換器: New-VMSwitch -SwitchName “swNAT” -SwitchType Internal.
- 尋找與虛擬交換器關聯的適配器,並為其指派網關 IP 位址,例如: New-NetIPAddress -IPAddress 192.168.254.1 -PrefixLength 24 -InterfaceIndex.
- 建立NAT網路: New-NetNat -Name netNAT -InternalIPInterfaceAddressPrefix 192.168.254.0/24.
虛擬機器連接到該交換機,並被指派子網路中的靜態 IP 位址(例如,192.168.254.2、254.3…)。 網關 192.168.254.1 和外部 DNS好了,現在你可以瀏覽了。主機之所以知道這個內部網路的存在,是因為它有一個IP位址,但從外部來看,這個子網路是無法直接存取的;只有主機的IP位址是暴露出來的。
若要將內部虛擬機器中的服務(例如,連接埠 80 上的 IIS)發佈到外部,您需要定義規則。 透過 NAT 網路進行靜態連接埠映射類型:Add-NetNatStaticMapping -NatName «netNAT» -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.254.2 -ExternalPort 80 -InternalPort 80。存取是透過主機 IP 進行的,而不是透過內部 IP 進行的。
使用 NAT 和防火牆將虛擬機器與主機和實體網路隔離。
一個相當典型的例子是想要一個 運作正常的虛擬機器無法存取主機或家庭網絡但它確實能與網路或…對話 VPN 企業級應用。借助內部NAT和防火牆,您可以非常接近這種場景,儘管其中存在一些重要的細微差別。
如果依照範例配置具有 NAT 的內部交換器(網路 172.168.100.0/24 或 192.168.254.0/24),並將虛擬機連接到該交換機,則虛擬機不應看到主機的 192.168.xx 網路,除非系統中存在路由或寬鬆的防火牆規則允許防火牆規則。
如果虛擬機器可以 ping 通 192.168.xx 網絡,則表示連接已建立。 允許內部 NAT 網路和實體網路之間轉送的路由,或過於開放的防火牆規則為了增強隔熱性能,您可以:
- 檢查並清理主機上允許在介面之間轉送的路由(使用 Get-NetRoute 指令並刪除可疑的靜態路由)。
- 在主機上建立 Windows 防火牆規則,阻止來自內部網路(例如 172.168.100.0/24)到實體網路 192.168.0.0/16 的流量,但允許主機本身在需要時存取該網路。
- 使用防火牆設定檔和限制出站規則,過濾虛擬機器上的流量,限制所有不傳送至 VPN 或嚴格必要目的地的流量。
如果您希望虛擬機器完全無法透過 IP 位址存取主機,一種更徹底的替代方案是使用… 私有交換器而非內部交換機 並透過執行 NAT 的中間 VM 防火牆/UTM 提供互聯網訪問,使該網段上的主機完全斷開連接。
另一個非常強大的隔離工具,尤其是在多個虛擬機器共用同一個虛擬交換器時,是… 虛擬交換器連接埠 ACL這樣就可以在不改變拓樸結構或使用額外 VLAN 的情況下,阻止共用相同網路的虛擬機器之間的流量(東西隔離)。
System Center VMM 中的連接埠設定檔和連接埠分類
當您使用 System Center Virtual Machine Manager (VMM) 或透過其他方式管理 Hyper-V 時 Windows管理中心與其逐個連接埠配置,不如使用 港口概況和分類 定義可重複使用的網路策略。
很多 上行鏈路連接埠設定檔 這些設定適用於部署邏輯交換器時的實體適配器。您可以在此定義負載平衡演算法(基於 Hyper-V 連接埠、IP 位址、傳輸連接埠等)。 MAC(或稱動態平衡),以及組隊模式(交換器獨立、LACP 或靜態)以及與上行鏈路關聯的邏輯網路和網路站點。
為了設計得更好,建議每個鏈路至少有一個上行鏈路設定檔。 具有自身VLAN和子網路的實體網路或位置如果將邏輯網路限制為某些主機群組,則必須為這些群組建立特定設定文件,以確保定義的 VLAN 和子網路有效,並且可以從它們所應用的網路卡路由。
很多 虛擬網路適配器連接埠設定檔 它們應用於虛擬機器的虛擬網路卡,並允許定義最小/最大頻寬、卸載任務(VMQ、IPsec 卸載、SR-IOV)和安全選項(MAC 欺騙、DHCP 保護、路由器保護、IEEE 802.1p 標記、客戶管理的 IP 位址、客戶組隊等)等功能。
這些概況是建構的基礎 港口分類這些是與特定連接埠設定檔關聯的、便於使用者使用的標籤(例如,FAST、SLOW、SR-IOV)。部署虛擬機器時,管理員或租用戶選擇一個分類,VMM 會將對應的設定檔套用到虛擬網路介面卡,從而標準化連接埠行為,而無需使用者記住所有參數。
在 VMM 中建立上行連接埠設定檔
若要在 VMM 中定義上行鏈路連接埠設定文件,請導覽至以下區域: Fabric > 網路 > 連接埠設定檔 啟動精靈以建立新的 Hyper-V 連接埠設定文件,選取「頂級連結」選項。
在精靈中,您選擇 負載平衡方法這可以是主機的預設端口(Hyper-V 端口或動態端口,取決於版本),也可以強制指定一個特定端口(Hyper-V 端口、IP 位址、傳輸端口、MAC 位址)。每種選項都會以不同的方式在網路卡團隊成員之間分配流量,從而影響連接埠之間的負載分配。
然後您選擇模式 團隊訓練Hyper-V 協定支援三種連線方式:交換器獨立(無需在實體交換器上進行任何特定設定)、LACP(動態協商)和靜態綁定(主機和交換器上均需手動設定)。對於許多 Hyper-V 應用場景,由於交換器獨立模式簡單易用且穩定可靠,因此是建議選項。
在網路配置部分,您可以關聯一個或多個 網路站點 上行鏈路設定檔中,每個設定檔都連接到不同的邏輯網路。至關重要的是,各個站點必須共享相同的主機群組範圍,並且 VLAN 和子網路必須與實體基礎設施中實際存在的配置保持一致。
透過將該設定檔套用到主機上的實體適配器,您將確定什麼 邏輯網路以及 VLAN 和 IP 位址範圍 它們將可供連接到使用該上行鏈路的邏輯交換器的虛擬機器和服務使用。
虛擬網路適配器連接埠設定檔和安全選項
在 VMM 中為虛擬適配器建立連接埠配置文件,除了命名之外,還需要完成幾個直接影響連接埠效能的配置部分。 虛擬機器連接埠隔離和行為.
在流量卸載部分,您可以啟用 VMQ(虛擬機器佇列) 將發送至虛擬網路卡的封包定向到實體網路卡上的特定佇列,減少主機和虛擬機器之間的複製,允許 IPsec 任務卸載將加密卸載到網卡,並在您的環境支援且您已在邏輯交換器上啟用 SR-IOV 的情況下啟用它。
在設定檔的安全性標籤中,您可以控制隔離的關鍵方面,例如: MAC位址欺騙您應該僅在非常特定的情況下啟用此功能(負載平衡器、叢集場景);DHCP 保護,它可以阻止虛擬機器網路中的惡意 DHCP 伺服器;以及路由器保護,它可以阻止未經授權的路由器通告。
你也可以決定是否允許 以訪客身分組隊 (以便客戶作業系統可以將多個虛擬網路卡分組),您是否授權對傳出資料包進行 IEEE 802.1p 優先權標記,以及您是否允許虛擬機器管理該轉接器上的其他 IP 位址(這在虛擬化網路上的某些客戶群中是必要的)。
最後,您可以配置頻寬:您可以設定 以Mbps為單位的最低和最高速度或相對權重 這樣,在網路資源過剩的環境中,vSwitch 可以優先使用某些虛擬網路卡,這是控制和隔離每個連接埠網路使用的另一種機制。
Hyper-V 網路介面卡:類型、VLAN 和進階選項
在每個 Hyper-V 虛擬機器中,您在客戶作業系統中看到的網路介面卡只是可見部分。 虛擬網路適配器連接到 vSwitch 上的端口你們主要分為兩大類:合成適配器和傳統適配器。
適配器 合成纖維 以下是建議的配置:它們可與 Hyper-V 整合服務搭配使用,效能更佳,並支援標記 VLAN 或 SR-IOV 等進階功能。它們是第二代虛擬機器和大多數虛擬機器中的標準配置。 OS 現代的。
適配器 遺傳 模擬舊網卡(類型) Intel英特爾 21140)並且主要用於 PXE 啟動或系統安裝沒有 驅動程序 合成適配器系統和整合服務安裝完畢後,通常的做法是添加一個合成適配器並刪除舊適配器。
若要將流量細分,您可以分配 虛擬網路介面卡層級的 VLAN這可以透過圖形介面和 PowerShell(Set-VMNetworkAdapter -VMName VM -VlanId ID)兩種方式完成。這樣,即使連接到同一個虛擬交換機,每個交換器連接埠也可以承載來自不同 VLAN 的流量。
此適配器的高級功能包括 SR-IOV、VMQ、RSS 等。 下載 TCP校驗和、分段等技術有助於降低高效能環境中主機和虛擬機器的CPU負載。與以往一樣,建議在大規模啟用這些技術之前,先測試它們對基礎架構的影響。
Hyper-V 網路效能與隔離最佳實踐
為了防止這一切最終演變成混亂,遵循一些指導原則是值得的。 Hyper-V 中的特定網路最佳實踐首先,要始終使用實體網卡的最新驅動程序,最好是從製造商處獲取,以便充分利用所有硬體功能並避免已知錯誤。
另一個明確的建議是使用 Hyper-V 主機網路介面卡上的靜態 IP 位址 (以及在用作伺服器的虛擬機器上)以確保您始終可以找到它們,並且在 DHCP 續訂後 DNS 記錄或相依性不會中斷。
在具有多個主機的環境中,建議對不同類型的流量進行實體隔離,或使用 VLAN 進行隔離:管理流量、即時遷移流量等。 存儲 (iSCSI 或 SMB 3.0)、虛擬機器流量和叢集脈衝(CSV/心跳)。每個網路都應該有自己的介面。 專用虛擬交換機,或至少是一個定義完善的VLAN.
網路卡綁定(無論是經典的 LBFO 還是 SET - 交換器嵌入式綁定-)是另一個重要的支柱:將多張網卡組合在一起可以分散流量並提高容錯能力,但對於 iSCSI 或 SMB 3.0 儲存網絡,建議採用 MPIO 或其他特定策略。
對於儲存網路、即時遷移和 CSV 來說,這可能非常有趣。 啟用巨型幀(MTU 9000) 在所有相關設備(網路卡、交換器、路由器)上進行最佳化,以減少開銷並提高大容量和持續傳輸的效能。
在虛擬機器中,只要作業系統允許,就使用 合成適配器,將傳統適配器的使用限制在以下場景: 開機 PXE別忘了更新整合服務或驅動程式。 Linux 整合服務,以充分發揮它們的作用。
最後,在以下兩者之間保持合理的平衡: 可用網路頻寬和共享儲存容量快速的 SAN 搭配慢速的網絡,或者反過來,10 Gb 的網絡搭配慢速的磁盤,最終都會成為同樣令人頭疼的瓶頸。
透過合理組合虛擬交換器(外部、內部和專用)、內部 NAT、VLAN、PVLAN、連接埠 ACL、連接埠設定檔和 VMM 中的分類,以及主機和 VM 層級的防火牆選項,您可以建立一個 Hyper-V 環境,其中每個虛擬交換器連接埠都清楚地知道它可以看到什麼以及可以在哪裡
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
