Общие сведения об общедоступных IP-адресах уровня экземпляра (классическая модель развертывания)

Общедоступный IP-адрес уровня экземпляра (ILPIP) — это общедоступный IP-адрес, который можно назначить непосредственно виртуальной машине или экземпляру роли облачных служб, а не облачной службе, в которой они находятся. Он не заменяет виртуальный IP-адрес (VIP), назначенный облачной службе. а представляет собой дополнительный IP-адрес, с помощью которого можно подключаться непосредственно к виртуальной машине или экземпляру роли.

Важно!

В Azure предлагаются две модели развертывания для создания ресурсов и работы с ними: модель развертывания с помощью Resource Manager и классическая модель. В этой статье рассматривается использование классической модели развертывания. Корпорация Майкрософт рекомендует создавать виртуальные машины с помощью Resource Manager. Убедитесь, что вы понимаете как работают в Azure IP-адреса .

Difference between ILPIP and VIP

Как показано на рис. 1, для доступа к облачной службе используется виртуальный IP-адрес, а для обращения к отдельным виртуальным машинам, как правило, применяется формат "виртуальный IP-адрес:<номер_порта>". Назначив определенной виртуальной машине ILPIP-адрес, вы сможете обращаться к ней напрямую.

При создании облачной службы в среде Azure автоматически создаются соответствующие записи A DNS, благодаря которым к службе можно обращаться по полному доменному имени вместо ее фактического виртуального IP-адреса. То же самое выполняется и для ILPIP-адресов, благодаря чему к виртуальным машинам и экземплярам ролей можно обращаться по полному доменному имени, не указывая ILPIP-адрес. Например, если при создании облачной службы contosoadservice вы настраиваете веб-роль contosoweb с двумя экземплярами и в файле CSCFG параметр domainNameLabel имеет значение WebPublicIP, то платформа Azure регистрирует следующие записи A для этих экземпляров:

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

Примечание

Каждой виртуальной машине или экземпляру роли можно назначить только один ILPIP-адрес. В одной подписке разрешается использовать до 5 ILPIP-адресов. ILPIP-адреса не поддерживаются для виртуальных машин с несколькими сетевыми картами.

Зачем запрашивать ILPIP-адрес?

Чтобы подключиться к виртуальной машине или экземпляру роли непосредственно по определенному IP-адресу, не используйте формат "виртуальный IP-адрес облачной службы:<номер_порта>", а вместо этого отправьте запрос на создание ILPIP-адреса для виртуальной машины или экземпляра роли.

  • Активный FTP-сервер. Если назначить ILPIP-адрес виртуальной машине, она сможет получать трафик через любой порт. Ей не понадобятся конечные точки, чтобы получать трафик. Дополнительные сведения о протоколе FTP см. в обзоре протокола FTP.
  • Исходящий IP-трафик. Исходящий трафик с виртуальной машины сопоставляется с ILPIP-адресом в качестве источника, который уникальным образом идентифицирует эту виртуальную машину для внешних сущностей.

Примечание

Ранее ILPIP-адрес назывался общедоступным IP-адресом.

Управление ILPIP-адресом виртуальной машины

Ниже описано, как создавать, назначать и удалять ILPIP-адреса виртуальных машин.

Как отправлять запрос на получение ILPIP-адреса на этапе создания виртуальной машины с помощью PowerShell

Приведенный ниже сценарий PowerShell создает облачную службу FTPService, получает образ из Azure, создает на его основе виртуальную машину FTPInstance, задает для нее ILPIP-адрес и добавляет эту виртуальную машину в новую службу.

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"

Чтобы указать другую учетную запись хранения в качестве расположения для нового диска виртуальной машины, используйте параметр 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"

Получение сведений об ILPIP-адресе виртуальной машины

Чтобы узнать ILPIP-адрес виртуальной машины, созданной с помощью приведенного выше сценария, выполните следующую команду PowerShell и обратите внимание на значения PublicIPAddress и PublicIPName.

Get-AzureVM -Name FTPInstance -ServiceName FTPService

Ожидаемые выходные данные:

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

Удаление ILPIP-адреса виртуальной машины

Чтобы удалить ILPIP-адрес, назначенный виртуальной машине в приведенном выше сценарии, выполните следующую команду PowerShell.

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

Назначение ILPIP-адреса существующей виртуальной машине

Чтобы добавить ILPIP-адрес для виртуальной машины, созданной с помощью приведенного выше сценария, выполните следующую команду.

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

Управление ILPIP-адресом экземпляра роли облачных служб

Чтобы добавить ILPIP-адрес для экземпляра роли облачных служб, выполните следующие действия.

  1. Скачайте CSCFG-файл облачной службы, выполнив действия, описанные в статье Настройка облачных служб.

  2. Измените этот CSCFG-файл, добавив в него элемент InstanceAddress. Приведенный ниже пример добавляет ILPIP-адрес MyPublicIP для экземпляра роли 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. Передайте CSCFG-файл облачной службы, выполнив действия, описанные в статье Настройка облачных служб.

Как получить сведения об ILPIP-адресе облачной службы

Чтобы просмотреть сведения об ILPIP-адресах для экземпляров роли, выполните следующую команду PowerShell и обратите внимание на значения PublicIPAddress, PublicIPName, PublicIPDomainNameLabel и PublicIPFqdns:

Add-AzureAccount

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

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

Запись A поддомена можно также запросить с помощью команды nslookup:

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

Следующие шаги