Azure 中的虛擬網路與虛擬機器

當建立虛擬機器 (VM) 時,您會同時建立虛擬網路或使用現有的虛擬網路。 決定如何在虛擬網路上存取您的虛擬機器。 請務必在建立資源前進行規劃,並確定您已了解網路資源的限制

在下圖中,虛擬機器會以 Web 伺服器和應用程式伺服器表示。 每一組虛擬機器都會指派給虛擬網路中的個別子網路。

Diagram of multi-tier, multi-subnet application.

您可以在建立虛擬機器之前建立虛擬網路,或者您可以同時建立虛擬網路和虛擬機器。

您可建立下列資源來支援與虛擬機器的通訊︰

  • 網路介面

  • IP 位址

  • 虛擬網路和子網路

此外,請考量下列選用資源:

  • 網路安全性群組

  • 負載平衡器

網路介面

網路介面 (NIC) 是虛擬機器與虛擬網路之間互相連線的橋樑。 虛擬機器至少必須有一個 NIC。 虛擬機器可以有一個以上的 NIC,視您建立的 VM 大小而定。 若要了解每個虛擬機器大小支援的 NIC 數目,請參閱 VM 大小

您可以使用多個 NIC 來建立 VM,並透過 VM 的生命週期來新增或移除 NIC。 多個 NIC 可讓 VM 連線至不同的子網路。

連接到 VM 的每個 NIC 都必須與 VM 位於相同的位置和訂用帳戶。 每個 NIC 都必須連接到與 NIC 位於相同 Azure 位置和訂用帳戶中的 VNet。 您可以在建立子網路之後,變更 VM 連線至的子網路。 您無法變更虛擬網路。 連線到 VM 的每個 NIC 會被指派 MAC 位址,該 MAC 位址在 VM 刪除前不會變更。

下表列出可用於建立網路介面的方法。

方法 描述
Azure 入口網站 當您在 Azure 入口網站中建立 VM 時,系統會自動為您建立網路介面。 入口網站會建立只有一個 NIC 的 VM。 如果您想要建立具有多個 NIC 的 VM,您必須使用不同的方法來建立它。
Azure PowerShell 使用 New-AzNetworkInterface 搭配 -PublicIpAddressId 參數,來提供先前所建立公用 IP 位址的識別碼。
Azure CLI 若要先前所建立公用 IP 位址的識別碼,請使用 az network nic create 搭配 --public-ip-address 參數。
範本 如需使用範本部署網路介面的相關資訊,請參閱虛擬網路中具有公用 IP 位址的網路介面

IP 位址

您可以將下列 IP 位址類型指派給 Azure 中的網路介面:

  • 公用 IP 位址 - 用來與未連線至虛擬網路的網際網路和其他 Azure 資源,進行輸入或輸出 (不需要網路位址轉譯 (NAT)) 的通訊。 將公用 IP 位址指派給 NIC 是選擇性作業。 公用 IP 位址有象徵性費用,而每個訂用帳戶都有可用的數目上限。

  • 私用 IP 位址 - 用於在虛擬網路、內部部署網路和網際網路 (需要 NAT) 內的通訊。 至少必須將一個私人 IP 位址指派給 VM。 若要了解 Azure 中的 NAT,請參閱了解 Azure 中的輸出連線

您可以將公用 IP 位址指派給:

  • 虛擬機器

  • 公用負載平衡器

您可以將私人 IP 位址指派給:

  • 虛擬機器

  • 內部負載平衡器

您可使用網路介面將 IP 位址指派給 VM。

共有兩種方法可將 IP 位址指定給資源:動態或靜態。 Azure 指定 IP 位址的預設方法是動態。 建立 IP 位址時,不會指定 IP 位址。 然而,IP 位址會在您建立 VM 或啟動已停止的 VM 時指定。 此 IP 位址會在您停止或刪除 VM 時釋出。

若要確保 VM 的 IP 位址維持不變,您可以明確地將配置方法設定為靜態。 在此情況下會立即指派 IP 位址。 只有在您刪除 VM 或將其配置方法變更為動態時,才會釋出 IP 位址。

下表列出可用於建立 IP 位址的方法。

