共用方式為


實例層級公用IP (傳統) 概觀

實例層級公用IP (ILPIP) 是一個公用IP位址,您可以直接指派給 VM 或雲端服務角色實例,而不是指派給 VM 或角色實例所在的雲端服務。 ILPIP 不會取代指派給您雲端服務的虛擬IP(VIP)。 相對地,這是一個額外的IP地址,可用來直接連接到虛擬機或角色實例。

這很重要

Azure 針對建立和使用資源方面,有二種不同的的部署模型:Resource Manager 和傳統。 本文涵蓋之內容包括使用傳統部署模型。 Microsoft建議透過 Resource Manager 建立 VM。 請確定您瞭解 IP位址 在 Azure 中的運作方式。

ILPIP 與 VIP 之間的差異

如圖 1 所示,雲端服務是使用 VIP 存取,而個別 VM 通常會使用 VIP:<埠號碼>來存取。 藉由將 ILPIP 指派給特定 VM,就可以使用該 IP 位址直接存取該 VM。

當您在 Azure 中建立雲端服務時,會自動建立對應的 DNS A 記錄,以允許透過完整功能變數名稱 (FQDN) 存取服務,而不是使用實際的 VIP。 在 ILPIP 的情況下,過程相同,允許通過 FQDN 而不是 ILPIP 存取 VM 或角色實例。 例如,如果您建立名為 contosoadservice 的雲端服務,並且使用兩個實例來設定名為 contosoweb 的 Web 角色,並在 .cscfg domainNameLabel 中設定為 WebPublicIP,Azure 會註冊下列實例的 A 記錄:

  • WebPublicIP.0.contosoadservice.cloudapp.net
  • WebPublicIP.1.contosoadservice.cloudapp.net
  • ...

備註

您只能為每個 VM 或角色實例指派一個 ILPIP。 每個訂用帳戶最多可以使用 5 個 ILPIP。 多網路介面的虛擬機器(VM)不支援 ILPIPs。

為什麼我會要求 ILPIP?

如果您想要能夠透過直接指派給 VM 的 IP 位址連線到 VM 或角色實例,而不是使用雲端服務 VIP:<埠號碼>,請為您的 VM 或角色實例要求 ILPIP。

  • 作用中 FTP - 將 ILPIP 指派給 VM,即可接收任何埠上的流量。 VM 不需要端點才能接收流量。 如需 FTP 通訊協定的詳細資訊,請參閱 FTP 通訊協定概觀
  • 外向 IP - 源自 VM 的外向流量映射至 ILPIP 作為來源,ILPIP 唯一識別 VM 並將其标示給外部實體。

備註

過去,ILPIP 位址稱為公用IP(PIP) 位址。

管理 VM 的 ILPIP

下列工作可讓您從 VM 建立、指派和移除 ILPIP:

如何在建立 VM 時使用 PowerShell 申請 ILPIP

下列 PowerShell 腳本會建立名為 FTPService 的雲端服務、從 Azure 擷取映射、使用擷取的映射建立名為 FTPInstance 的 VM、將 VM 設定為使用 ILPIP,並將 VM 新增至新的服務:

New-AzureService -ServiceName FTPService -Location "Central US"

$image = Get-AzureVMImage|?{$_.ImageName -like "*RightImage-Windows-2012R2-x64*"}

#Set "current" storage account for the subscription. It will be used as the location of new VM disk

Set-AzureSubscription -SubscriptionName <SubName> -CurrentStorageAccountName <StorageAccountName>

#Create a new VM configuration object

New-AzureVMConfig -Name FTPInstance -InstanceSize Small -ImageName $image.ImageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| Set-AzurePublicIP -PublicIPName ftpip | New-AzureVM -ServiceName FTPService -Location "Central US"

