Nasazení aplikace duálního zásobníku IPv6 v Azure – PowerShell

Tento článek ukazuje, jak nasadit aplikaci se dvěma zásobníky (IPv4 + IPv6) pomocí služby Standard Load Balancer v Azure, která zahrnuje virtuální síť a podsíť se dvěma zásobníky, Standard Load Balancer s duální konfigurací front-endu (IPv4 + IPv6), virtuální počítače s síťovými kartami s duální konfigurací IP, skupinou zabezpečení sítě a veřejnými IP adresami.

Použití služby 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. Můžete použít předinstalované příkazy služby Cloud Shell ke spuštění kódu uvedeného v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.

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

Možnost Příklad nebo odkaz
Zvolte Vyzkoušet v pravém horním rohu bloku kódu. Výběr Vyzkoušet automaticky nekopíruje kód do služby Cloud Shell. Příklad Vyzkoušet služby 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. Spuštění služby Cloud Shell v novém okně
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Tlačítko Cloud Shell na webu Azure Portal

Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:

  1. Spusťte Cloud Shell.

  2. Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.

  3. Vložte kód do relace Cloud Shell pomocí kláves Ctrl+Shift+V ve Windows a Linuxu nebo pomocí kláves Cmd+Shift+V v systému macOS.

  4. Spusťte kód stisknutím klávesy Enter.

Pokud se rozhodnete nainstalovat a používat PowerShell místně, musíte použít 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 prostředků

Než budete moci vytvořit virtuální síť se dvěma zásobníky, musíte vytvořit skupinu prostředků pomocí příkazu New-AzResourceGroup. Následující příklad vytvoří skupinu prostředků myRGDualStack v umístění USA – východ:

   $rg = New-AzResourceGroup `
  -ResourceGroupName "dsRG1"  `
  -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 nástroj pro vyrovnávání zatížení. Vytvořte veřejné IP adresy pomocí příkazu New-AzPublicIpAddress. Následující příklad vytvoří veřejnou IP adresu IPv4 a IPv6 s názvem dsPublicIP_v4 a dsPublicIP_v6 ve skupině prostředků dsRG1:

$PublicIP_v4 = New-AzPublicIpAddress `
  -Name "dsPublicIP_v4" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -AllocationMethod Static `
  -IpAddressVersion IPv4 `
  -Sku Standard
  
$PublicIP_v6 = New-AzPublicIpAddress `
  -Name "dsPublicIP_v6" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -AllocationMethod Static `
  -IpAddressVersion IPv6 `
  -Sku Standard

Pokud chcete získat přístup k virtuálním počítačům pomocí připojení RDP, vytvořte pro virtuální počítače veřejné IP adresy IPV4 pomocí příkazu New-AzPublicIpAddress.

  $RdpPublicIP_1 = New-AzPublicIpAddress `
  -Name "RdpPublicIP_1" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -AllocationMethod Static `
  -Sku Standard `
  -IpAddressVersion IPv4
  
  $RdpPublicIP_2 = New-AzPublicIpAddress `
   -Name "RdpPublicIP_2" `
   -ResourceGroupName $rg.ResourceGroupName `
   -Location $rg.Location  `
   -AllocationMethod Static `
   -Sku Standard `
   -IpAddressVersion IPv4

Vytvoření Load Balanceru úrovně Standard

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 Standard Load Balancer.

Vytvoření front-endové IP adresy

Vytvořte front-endovou IP adresu pomocí příkazu New-AzLoadBalancerFrontendIpConfig. Následující příklad vytvoří konfigurace ip adres front-endu IPv4 a IPv6 s názvem dsLbFrontEnd_v4 a dsLbFrontEnd_v6:

$frontendIPv4 = New-AzLoadBalancerFrontendIpConfig `
  -Name "dsLbFrontEnd_v4" `
  -PublicIpAddress $PublicIP_v4

$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
  -Name "dsLbFrontEnd_v6" `
  -PublicIpAddress $PublicIP_v6

Konfigurace back-end fondu adres

