IPv6 kettős veremű alkalmazás üzembe helyezése azure-beli virtuális hálózaton a PowerShell használatával

Ez a cikk bemutatja, hogyan helyezhet üzembe kettős verem (IPv4 + IPv6) alkalmazásokat a Standard Load Balancer használatával az Azure-ban, amely kettős verem virtuális hálózatot és alhálózatot, kettős (IPv4 + IPv6) előtér-konfigurációval rendelkező Standard Load Balancert, kettős IP-konfigurációval rendelkező virtuális GÉPEKET, hálózati biztonsági csoportot és nyilvános IP-címeket tartalmaz.

Azure Cloud Shell

Az Azure által üzemeltetett Azure Cloud Shell egy interaktív felület, amelyet a böngészőből használhat. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. A Cloud Shell előre telepített parancsaival futtathatja a jelen cikkben szereplő kódot anélkül, hogy bármit telepítenie kellene a helyi környezetben.

Az Azure Cloud Shell indítása:

Lehetőség Példa/hivatkozás
Válassza a Kipróbálás lehetőséget egy kód vagy parancsblokk jobb felső sarkában. A Kipróbálás lehetőség választása nem másolja automatikusan a kódot vagy a parancsot a Cloud Shellbe. Screenshot that shows an example of Try It for Azure Cloud Shell.
Látogasson el a https://shell.azure.com webhelyre, vagy kattintson a Cloud Shell indítása gombra a böngészőben. Button to launch Azure Cloud Shell.
Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. Screenshot that shows the Cloud Shell button in the Azure portal

Az Azure Cloud Shell használata:

  1. Indítsa el a Cloud Shellt.

  2. A kód vagy parancs másolásához kattintson a Másolás gombra egy kódblokkon (vagy parancsblokkon).

  3. Illessze be a kódot vagy parancsot a Cloud Shell-munkamenetbe a Windows és Linux rendszeren a Ctrl Shift+V billentyűkombinációval+, vagy a Cmd+Shift+V macOS rendszeren való kiválasztásával.

  4. A kód vagy parancs futtatásához válassza az Enter lehetőséget .

Ha a PowerShell helyi telepítése és használata mellett dönt, ehhez a cikkhez az Azure PowerShell-modul 6.9.0-s vagy újabb verziójára van szükség. A telepített verzió azonosításához futtassa a következőt: Get-Module -ListAvailable Az. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, az Azure-ral való kapcsolat létrehozásához is futnia Connect-AzAccount kell.

Erőforráscsoport létrehozása

A kétveremes virtuális hálózat létrehozása előtt létre kell hoznia egy erőforráscsoportot a New-AzResourceGroup használatával. Az alábbi példa létrehoz egy myRGDualStack nevű erőforráscsoportot az USA keleti régiójában:

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

IPv4 és IPv6 nyilvános IP-címek létrehozása

A virtuális gépek internetről való eléréséhez iPv4- és IPv6-nyilvános IP-címekre van szükség a terheléselosztóhoz. Hozzon létre nyilvános IP-címeket a New-AzPublicIpAddress használatával. Az alábbi példa létrehoz egy IPv4- és IPv6-nyilvános IP-címet dsPublicIP_v4 és dsPublicIP_v6 a dsRG1 erőforráscsoportban:

$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

Ha RDP-kapcsolaton keresztül szeretné elérni a virtuális gépeket, hozzon létre egy IPV4 nyilvános IP-címeket a new-AzPublicIpAddress virtuális gépekhez.

  $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

Standard Load Balancer létrehozása

Ebben a szakaszban konfigurálja a kettős előtérbeli IP-címet (IPv4 és IPv6) és a háttércímkészletet a terheléselosztóhoz, majd létrehoz egy Standard Load Balancert.

Előtérbeli IP-cím létrehozása

Hozzon létre egy előtérbeli IP-címet a New-AzLoadBalancerFrontendIpConfig használatával. Az alábbi példa IPv4- és IPv6-előtér IP-konfigurációkat hoz létre dsLbFrontEnd_v4 és dsLbFrontEnd_v6 néven:

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

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

A hátércímkészlet konfigurálása

Hozzon létre egy háttércímkészletet a New-AzLoadBalancerBackendAddressPoolConfig használatával. A virtuális gépek ehhez a háttérkészlethez lesznek csatolva a hátralévő lépések során. Az alábbi példa dsLbBackEndPool_v4 nevű háttércímkészleteket hoz létre, és dsLbBackEndPool_v6 az IPV4- és IPv6-NIC-konfigurációval rendelkező virtuális gépek belefoglalásához:

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

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

Állapotminta létrehozása

Az Add-AzLoadBalancerProbeConfig használatával hozzon létre állapotmintát a virtuális gépek állapotának figyeléséhez.

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

Terheléselosztási szabály létrehozása

A terheléselosztási szabállyal azt lehet megadni, hogy a rendszer hogyan ossza el a forgalmat a virtuális gépek között. Meg kell határoznia az előtérbeli IP-konfigurációt a bejövő forgalomhoz és a háttérbeli IP-készletet a forgalom fogadásához, valamint a szükséges forrás- és célportot. Ha azt szeretné, hogy csak az kifogástalan állapotú virtuális gépek fogadják a forgalmat, megadhat egy állapotmintát is. Az alapszintű terheléselosztó egy IPv4-mintavételt használ a virtuális gépek IPv4- és IPv6-végpontjai állapotának felméréséhez. A standard terheléselosztó kifejezetten IPv6-állapotminták támogatását tartalmazza.