方法 描述
Azure 入口網站 依預設,公用 IP 位址是動態。 當停止或刪除 VM 時,IP 位址可能會變更。 若要保證 VM 一律使用相同的公用 IP 位址,請建立靜態公用 IP 位址。 根據預設,入口網站會在建立 VM 時將動態私人 IP 位址指派給 NIC。 您可以在 VM 建立後,將此 IP 位址變更為靜態。
Azure PowerShell 您可使用 New-AzPublicIpAddress 搭配 -AllocationMethod 參數作為「Dynamic」或「Static」。
Azure CLI 您可使用 az network public-ip create 搭配 --allocation-method 參數作為「Dynamic」或「Static」。
範本 如需使用範本部署公用 IP 位址的詳細資訊,請參閱虛擬網路中具有公用 IP 位址的網路介面

建立公用 IP 位址之後,您可以將它指派給 NIC 以建立其與 VM 的關聯。

注意

無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。

發生下列其中一個事件時,會停用預設輸出存取 IP:

  • 公用 IP 位址會指派給 VM。
  • 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
  • Azure 虛擬網路 NAT 閘道資源會指派給 VM 的子網路。

您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。

如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設對外存取針對輸出連線,使用來源網路位址轉譯 (SNAT)

虛擬網路和子網路

子網路是虛擬網路中的一個 IP 位址範圍。 您可以針對組織和安全性,將虛擬網路分成多個子網路。 VM 中的每個 NIC 都會連線至一個虛擬網路中的一個子網路。 連線至虛擬網路內 (相同或不同) 子網路的 NIC 不需要進行額外設定,就可以彼此通訊。

當設定虛擬網路時,您可以指定拓撲,包括可用的位址空間和子網路。 如果虛擬網路連線至其他虛擬網路或內部部署網路,則請選取不重疊的位址範圍。 IP 位址屬於私人類型,無法從網際網路存取。 Azure 會將任何位址範圍視為私人虛擬網路 IP 位址空間的一部分。 僅當位於虛擬網路、互連的虛擬網路和從內部部署位置中時,才能連線至位址範圍。

如果您在由他人負責內部網路的組織中工作,請先洽詢相關人員,再選取您的位址空間。 確定位址空間中未發生重疊。 在所要使用空間中通訊至位址空間,以便不會嘗試使用 IP 位址的相同範圍。

依預設,子網路之間沒有安全性界限。 每個子網路中的虛擬機器可以相互通訊。 如果您的部署需要安全性界線,請使用網路安全性群組 (NSG),控制進出子網路的流量和進出 VM 的流量。

下表列出可用於建立虛擬網路和子網路的方法。

方法 描述
Azure 入口網站 如果您讓 Azure 在您建立 VM 時建立虛擬網路,則名稱為包含虛擬網路和 -vnet 的資源群組名稱組合。 位址空間是 10.0.0.0/24,必要的子網路名稱是default,而子網路位址範圍是 10.0.0.0/24。
Azure PowerShell 您可使用 New-AzVirtualNetworkSubnetConfigNew-AzVirtualNetwork 來建立子網路和虛擬網路。 您也可以使用 Add-AzVirtualNetworkSubnetConfig 來將子網路新增至現有的虛擬網路。
Azure CLI 子網和虛擬網路會同時建立。 將 --subnet-name 參數提供至具有子網路名稱的 az network vnet create
範本 如需使用範本建立虛擬網路和子網路的詳細資訊,請參閱具有兩個子網路的虛擬網路

網路安全性群組

網路安全性群組 (NSG) 包含存取控制清單 (ACL) 規則的清單,可允許或拒絕子網路、NIC 或兩者的網路流量。 NSG 可與子網路或連線至子網路的個別 NIC 相關聯。 當 NSG 與子網路相關聯時,ACL 規則會套用到該子網路中的所有 VM。 將 NSG 直接關聯至 NIC,即可限制個別 NIC 的流量。

NSG 包含兩組規則:輸入和輸出。 各組規則中的優先順序不得重複。

每個規則都有下列內容:

  • 通訊協定

  • 來源和目的地連接埠範圍

  • 位址首碼

  • 流量的方向

  • 優先順序

  • 存取類型

