Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak wdrożyć aplikację z podwójnym stosem (IPv4 + IPv6) na platformie Azure, która obejmuje sieć wirtualną z podwójnym stosem i podsiecią, standardowy wewnętrzny moduł równoważenia obciążenia z podwójnymi konfiguracjami frontonu (IPv4 + IPv6), maszynami wirtualnymi z interfejsami sieciowymi (NIC) z podwójną konfiguracją IP, sieciową grupą zabezpieczeń i publicznymi adresami IP.
Procedura tworzenia wewnętrznego modułu równoważenia obciążenia obsługującego protokół IPv6 jest prawie identyczna z procesem tworzenia modułu równoważenia obciążenia IPv6 dostępnego z Internetu opisanego tutaj. Jedyne różnice dotyczące tworzenia wewnętrznego modułu równoważenia obciążenia znajdują się w konfiguracji frontonu, jak pokazano w poniższym przykładzie programu PowerShell:
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PrivateIpAddress "fd00:db8:deca:deed::100" `
-PrivateIpAddressVersion "IPv6" `
-Subnet $DsSubnet
Zmiany wprowadzone powyżej konfiguracji frontonu wewnętrznego modułu równoważenia obciążenia to:
- Parametr
PrivateIpAddressVersionjest określony jako "IPv6" - Argument
-PublicIpAddresszostał pominięty lub zastąpiony ciągiem-PrivateIpAddress. Należy pamiętać, że adres prywatny musi znajdować się w zakresie przestrzeni IP podsieci, w której zostanie wdrożony wewnętrzny moduł równoważenia obciążenia. Jeśli pominięto statyczny-PrivateIpAddressadres IPv6, zostanie wybrany następny bezpłatny adres IPv6 z podsieci, w której wdrożono wewnętrzny moduł równoważenia obciążenia. - Podsieć o podwójnej strukturze, w której zostanie wdrożony wewnętrzny moduł równoważenia obciążenia, jest określana za pomocą argumentu
-Subnetlub-SubnetId.
Azure Cloud Shell
Na platformie Azure hostuje się Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.
Aby uruchomić środowisko Azure Cloud Shell:
| Opcja | Przykład/link |
|---|---|
| Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. |
|
| Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. |
|
| Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. |
|
Aby użyć usługi Azure Cloud Shell:
Uruchom usługę Cloud Shell.
Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.
Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając Ctrl++V w systemie macOS.
Wybierz Enter, aby uruchomić kod lub polecenie.
Jeśli zdecydujesz się zainstalować program PowerShell i korzystać z niego lokalnie, ten artykuł wymaga modułu Azure PowerShell w wersji 6.9.0 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az, aby dowiedzieć się, jaka wersja jest zainstalowana. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.
Tworzenie grupy zasobów
Przed utworzeniem sieci wirtualnej z podwójnym stosem należy utworzyć grupę zasobów za pomocą New-AzResourceGroup. Poniższy przykład tworzy grupę zasobów o nazwie dsStd_ILB_RG w wschodniej części USA :
$rg = New-AzResourceGroup `
-ResourceGroupName "dsStd_ILB_RG" `
-Location "east us"
Tworzenie publicznych adresów IP protokołów IPv4 i IPv6
Aby uzyskać dostęp do maszyn wirtualnych z Internetu, potrzebne są publiczne adresy IP IPv4 i IPv6 dla maszyn wirtualnych. Utwórz publiczne adresy IP za pomocą polecenia New-AzPublicIpAddress. Poniższy przykład tworzy publiczny adres IP IPv4 i IPv6 o nazwie RdpPublicIP_1 i RdpPublicIP_2 w grupie zasobów dsStd_ILB_RG :
$RdpPublicIP_1 = New-AzPublicIpAddress `
-Name "RdpPublicIP_1" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-IpAddressVersion IPv4 `
-sku Standard
$RdpPublicIP_2 = New-AzPublicIpAddress `
-Name "RdpPublicIP_2" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-IpAddressVersion IPv6 `
-sku Standard
Tworzenie sieci wirtualnej i podsieci
Utwórz sieć wirtualną przy użyciu polecenia New-AzVirtualNetwork z podwójnym stosem konfiguracji podsieci przy użyciu polecenia New-AzVirtualNetworkSubnetConfig. W poniższym przykładzie zostanie utworzona sieć wirtualna o nazwie dsVnet z podsiecią dsSubnet.
# Create dual stack subnet config
$DsSubnet = New-AzVirtualNetworkSubnetConfig `
-Name "dsSubnet" `
-AddressPrefix "10.0.0.0/24","fd00:db8:deca:deed::/64"
# Create the virtual network
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsVnet" `
-AddressPrefix "10.0.0.0/16","fd00:db8:deca::/48" `
-Subnet $DsSubnet
#Refresh the fully populated subnet for use in load balancer frontend configuration
$DsSubnet = get-AzVirtualNetworkSubnetconfig -name dsSubnet -VirtualNetwork $vnet
Utwórz standardowy Load Balancer
W tej sekcji skonfigurujesz podwójny adres IP frontendu (IPv4 i IPv6) oraz pulę adresów zaplecza dla równoważnika obciążenia, a następnie utworzysz Standardowy Load Balancer.
Tworzenie adresu IP frontonu
Utwórz adres IP frontonu za pomocą polecenia New-AzLoadBalancerFrontendIpConfig. W poniższym przykładzie są tworzone konfiguracje adresów IP frontonu IPv4 i IPv6 o nazwie dsLbFrontEnd_v4 i dsLbFrontEnd_v6:
$frontendIPv4 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v4" `
-PrivateIpAddress "10.0.0.100" `
-PrivateIpAddressVersion "IPv4" `
-Subnet $DsSubnet
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PrivateIpAddress "fd00:db8:deca:deed::100" `
-PrivateIpAddressVersion "IPv6" `
-Subnet $DsSubnet
Konfigurowanie puli adresów zaplecza
Utwórz pulę adresów zaplecza przy użyciu polecenia New-AzLoadBalancerBackendAddressPoolConfig. W kolejnych krokach maszyny wirtualne zostaną dołączone do tej puli zaplecza. Poniższy przykład obejmuje tworzenie pul adresów zaplecza o nazwie dsLbBackEndPool_v4 i dsLbBackEndPool_v6 w celu uwzględnienia maszyn wirtualnych z konfiguracjami kart sieciowych IPV4 i IPv6:
$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig -Name "dsLbBackEndPool_v4"
$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig -Name "dsLbBackEndPool_v6"
Utwórz regułę równoważenia obciążenia
Reguła modułu równoważenia obciążenia służy do definiowania sposobu dystrybucji ruchu do maszyn wirtualnych. Zdefiniuj konfigurację adresu IP przedniego do obsługi ruchu przychodzącego oraz pulę adresów IP w zapleczu, która odbiera ruch, wraz z wymaganymi portami źródłowym i docelowym. Aby upewnić się, że tylko maszyny wirtualne w dobrej kondycji odbierają ruch, możesz opcjonalnie zdefiniować sondę kondycji. Podstawowy moduł równoważenia obciążenia używa sondy IPv4 do oceny kondycji zarówno punktów końcowych IPv4, jak i IPv6 na maszynach wirtualnych. Standardowy moduł równoważenia obciążenia obejmuje obsługę jawnych sond kondycji IPv6.
Utwórz regułę modułu równoważenia obciążenia przy użyciu polecenia Add-AzLoadBalancerRuleConfig. Poniższy przykład tworzy reguły modułu równoważenia obciążenia o nazwie dsLBrule_v4 i dsLBrule_v6 oraz równoważy ruch na porcie TCP 80 do konfiguracji adresów IP frontonu IPv4 i IPv6:
$lbrule_v4 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v4" `
-FrontendIpConfiguration $frontendIPv4 `
-BackendAddressPool $backendPoolv4 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80
$lbrule_v6 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v6" `
-FrontendIpConfiguration $frontendIPv6 `
-BackendAddressPool $backendPoolv6 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80
Tworzenie modułu równoważenia obciążenia
Utwórz standardowy Load Balancer za pomocą polecenia New-AzLoadBalancer. Poniższy przykład tworzy publiczny Standardowy Load Balancer o nazwie myInternalLoadBalancer przy użyciu konfiguracji adresów IP front-endu IPv4 i IPv6, puli zaplecza oraz utworzonych reguł równoważenia obciążenia w poprzednich krokach.
$lb = New-AzLoadBalancer `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "MyInternalLoadBalancer" `
-Sku "Standard" `
-FrontendIpConfiguration $frontendIPv4,$frontendIPv6 `
-BackendAddressPool $backendPoolv4,$backendPoolv6 `
-LoadBalancingRule $lbrule_v4,$lbrule_v6
Tworzenie zasobów sieciowych
Przed wdrożeniem niektórych maszyn wirtualnych i przetestowania modułu równoważenia należy utworzyć pomocnicze zasoby sieciowe — zestaw dostępności, sieciową grupę zabezpieczeń i wirtualne karty sieciowe.
Tworzenie zestawu dostępności
Aby zwiększyć wysoką dostępność aplikacji, umieść maszyny wirtualne w zestawie dostępności.
Aby utworzyć zestaw dostępności, użyj polecenia New-AzAvailabilitySet. Poniższy przykład tworzy zestaw dostępności o nazwie dsAVset:
$avset = New-AzAvailabilitySet `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsAVset" `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2 `
-Sku aligned
Tworzenie sieciowej grupy zabezpieczeń
Utwórz sieciową grupę zabezpieczeń dla reguł, które będą zarządzać komunikacją przychodzącą i wychodzącą w sieci wirtualnej.
Tworzenie reguły sieciowej grupy zabezpieczeń dla portu 3389
Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwolić na połączenia protokołu RDP za pośrednictwem portu 3389 przy użyciu polecenia New-AzNetworkSecurityRuleConfig.
$rule1 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleRDP' `
-Description 'Allow RDP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389
Utwórz regułę grupy zabezpieczeń sieci dla portu 80
Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwolić na połączenia internetowe za pomocą portu 80 używając New-AzNetworkSecurityRuleConfig.
$rule2 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleHTTP' `
-Description 'Allow HTTP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 200 `
-SourceAddressPrefix * `
-SourcePortRange 80 `
-DestinationAddressPrefix * `
-DestinationPortRange 80
Tworzenie sieciowej grupy zabezpieczeń
Utwórz sieciową grupę zabezpieczeń przy użyciu polecenia New-AzNetworkSecurityGroup.
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsNSG1" `
-SecurityRules $rule1,$rule2
Tworzenie kart sieciowych
Utwórz wirtualne karty sieciowe za pomocą New-AzNetworkInterface. W poniższym przykładzie są tworzone dwie wirtualne karty sieciowe z konfiguracjami IPv4 i IPv6. (Jedna wirtualna karta sieciowa na każdą maszynę wirtualną, którą tworzysz dla twojej aplikacji w kolejnych krokach).
# Create the IPv4 configuration for NIC 1
$Ip4Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp4Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv4 `
-LoadBalancerBackendAddressPool $backendPoolv4 `
-PublicIpAddress $RdpPublicIP_1
# Create the IPv6 configuration
$Ip6Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp6Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv6 `
-LoadBalancerBackendAddressPool $backendPoolv6
# Create NIC 1
$NIC_1 = New-AzNetworkInterface `
-Name "dsNIC1" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-NetworkSecurityGroupId $nsg.Id `
-IpConfiguration $Ip4Config,$Ip6Config
# Create the IPv4 configuration for NIC 2
$Ip4Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp4Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv4 `
-LoadBalancerBackendAddressPool $backendPoolv4 `
-PublicIpAddress $RdpPublicIP_2
# Create NIC 2 reusing the IPv6 configuration from NIC 1
$NIC_2 = New-AzNetworkInterface `
-Name "dsNIC2" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-NetworkSecurityGroupId $nsg.Id `
-IpConfiguration $Ip4Config,$Ip6Config
Tworzenie maszyn wirtualnych
Ustaw nazwę użytkownika i hasło administratora maszyn wirtualnych przy użyciu polecenia Get-Credential:
$cred = get-credential -Message "DUAL STACK VNET SAMPLE: Please enter the Administrator credential to log into the VM's"
Następnie utwórz maszyny wirtualne za pomocą polecenia New-AzVM. Poniższy przykład obejmuje tworzenie dwóch maszyn wirtualnych oraz wymaganych składników sieci wirtualnej, jeśli jeszcze nie istnieją.
$vmsize = "Standard_A2"
$ImagePublisher = "MicrosoftWindowsServer"
$imageOffer = "WindowsServer"
$imageSKU = "2019-Datacenter"
$vmName= "dsVM1"
$VMconfig1 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage 3> $null | Add-AzVMNetworkInterface -Id $NIC_1.Id 3> $null
$VM1 = New-AzVM -ResourceGroupName $rg.ResourceGroupName -Location $rg.Location -VM $VMconfig1
$vmName= "dsVM2"
$VMconfig2 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage 3> $null | Add-AzVMNetworkInterface -Id $NIC_2.Id 3> $null
$VM2 = New-AzVM -ResourceGroupName $rg.ResourceGroupName -Location $rg.Location -VM $VMconfig2
Zobacz sieć wirtualną o podwójnym stosie IPv6 w portalu Azure
Sieć wirtualną podwójnego stosu IPv6 można wyświetlić w witrynie Azure Portal w następujący sposób:
- Na pasku wyszukiwania portalu wprowadź ciąg dsVnet.
- Gdy sieć dsVnet pojawi się w wynikach wyszukiwania, wybierz ją. Uruchamia to stronę Przegląd dla dwustackowej sieci wirtualnej o nazwie dsVnet. Sieć wirtualna z podwójnym stosem pokazuje dwie karty sieciowe z konfiguracjami IPv4 i IPv6, które znajdują się w podsieci podwójnego stosu o nazwie dsSubnet.
Uwaga
Protokół IPv6 dla sieci wirtualnej platformy Azure jest dostępny w witrynie Azure Portal w wersji zapoznawczej tylko do odczytu.
Czyszczenie zasobów
Gdy grupa zasobów, maszyna wirtualna i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć za pomocą polecenia Remove-AzResourceGroup.
Remove-AzResourceGroup -Name dsStd_ILB_RG
Następne kroki
W tym artykule utworzono standardowy Load Balancer z podwójną konfiguracją adresu IP na interfejsie (IPv4 i IPv6). Utworzono również dwie maszyny wirtualne, które zawierały karty sieciowe z dwiema konfiguracjami adresów IP (IPV4 + IPv6), które zostały dodane do puli zaplecza modułu równoważenia obciążenia. Aby dowiedzieć się więcej o obsłudze protokołu IPv6 w sieciach wirtualnych platformy Azure, zobacz Co to jest protokół IPv6 dla usługi Azure Virtual Network?