Hozzon létre egy terheléselosztó-szabályt az Add-AzLoadBalancerRuleConfig használatával. Az alábbi példa dsLBrule_v4 nevű terheléselosztó-szabályokat hoz létre, és dsLBrule_v6 és kiegyensúlyoz egy forgalmat a 80-s TCP-porton az IPv4 és az IPv6 előtérbeli IP-konfigurációk felé:

$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

Terheléselosztó létrehozása

Hozzon létre egy Standard Load Balancert a New-AzLoadBalancerrel. Az alábbi példa egy myLoadBalancer nevű nyilvános Standard Load Balancert hoz létre az előző lépésekben létrehozott IPv4 és IPv6 előtér IP-konfigurációk, háttérkészletek és terheléselosztási szabályok használatával:

$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

Hálózati erőforrások létrehozása

Néhány virtuális gép üzembe helyezése és a kiegyensúlyozó tesztelése előtt létre kell hoznia a támogató hálózati erőforrásokat – a rendelkezésre állási csoportot, a hálózati biztonsági csoportot, a virtuális hálózatot és a virtuális hálózati adaptereket.

Rendelkezésre állási csoport létrehozása

Az alkalmazás magas rendelkezésre állásának növeléséhez helyezze a virtuális gépeket egy rendelkezésre állási csoportba.

Hozzon létre egy rendelkezésre állási csoportot a New-AzAvailabilitySettel. Az alábbi példa egy myAvailabilitySet nevű rendelkezésre állási csoportot hoz létre:

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

Hálózati biztonsági csoport létrehozása

Hozzon létre egy hálózati biztonsági csoportot a virtuális hálózaton belüli bejövő és kimenő kommunikációt szabályozó szabályokhoz.

Hálózati biztonságicsoport-szabály létrehozása a 3389-es porhoz

Hozzon létre egy hálózati biztonsági csoportszabályt, amely engedélyezi az RDP-kapcsolatokat a 3389-s porton keresztül a New-AzNetworkSecurityRuleConfig használatával.

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

Hálózati biztonságicsoport-szabály létrehozása a 80-as porhoz

Hozzon létre egy hálózati biztonsági csoportszabályt, amely engedélyezi az internetkapcsolatot a 80-s porton keresztül a New-AzNetworkSecurityRuleConfig használatával.

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

Hálózati biztonsági csoport létrehozása

Hozzon létre egy hálózati biztonsági csoportot a New-AzNetworkSecurityGroup használatával.

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

Virtuális hálózat létrehozása

Hozzon létre egy virtuális hálózatot a New-AzVirtualNetwork használatával. Az alábbi példa egy dsVnet nevű virtuális hálózatot hoz létre a mySubnettel:

# 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

Hálózati adapterek létrehozása

Virtuális hálózati adapterek létrehozása a New-AzNetworkInterface használatával. Az alábbi példa két virtuális hálózati adaptert hoz létre IPv4- és IPv6-konfigurációkkal. (Egy virtuális NIC-t minden virtuális géphez, amelyet létre fog hozni az alkalmazáshoz a következő lépések során).

  $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 

Virtuális gépek létrehozása

A Get-Credential paranccsal állítsa be a virtuális gépek rendszergazdai felhasználónevét és jelszavát:

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

Most már létrehozhatja a virtuális gépeket a New-AzVM használatával. Az alábbi példa két virtuális gépet és a szükséges virtuális hálózati összetevőket hozza létre, ha még nem léteznek.

$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

Az IPv4- és IPv6-végpontok IP-címeinek meghatározása

Kérje le az erőforráscsoport összes hálózati adapter-objektumát az üzembe helyezés során használt IP-címek összegzéséhez get-AzNetworkInterface. Emellett kérje le az IPv4- és IPv6-végpontok Load Balancer-előtércímeit get-AzpublicIpAddressis.

$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

Az alábbi ábrán egy mintakimenet látható, amely felsorolja a két virtuális gép privát IPv4- és IPv6-címét, valamint a Load Balancer előtérbeli IPv4- és IPv6-IP-címét.

IP summary of dual stack (IPv4/IPv6) application deployment in Azure

IPv6 kettős verem virtuális hálózat megtekintése az Azure Portalon

Az IPv6 kettős verem virtuális hálózatát az Azure Portalon az alábbiak szerint tekintheti meg:

  1. A portál keresősávjában adja meg a dsVnet nevet.
  2. Amikor a dsVnet megjelenik a keresési eredmények között, jelölje ki. Ezzel elindítja a dsVnet nevű kettős verem virtuális hálózat áttekintési oldalát. A kettős verem virtuális hálózata a két hálózati adaptert jeleníti meg, mind az IPv4, mind az IPv6 konfigurációval, amely a dsSubnet nevű kettős verem alhálózatban található.

IPv6 dual stack virtual network in Azure

Az erőforrások eltávolítása

Ha már nincs rá szükség, a Remove-AzResourceGroup paranccsal eltávolíthatja az erőforráscsoportot, a virtuális gépet és az összes kapcsolódó erőforrást.

Remove-AzResourceGroup -Name dsRG1

Következő lépések

Ebben a cikkben létrehozott egy standard Load Balancert kettős előtér IP-konfigurációval (IPv4 és IPv6). Létrehozott egy két virtuális gépet is, amelyek kettős IP-konfigurációval (IPV4 + IPv6) rendelkező hálózati adaptereket tartalmaztak, amelyeket hozzáadtak a terheléselosztó háttérkészletéhez. Az Azure-beli virtuális hálózatok IPv6-támogatásával kapcsolatos további információkért lásd : Mi az IPv6 az Azure-beli virtuális hálózathoz?