PowerShell kullanarak Azure'da Standart İç Yük Dengeleyici kullanarak IPv6 çift yığın uygulaması dağıtma

Bu makalede, Azure'da çift yığınlı sanal ağ ve alt ağ, çift (IPv4 + IPv6) ön uç yapılandırmalarına sahip Standart İç Yük Dengeleyici, çift IP yapılandırmasına sahip VM'ler, ağ güvenlik grubu ve genel IP'ler içeren bir çift yığın (IPv4 + IPv6) uygulamasının nasıl dağıtılacağı gösterilmektedir.

IPv6 özellikli bir İç Yük Dengeleyici oluşturma yordamı, burada açıklanan İnternet'e yönelik IPv6 Load Balancer oluşturma işlemiyle neredeyse aynıdır. İç yük dengeleyici oluşturmaya yönelik tek farklar, aşağıdaki PowerShell örneğinde gösterildiği gibi ön uç yapılandırmasındadır:

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

Yukarıdakini iç yük dengeleyici ön uç yapılandırması haline getiren değişiklikler şunlardır:

  • PrivateIpAddressVersion"IPv6" olarak belirtilir
  • -PublicIpAddress Bağımsız değişken atlandı veya ile -PrivateIpAddressdeğiştirildi. Özel adresin, iç yük dengeleyicinin dağıtılacağı Alt ağ IP alanı aralığında olması gerektiğini unutmayın. Statik -PrivateIpAddress atlanırsa, iç yük Dengeleyicinin dağıtıldığı alt ağdan bir sonraki ücretsiz IPv6 adresi seçilir.
  • İç yük dengeleyicinin dağıtılacağı çift yığın alt ağı bir -Subnet veya -SubnetId bağımsız değişkeniyle belirtilir.

Azure Cloud Shell

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.

Azure Cloud Shell'i başlatmak için:

Seçenek Örnek/Bağlantı
Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. Azure Cloud Shell için Deneyin örneğini gösteren ekran görüntüsü.
https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. Azure Cloud Shell'i başlatma düğmesi.
Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. Azure portalında Cloud Shell düğmesini gösteren ekran görüntüsü

Azure Cloud Shell'i kullanmak için:

  1. Cloud Shell'i başlatın.

  2. Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.

  3. Windows ve Linux'ta Ctrl+Shift V'yi seçerek veya macOS üzerinde Cmd+Shift++V'yi seçerek kodu veya komutu Cloud Shell oturumuna yapıştırın.

  4. Kodu veya komutu çalıştırmak için Enter'ı seçin.

PowerShell'i yerel olarak yükleyip kullanmayı seçerseniz, bu makale için Azure PowerShell modülü 6.9.0 veya sonraki bir sürümü gerekir. Yüklü sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekirse, bkz. Azure PowerShell modülünü yükleme. PowerShell'i yerel olarak çalıştırıyorsanız Azure bağlantısı oluşturmak için Connect-AzAccount komutunu da çalıştırmanız gerekir.

Kaynak grubu oluşturma

Çift yığınlı sanal ağınızı oluşturabilmeniz için önce New-AzResourceGroup ile bir kaynak grubu oluşturmanız gerekir. Aşağıdaki örnek, doğu abd konumunda dsStd_ILB_RG adlı bir kaynak grubu oluşturur:

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

IPv4 ve IPv6 genel IP adresleri oluşturma

Sanal makinelerinize İnternet'ten erişmek için VM'ler için IPv4 ve IPv6 genel IP adresleri gerekir. New-AzPublicIpAddress ile genel IP adresleri oluşturun. Aşağıdaki örnek, dsStd_ILB_RG kaynak grubunda RdpPublicIP_1 ve RdpPublicIP_2 adlı IPv4 ve IPv6 genel IP adresi oluşturur:

$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

Sanal ağı ve alt ağı oluşturma

New-AzVirtualNetworkSubnetConfig kullanarak bir alt ağ yapılandırması çift yığınlı New-AzVirtualNetwork kullanarak bir sanal ağ oluşturun. Aşağıdaki örnek, dsSubnet ile dsVnet adlı bir sanal ağ oluşturur.

# 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

Standart Load Balancer oluşturma

Bu bölümde yük dengeleyici için çift ön uç IP'sini (IPv4 ve IPv6) ve arka uç adres havuzunu yapılandıracak ve ardından bir Standart Load Balancer oluşturacaksınız.

Ön uç IP oluşturma

New-AzLoadBalancerFrontendIpConfig ile bir ön uç IP'sini oluşturun. Aşağıdaki örnek, dsLbFrontEnd_v4 ve dsLbFrontEnd_v6 adlı IPv4 ve IPv6 ön uç IP yapılandırmaları oluşturur:

$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

Arka uç adres havuzunu yapılandırma

New-AzLoadBalancerBackendAddressPoolConfig ile bir arka uç adres havuzu oluşturun. Kalan adımlarda VM’ler bu arka uç havuzuna eklenir. Aşağıdaki örnek, hem IPV4 hem de IPv6 NIC yapılandırmalarına sahip VM'leri dahil etmek için dsLbBackEndPool_v4 ve dsLbBackEndPool_v6 adlı arka uç adres havuzları oluşturur:

$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig -Name "dsLbBackEndPool_v4"

$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig -Name "dsLbBackEndPool_v6"

Yük dengeleyici kuralı oluşturma