全部的 NSG 都包含一組預設規則。 您無法刪除或覆寫這些預設規則,因為預設規則具有最低優先順序,而您建立的任何規則都無法加以取代。

當您將 NSG 與 NIC 建立關聯時,NSG 中的網路存取規則只會套用到該 NIC。 如果 NSG 已套用到多重 NIC VM 上的單一 NIC,則不會影響其他 NIC 的流量。 您可以將不同的 NSG 與 NIC (或 VM,根據部署模型而定) 和 NIC 或 VM 所繫結的子網路建立關聯。 優先順序是根據流量的方向來提供。

當您規劃虛擬機器和虛擬網路時,請務必規劃您的 NSG。

下表列出可用於建立網路安全性群組的方法。

方法 描述
Azure 入口網站 當您在 Azure 入口網站中建立 VM 時,NSG 會自動建立並與入口網站所建立的 NIC 產生關聯。 NSG 名稱是 VM 名稱與 -nsg 的組合。
此 NSG 包含一個輸入規則:
優先順序為 1000。
將服務設定為 RDP。
將通訊協定設定為 TCP。
將連接埠設定為 3389。
將動作設定為「允許」。
如果您要允許 VM 的任何其他輸入流量,請建立其他規則。
Azure PowerShell 使用 New-AzNetworkSecurityRuleConfig \(英文\) 並提供必要的規則資訊。 使用 New-AzNetworkSecurityGroup \(英文\) 來建立 NSG。 使用 Set-AzVirtualNetworkSubnetConfig \(英文\) 來設定子網路的 NSG。 使用 Set-AzVirtualNetwork 來將 NSG 新增至虛擬網路。
Azure CLI 使用 az network nsg create 初始建立 NSG。 使用 az network nsg create 將規則新增至 NSG。 使用 az network vnet subnet update 將 NSG 新增至子網路。
範本 使用建立網路安全性群組做為使用範本部署網路安全性群組的指南。

負載平衡器

Azure Load Balancer 可為您的應用程式提供高可用性和網路效能。 您可以將負載平衡器設定成平衡 VM 的傳入網際網路流量平衡 VNet 中 VM 之間的流量。 負載平衡器也可以平衡內部部署電腦與跨內部部署網路中 VM 之間的流量,或將外部流量轉送到特定的 VM。

負載平衡器會對應下列項目之間的傳入和傳出流量:

  • 公用 IP 位址和負載平衡器上的連接埠。

  • 私人 IP 位址和 VM 的連接埠。

當您建立負載平衡器時,您也必須考慮下列組態元素︰

  • 前端 IP 組態 – 負載平衡器可以包含一或多個前端 IP 位址。 這些 IP 位址做為流量的輸入。

  • 後端位址集區 – 與 NIC 相關聯的 IP 位址,而負載會散發到該 NIC。

  • 連接埠轉送 - 使用輸入 NAT 規則,定義輸入流量流經前端 IP 並散發至後端 IP 的方式。

  • 負載平衡器規則 - 將指定的前端 IP 與連接埠組合對應到一組後端 IP 位址與連接埠組合。 單一負載平衡器可以有多個負載平衡規則。 每個規則都是與 VM 相關聯的前端 IP 和連接埠以及後端 IP 和連接埠的組合。

  • 探查 - 監視 VM 的健康狀態。 當探查無法回應時,負載平衡器會停止將新的連線傳送至狀況不良的 VM。 現有的連線不會受到影響,而新的連線會傳送到狀況良好的 VM。

  • 輸出規則 - 輸出規則會設定輸出網路位址轉譯 (NAT),以便讓標準 Load Balancer 後端集區所識別的所有虛擬機器或執行個體轉譯至前端。

下表列出可用於建立網際網路面向負載平衡器的方法。

