Nasazení duální zásobníkové aplikace IPv6 pomocí Interního standardního Load Balanceru v Azure pomocí PowerShellu.

V tomto článku se dozvíte, jak nasadit aplikaci se dvěma zásobníky (IPv4 + IPv6) v Azure, která zahrnuje virtuální síť a podsíť se dvěma zásobníky, interním nástrojem pro vyrovnávání zatížení úrovně Standard s konfigurací front-endu (IPv4 + IPv6), virtuálními počítači s duální konfigurací IP adres, skupinou zabezpečení sítě a veřejnými IP adresami.

Postup vytvoření interního nástroje pro vyrovnávání zatížení podporující protokol IPv6 je téměř stejný jako proces vytvoření internetového load balanceru IPv6 popsaného zde. Jediné rozdíly pro vytvoření interního nástroje pro vyrovnávání zatížení jsou v konfiguraci front-endu, jak je znázorněno v příkladu PowerShellu níže:

 $frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
 -Name "dsLbFrontEnd_v6" `
 -PrivateIpAddress "fd00:db8:deca:deed::100" `
 -PrivateIpAddressVersion "IPv6" `
 -Subnet $DsSubnet

Změny, které dělají z výše uvedené konfigurace přední části interního vyrovnavače zatížení, jsou:

  • PrivateIpAddressVersion je specifikováno jako IPv6.
  • Argument -PublicIpAddress byl vynechán nebo nahrazen znakem -PrivateIpAddress. Upozorňujeme, že privátní adresa musí být v rozsahu prostoru IP podsítě, ve kterém se nasadí interní nástroj pro vyrovnávání zatížení. Pokud je statická -PrivateIpAddress vynechána, bude z podsítě, ve které je nasazen interní nástroj pro vyrovnávání zatížení, vybraná další bezplatná adresa IPv6.
  • Podsíť duálního stacku, ve které se nasadí interní vyrovnávač zatížení, je určena buď pomocí -Subnet argumentu nebo -SubnetId argumentu.

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Snímek obrazovky znázorňující příklad možnosti Vyzkoušet pro Azure Cloud Shell
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Tlačítko pro spuštění Azure Cloud Shellu
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Snímek obrazovky znázorňující tlačítko Cloud Shell na webu Azure Portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu stisknutím kombinace kláves Ctrl+Shift+V v systémech Windows a Linux nebo Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Pokud se rozhodnete nainstalovat a používat PowerShell místně, tento článek vyžaduje modul Azure PowerShell verze 6.9.0 nebo novější. Nainstalovanou verzi zjistíte spuštěním příkazu Get-Module -ListAvailable Az. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell. Pokud používáte PowerShell místně, je také potřeba spustit příkaz Connect-AzAccount pro vytvoření připojení k Azure.

Vytvoření skupiny zdrojů

Než budete moci vytvořit svou duální virtuální síť, musíte pomocí New-AzResourceGroup vytvořit skupinu prostředků. Následující příklad vytvoří skupinu prostředků s názvem dsStd_ILB_RG v umístění východ USA:

$rg = New-AzResourceGroup `
  -ResourceGroupName "dsStd_ILB_RG"  `
  -Location "east us"

Vytvoření veřejných IP adres IPv4 a IPv6

Pro přístup k virtuálním počítačům z internetu potřebujete veřejné IP adresy IPv4 a IPv6 pro virtuální počítače. Vytvořte veřejné IP adresy pomocí New-AzPublicIpAddress. Následující příklad vytvoří veřejnou IP adresu IPv4 a IPv6 s názvem RdpPublicIP_1 a RdpPublicIP_2 ve skupině prostředků 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

Vytvoření virtuální sítě a podsítě

Vytvořte virtuální síť pomocí cmdletu New-AzVirtualNetwork s duální podporou konfigurací podsítě pomocí cmdletu New-AzVirtualNetworkSubnetConfig. Následující příklad vytvoří virtuální síť s názvem dsVnet s 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

Vytvořit standardní load balancer

V této části nakonfigurujete duální front-endovou IP adresu (IPv4 a IPv6) a back-endový fond adres pro nástroj pro vyrovnávání zatížení a pak vytvoříte Load Balancer úrovně Standard.

Vytvoření front-endové IP adresy

Vytvořte front-endovou IP adresu pomocí rutiny New-AzLoadBalancerFrontendIpConfig. Následující příklad vytvoří konfigurace front-endových IP adres IPv4 a IPv6 s názvem dsLbFrontEnd_v4 a 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

Konfigurujte fond backendových adres

Vytvořte fond back-endových adres pomocí New-AzLoadBalancerBackendAddressPoolConfig rutiny. Virtuální počítače se k tomuto back-endovému fondu připojí v dalších krocích. Následující příklad vytvoří back-endové fondy adres s názvem dsLbBackEndPool_v4 a dsLbBackEndPool_v6 pro zahrnutí virtuálních počítačů s konfigurací síťových adaptérů IPV4 i IPv6:

$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig -Name "dsLbBackEndPool_v4"

$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig -Name "dsLbBackEndPool_v6"

Vytvořte pravidlo vyrovnávače zatížení

Pravidlo nástroje pro vyrovnávání zatížení slouží k definování způsobu distribuce provozu do virtuálních počítačů. Definujte konfiguraci front-endových IP adres pro příchozí provoz, back-endový fond IP adres pro příjem provozu a také požadovaný zdrojový a cílový port. Aby provoz přijímaly pouze zdravé virtuální počítače (VM), můžete volitelně definovat sondu stavu. Standard Load Balancer podporuje explicitní sondy stavu IPv6.

Vytvořte pravidlo nástroje pro vyrovnávání zatížení pomocí rutiny Add-AzLoadBalancerRuleConfig. Následující příklad vytvoří pravidla nástroje pro vyrovnávání zatížení s názvem dsLBrule_v4 a dsLBrule_v6 a vyrovnává provoz na portu TCP 80 s konfigurací IPv4 a IPv6 front-endových IP adres:

$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

Vytvoření nástroje pro vyrovnávání zatížení

Vytvořte Standardní Load Balancer pomocí New-AzLoadBalancer. Následující příklad vytvoří veřejný Standard Load Balancer s názvem myInternalLoadBalancer pomocí konfigurací front-end IP adres IPv4 a IPv6, back-end poolů a pravidel vyvážení zatížení, které jste vytvořili v předchozích krocích:

$lb = New-AzLoadBalancer  `
  -ResourceGroupName $rg.ResourceGroupName  `
  -Location $rg.Location  `
  -Name  "MyInternalLoadBalancer"  `
  -Sku "Standard"  `
  -FrontendIpConfiguration  $frontendIPv4,$frontendIPv6  `
  -BackendAddressPool  $backendPoolv4,$backendPoolv6  `
  -LoadBalancingRule  $lbrule_v4,$lbrule_v6

