Поделиться через


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

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

Это важно

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

Разница между ILPIP и VIP

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

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

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

Примечание.

Для каждой виртуальной машины или экземпляра роли можно назначить только один ILPIP. Для каждой подписки можно использовать до 5 ИЛПИ. IlPIPs не поддерживается для виртуальных машин с несколькими сетевыми адаптерами.

Почему я должен запрашивать ILPIP?

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

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

Примечание.

В прошлом ip-адрес ILPIP был назван общедоступным IP-адресом (PIP).

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

Следующие задачи позволяют создавать, назначать и удалять ILPI-адреса из виртуальных машин:

Как запросить 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

Вы также можете использовать nslookup для запроса записи A в поддомене:

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

Дальнейшие действия