Vytvořte back-endový fond adres pomocí příkazu New-AzLoadBalancerBackendAddressPoolConfig. Virtuální počítače se k tomuto back-end fondu připojí ve zbývajících krocích. Následující příklad vytvoří back-endové fondy adres s názvem dsLbBackEndPool_v4 a dsLbBackEndPool_v6 tak, aby zahrnovaly virtuální počítače s konfigurací síťových adaptérů IPV4 i IPv6:

$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v4"

$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v6"

Vytvoření sondy stavu

Pomocí příkazu Add-AzLoadBalancerProbeConfig vytvořte sondu stavu pro monitorování stavu virtuálních počítače.

$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2

Vytvoření pravidla nástroje pro vyrovnávání 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čů. Nadefinujte 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. Pokud chcete zajistit, aby provoz přijímaly jenom virtuální počítače, které jsou v pořádku, můžete volitelně definovat sondu stavu. Nástroj pro vyrovnávání zatížení basic používá sondu IPv4 k vyhodnocení stavu koncových bodů IPv4 i IPv6 na virtuálních počítači. Standard Load Balancer zahrnuje podporu explicitně IPv6 sond stavu.

Vytvořte pravidlo nástroje pro vyrovnávání zatížení pomocí příkazu Add-AzLoadBalancerRuleConfig. Následující příklad vytvoří pravidla nástroje pro vyrovnávání zatížení dsLBrule_v4 a dsLBrule_v6 a vyvažuje provoz na portu TCP 80 s konfiguracemi ip adres front-endu IPv4 a IPv6:

$lbrule_v4 = New-AzLoadBalancerRuleConfig `
  -Name "dsLBrule_v4" `
  -FrontendIpConfiguration $frontendIPv4 `
  -BackendAddressPool $backendPoolv4 `
  -Protocol Tcp `
  -FrontendPort 80 `
  -BackendPort 80 `
   -probe $probe

$lbrule_v6 = New-AzLoadBalancerRuleConfig `
  -Name "dsLBrule_v6" `
  -FrontendIpConfiguration $frontendIPv6 `
  -BackendAddressPool $backendPoolv6 `
  -Protocol Tcp `
  -FrontendPort 80 `
  -BackendPort 80 `
   -probe $probe

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

Vytvořte nový Standard Load Balancer pomocí příkazu New-AzLoadBalancer. Následující příklad vytvoří veřejnou Standard Load Balancer myLoadBalancer pomocí konfigurací IP adres front-endu IPv4 a IPv6, back-endových fondů a pravidel vyrovnávání zatížení, které jste vytvořili v předchozích krocích:

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

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í zatížení musíte vytvořit podpůrné síťové prostředky – skupinu dostupnosti, skupinu zabezpečení sítě, virtuální síť a virtuální síťové adaptéry.

Vytvoření skupiny dostupnosti

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

Vytvořte sadu dostupnosti pomocí příkazu New-AzAvailabilitySet. Následující příklad vytvoří skupinu dostupnosti myAvailabilitySet:

$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

Pomocí příkazu New-AzNetworkSecurityRuleConfigvytvořte pravidlo skupiny zabezpečení sítě, které povolí připojení RDP přes port 3389.

$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

Pomocí příkazu New-AzNetworkSecurityRuleConfigvytvořte pravidlo skupiny zabezpečení sítě, které povolí připojení k internetu přes port 80.

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

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

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

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

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

Vytvořte virtuální síť pomocí příkazu New-AzVirtualNetwork. Následující příklad vytvoří virtuální síť dsVnet s mySubnet:

# Create dual stack subnet
$subnet = 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 $subnet

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