Trafiğin VM’lere dağıtımını tanımlamak için bir yük dengeleyici kuralı kullanılır. Gerekli kaynak ve hedef bağlantı noktalarının yanı sıra gelen trafik için ön uç IP yapılandırması ve trafiği almak için arka uç IP havuzu tanımlamanız gerekir. Yalnızca iyi durumdaki VM'lerin trafik aldığından emin olmak için isteğe bağlı olarak bir sistem durumu yoklaması tanımlayabilirsiniz. Temel yük dengeleyici, VM'lerdeki hem IPv4 hem de IPv6 uç noktalarının durumunu değerlendirmek için bir IPv4 araştırması kullanır. Standart yük dengeleyici açıkça IPv6 durum yoklamaları için destek içerir.

Add-AzLoadBalancerRuleConfig ile bir yük dengeleyici kuralı oluşturun. Aşağıdaki örnek, dsLBrule_v4 ve dsLBrule_v6 adlı yük dengeleyici kuralları oluşturur ve 80 numaralı TCP bağlantı noktasındaki trafiği IPv4 ve IPv6 ön uç IP yapılandırmalarına dengeler:

$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

Yük dengeleyici oluşturma

New-AzLoadBalancer ile bir Standart Load Balancer oluşturun. Aşağıdaki örnek, önceki adımlarda oluşturduğunuz IPv4 ve IPv6 ön uç IP yapılandırmalarını, arka uç havuzlarını ve yük dengeleme kurallarını kullanarak myInternalLoadBalancer adlı bir genel Standart Load Balancer oluşturur:

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

Ağ kaynakları oluşturma

Bazı VM'leri dağıtmadan ve dengeleyicinizi test etmeden önce destek ağ kaynakları (kullanılabilirlik kümesi, ağ güvenlik grubu ve sanal NIC'ler) oluşturmanız gerekir.

Kullanılabilirlik kümesi oluşturma

Uygulamanızın yüksek kullanılabilirliğini geliştirmek için VM'lerinizi bir kullanılabilirlik kümesine yerleştirin.

New-AzAvailabilitySet ile bir kullanılabilirlik kümesi oluşturun. Aşağıdaki örnek, dsAVset adlı bir kullanılabilirlik kümesi oluşturur:

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

Ağ güvenlik grubu oluşturma

Sanal ağınızdaki gelen ve giden iletişimi idare edecek kurallar için bir ağ güvenlik grubu oluşturun.

3389 numaralı bağlantı noktası için ağ güvenlik grubu kuralı oluşturma

New-AzNetworkSecurityRuleConfig ile 3389 numaralı bağlantı noktası üzerinden RDP bağlantılarına izin vermek için bir ağ güvenlik grubu kuralı oluşturun.

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

80 numaralı bağlantı noktası için ağ güvenlik grubu kuralı oluşturma

New-AzNetworkSecurityRuleConfig ile 80 numaralı bağlantı noktası üzerinden İnternet bağlantılarına izin vermek için bir ağ güvenlik grubu kuralı oluşturun.

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

Ağ güvenlik grubu oluşturma

New-AzNetworkSecurityGroup ile bir ağ güvenlik grubu oluşturun.

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

NIC’leri oluşturma

New-AzNetworkInterface ile sanal NIC'ler oluşturun. Aşağıdaki örnek, hem IPv4 hem de IPv6 yapılandırmalarına sahip iki sanal NIC oluşturur. (Sonraki adımlarda uygulamanız için oluşturduğunuz her bir VM için bir sanal NIC).


# 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

Sanal makineleri oluşturma

VM’ler için Get-Credential ile bir yönetici kullanıcı adı ve parola ayarlayın:

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

Artık New-AzVM ile VM'leri oluşturabilirsiniz. Aşağıdaki örnek, henüz mevcut değilse iki VM ve gerekli sanal ağ bileşenlerini oluşturur.

$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

Azure portalında IPv6 çift yığınlı sanal ağı görüntüleme

IPv6 çift yığın sanal ağını Azure portalında aşağıdaki gibi görüntüleyebilirsiniz:

  1. Portalın arama çubuğuna dsVnet yazın.
  2. Arama sonuçlarında dsVnet göründüğünde seçin. Bu, dsVnet adlı çift yığınlı sanal ağın Genel Bakış sayfasını başlatır. çift yığın sanal ağı, dsSubnet adlı çift yığın alt ağında bulunan hem IPv4 hem de IPv6 yapılandırmalarına sahip iki NIC'yi gösterir.

Standart İç Yük Dengeleyici ile IPv6 Çift Yığın Sanal Ağ

Not

Azure sanal ağı için IPv6, azure portalında bu önizleme sürümü için salt okunur olarak kullanılabilir.

Kaynakları temizleme

Artık gerekli olmadığında Remove-AzResourceGroup komutunu kullanarak kaynak grubunu, VM'yi ve tüm ilgili kaynakları kaldırabilirsiniz.

Remove-AzResourceGroup -Name dsStd_ILB_RG

Sonraki adımlar

Bu makalede, çift ön uç IP yapılandırmasına (IPv4 ve IPv6) sahip bir Standart Load Balancer oluşturdunuz. Ayrıca yük dengeleyicinin arka uç havuzuna eklenen çift IP yapılandırmalarına (IPV4 + IPv6) sahip NIC'leri içeren iki sanal makine oluşturdunuz. Azure sanal ağlarındaki IPv6 desteği hakkında daha fazla bilgi edinmek için bkz. Azure Sanal Ağ için IPv6 nedir?