Konfiguration öffentlicher IP-Adressen auf Instanzebene in Cloud Services
In diesem Artikel wird erläutert, wie Sie eine öffentliche IP-Adresse (PIP) auf Instanzebene in Microsoft Azure Cloud Services (klassisch) und Azure Cloud Services (erweiterter Support) konfigurieren. Im Gegensatz zu einer virtuellen IP-Adresse (VIP) ist eine öffentliche IP-Adresse auf Instanzebene nicht lastenausgleichen. Dem Clouddienst wird eine VIP zugewiesen, und alle virtuellen Computer und Rolleninstanzen im Clouddienst teilen diese VIP. Eine öffentliche IP-Adresse (PIP) ist jedoch nur dem Netzwerkadapter einer einzelnen Instanz zugeordnet. Die öffentliche IP-Adresse ist bei Bereitstellungen mit mehreren Instanzen nützlich, in denen jede Instanz unabhängig vom Internet erreichbar sein kann. Das folgende Diagramm veranschaulicht den Wert der PIP und unterscheidet ihn von der VIP.
Im Diagramm wird der an die VIP gesendete Netzwerkdatenverkehr als Lastenausgleich zwischen IP-Adresse (DIP) 1 und DIP 2 des Rechenzentrums angezeigt. Der datenverkehr, der an PIP 1 gesendet wird, geht jedoch immer an DIP 1, und der datenverkehr, der an PIP 2 gesendet wird, geht immer an DIP 2. Eine IP-Adresse des Rechenzentrums ist die private IP-Adresse des virtuellen Computers (VM).
Weitere Informationen finden Sie im Azure-Blogartikel zur Öffentlichen IP-Adresse auf Instanzebene.
Verfahren für Azure Cloud Services (klassisch)
Konfigurieren einer öffentlichen IP-Adresse auf Instanzebene nach Rolle:
<?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>
Rufen Sie die aktuelle öffentliche IP-Adresse einer Rolle mithilfe einer der folgenden Methoden ab.
Führen Sie für jede Rolleninstanz das PowerShell-Cmdlet "Get-AzureRole " aus. Dieses Cmdlet basiert auf dem
Azure.Service
Modul. Mithilfe der IP-Adresskonfiguration im vorherigen Schritt können wir den Unterschied zwischen den Instanzendetails jeder Rolleninstanz erkennen.Zeigen Sie die Details der
WebRole2
Rolle an, deren öffentlicher IP-Name nicht über eine Domänennamenbezeichnung verfügt:$roleParams = @{ ServiceName = "<cloud-service-name>" Slot = "Production" RoleName = "WebRole2" InstanceDetails = $true } Get-AzureRole @roleParams
Die Cmdlet-Ausgabe ähnelt dem folgenden Text:
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
Zeigen Sie nun die Details der
WebRole1
Rolle an, die denselben öffentlichen IP-Namen verwendet, aber auch eine Domänennamenbezeichnung hat:$roleParams = @{ ServiceName = "<cloud-service-name>" Slot = "Production" RoleName = "WebRole1" InstanceDetails = $true } Get-AzureRole @roleParams
In der Cmdlet-Ausgabe unterscheiden sich die
InstanceEndpoints
Werte , , ,PublicIPDomainNameLabel
IPAddress
InstanceName
RoleName
PublicIPAddress
InstanceStatus
PublicIPFqdns
undOperationId
die Werte: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
Verfahren für Azure Cloud Services (erweiterter Support)
Konfigurieren einer öffentlichen IP-Adresse auf Instanzebene nach Rolle:
<?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>
Verwenden Sie die REST-API des PublicIPAddress In CloudService - List Cloud Service Public IP Addresses REST API, um die öffentliche IP-Adresse des Netzwerkadapters abzurufen. Der folgende Codeausschnitt zeigt eine BEISPIEL-JSON-Antwort:
{ "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" } } ] }
Obwohl die beiden Objekte im value
Array beide einen name
Schlüsselwert PubIP
aufweisen, gibt es Unterschiede in den IP-Adressen und DNS-Einstellungen innerhalb der jeweiligen properties
Schlüssel. Der ipAddress
Schlüssel weist einen Wert 20.169.153.231
im ersten Arrayobjekt und 20.231.68.190
im zweiten Arrayobjekt auf. Der dnsSettings
Schlüssel weist einen Wert pip.0.cses-prod
im ersten Arrayobjekt und pip.1.cses-prod
im zweiten Arrayobjekt auf.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.