方法 描述
Azure 入口網站 您可以使用 Azure 入口網站針對網際網路至 VM 的流量進行負載平衡
Azure PowerShell 若要提供先前所建立公用 IP 位址的識別碼,請使用 New-AzLoadBalancerFrontendIpConfig 搭配 -PublicIpAddress 參數。 使用 New-AzLoadBalancerBackendAddressPoolConfig \(英文\) 來建立後端位址集區的設定。 使用 New-AzLoadBalancerInboundNatRuleConfig \(英文\) 來建立與您建立之前端 IP 設定相關聯的輸入 NAT 規則。 使用 New-AzLoadBalancerProbeConfig \(英文\) 來建立您所需的探查。 使用 New-AzLoadBalancerRuleConfig \(英文\) 來建立負載平衡器設定。 使用 New-AzLoadBalancer \(英文\) 來建立負載平衡器。
Azure CLI 使用 az network lb create 建立初始的負載平衡器組態。 使用 az network lb frontend-ip create 新增您先前建立的公用 IP 位址。 使用 az network lb address-pool create 新增後端位址集區的組態。 使用 az network lb inbound-nat-rule create 新增 NAT 規則。 使用 az network lb rule create 新增負載平衡器規則。 使用 az network lb probe create 新增探查。
範本 使用 Load Balancer 中的 3 個 VM (英文) 作為使用範本部署負載平衡器的指南。

下表列出可用於建立內部負載平衡器的方法。

方法 描述
Azure 入口網站 您可以在 Azure 入口網站中使用負載平衡器來平衡內部流量負載
Azure PowerShell 若要在網路子網路中提供私人 IP 位址,請使用 New-AzLoadBalancerFrontendIpConfig 搭配 -PrivateIpAddress 參數。 使用 New-AzLoadBalancerBackendAddressPoolConfig \(英文\) 來建立後端位址集區的設定。 使用 New-AzLoadBalancerInboundNatRuleConfig \(英文\) 來建立與您建立之前端 IP 設定相關聯的輸入 NAT 規則。 使用 New-AzLoadBalancerProbeConfig \(英文\) 來建立您所需的探查。 使用 New-AzLoadBalancerRuleConfig \(英文\) 來建立負載平衡器設定。 使用 New-AzLoadBalancer \(英文\) 來建立負載平衡器。
Azure CLI 使用 az network lb create 命令建立初始的負載平衡器組態。 若要定義私人 IP 位址,請使用 az network lb frontend-ip create 搭配 --private-ip-address 參數。 使用 az network lb address-pool create 新增後端位址集區的組態。 使用 az network lb inbound-nat-rule create 新增 NAT 規則。 使用 az network lb rule create 新增負載平衡器規則。 使用 az network lb probe create 新增探查。
範本 使用 Load Balancer 中的 2 個 VM (英文) 作為使用範本部署負載平衡器的指南。

虛擬機器

您可以在相同的虛擬網路中建立虛擬機器,而這些 VM 可以使用私人 IP 位址彼此連線。 如果虛擬機器位於不同的子網路,仍可彼此連線。 在不必設定閘道或使用公用 IP 位址前提下,虛擬網路即可彼此連線。 若要將 VM 置於虛擬網路,您可以建立虛擬網路。 當您建立每個 VM 時,您可將其指派給虛擬網路和子網路。 虛擬機器會在部署或啟動期間取得其網路設定。

當部署虛擬機器時,會將 IP 位址指派給虛擬機器。 當您將多個 VM 部署至虛擬網路或子網路時,會在啟動時將 IP 位址指派給 VM。 您也可以將靜態 IP 指派給 VM。 如果要指派靜態 IP,您應該考慮使用特定的子網路,以避免不小心將靜態 IP 重複使用於另一部 VM。

如果您建立 VM 而稍後想要將其移轉至虛擬網路,則設定變更程序將不易進行。 將 VM 重新部署至虛擬網路。 最簡單的重新部署方法就是刪除 VM (但不刪除連接到其的任何磁碟),然後使用原始磁碟在虛擬網路中重新建立 VM。

下表列出可用於在 VNet 中建立 VM 的方法。

方法 描述
Azure 入口網站 使用先前所述的預設網路設定來建立具有單一 NIC 的 VM。 若要建立具有多個 NIC 的 VM,您必須使用不同的方法。
Azure PowerShell 包含使用 Add-AzVMNetworkInterface \(英文\) 來將先前建立的 NIC 新增至 VM 設定。
Azure CLI 建立 VM 並將其連線至虛擬網路、子網路,以及建置作為個別步驟的 NIC。
範本 使用非常簡單的 Windows VM 部署做為使用範本部署 VM 的指南。

