PowerShell kullanarak Azure sanal ağında 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 bir Standart Load Balancer, çift IP yapılandırmasına sahip VM'ler, ağ güvenlik grubu ve genel IP'ler içeren Standart Load Balancer kullanarak çift yığın (IPv4 + IPv6) uygulamasının nasıl dağıtılacağı gösterilmektedir.
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 ile bağlantı oluşturmak için de komutunu çalıştırmanız Connect-AzAccount
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 myRGDualStack adlı bir kaynak grubu oluşturur:
$rg = New-AzResourceGroup `
-ResourceGroupName "dsRG1" `
-Location "east us"
IPv4 ve IPv6 genel IP adresleri oluşturma
Sanal makinelerinize İnternet'ten erişmek için yük dengeleyici için IPv4 ve IPv6 genel IP adresleri gerekir. New-AzPublicIpAddress ile genel IP adresleri oluşturun. Aşağıdaki örnek, dsRG1 kaynak grubunda dsPublicIP_v4 ve dsPublicIP_v6 adlı IPv4 ve IPv6 genel IP adresi oluşturur:
$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
RDP bağlantısı kullanarak sanal makinelerinize erişmek için New-AzPublicIpAddress ile sanal makineler için bir IPV4 genel IP adresleri oluşturun.
$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
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" `
-PublicIpAddress $PublicIP_v4
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PublicIpAddress $PublicIP_v6
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"
Durum araştırması oluşturma
ADD-AzLoadBalancerProbeConfig komutunu kullanarak VM'lerin sistem durumunu izlemek üzere bir sistem durumu araştırması oluşturun.
$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2
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 `
-probe $probe
$lbrule_v6 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v6" `
-FrontendIpConfiguration $frontendIPv6 `
-BackendAddressPool $backendPoolv6 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-probe $probe
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 myLoadBalancer adlı bir genel Standart Load Balancer oluşturur:
$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
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, sanal ağ ve sanal NIC'ler) oluşturmanız gerekir.
Kullanılabilirlik kümesi oluşturma
Uygulamanızın yüksek oranda kullanılabilir olmasını sağlamak 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 myAvailabilitySet adında 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 yöneten 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 * `
-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
Sanal ağ oluşturma
New-AzVirtualNetwork ile bir sanal ağ oluşturun. Aşağıdaki örnek, mySubnet ile dsVnet adlı bir sanal ağ oluşturur:
# 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
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).
$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
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 VMs."
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
IPv4 ve IPv6 uç noktalarının IP adreslerini belirleme
ile get-AzNetworkInterface
bu dağıtımda kullanılan IP'leri özetlemek için kaynak grubundaki tüm Ağ Arabirimi Nesnelerini alın. Ayrıca, ile get-AzpublicIpAddress
IPv4 ve IPv6 uç noktalarının Load Balancer'ın ön uç adreslerini alın.
$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
Aşağıdaki şekilde, iki VM'nin özel IPv4 ve IPv6 adreslerini ve Load Balancer'ın ön uç IPv4 ve IPv6 IP adreslerini listeleyen bir örnek çıktı gösterilmektedir.
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.
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 dsRG1
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?