Visão geral do NÍVEL de Instância IP (Classic)

Um IP público de nível de instância (ILPIP) é um endereço IP público que pode atribuir diretamente a uma instância de função VM ou Cloud Services, em vez de ao serviço de cloud em que o seu VM ou instância de função residem. Um ILPIP não toma o lugar do IP virtual (VIP) que é atribuído ao seu serviço na nuvem. Em vez disso, é um endereço IP adicional que pode usar para ligar diretamente ao seu VM ou instância de função.

Importante

O Azure tem dois modelos de implementação para criar e trabalhar com recursos: Resource Manager e Clássico. Este artigo cobre a utilização do modelo de implementação clássica. A Microsoft recomenda a criação de VMs através de Resource Manager. Certifique-se de que compreende como os endereços IP funcionam em Azure.

Difference between ILPIP and VIP

Como mostrado na Figura 1, o serviço de nuvem é acedido através de um VIP, enquanto os VMs individuais são normalmente acedidos usando o número> VIP:<porta. Ao atribuir um ILPIP a um VM específico, esse VM pode ser acedido diretamente através desse endereço IP.

Quando cria um serviço de nuvem em Azure, os registos DNS A correspondentes são criados automaticamente para permitir o acesso ao serviço através de um nome de domínio totalmente qualificado (FQDN), em vez de utilizar o VIP real. O mesmo processo acontece para um ILPIP, permitindo o acesso ao VM ou instância de função por FQDN em vez do ILPIP. Por exemplo, se criar um serviço de nuvem chamado contosoadservice, e configurar uma função web chamada contosoweb com duas instâncias, e em .cscfg domainNameLabel está definido para WebPublicIP, Azure regista os seguintes registos A para os casos:

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

Nota

Pode atribuir apenas um ILPIP para cada VM ou instância de função. Pode utilizar até 5 ILPIPs por subscrição. Os ILPIPs não são suportados para VMs multi-NIC.

Por que pediria um ILPIP?

Se pretender ligar-se ao seu VM ou à sua instância de função através de um endereço IP que lhe seja atribuído diretamente, em vez de utilizar o serviço de nuvem VIP:<port number>, solicite um ILPIP para o seu VM ou a sua instância de função.

  • FTP ativo - Ao atribuir um ILPIP a um VM, pode receber tráfego em qualquer porta. Não são necessários pontos finais para que o VM receba tráfego. Consulte a visão geral do protocolo FTP para obter mais informações sobre o protocolo FTP.
  • IP de saída - O tráfego de saída originário do VM é mapeado para o ILPIP como a fonte e o ILPIP identifica exclusivamente o VM para entidades externas.

Nota

No passado, um endereço ILPIP era referido como um endereço de IP público (PIP).

Gerir um ILPIP para um VM

As seguintes tarefas permitem-lhe criar, atribuir e remover ILPIPs de VMs:

Como solicitar um ILPIP durante a criação de VM usando o PowerShell

O seguinte script PowerShell cria um serviço de nuvem chamado FTPService, recupera uma imagem do Azure, cria um VM chamado FTPInstance usando a imagem recuperada, define o VM para usar um ILPIP, e adiciona o VM ao novo serviço:

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"

Se quiser especificar outra conta de armazenamento como a localização do novo disco VM, pode utilizar o parâmetro 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"

Como recuperar informações do ILPIP para um VM

Para ver as informações do ILPIP para o VM criado com o script anterior, executar o seguinte comando PowerShell e observar os valores para PublicIPAddress e PublicIPName:

Get-AzureVM -Name FTPInstance -ServiceName FTPService

Resultado esperado:

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

Como remover um ILPIP de um VM

Para remover o ILPIP adicionado ao VM no script anterior, execute o seguinte comando PowerShell:

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

Como adicionar um ILPIP a um VM existente

Para adicionar um ILPIP ao VM criado usando o script anterior, executar o seguinte comando:

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

Gerir um ILPIP para uma instância de função de Cloud Services

Para adicionar um ILPIP a uma instância de função cloud Services, complete os seguintes passos:

  1. Descarregue o ficheiro .cscfg para o serviço na nuvem, completando os passos no artigo Como Configurar os Serviços cloud.

  2. Atualize o ficheiro .cscfg adicionando o InstanceAddress elemento. A amostra seguinte adiciona um ILPIP chamado MyPublicIP a uma instância de papel chamada 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. Faça o upload do ficheiro .cscfg para o serviço na nuvem, preenchendo os passos no artigo Como Configurar os Serviços de Nuvem.

Como recuperar informações do ILPIP para um Serviço de Cloud

Para visualizar a informação do ILPIP por instância de função, executar o seguinte comando PowerShell e observar os valores para 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

Também pode utilizar nslookup para consultar o registo A do sub-domínio:

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

Passos seguintes