Vytvořte virtuální síťové rozhraní pomocí příkazu New-AzNetworkInterface. Následující příklad vytvoří dvě virtuální nic 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).

  $Ip4Config=New-AzNetworkInterfaceIpConfig `
    -Name dsIp4Config `
    -Subnet $vnet.subnets[0] `
    -PrivateIpAddressVersion IPv4 `
    -LoadBalancerBackendAddressPool $backendPoolv4 `
    -PublicIpAddress  $RdpPublicIP_1
      
  $Ip6Config=New-AzNetworkInterfaceIpConfig `
    -Name dsIp6Config `
    -Subnet $vnet.subnets[0] `
    -PrivateIpAddressVersion IPv6 `
    -LoadBalancerBackendAddressPool $backendPoolv6
    
  $NIC_1 = New-AzNetworkInterface `
    -Name "dsNIC1" `
    -ResourceGroupName $rg.ResourceGroupName `
    -Location $rg.Location  `
    -NetworkSecurityGroupId $nsg.Id `
    -IpConfiguration $Ip4Config,$Ip6Config 
    
  $Ip4Config=New-AzNetworkInterfaceIpConfig `
    -Name dsIp4Config `
    -Subnet $vnet.subnets[0] `
    -PrivateIpAddressVersion IPv4 `
    -LoadBalancerBackendAddressPool $backendPoolv4 `
    -PublicIpAddress  $RdpPublicIP_2  

  $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 VMs."

Teď můžete vytvořit virtuální počítače pomocí příkazu New-AzVM. Následující příklad vytvoří dva virtuální počítače a požadované komponenty 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

Určení IP adres koncových bodů IPv4 a IPv6

Získejte všechny objekty síťového rozhraní ve skupině prostředků a shrňte IP adresy použité v tomto nasazení pomocí get-AzNetworkInterface . Pomocí také Load Balancer adresy front-endových adres koncových bodů IPv4 a IPv6. get-AzpublicIpAddress

$rgName= "dsRG1"
$NICsInRG= get-AzNetworkInterface -resourceGroupName $rgName 
write-host `nSummary of IPs in this Deployment: 
write-host ******************************************
foreach ($NIC in $NICsInRG) {
 
    $VMid= $NIC.virtualmachine.id 
    $VMnamebits= $VMid.split("/") 
    $VMname= $VMnamebits[($VMnamebits.count-1)] 
    write-host `nPrivate IP addresses for $VMname 
    $IPconfigsInNIC= $NIC.IPconfigurations 
    foreach ($IPconfig in $IPconfigsInNIC) {
 
        $IPaddress= $IPconfig.privateipaddress 
        write-host "    "$IPaddress 
        IF ($IPconfig.PublicIpAddress.ID) {
 
            $IDbits= ($IPconfig.PublicIpAddress.ID).split("/")
            $PipName= $IDbits[($IDbits.count-1)]
            $PipObject= get-azPublicIpAddress -name $PipName -resourceGroup $rgName
            write-host "    "RDP address:  $PipObject.IpAddress
                 }
         }
 }
 
 
 
  write-host `nPublic IP addresses on Load Balancer:
 
  (get-AzpublicIpAddress -resourcegroupname $rgName | where { $_.name -notlike "RdpPublicIP*" }).IpAddress

Následující obrázek ukazuje ukázkový výstup se seznamem privátních IPv4 a IPv6 adres obou virtuálních počítačů a front-endových IPv4 a IPv6 IP adres Load Balancer.

Shrnutí IP adresy nasazení aplikace se dvěma zásobníky (IPv4/IPv6) v Azure

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

Virtuální síť s duálním zásobníkem IPv6 můžete zobrazit v Azure Portal následujícím způsobem:

  1. Na panelu hledání na portálu zadejte dsVnet.
  2. Jakmile se ve výsledcích hledání zobrazí dsVnet, vyberte ji. Tím se spustí stránka Přehled virtuální sítě se dvěma zásobníky s názvem dsVnet. Virtuální síť se dvěma zásobníky zobrazuje dvě síťové adaptéry s konfiguracemi IPv4 i IPv6 umístěnými v podsíti s duálním zásobníkem dsSubnet.

Virtuální síť se dvěma zásobníky IPv6 v Azure

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 dsRG1

Další kroky

V tomto článku jste vytvořili Standard Load Balancer s duální konfigurací front-endové IP adresy (IPv4 a IPv6). Vytvořili jste také dva virtuální počítače, které zahrnovaly virtuální počítače s duální konfigurací IP (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 IPv6 ve virtuálních sítích Azure najdete v tématu [Co je IPv6 pro Azure Virtual Network?] ((.. /virtual-network/ip-services/ipv6-overview.md)