Configurazione dell'indirizzo IP pubblico a livello di istanza in Servizi cloud

Questo articolo illustra come configurare un indirizzo IP pubblico (PIP) a livello di istanza in Servizi cloud di Microsoft Azure (versione classica) e Azure Servizi cloud (supporto esteso). A differenza di un indirizzo IP virtuale (VIP), un indirizzo IP pubblico a livello di istanza non è bilanciato dal carico. Un indirizzo VIP viene assegnato al servizio cloud e tutte le macchine virtuali e le istanze del ruolo nel servizio cloud condividono tale indirizzo VIP. Tuttavia, un indirizzo IP pubblico (PIP) è associato solo alla scheda di rete di una singola istanza. L'indirizzo IP pubblico è utile nelle distribuzioni a più istanze in cui ogni istanza può essere raggiungibile indipendentemente da Internet. Il diagramma seguente illustra il valore del PIP e lo differenzia dall'indirizzo VIP.

Diagramma che mostra la relazione tra indirizzi IP pubblici, indirizzi IP virtuali e Internet in Servizi cloud di Microsoft Azure.

Nel diagramma il traffico di rete inviato all'indirizzo VIP viene visualizzato come con bilanciamento del carico tra l'indirizzo IP del data center (DIP) 1 e DIP 2. Tuttavia, il traffico inviato a PIP 1 passa sempre a DIP 1 e il traffico inviato a PIP 2 passa sempre a DIP 2. Un indirizzo IP del data center è l'indirizzo IP privato della macchina virtuale.A data center IP address is the private IP address of the virtual machine (VM).

Per altre informazioni, vedere l'articolo Blog di Azure sull'indirizzo IP pubblico a livello di istanza .

Procedura per Azure Servizi cloud (versione classica)

  1. Configurare un indirizzo IP pubblico a livello di istanza per ruolo:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceConfiguration
            serviceName="TestVirtualnetwork"
            xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
            osFamily="6"
            osVersion="*"
            schemaVersion="2015-04.2.6">
        <Role name="WebRole1">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <Role name="WebRole2">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <Role name="WebRole3">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <Role name="WebRole4">
            <Instances count="1" />
            <ConfigurationSettings>
                <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="xxx" />
            </ConfigurationSettings>
        </Role>
        <NetworkConfiguration>
            <VirtualNetworkSite name="Group RESOURCE_GROUP VIRTUAL_NETWORK_NAME" />
            <AddressAssignments>
                <InstanceAddress roleName="WebRole1">
                    <Subnets><Subnet name="subnet001" /></Subnets>
                    <PublicIPs>
                        <PublicIP name="PubIP" domainNameLabel="pip" />  <!-- with domain -->
                    </PublicIPs>
                </InstanceAddress>
                <InstanceAddress roleName="WebRole2">
                    <Subnets><Subnet name="subnet003" /></Subnets>
                    <PublicIPs>
                        <PublicIP name="PubIP"/>                         <!-- without domain -->
                    </PublicIPs>
                </InstanceAddress>
            </AddressAssignments>
        </NetworkConfiguration>
    </ServiceConfiguration>
    
  2. Ottenere l'indirizzo IP pubblico corrente di un ruolo usando uno dei metodi seguenti.

    Per ogni istanza del ruolo, eseguire il cmdlet Di PowerShell Get-AzureRole . Questo cmdlet è basato sul Azure.Service modulo . Usando la configurazione dell'indirizzo IP nel passaggio precedente, è possibile vedere la differenza tra i dettagli dell'istanza di ogni istanza del ruolo.

    1. Visualizzare i dettagli del ruolo, il WebRole2 cui nome IP pubblico non ha un'etichetta del nome di dominio:

      $roleParams = @{
          ServiceName = "<cloud-service-name>"
          Slot = "Production"
          RoleName = "WebRole2"
          InstanceDetails = $true
      }
      Get-AzureRole @roleParams
      

      L'output del cmdlet è simile al testo seguente:

      InstanceEndpoints            : {Microsoft.WindowsAzure.Plugins.RemoteForwarder.RdpInput, Endpoint1}
      InstanceErrorCode            : 
      InstanceFaultDomain          : 0
      InstanceName                 : WebRole2_IN_0
      InstanceSize                 : Standard_D1_v2
      InstanceStateDetails         : 
      InstanceStatus               : ReadyRole
      InstanceUpgradeDomain        : 0
      RoleName                     : WebRole2
      DeploymentID                 : 0123456789abcdef0123456789abcdef
      IPAddress                    : 10.2.2.5
      PublicIPAddress              : 20.115.22.157
      PublicIPName                 : PubIP
      PublicIPIdleTimeoutInMinutes : 
      PublicIPDomainNameLabel      : 
      PublicIPFqdns                : {}
      ServiceName                  : contoso-vnet-pip
      OperationDescription         : Get-AzureRole
      OperationId                  : 12345678-9abc-def0-1234-56789abcdef0
      OperationStatus              : Succeeded
      
    2. Visualizzare ora i dettagli del WebRole1 ruolo, che usa lo stesso nome IP pubblico, ma ha anche un'etichetta del nome di dominio:

      $roleParams = @{
          ServiceName = "<cloud-service-name>"
          Slot = "Production"
          RoleName = "WebRole1"
          InstanceDetails = $true
      }
      Get-AzureRole @roleParams
      

      Nell'output del cmdlet i InstanceEndpointsvalori , InstanceName, InstanceStatus, RoleName, PublicIPAddressIPAddress, PublicIPDomainNameLabel, PublicIPFqdns, e OperationId sono diversi:

      InstanceEndpoints            : {Endpoint1}
      InstanceErrorCode            : 
      InstanceFaultDomain          : 0
      InstanceName                 : WebRole1_IN_0
      InstanceSize                 : Standard_D1_v2
      InstanceStateDetails         : 
      InstanceStatus               : StoppedVM
      InstanceUpgradeDomain        : 0
      RoleName                     : WebRole1_IN_0
      DeploymentID                 : 0123456789abcdef0123456789abcdef
      IPAddress                    : 10.2.0.4
      PublicIPAddress              : 20.168.229.192
      PublicIPName                 : PubIP
      PublicIPIdleTimeoutInMinutes : 
      PublicIPDomainNameLabel      : pip
      PublicIPFqdns                : {pip.contoso-vnet-pip.cloudapp.net, pip.0.contoso-vnet-pip.cloudapp.net}
      ServiceName                  : contoso-vnet-pip
      OperationDescription         : Get-AzureRole
      OperationId                  : 23456789-abcd-ef01-2345-6789abcdef01
      OperationStatus              : Succeeded
      

