Configuración de direcciones IP públicas de nivel de instancia en Cloud Services
En este artículo se describe cómo configurar una dirección IP pública (PIP) de nivel de instancia en Microsoft Azure Cloud Services (clásico) y Azure Cloud Services (soporte extendido). A diferencia de una dirección IP virtual (VIP), una dirección IP pública de nivel de instancia no tiene equilibrio de carga. Se asigna una DIRECCIÓN VIP al servicio en la nube y todas las máquinas virtuales e instancias de rol del servicio en la nube comparten esa DIRECCIÓN VIP. Sin embargo, una dirección IP pública (PIP) está asociada solo al adaptador de red de una sola instancia. La dirección IP pública es útil en implementaciones de varias instancias en las que cada instancia puede ser accesible independientemente de Internet. En el diagrama siguiente se muestra el valor del PIP y se diferencia de la VIP.
En el diagrama, el tráfico de red que se envía a la DIRECCIÓN VIP se muestra como carga equilibrada entre la dirección IP del centro de datos (DIP) 1 y DIP 2. Sin embargo, el tráfico que se envía a PIP 1 siempre va a DIP 1 y el tráfico que se envía a PIP 2 siempre va a DIP 2. Una dirección IP del centro de datos es la dirección IP privada de la máquina virtual (VM).
Para obtener más información, consulte el artículo Sobre la dirección IP pública de nivel de instancia de Azure Blog.
Procedimiento para Azure Cloud Services (clásico)
Configure una dirección IP pública de nivel de instancia por rol:
<?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>
Obtenga la dirección IP pública actual de un rol mediante uno de los métodos siguientes.
Para cada instancia de rol, ejecute el cmdlet Get-AzureRole de PowerShell. Este cmdlet se basa en el
Azure.Service
módulo . Mediante el uso de la configuración de direcciones IP en el paso anterior, podemos ver la diferencia entre los detalles de la instancia de cada instancia de rol.Vea los detalles del
WebRole2
rol, cuyo nombre ip público no tiene una etiqueta de nombre de dominio:$roleParams = @{ ServiceName = "<cloud-service-name>" Slot = "Production" RoleName = "WebRole2" InstanceDetails = $true } Get-AzureRole @roleParams
La salida del cmdlet es similar al texto siguiente:
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
Ahora vea los detalles del
WebRole1
rol, que usa el mismo nombre de IP pública, pero también tiene una etiqueta de nombre de dominio:$roleParams = @{ ServiceName = "<cloud-service-name>" Slot = "Production" RoleName = "WebRole1" InstanceDetails = $true } Get-AzureRole @roleParams
En la salida del cmdlet, los
InstanceEndpoints
valores ,InstanceName
,InstanceStatus
,RoleName
,IPAddress
,PublicIPAddress
,PublicIPDomainNameLabel
,PublicIPFqdns
yOperationId
son diferentes: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
Procedimiento para Azure Cloud Services (soporte extendido)
Configure una dirección IP pública de nivel de instancia por rol:
<?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>
Use la API REST PublicIPAddress In CloudService - List Cloud Service Public IP Addresses para obtener la dirección IP pública del adaptador de red. El siguiente fragmento de código muestra una respuesta JSON de ejemplo:
{ "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" } } ] }
Aunque los dos objetos de la value
matriz tienen un name
valor clave de PubIP
, hay diferencias en la dirección IP y la configuración de DNS dentro de las claves respectivas properties
. La ipAddress
clave tiene un valor de 20.169.153.231
en el primer objeto de matriz y 20.231.68.190
en el segundo objeto de matriz. La dnsSettings
clave tiene un valor de pip.0.cses-prod
en el primer objeto de matriz y pip.1.cses-prod
en el segundo objeto de matriz.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de