如果您想要將另一個記憶體帳戶指定為新 VM 磁碟的位置,您可以使用 MediaLocation 參數:

	New-AzureVMConfig -Name FTPInstance -InstanceSize Small -ImageName $image.ImageName `
	 -MediaLocation https://management.core.windows.net/<SubscriptionID>/services/storageservices/<StorageAccountName> `
	| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
	| Set-AzurePublicIP -PublicIPName ftpip | New-AzureVM -ServiceName FTPService -Location "Central US"

如何擷取 VM 的 ILPIP 資訊

若要檢視使用先前腳本建立之 VM 的 ILPIP 資訊,請執行下列 PowerShell 命令,並觀察 PublicIPAddressPublicIPName 的值:

Get-AzureVM -Name FTPInstance -ServiceName FTPService

預期輸出:

DeploymentName              : FTPService
Name                        : FTPInstance
Label                       : 
VM                          : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVM
InstanceStatus              : ReadyRole
IpAddress                   : 100.74.118.91
InstanceStateDetails        : 
PowerState                  : Started
InstanceErrorCode           : 
InstanceFaultDomain         : 0
InstanceName                : FTPInstance
InstanceUpgradeDomain       : 0
InstanceSize                : Small
HostName                    : FTPInstance
AvailabilitySetName         : 
DNSName                     : http://ftpservice888.cloudapp.net/
Status                      : ReadyRole
GuestAgentStatus            : 	Microsoft.WindowsAzure.Commands.ServiceManagement.Model.GuestAgentStatus
ResourceExtensionStatusList : {Microsoft.Compute.BGInfo}
PublicIPAddress             : 104.43.142.188
PublicIPName                : ftpip
NetworkInterfaces           : {}
ServiceName                 : FTPService
OperationDescription        : Get-AzureVM
OperationId                 : 568d88d2be7c98f4bbb875e4d823718e
OperationStatus             : OK

如何從 VM 移除 ILPIP

若要移除先前腳本中新增至 VM 的 ILPIP,請執行下列 PowerShell 命令:

Get-AzureVM -ServiceName FTPService -Name FTPInstance | Remove-AzurePublicIP | Update-AzureVM

如何將 ILPIP 新增至現有的 VM

若要將 ILPIP 新增至使用先前文稿建立的 VM,請執行下列命令:

Get-AzureVM -ServiceName FTPService -Name FTPInstance | Set-AzurePublicIP -PublicIPName ftpip2 | Update-AzureVM

管理用於雲端服務角色實例的 ILPIP

若要將 ILPIP 新增至雲端服務角色實例,請完成下列步驟:

  1. 完成 如何設定雲端服務 一文中的步驟,以下載雲端服務的 .cscfg 檔案。

  2. 透過新增 InstanceAddress 元素來更新 .cscfg 檔案。 下列範例會將名為 MyPublicIP 的 ILPIP 新增至名為 WebRole1 的角色實例:

     <?xml version="1.0" encoding="utf-8"?>
     <ServiceConfiguration serviceName="ILPIPSample" 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>
           <InstanceAddress roleName="WebRole1">
     	<PublicIPs>
     	  <PublicIP name="MyPublicIP" domainNameLabel="WebPublicIP" />
             </PublicIPs>
           </InstanceAddress>
         </AddressAssignments>
       </NetworkConfiguration>
     </ServiceConfiguration>
    
  3. 若要上傳雲端服務的 .cscfg 檔案,請完成 如何設定雲端服務 一文中的步驟。

如何擷取雲端服務的 ILPIP 資訊

若要檢視每個角色實例的 ILPIP 資訊,請執行下列 PowerShell 命令,並觀察 PublicIPAddress、PublicIPNamePublicIPDomainNameLabelPublicIPFqdns 的值:

Add-AzureAccount

$roles = Get-AzureRole -ServiceName <Cloud Service Name> -Slot Production -RoleName WebRole1 -InstanceDetails

$roles[0].PublicIPAddress
$roles[1].PublicIPAddress

您也可以使用 nslookup 來查詢子域的 A 記錄:

nslookup WebPublicIP.0.<Cloud Service Name>.cloudapp.net

後續步驟