Общие сведения об общедоступных IP-адресах уровня экземпляра (классическая модель развертывания)
Общедоступный IP-адрес уровня экземпляра (ILPIP) — это общедоступный IP-адрес, который можно назначить непосредственно виртуальной машине или экземпляру роли облачных служб, а не облачной службе, в которой они находятся. Он не заменяет виртуальный IP-адрес (VIP), назначенный облачной службе. а представляет собой дополнительный IP-адрес, с помощью которого можно подключаться непосредственно к виртуальной машине или экземпляру роли.
Важно!
В Azure предлагаются две модели развертывания для создания ресурсов и работы с ними: модель развертывания с помощью Resource Manager и классическая модель. В этой статье рассматривается использование классической модели развертывания. Корпорация Майкрософт рекомендует создавать виртуальные машины с помощью Resource Manager. Убедитесь, что вы понимаете как работают в Azure IP-адреса .
Как показано на рис. 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-адрес для экземпляра роли облачных служб, выполните следующие действия.
Скачайте CSCFG-файл облачной службы, выполнив действия, описанные в статье Настройка облачных служб.
Измените этот 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>
Передайте 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
Следующие шаги
- Общие сведения об IP-адресах в классической модели развертывания см. в статье IP-адреса в Azure (классическая модель развертывания).
- Общие сведения о зарезервированных IP-адресах см. в этой статье.