Vue d’ensemble des adresses IP publiques de niveau d’instance (classique)

Une adresse IP publique de niveau d’instance (ILPIP) est une adresse IP publique que vous pouvez attribuer directement à une machine virtuelle ou instance de rôle de services cloud, plutôt qu’au service cloud dans lequel réside cette machine ou cette instance. Une adresse ILPIP ne remplace pas l’adresse IP virtuelle (VIP) affectée à votre service cloud. Il s’agit plutôt d’une adresse IP supplémentaire que vous pouvez utiliser pour vous connecter directement à votre machine virtuelle ou instance de rôle.

Important

Azure a deux modèles de déploiement différents pour créer et utiliser des ressources : Resource Manager et classique. Cet article traite du modèle de déploiement classique. Microsoft vous recommande de créer des machines virtuelles via Resource Manager. Assurez-vous que vous comprenez le fonctionnement des adresses IP dans Azure.

Difference between ILPIP and VIP

Comme le montre la figure 1, l’accès au service cloud s’effectue au moyen d’une adresse IP virtuelle, tandis que les différentes machines virtuelles sont accessibles normalement via VIP:<numéro de port>. L’attribution d’une adresse ILPIP à une machine virtuelle permet d’accéder à cette machine directement au moyen de cette adresse IP.

Quand vous créez un service cloud dans Azure, les enregistrements DNS A correspondants sont automatiquement créés de façon à autoriser l’accès au service par le biais d’un nom de domaine complet (FQDN) plutôt qu’avec l’adresse IP virtuelle proprement dite. Le même processus se produit pour une adresse ILPIP en permettant d’accéder à la machine virtuelle ou à l’instance de rôle par le nom de domaine complet plutôt que par l’intermédiaire de l’adresse ILPIP. Par exemple, si vous créez un service cloud sous le nom contosoadservice, que vous configurez un rôle web nommé contosoweb avec deux instances et que vous définissez domainNameLabel sur WebPublicIP dans le fichier .cscfg, Azure inscrit les enregistrements A suivants pour les instances :

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

Notes

Vous ne pouvez affecter qu’une seule adresse ILPIP par machine virtuelle ou instance de rôle. Vous pouvez utiliser jusqu’à 5 adresses ILPIP par abonnement. Les adresses ILPIP ne sont pas prises en charge pour les machines virtuelles à plusieurs cartes réseau.

Pourquoi demander une adresse ILPIP ?

Si vous souhaitez pouvoir vous connecter à votre machine virtuelle ou instance de rôle à l’aide d’une adresse IP qui vous est attribuée directement, demandez une adresse ILPIP pour votre machine virtuelle ou instance de rôle, au lieu d’utiliser l’adresse VIP:<numéro-port> du service cloud.

  • Mode FTP actif : en affectant une adresse ILPIP à une machine virtuelle, cette dernière peut recevoir du trafic sur n’importe quel port. Les points de terminaison ne sont pas requis pour que la machine virtuelle reçoive du trafic. Consultez Vue d’ensemble du protocole FTP pour en savoir plus sur le protocole FTP.
  • Adresse IP sortante : le trafic sortant de la machine virtuelle est mappé à l’adresse ILPIP en tant que source, identifiant ainsi de manière univoque la machine virtuelle auprès des entités externes.

Notes

Auparavant, une adresse ILPIP était appelée adresse IP publique (PIP).

Gérer une adresse ILPIP pour une machine virtuelle

Les tâches suivantes permettent de créer, d’affecter et de supprimer les ILPIPs des machines virtuelles :

Comment demander une adresse ILPIP durant la création d’une machine virtuelle à l’aide de PowerShell

Le script PowerShell ci-dessous crée un service cloud nommé FTPService, récupère une image auprès d’Azure et crée une machine virtuelle nommée FTPInstance à partir de l’image récupérée, configure cette machine virtuelle pour qu’elle utilise une adresse ILPIP, puis ajoute la machine virtuelle au nouveau service :

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"

Si vous voulez spécifier un autre compte de stockage comme emplacement du nouveau disque de machine virtuelle, vous pouvez utiliser le paramètre 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"

Récupération des informations d’adresse ILPIP pour une machine virtuelle

Pour visualiser les informations d’adresse ILPIP concernant la machine virtuelle créée avec le script précédent, exécutez la commande PowerShell ci-après et examinez les valeurs de PublicIPAddress et PublicIPName :

Get-AzureVM -Name FTPInstance -ServiceName FTPService

Sortie attendue :

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

Suppression d’une adresse ILPIP d’une machine virtuelle

Pour supprimer l’adresse ILPIP ajoutée à la machine virtuelle par le biais du script précédent, exécutez la commande PowerShell suivante :

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

Ajout d’une adresse ILPIP à une machine virtuelle existante

Pour ajouter une adresse ILPIP à la machine virtuelle créée à l’aide du script précédent, exécutez la commande suivante :

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

Gérer une adresse ILPIP pour une instance de rôle de services cloud

Pour ajouter une adresse ILPIP à une instance de rôle de services cloud, procédez comme suit :

  1. Téléchargez le fichier .cscfg pour le service cloud en suivant les étapes décrites dans l’article Configuration des services cloud.

  2. Mettez à jour le fichier .cscfg en ajoutant l’élément InstanceAddress. L’exemple suivant ajoute une adresse ILPIP nommée MyPublicIP à une instance de rôle nommé 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. Chargez le fichier .cscfg pour le service cloud en suivant les étapes décrites dans l’article Configuration des services cloud.

Comment récupérer des informations d’adresse ILPIP pour un service cloud

Pour voir les informations d’adresse ILPIP par instance de rôle, exécutez la commande PowerShell suivante et examinez les valeurs de PublicIPAddress, PublicIPName, PublicIPDomainNameLabel et PublicIPFqdns :

Add-AzureAccount

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

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

Vous pouvez aussi utiliser nslookup pour interroger l’enregistrement A du sous-domaine :

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

Étapes suivantes