Procedura per Azure Servizi cloud (supporto esteso)

  1. Configurare un indirizzo IP pubblico a livello di istanza per ruolo:

    <?xml version="1.0" encoding="utf-16"?>
    <ServiceConfiguration
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            serviceName="Test_cloudservice"
            osFamily="6"
            osVersion="*"
            schemaVersion="2015-04.2.6"
            xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
        <Role name="TestWebRole">
            <ConfigurationSettings>
                <Setting
                        name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
                        value="UseDevelopmentStorage=true" />
            </ConfigurationSettings>
            <Instances count="2" />
        </Role>
        <Role name="TestWorkerRole">
            <ConfigurationSettings>
                <Setting
                        name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
                        value="UseDevelopmentStorage=true" />
            </ConfigurationSettings>
            <Instances count="1" />
        </Role>
        <NetworkConfiguration>
            <VirtualNetworkSite name="test001VNet" />
            <AddressAssignments>
                <InstanceAddress roleName="TestWebRole">
                    <Subnets>
                        <Subnet name="default" />
                    </Subnets>
                    <PublicIPs>
                        <PublicIP name="PubIP" domainNameLabel="pip" />
                    </PublicIPs>
                </InstanceAddress>
                <InstanceAddress roleName="TestWorkerRole">
                    <Subnets>
                        <Subnet name="default" />
                    </Subnets>
                </InstanceAddress>
                <ReservedIPs>
                    <ReservedIP name="Group TESTCSES cses-prod" />
                </ReservedIPs>
            </AddressAssignments>
        </NetworkConfiguration>
    </ServiceConfiguration>
    
  2. Usare l'API REST PublicIPAddress In CloudService - List Cloud Service Public IP Addresses per ottenere l'indirizzo IP pubblico della scheda di rete. Il frammento di codice seguente mostra una risposta JSON di esempio:

    {
      "value": [
        {
          "name": "PubIP",
          "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_0/networkInterfaces/nic1/ipConfigurations/ipconfig1/publicIPAddresses/PubIP",
          "etag": "W/\"3456789a-bcde-f012-3456-789abcdef012\"",
          "location": "eastus",
          "properties": {
            "provisioningState": "Succeeded",
            "resourceGuid": "<your-resource-guid>",
            "ipAddress": "20.169.153.231",
            "publicIPAddressVersion": "IPv4",
            "publicIPAllocationMethod": "Dynamic",
            "idleTimeoutInMinutes": 4,
            "dnsSettings": {
              "domainNameLabel": "pip.0.cses-prod",
              "fqdn": "pip.0.cses-prod.eastus.cloudapp.azure.com"
            },
            "ipTags": [],
            "ipConfiguration": {
              "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_0/networkInterfaces/nic1/ipConfigurations/ipconfig1"
            }
          },
          "sku": {
            "name": "Basic",
            "tier": "Regional"
          }
        },
        {
          "name": "PubIP",
          "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_1/networkInterfaces/nic1/ipConfigurations/ipconfig1/publicIPAddresses/PubIP",
          "etag": "W/\"456789ab-cdef-0123-4567-89abcdef0123\"",
          "location": "eastus",
          "properties": {
            "provisioningState": "Succeeded",
            "resourceGuid": "<your-resource-guid>",
            "ipAddress": "20.231.68.190",
            "publicIPAddressVersion": "IPv4",
            "publicIPAllocationMethod": "Dynamic",
            "idleTimeoutInMinutes": 4,
            "dnsSettings": {
              "domainNameLabel": "pip.1.cses-prod",
              "fqdn": "pip.1.cses-prod.eastus.cloudapp.azure.com"
            },
            "ipTags": [],
            "ipConfiguration": {
              "id": "/subscriptions/<your-subscription-guid>/resourceGroups/TESTCSES/providers/Microsoft.Compute/cloudServices/testcsesv2/roleInstances/TestWebRole_IN_1/networkInterfaces/nic1/ipConfigurations/ipconfig1"
            }
          },
          "sku": {
            "name": "Basic",
            "tier": "Regional"
          }
        }
      ]
    }
    

Anche se i due oggetti nella value matrice hanno entrambi un name valore di chiave , PubIPesistono differenze nelle impostazioni indirizzo IP e DNS all'interno delle rispettive properties chiavi. La ipAddress chiave ha un valore di 20.169.153.231 nel primo oggetto matrice e 20.231.68.190 nel secondo oggetto matrice. La dnsSettings chiave ha un valore di pip.0.cses-prod nel primo oggetto matrice e pip.1.cses-prod nel secondo oggetto matrice.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.