Omówienie publicznego adresu IP (klasycznego) na poziomie wystąpienia

Publiczny adres IP (ILPIP) na poziomie wystąpienia to publiczny adres IP, który można przypisać bezpośrednio do wystąpienia roli maszyny wirtualnej lub usług w chmurze, a nie do usługi w chmurze, w której znajduje się maszyna wirtualna lub wystąpienie roli. Protokół ILPIP nie ma miejsca wirtualnego adresu IP (VIP) przypisanego do usługi w chmurze. Zamiast tego jest to dodatkowy adres IP, którego można użyć do nawiązania bezpośredniego połączenia z maszyną wirtualną lub wystąpieniem roli.

Ważne

Platforma Azure ma dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: Resource Manager i model klasyczny. Ten artykuł dotyczy klasycznego modelu wdrożenia. Firma Microsoft zaleca tworzenie maszyn wirtualnych za pomocą Resource Manager. Upewnij się, że wiesz, jak działają adresy IP na platformie Azure.

Difference between ILPIP and VIP

Jak pokazano na rysunku 1, dostęp do usługi w chmurze jest uzyskiwany przy użyciu adresu VIP, podczas gdy poszczególne maszyny wirtualne są zwykle dostępne przy użyciu adresu VIP:<numer> portu. Przypisując protokół ILPIP do określonej maszyny wirtualnej, do tej maszyny wirtualnej można uzyskać bezpośredni dostęp przy użyciu tego adresu IP.

Podczas tworzenia usługi w chmurze na platformie Azure odpowiednie rekordy DNS A są tworzone automatycznie, aby zezwolić na dostęp do usługi za pośrednictwem w pełni kwalifikowanej nazwy domeny (FQDN), zamiast rzeczywistego adresu VIP. Ten sam proces występuje w przypadku protokołu ILPIP, co umożliwia dostęp do maszyny wirtualnej lub wystąpienia roli przez nazwę FQDN zamiast funkcji ILPIP. Jeśli na przykład utworzysz usługę w chmurze o nazwie contosoadservice i skonfigurujesz rolę internetową o nazwie contosoweb z dwoma wystąpieniami, a w pliku cscfg domainNameLabel ustawiono wartość WebPublicIP, platforma Azure rejestruje następujące rekordy A dla wystąpień:

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

Uwaga

Dla każdej maszyny wirtualnej lub wystąpienia roli można przypisać tylko jedną funkcję ILPIP. Możesz użyć maksymalnie 5 adresów ILPIps na subskrypcję. Adresy IP nie są obsługiwane w przypadku maszyn wirtualnych z wieloma kartami sieciowymi.

Dlaczego chcę zażądać funkcji ILPIP?

Jeśli chcesz mieć możliwość nawiązania połączenia z maszyną wirtualną lub wystąpieniem roli przy użyciu adresu IP przypisanego bezpośrednio do niego, a nie przy użyciu adresu VIP usługi w chmurze:< numeru> portu, zażądaj protokołu ILPIP dla maszyny wirtualnej lub wystąpienia roli.

  • Aktywny protokół FTP — przypisując protokół ILPIP do maszyny wirtualnej, może odbierać ruch na dowolnym porcie. Punkty końcowe nie są wymagane, aby maszyna wirtualna odbierała ruch. Aby uzyskać szczegółowe informacje na temat protokołu FTP, zobacz Omówienie protokołu FTP.
  • Wychodzący adres IP — ruch wychodzący pochodzący z maszyny wirtualnej jest mapowany na funkcję ILPIP jako źródło, a funkcja ILPIP jednoznacznie identyfikuje maszynę wirtualną do jednostek zewnętrznych.

Uwaga

W przeszłości adres ILPIP był nazywany publicznym adresem IP (PIP).

Zarządzanie usługą ILPIP dla maszyny wirtualnej

Następujące zadania umożliwiają tworzenie, przypisywanie i usuwanie adresów ILPIPs z maszyn wirtualnych:

Jak zażądać protokołu ILPIP podczas tworzenia maszyny wirtualnej przy użyciu programu PowerShell

Poniższy skrypt programu PowerShell tworzy usługę w chmurze o nazwie FTPService, pobiera obraz z platformy Azure, tworzy maszynę wirtualną o nazwie FTPInstance przy użyciu pobranego obrazu, ustawia maszynę wirtualną do użycia funkcji ILPIP i dodaje maszynę wirtualną do nowej usługi:

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"

Jeśli chcesz określić inne konto magazynu jako lokalizację nowego dysku maszyny wirtualnej, możesz użyć parametru 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"

Jak pobrać informacje O usłudze ILPIP dla maszyny wirtualnej

Aby wyświetlić informacje O funkcji ILPIP dla maszyny wirtualnej utworzonej przy użyciu poprzedniego skryptu, uruchom następujące polecenie programu PowerShell i obserwuj wartości PublicIPAddress i PublicIPName:

Get-AzureVM -Name FTPInstance -ServiceName FTPService

Oczekiwane dane wyjściowe:

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

Jak usunąć ILPIP z maszyny wirtualnej

Aby usunąć protokół ILPIP dodany do maszyny wirtualnej w poprzednim skrypcie, uruchom następujące polecenie programu PowerShell:

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

Jak dodać protokół ILPIP do istniejącej maszyny wirtualnej

Aby dodać usługę ILPIP do maszyny wirtualnej utworzonej przy użyciu poprzedniego skryptu, uruchom następujące polecenie:

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

Zarządzanie usługą ILPIP dla wystąpienia roli usług w chmurze

Aby dodać funkcję ILPIP do wystąpienia roli usług w chmurze, wykonaj następujące kroki:

  1. Pobierz plik cscfg dla usługi w chmurze, wykonując kroki opisane w artykule How to Configure Cloud Services (Jak skonfigurować usługi w chmurze).

  2. Zaktualizuj plik cscfg, dodając InstanceAddress element. Poniższy przykład dodaje element ILPIP o nazwie MyPublicIP do wystąpienia roli o nazwie 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. Przekaż plik cscfg dla usługi w chmurze, wykonując kroki opisane w artykule How to Configure Cloud Services (Jak skonfigurować usługi w chmurze).

Jak pobrać informacje ILPIP dla usługi w chmurze

Aby wyświetlić informacje ILPIP dla wystąpienia roli, uruchom następujące polecenie programu PowerShell i zaobserwuj wartości publicIPAddress, PublicIPName, PublicIPDomainNameLabel i PublicIPFqdns:

Add-AzureAccount

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

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

Możesz również użyć nslookup polecenia , aby wykonać zapytanie dotyczące rekordu A domeny podrzędnej:

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

Następne kroki