NAT 閘道

Azure NAT 閘道可為虛擬網路簡化僅限輸出的網際網路連線能力。 在子網路上設定時,所有輸出連線都會使用您指定的靜態公用 IP 位址。 在沒有負載平衡器或直接連結至虛擬機器的公用 IP 位址的情況下,輸出連線是可行的。 NAT 是完全受控且具高復原性。

您可以使用 NAT 為每個子網路定義輸出連線能力。 相同虛擬網路內的多個子網路可以有不同的 NAT。 藉由指定要使用哪個 NAT 閘道資源來設定子網路。 來自任何虛擬機器執行個體的所有 UDP 和 TCP 輸出流量都會使用 NAT 閘道。 NAT 與標準 SKU 公用 IP 位址資源、公用 IP 前置詞資源或兩者的組合相容。 您可以直接使用公用 IP 前置詞,或將前置詞的公用 IP 位址散發到多個 NAT 閘道資源。 NAT 會將所有流量清理到前置詞的 IP 位址範圍。 您可以輕鬆篩選部署的任何 IP。

NAT 閘道會自動處理所有輸出流量,而不需要任何客戶設定。 不需要使用者定義的路由。 NAT 優先於其他輸出案例,並可取代子網路的預設網際網路目的地。

如果虛擬機器擴展集是以彈性協調流程模式建立虛擬機器,則不會有預設的輸出存取。 Azure NAT 閘道是虛擬機器擴展集彈性協調流程模式的建議輸出存取方法。

如需 Azure NAT 閘道的詳細資訊,請參閱什麼是 Azure NAT 閘道?

下表列出可用於建立 NAT 閘道資源的方法。

方法 描述
Azure 入口網站 建立虛擬網路、子網路、公用 IP、NAT 閘道和虛擬機器,測試 NAT 閘道資源。
Azure PowerShell 使用 New-AzNatGateway 建立 NAT 閘道資源。 建立虛擬網路、子網路、公用 IP、NAT 閘道和虛擬機器,測試 NAT 閘道資源。
Azure CLI 使用 az network nat gateway create 來建立 NAT 閘道資源。 建立虛擬網路、子網路、公用 IP、NAT 閘道和虛擬機器,測試 NAT 閘道資源。
範本 建立虛擬網路、子網路、公用 IP 和 NAT 閘道資源。

Azure Bastion

部署 Azure Bastion,以安全管理連至虛擬網路中虛擬機器的連線。 Azure Bastion 服務可讓您安全且順暢地以 RDP 和 SSH 連線到虛擬網路中的 VM。 Azure Bastion 可在不洩漏 VM 上公用 IP 的情況下進行連線。 連線會直接從 Azure 入口網站建立,不需要額外的用戶端/代理程式或軟體。 Azure Bastion 支援標準 SKU 公用 IP 位址。

無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格SKU

如果您要將 Bastion 部署為教學課程或測試的一部份,建議您在使用完畢後刪除此資源。

如需 Azure Bastion 的詳細資訊,請參閱什麼是 Azure Bastion?

下表列出可用於建立 Azure Bastion 部署的方法。

方法 描述
Azure 入口網站 建立虛擬網路、子網路、公用 IP、堡壘主機和虛擬機器。
Azure PowerShell 建立虛擬網路、子網網路、公用 IP 和堡壘主機。 使用 New-AzBastion 建立堡壘主機。
Azure CLI 建立虛擬網路、子網網路、公用 IP 和堡壘主機。 使用 az network bastion create 來建立堡壘主機。
範本 如需將 Azure Bastion 主機與範本部署整合的範本部署範例,請參閱快速入門:使用 ARM 副本建立公用負載平衡器以平衡 VM 的負載

下一步

如需了解如何管理 VM 的 Azure 虛擬網路相關的 VM 特定步驟,請參閱 WindowsLinux 教學課程。

此外,還有關於如何負載平衡 VM,以及使用 CLIPowerShell 建立高可用性應用程式的快速入門