使用 Azure 擴充網路將您的內部部署子網路延伸至 Azure
概觀
適用於 Azure 的擴充網路可讓您將內部部署子網路延伸至 Azure,讓內部部署虛擬機器在移轉至 Azure 時保留其原始內部部署私人 IP 位址。
網路會使用兩個做為虛擬裝置的 Windows Server 2019 VM 之間的雙向 VXLAN 通道來擴充,一個在內部部署執行,另一個在 Azure 中執行,每個 VM 也會連線到要擴充的子網路。 您要擴充的每個子網路都需要一對設備。 您可以使用多對設備來擴充多個子網路。
注意
Azure 的擴充網路應該只用於移轉至 Azure 時,無法變更其 IP 位址的機器。 如果這是選項,最好變更 IP 位址,並將其連線到完全存在於 Azure 中的子網路。
規劃
若要準備使用 Azure 的擴充網路,您必須識別要延伸的子網路,然後執行下列步驟:
產能規劃
您可以使用適用於 Azure 的擴充網路來擴充最多 250 個 IP 位址。 您可以預期彙總輸送量約為 700 Mbps,視 Azure 虛擬設備擴充網路的 CPU 速度而定,有些變化。
Azure 中的設定
使用 Windows Admin Center 之前,您必須透過 Azure 入口網站執行下列步驟:
除了閘道連線所需的子網路之外,在 Azure 中建立至少包含兩個子網路的虛擬網路。 您建立的其中一個子網路必須使用與您想要擴充之內部部署子網相同的子網路 CIDR。 子網路在您的路由網域內必須是唯一的,因此不會與任何內部部署子網路重疊。
設定虛擬網路閘道以使用站對站或 ExpressRoute 連線,將虛擬網路連線到內部部署網路。
在 Azure 中建立能夠執行巢狀虛擬化的 Windows Server 2022 Azure Edition VM。 這是您兩個虛擬設備之一。 將主要網路介面連線至可路由子網路,並將第二個網路介面連線到擴充子網路。
注意
適用於 Azure 的擴充網路需要適用於在 Azure 中執行的 VM 的 Windows Server 2022 Azure Edition。
啟動 VM、啟用 Hyper-V 角色,然後重新開機。 例如:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
在 VM 中建立兩個外部虛擬交換器,並連線到每個網路介面。 例如:
New-VMSwitch -Name "External" -AllowManagementOS $true -NetAdapterName "Ethernet" New-VMSwitch -Name "Extended" -AllowManagementOS $true -NetAdapterName "Ethernet 2"
內部部署設定
您也必須在內部部署基礎結構中執行一些手動設定,包括建立 VM 作為內部部署虛擬設備:
請確定子網路可在您將部署內部部署 VM (虛擬設備) 的實體機器上使用。 這包括您想要擴充的子網路,以及第二個子網路是唯一的,且不會與 Azure 虛擬網路中的任何子網路重疊。
在任何支援巢狀虛擬化的 Hypervisor 上建立 Windows Server 2019 或 2022 VM。 這是內部部署虛擬設備。 建議您將此建立為叢集中高可用性的 VM。 將虛擬網路介面卡連線至可路由子網路,並將第二張虛擬網路介面卡連線到擴充子網路。
啟動 VM,然後從 VM 中的 PowerShell 工作階段執行此命令,以啟用 Hyper-V 角色,然後重新啟動 VM:
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
在 VM 的 PowerShell 工作階段中執行下列命令,以在 VM 中建立兩個外部虛擬交換器,並連線到每個網路介面:
New-VMSwitch -Name "External" -AllowManagementOS $true -NetAdapterName "Ethernet" New-VMSwitch -Name "Extended" -AllowManagementOS $true -NetAdapterName "Ethernet 2"
其他必要條件
如果您的內部部署網路與 Azure 之間有防火牆,您必須將其設定為允許非對稱路由。 這可能包括停用序號隨機化和啟用 TCP 狀態略過的步驟。 如需這些步驟,請參閱防火牆廠商文件。
部署
部署是透過 Windows Admin Center 所驅動。
安裝和設定 Windows Admin Center
在任何能夠執行 Windows Admin Center 的電腦上下載並安裝 Windows Admin Center,與您稍早建立的兩個虛擬設備都不同。
在 Windows Admin Center 中,選取 [設定] (從頁面右上角)>[延伸模組]。 然後選取 [延伸模組]:
在 [可用的延伸模組] 索引標籤上,選取 [擴充網路],然後選取 [安裝]。
幾秒鐘後,您應該會看到訊息,表示安裝成功。
如果您尚未這麼做,請將 Windows Admin Center 連線到 Azure。 如果您現在略過此步驟,我們稍後會要求您執行此程序。
在 Windows Admin Center 中,移至 [所有連線]>[新增],然後選取 [Windows Server] 磚中的 [新增]。 輸入內部部署虛擬設備的伺服器名稱 (以及必要認證)。
.
按一下 [擴充網路] 以開始。 第一次您會看到概觀和設定按鈕:
部署適用於 Azure 的擴充網路
按一下 [設定] 以開始設定。
按 [下一步] 繼續進行 [概觀]。
在 [上傳套件] 面板上,您必須下載適用於 Azure 代理程式套件的擴充網路,並將其上傳至虛擬設備。 依照窗格上的指示執行。
重要
如有必要,請向下捲動,然後按一下 [上傳],再按 [下一步:擴充網路設定]。
選取您要擴充的內部部署網路子網路 CIDR。 子網路清單會從虛擬設備讀取。 如果您尚未將虛擬設備連線到正確的子網路集,您將不會在此清單中看到所需的子網路 CIDR。
選取子網路 CIDR 之後,按 [下一步]。
選取您要擴充的訂用帳戶、資源群組和虛擬網路:
系統會自動選取地區 (Azure 位置) 和子網路。 選取 [下一步:擴充網路閘道設定] 以繼續進行。
您現在將會設定虛擬設備。 內部部署閘道應該會自動填入其資訊:
如果看起來正確,您可以按 [下一步]。
針對 Azure 虛擬設備,您必須選取要使用的資源群組和 VM:
注意
Azure 虛擬設備的 VM 清單只包含含有 Windows Server 2022 Azure Edition 的 Azure VM。 如果您沒有在清單中看到您的 VM,請確定它是 Azure 版本,如果不是,請重新建立。
選取 VM 之後,您也必須選取 Azure 擴充網路閘道子網路 CIDR。 然後按一下 [下一步:部署]。
檢閱摘要資訊,然後按一下 [部署] 開始部署程式。 部署大約需要 5-10 分鐘的時間。 部署完成時,您會看到下列窗格來管理擴充 IP 位址,而狀態應該會顯示 [確定]:
管理
您必須設定您想要透過擴充網路連線的每個 IP 位址。 您可以設定最多 250 個位址來擴充。 若要擴充位址
按一下 [新增 IPv4 位址]:
您會在右側看到 [新增 IPv4 位址] 飛出視窗:
使用 [新增] 按鈕手動新增位址。 您新增的內部部署位址將會由您新增至 Azure 地址清單的 Azure 位址連線,反之亦然。
Azure 的擴充網路會掃描網路以探索 IP 位址,並根據此掃描填入建議清單。 若要擴充這些位址,您必須使用下拉式清單,然後選取探索到位址旁的核取方塊。 並非所有位址都會探索到。 或者,使用 [新增] 按鈕手動新增未自動探索到的位址。
完成時按一下 [提交]。 設定完成時,您會看到狀態變更為 [正在更新],然後 [進行中],最後回到 [確定]。
您的位址現在已擴充。 使用 [新增 IPv4 位址] 按鈕隨時新增其他位址。 如果擴充網路任一端不再使用 IP 位址,請選取其旁邊的核取方塊,然後選取 [移除 IPv4 位址]。
如果您不想再使用 Azure 的擴充網路,請按一下 [移除 Azure 擴充網路] 按鈕。 這會從兩個虛擬設備將代理程式解除安裝,並移除擴充 IP 位址。 網路將會停止擴充。 如果您想要再次使用擴充網路,您必須在移除安裝之後重新執行安裝。
疑難排解
如果您在部署 Azure 擴充網路期間收到錯誤,請使用下列步驟:
確認內部部署虛擬設備使用 Windows Server 2019 或 2022。 確認 Azure 虛擬設備使用 Windows Server 2022 Azure Edition。
確認您未在其中一個虛擬設備上執行 Windows Admin Center。 建議您從內部部署網路執行 Windows Admin Center。
請務必使用
enter-pssession
從 Windows Admin Center 閘道遠端連線到內部部署 VM。如果 Azure 與內部部署之間有防火牆,請確認其已設定為允許所選連接埠 (預設為 4789) 上的 UDP 流量。 使用 ctsTraffic 之類的工具來設定接聽程式和傳送程式。 確認可以在指定的連接埠上雙向傳送流量。
使用 pktmon 來確認是否如預期般傳送和接收封包。 在每個虛擬設備上執行 pktmon:
Pktmon start –etw
執行 Azure 組態的擴充網路,然後停止追蹤:
Pktmon stop Netsh trace convert input=<path to pktmon etl file>
開啟從每個虛擬設備產生的文字檔,並在指定的連接埠 (預設值為 4789) 上搜尋 UDP 流量。 如果您看到從內部部署虛擬設備傳送的流量,但未由 Azure 虛擬設備接收,則必須驗證設備之間的路由和防火牆。 如果您看到從內部部署傳送到 Azure 的流量,則應該會看到 Azure 虛擬設備傳送封包以回應。 如果內部部署虛擬設備從未收到該封包,您必須確認路由正確無誤,而且之間沒有防火牆封鎖流量。
在初始設定之後診斷資料路徑
設定 Azure 的擴充網路之後,您可能會遇到的其他問題通常是因為防火牆封鎖流量,或在失敗間歇性時超過 MTU。
確認兩個虛擬裝置都已啟動並執行。
確認擴充網路代理程式正在每個虛擬設備上執行:
get-service extnwagent
如果狀態不是 [正在執行],您可以使用下列項目來啟動它:
start-service extnwagent
使用上述步驟 5 中所述的 packetmon,同時在擴充網路上的兩部 VM 之間傳送流量,以確認虛擬設備已接收流量、透過設定的 UDP 連接埠傳送,然後由其他虛擬設備接收和轉送。