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-PrivateIpAddress
değ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. | |
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 portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
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.
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:
- Portalın arama çubuğuna dsVnet yazın.
- 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.
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?