Azure 中的IP位址分為兩個類別:動態和保留。 Azure 管理的公用IP位址預設為動態。 這表示用於指定雲端服務的 IP 位址(VIP)或直接存取 VM 或角色實例的 IP 位址(ILPIP),在資源被關閉或停止(解除配置)時,可能會不時發生變更。
若要防止IP位址變更,您可以保留IP位址。 保留的IP只能作為VIP使用,以確保雲端服務的IP位址保持不變,即使資源已關閉或停止(解除分配)。 此外,您可以將現有用作VIP的動態IP轉換成保留的IP地址。
這很重要
Azure 針對建立和使用資源方面,有二種不同的的部署模型:Resource Manager 和傳統。 本文涵蓋之內容包括使用傳統部署模型。 Microsoft建議大部分的新部署都使用 Resource Manager 模型。 瞭解如何使用 Resource Manager 部署模型來保留靜態公用 IP 位址。
若要深入瞭解 Azure 中的 IP 位址,請閱讀 IP 位址 一文。
何時需要固定IP地址?
- 您要確定您的訂用帳戶中保留IP。 如果您想要保留不會在任何情況下從您的訂閱中釋放的 IP 位址,您應該使用保留的公用 IP 位址。
- 您希望您的 IP 即使在已停止或已解除分配的狀態(VM)之間仍能與您的雲端服務保持一致。 如果您想要使用不會變更的IP位址來存取您的服務,即使雲端服務中的VM已關閉或停止(解除分配)。
- 您要確保來自 Azure 的輸出流量使用可預測的 IP 位址。 您可能已將內部部署防火牆設定為只允許來自特定IP位址的流量。 藉由保留IP,您就知道來源IP位址,而且由於IP變更而不需要更新防火牆規則。
常見問題
- 我可以為所有 Azure 服務使用保留的 IP 嗎? 否。 保留的IP只能用於透過VIP公開的 VM 和雲端服務實例角色。
- 我可以擁有多少個保留IP? 如需詳細資訊,請參閱 Azure 限制 一文。
- 保留的IP是否有收費? 有時。 如需定價詳細數據,請參閱 保留的IP位址定價詳細 數據頁面。
- 如何保留IP位址? 您可以使用 PowerShell、 Azure 管理 REST API 或 Azure 入口網站,在 Azure 區域中保留 IP 位址。 保留的IP位址會與您的訂用帳戶相關聯。
- 是否可以使用保留的 IP 與基於親和群組的 VNet 搭配? 否。 只有區域 VNet 才支援保留的 IP。 與同質群組相關聯的 VNet 不支援保留 IP。 如需將 VNet 與區域或同質群組產生關聯的詳細資訊,請參閱 關於區域 VNet 和同質群組 一文。
管理保留的VIP
使用 Azure PowerShell(傳統版)
在使用保留IP之前,您必須先將其新增至您的訂用帳戶。 在 美國中部 位置中,可用的公用 IP 位址集區中建立保留 IP 位址,如下所示:
備註
針對傳統部署模型,您必須安裝 Azure PowerShell 的服務管理版本。 如需詳細資訊,請參閱 安裝 Azure PowerShell 服務管理模組。
New-AzureReservedIP –ReservedIPName MyReservedIP –Location "Central US"
不過請注意,您無法指定保留的IP。 若要檢視訂用帳戶中保留的IP位址,請執行下列PowerShell命令,並注意 ReservedIPName 和 Address 的值:
Get-AzureReservedIP
預期輸出:
ReservedIPName : MyReservedIP
Address : 23.101.114.211
Id : d73be9dd-db12-4b5e-98c8-bc62e7c42041
Label :
Location : Central US
State : Created
InUse : False
ServiceName :
DeploymentName :
OperationDescription : Get-AzureReservedIP
OperationId : 55e4f245-82e4-9c66-9bd8-273e815ce30a
OperationStatus : Succeeded
備註
當您使用 PowerShell 建立保留的 IP 位址時,您無法指定資源群組來建立保留的 IP。 Azure 會自動將它放入名為 Default-Networking 的資源群組中。 如果您使用 Azure 入口網站建立保留的 IP,您可以指定您選擇的任何資源群組。 不過,如果您在 Default-Networking 以外的資源群組中建立保留的 IP,當您使用命令如 Get-AzureReservedIP 和 Remove-AzureReservedIP 來參考保留的 IP 時,您必須參考名稱 resource-group-name reserved-ip-name。 例如,如果您在名為 myResourceGroup 的資源群組中建立名為 myReservedIP 的保留 IP,則必須將保留 IP 的名稱參考為 Group myResourceGroup myReservedIP。
保留IP之後,它會保持與您的訂用帳戶相關聯的狀態,直到您將其刪除為止。 刪除保留的IP,如下所示:
Remove-AzureReservedIP -ReservedIPName "MyReservedIP"
使用 Azure CLI (傳統版)
從 美國中部 位置中可用的公用IP位址集區建立保留的IP,如下所示:使用 Azure 傳統 CLI:
備註
針對傳統部署,您必須使用 Azure 傳統 CLI。 如需安裝 Azure 傳統 CLI 的相關信息,請參閱 安裝 Azure 傳統 CLI
命令:
azure network reserved-ip create <name> <location>
範例:
azure network reserved-ip create MyReservedIP centralus
您可以使用 Azure CLI 來檢視訂用帳戶中保留的 IP 位址,如下所示:
命令:
azure network reserved-ip list
保留IP之後,它會保持與您的訂用帳戶相關聯的狀態,直到您將其刪除為止。 刪除保留的IP,如下所示:
命令:
azure network reserved-ip delete <name>
範例:
azure network reserved-ip delete MyReservedIP
保留現有雲端服務的IP位址
您可以藉由新增 -ServiceName 參數來保留現有雲端服務的IP位址。 在美國中部位置保留雲端服務 TestService 的 IP 位址,如下所示:
使用 Azure PowerShell(傳統):
New-AzureReservedIP –ReservedIPName MyReservedIP –Location "Central US" -ServiceName TestService使用 Azure CLI(傳統):
命令:
azure network reserved-ip create <name> <location> -r <service-name> -d <deployment-name>範例:
azure network reserved-ip create MyReservedIP centralus -r TestService -d asmtest8942
將保留的IP與新的雲端服務產生關聯
下列腳本會建立新的保留IP,然後將它與名為 TestService的新雲端服務產生關聯。
使用 Azure PowerShell(傳統版)
New-AzureReservedIP –ReservedIPName MyReservedIP –Location "Central US"
$image = Get-AzureVMImage|?{$_.ImageName -like "*RightImage-Windows-2012R2-x64*"}
New-AzureVMConfig -Name TestVM -InstanceSize Small -ImageName $image.ImageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| New-AzureVM -ServiceName TestService -ReservedIPName MyReservedIP -Location "Central US"
備註
當您建立要與雲端服務搭配使用的保留 IP 時,您仍會使用 VIP:<埠號> 來參考 VM,以進行入站通訊。 保留IP並不表示您可以直接連線到 VM。 保留的IP會指派給已部署 VM 的雲端服務。 如果您想要透過IP直接連線到 VM,您必須設定實例層級的公用IP。 實例層級公用IP是直接指派給VM的公用IP類型(稱為 ILPIP)。 無法保留。 如需詳細資訊,請參閱 實例層級公用IP(ILPIP) 一文。
從執行中的部署中移除保留的IP
移除新增至新雲端服務的保留IP,如下所示:
使用 Azure PowerShell(傳統版)
Remove-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName TestService
使用 Azure CLI (傳統版)
命令:
azure network reserved-ip disassociate <name> <service-name> <deployment-name>
範例:
azure network reserved-ip disassociate MyReservedIP TestService asmtest8942
備註
從執行中的部署中移除保留的IP並不會從您的訂用帳戶中移除保留。 它只是釋放 IP 以供您的訂用帳戶中的其他資源使用。
若要從訂用帳戶完全移除保留的IP,請執行下列命令:
命令:
azure network reserved-ip delete <name>
範例:
azure network reserved-ip delete MyReservedIP
將保留的IP與執行中的部署產生關聯
使用 Azure PowerShell(傳統版)
下列命令會使用名為TestVM2的新 VM,建立名為TestService2的雲端服務。 然後,名為 MyReservedIP 的現有保留 IP 會與雲端服務相關聯。
$image = Get-AzureVMImage|?{$_.ImageName -like "*RightImage-Windows-2012R2-x64*"}
New-AzureVMConfig -Name TestVM2 -InstanceSize Small -ImageName $image.ImageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| New-AzureVM -ServiceName TestService2 -Location "Central US"
Set-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName TestService2
使用 Azure CLI (傳統版)
您可以使用 Azure CLI 將新的保留 IP 與執行中的雲端服務部署產生關聯,如下所示:
命令:
azure network reserved-ip associate <name> <service-name> <deployment-name>
範例:
azure network reserved-ip associate MyReservedIP TestService asmtest8942
使用服務組態檔將保留的IP與雲端服務產生關聯
您也可以使用服務組態 (CSCFG) 檔案,將保留的IP與雲端服務產生關聯。 下列範例 XML 示範如何設定雲端服務,以使用名為MyReservedIP的保留 VIP:
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="ReservedIPSample" xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-01.2.3">
<Role name="WebRole1">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
<NetworkConfiguration>
<AddressAssignments>
<ReservedIPs>
<ReservedIP name="MyReservedIP"/>
</ReservedIPs>
</AddressAssignments>
</NetworkConfiguration>
</ServiceConfiguration>
後續步驟
- 瞭解 IP位址 在傳統部署模型中的運作方式。
- 瞭解 保留的私人IP位址。
- 了解 實例層級公用IP (ILPIP) 位址。