Panoramica sugli indirizzi IP pubblici (classici) a livello di istanza

Un indirizzo IP pubblico a livello di istanza (ILPIP) è un indirizzo IP pubblico che è possibile assegnare direttamente all'istanza del ruolo della macchina virtuale o dei servizi cloud in cui risiede l'istanza del ruolo o la macchina virtuale. Un ILPIP non sostituisce l'indirizzo IP virtuale (VIP) assegnato al servizio cloud. Piuttosto, si tratta di un indirizzo IP aggiuntivo che è possibile usare per connettersi direttamente all'istanza della macchina virtuale o del ruolo.

Importante

Azure offre due modelli di distribuzione diversi per creare e usare le risorse: Resource Manager e distribuzione classica. Questo articolo illustra l'uso del modello di distribuzione classica. Si consiglia di creare macchine virtuali tramite Resource Manager. Verificare di conoscere il funzionamento degli indirizzi IP in Azure.

Difference between ILPIP and VIP

Come illustrato nella figura 1, al servizio cloud si accede tramite un indirizzo VIP, mentre alle singole macchine virtuali si accede in genere tramite VIP:<numero di porta>. Assegnando un ILPIP a una macchina virtuale specifica, è possibile accedere a questa macchina virtuale direttamente tramite l’indirizzo IP.

Quando si crea un servizio cloud in Azure, i record A DNS corrispondenti vengono creati automaticamente per consentire l'accesso al servizio tramite un nome di dominio completo (FQDN) anziché tramite l'indirizzo VIP effettivo. Lo stesso processo si verifica per un ILPIP, che consente l'accesso all'istanza della macchina virtuale o del ruolo mediante FQDN anziché ILPIP. Se ad esempio si crea un servizio cloud denominato contosoadservice e si configura un ruolo Web denominato contosoweb con due istanze, e se nel file cscfg domainNameLabel è impostato su WebPublicIP, Azure registra per le istanze i record A seguenti:

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

Nota

È possibile assegnare un solo ILPIP per ogni istanza di macchina virtuale o ruolo. È possibile usare fino a 5 ILPIP per ogni sottoscrizione. Gli ILPIP non sono supportati per le macchine virtuali a più NIC.

Perché è necessario richiedere un ILPIP?

Se si desidera connettersi all'istanza della VM o del ruolo tramite un indirizzo IP assegnato direttamente all'istanza, anziché usare il servizio cloud VIP:<numero porta>, richiedere un ILPIP per l'istanza della VM o del ruolo.

  • FTP attivo: assegnando un ILPIP a una macchina virtuale è possibile che questa riceva il traffico su qualsiasi porta. Gli endpoint non sono necessari per la macchina virtuale affinché questa riceva il traffico. Vedere Panoramica del protocollo FTP per informazioni dettagliate sul protocollo FTP.
  • IP in uscita: viene eseguito il mapping del traffico in uscita proveniente dalla macchina virtuale all'ILPIP come origine e l'ILPIP identifica in modo univoco la macchina virtuale sulle entità esterne.

Nota

In passato, un indirizzo ILPIP veniva definito indirizzo IP pubblico (PIP).

Gestire un ILPIP per una macchina virtuale

Le attività seguenti consentono di creare, assegnare e rimuovere gli ILPIP dalle macchine virtuali:

Come richiedere un ILPIP durante la creazione della macchina virtuale mediante PowerShell

Lo script di PowerShell riportato di seguito crea un nuovo servizio cloud denominato FTPService, recupera un'immagine da Azure, crea una macchina virtuale denominata FTPInstance usando l'immagine recuperata, imposta la macchina virtuale per usare un ILPIP e aggiunge la macchina virtuale al nuovo servizio:

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"

Per specificare un altro account di archiviazione come posizione del nuovo disco della macchina virtuale, è possibile usare il parametro 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"

Come recuperare informazioni su ILPIP per una macchina virtuale

Per visualizzare le informazioni su ILPIP per la macchina virtuale creata con lo script precedente, eseguire il comando di PowerShell seguente e osservare i valori per PublicIPAddress e PublicIPName:

Get-AzureVM -Name FTPInstance -ServiceName FTPService

Output previsto:

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

Come rimuovere un ILPIP da una macchina virtuale

Per rimuovere un ILPIP aggiunto alla macchina virtuale nello script precedente, eseguire il comando PowerShell seguente:

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

Come aggiungere un ILPIP a una macchina virtuale esistente

Per aggiungere un ILPIP alla macchina virtuale creata usando lo script precedente, eseguire il comando seguente:

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

Gestire un ILPIP per un'istanza del ruolo del servizi cloud

Per aggiungere un ILPIP a un'istanza del ruolo dei servizi cloud, completare i passaggi seguenti:

  1. Scaricare il file con estensione CSCFG per il servizio cloud completando la procedura nell'articolo Come configurare i servizi cloud.

  2. Aggiornare il file con estensione CSCFG aggiungendo l'elemento InstanceAddress. Nell'esempio seguente viene aggiunto un ILPIP denominato MyPublicIP a un'istanza di ruolo denominata 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. Caricare il file con estensione CSCFG per il servizio cloud completando la procedura nell'articolo Come configurare i servizi cloud.

Come recuperare informazioni su ILPIP per un servizio cloud

Per visualizzare le informazioni su ILPIP per istanza del ruolo, eseguire il comando PowerShell seguente e osservare i valori di PublicIPAddress, PublicIPName, PublicIPDomainNameLabel e PublicIPFqdns:

Add-AzureAccount

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

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

Si può anche usare nslookup per eseguire una query sul record A del sottodominio:

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

Passaggi successivi