Nasazení aplikace duálního zásobníku IPv6 ve virtuální síti Azure pomocí PowerShellu
V tomto článku se dozvíte, jak nasadit aplikaci se dvěma zásobníky (IPv4 + IPv6) pomocí Load Balanceru úrovně Standard v Azure, který zahrnuje virtuální síť a podsíť se dvěma zásobníky, službou Standard Load Balancer se dvěma konfiguracemi 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.
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. | |
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. | |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.
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ě, musíte také spustit Connect-AzAccount
, abyste vytvořili připojení k Azure.
Vytvoření skupiny zdrojů
Než budete moct vytvořit virtuální síť se dvěma zásobníky, musíte vytvořit skupinu prostředků pomocí rutiny 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í Rutiny 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í Rutiny 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 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" `
-PublicIpAddress $PublicIP_v4
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PublicIpAddress $PublicIP_v6
Konfigurace fondu back-endových adres
Vytvořte back-endový fond adres pomocí Rutiny New-AzLoadBalancerBackendAddressPoolConfig. 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ření sondy stavu
Pomocí rutiny Add-AzLoadBalancerProbeConfig vytvořte sondu stavu pro monitorování stavu virtuálních počítačů.
$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čů. 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. 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í úrovně Basic používá sondu IPv4 k vyhodnocení stavu koncových bodů IPv4 i IPv6 na virtuálních počítačích. Load Balancer úrovně Standard zahrnuje podporu explicitně sond 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 `
-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 Load Balancer úrovně Standard pomocí New-AzLoadBalancer. Následující příklad vytvoří veřejný Load Balancer úrovně Standard s názvem myLoadBalancer s použitím konfigurace IPv4 a IPv6 front-endových IP adres, 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í 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é karty.
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í New-AzAvailabilitySet. Následující příklad vytvoří skupinu dostupnosti s názvem 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á řídí 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 * `
-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í virtuální sítě
Vytvořte virtuální síť pomocí rutiny New-AzVirtualNetwork. Následující příklad vytvoří virtuální síť s názvem dsVnet s podsítě:
# 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ř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).
$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í Rutiny 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ů, abyste shrnuli IP adresy použité v tomto nasazení.get-AzNetworkInterface
Získejte také front-endové adresy Load Balanceru koncových bodů IPv4 a IPv6 s 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 těchto dvou virtuálních počítačů a IP adres IPv4 a IPv6 služby Load Balancer.
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 webu Azure Portal následujícím způsobem:
- Na panelu hledání na portálu zadejte dsVnet.
- Když 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é karty s konfigurací IPv4 i IPv6 umístěnou v podsíti duálního zásobníku 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 dsRG1
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?