Vytvoření síťových prostředků

Před nasazením některých virtuálních počítačů a testováním nástroje pro vyrovnávání musíte vytvořit podpůrné síťové prostředky – skupinu dostupnosti, skupinu zabezpečení sítě a virtuální síťové karty.

Vytvořte skupinu dostupnosti

Pokud chcete zlepšit vysokou dostupnost aplikace, umístěte virtuální počítače do skupiny dostupnosti.

Vytvořte sadu dostupnosti pomocí New-AzAvailabilitySet. Následující příklad vytvoří sadu dostupnosti s názvem dsAVset:

$avset = New-AzAvailabilitySet `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -Name "dsAVset" `
  -PlatformFaultDomainCount 2 `
  -PlatformUpdateDomainCount 2 `
  -Sku aligned

Vytvoření skupiny zabezpečení sítě

Vytvořte skupinu zabezpečení sítě pro pravidla, která budou řídit příchozí a odchozí komunikaci ve vaší virtuální síti.

Vytvoření pravidla skupiny zabezpečení sítě pro port 3389

Vytvořte pravidlo skupiny zabezpečení sítě, které povolí připojení RDP přes port 3389 pomocí rutiny New-AzNetworkSecurityRuleConfig.

$rule1 = New-AzNetworkSecurityRuleConfig `
  -Name 'myNetworkSecurityGroupRuleRDP' `
  -Description 'Allow RDP' `
  -Access Allow `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 3389

Vytvoření pravidla skupiny zabezpečení sítě pro port 80

Vytvořte pravidlo skupiny zabezpečení sítě, které povolí připojení k internetu přes port 80 pomocí rutiny New-AzNetworkSecurityRuleConfig.

$rule2 = New-AzNetworkSecurityRuleConfig `
  -Name 'myNetworkSecurityGroupRuleHTTP' `
  -Description 'Allow HTTP' `
  -Access Allow `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange 80 `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80

Vytvoření skupiny zabezpečení sítě

Vytvořte skupinu zabezpečení sítě pomocí rutiny New-AzNetworkSecurityGroup.

$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -Name "dsNSG1"  `
  -SecurityRules $rule1,$rule2

Vytvoření síťových rozhraní

Vytvoření virtuálních síťových rozhraní pomocí New-AzNetworkInterface Následující příklad vytvoří dvě virtuální síťové karty s konfigurací IPv4 i IPv6. (Jednu virtuální síťovou kartu pro každý virtuální počítač, který pro svou aplikaci vytvoříte v následujících krocích).


# 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

Vytvoření virtuálních počítačů

Pomocí rutiny Get-Credential nastavte uživatelské jméno a heslo správce virtuálních počítačů:

$cred = get-credential -Message "DUAL STACK VNET SAMPLE:  Please enter the Administrator credential to log into the VM's"

Teď můžete vytvořit virtuální počítače pomocí New-AzVM. Následující příklad vytvoří dva virtuální počítače a požadované součásti virtuální sítě, pokud ještě neexistují.

$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

Zobrazení virtuální sítě se dvěma zásobníky IPv6 na webu Azure Portal

Virtuální síť duálního zásobníku IPv6 můžete zobrazit na portálu Azure takto:

  1. Na panelu hledání na portálu zadejte dsVnet.
  2. Když se dsVnet zobrazí ve výsledcích hledání, vyberte ho. Tím se otevře stránka Přehled virtuální sítě s duálním zásobníkem nazvané dsVnet. Virtuální síť se dvěma stacky zobrazuje dvě síťové karty s konfigurací IPv4 i IPv6 umístěné v podsíti duálního stacku s názvem dsSubnet.

Vyčištění prostředků

Pokud už je nepotřebujete, můžete k odebrání skupiny prostředků, virtuálního počítače a všech souvisejících prostředků použít příkaz Remove-AzResourceGroup .

Remove-AzResourceGroup -Name dsStd_ILB_RG

Další kroky

V tomto článku jste vytvořili Load Balancer úrovně Standard s konfigurací duální front-endové IP adresy (IPv4 a IPv6). Také jste vytvořili dva virtuální počítače, které zahrnovaly síťové karty s konfigurací dvou IP adres (IPV4 + IPv6), které byly přidány do back-endového fondu nástroje pro vyrovnávání zatížení. Další informace o podpoře protokolu IPv6 ve virtuálních sítích Azure najdete v tématu Co je IPv6 pro službu Azure Virtual Network?