Azure CLI kullanarak IPv6 ile genel yük dengeleyici oluşturma
Not
Bu makalede, Temel Yük Dengeleyicilerin hem IPv4 hem de IPv6 bağlantısı sağlamasına olanak sağlayan giriş niteliğinde bir IPv6 özelliği açıklanmaktadır. IPv6 bağlantısını Sanal Ağ'lerinizle tümleştirip IPv6 Ağ Güvenlik Grubu kuralları, IPv6 Kullanıcı tanımlı yönlendirme, IPv6 Temel ve Standart yük dengeleme gibi önemli özellikleri içeren Azure VNET'leri için IPv6 ile kapsamlı IPv6 bağlantısı kullanıma sunuldu. Azure VNET'leri için IPv6, Azure'daki IPv6 uygulamaları için önerilen standarttır. Bkz. Azure VNET PowerShell Dağıtımı için IPv6
Azure Load Balancer bir Katman 4 (TCP, UDP) yük dengeleyicidir. Yük dengeleyiciler, gelen trafiği bulut hizmetlerindeki iyi durumdaki hizmet örnekleri veya bir yük dengeleyici kümesindeki sanal makineler arasında dağıtarak yüksek kullanılabilirlik sağlar. Yük dengeleyiciler bu hizmetleri birden çok bağlantı noktası veya birden çok IP adresi ya da her ikisinde de sunabilir.
Örnek dağıtım senaryosu
Aşağıdaki diyagramda, bu makalede açıklanan örnek şablon kullanılarak dağıtılan yük dengeleme çözümü gösterilmektedir.
Bu senaryoda aşağıdaki Azure kaynaklarını oluşturursunuz:
- İki sanal makine (VM)
- Hem IPv4 hem de IPv6 adresleri atanmış her VM için bir sanal ağ arabirimi
- IPv4 ve IPv6 genel IP adresine sahip genel yük dengeleyici
- İki VM'yi içeren bir kullanılabilirlik kümesi
- Genel VIP'leri özel uç noktalara eşlemek için iki yük dengeleme kuralı
Azure CLI kullanarak çözümü dağıtma
Aşağıdaki adımlarda Azure CLI kullanarak genel yük dengeleyici oluşturma adımları gösterilmektedir. CLI kullanarak her nesneyi ayrı ayrı oluşturup yapılandırıp bir kaynak oluşturmak için bir araya getirebilirsiniz.
Yük dengeleyici dağıtmak için aşağıdaki nesneleri oluşturun ve yapılandırın:
- Ön uç IP yapılandırması: Gelen ağ trafiği için genel IP adreslerini içerir.
- Arka uç adres havuzu: Yük dengeleyiciden ağ trafiğini almak için sanal makinelerin ağ arabirimlerini (NIC) içerir.
- Yük dengeleme kuralları: Yük dengeleyicideki genel bağlantı noktasını arka uç adres havuzundaki bir bağlantı noktasına eşleyen kuralları içerir.
- Gelen NAT kuralları: Yük dengeleyicideki bir genel bağlantı noktasını arka uç adres havuzundaki belirli bir sanal makine için bir bağlantı noktasına eşleyen ağ adresi çevirisi (NAT) kurallarını içerir.
- Yoklamalar: Arka uç adres havuzundaki sanal makine örneklerinin kullanılabilirliğini denetlemek için kullanılan sistem durumu yoklamalarını içerir.
Azure CLI’yı ayarlama
Bu örnekte, Azure CLI araçlarını bir PowerShell komut penceresinde çalıştıracaksınız. Okunabilirliği ve yeniden kullanımı geliştirmek için Azure PowerShell cmdlet'lerini değil PowerShell'in betik özelliklerini kullanırsınız.
Bağlantılı makaledeki adımları izleyerek Azure CLI'yi yükleyin ve yapılandırın ve Azure hesabınızda oturum açın.
PowerShell değişkenlerini Azure CLI komutları ile kullanılacak şekilde ayarlayın:
$subscriptionid = "########-####-####-####-############" # enter subscription id $location = "southcentralus" $rgName = "pscontosorg1southctrlus09152016" $vnetName = "contosoIPv4Vnet" $vnetPrefix = "10.0.0.0/16" $subnet1Name = "clicontosoIPv4Subnet1" $subnet1Prefix = "10.0.0.0/24" $subnet2Name = "clicontosoIPv4Subnet2" $subnet2Prefix = "10.0.1.0/24" $dnsLabel = "contoso09152016" $lbName = "myIPv4IPv6Lb"
Kaynak grubu, yük dengeleyici, sanal ağ ve alt ağlar oluşturma
Kaynak grubu oluşturma:
az group create --name $rgName --location $location
Yük dengeleyici oluşturma:
$lb = az network lb create --resource-group $rgname --location $location --name $lbName
Sanal ağ oluşturma:
$vnet = az network vnet create --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefix
Bu sanal ağda iki alt ağ oluşturun:
$subnet1 = az network vnet subnet create --resource-group $rgname --name $subnet1Name --address-prefix $subnet1Prefix --vnet-name $vnetName $subnet2 = az network vnet subnet create --resource-group $rgname --name $subnet2Name --address-prefix $subnet2Prefix --vnet-name $vnetName
Ön uç havuzu için genel IP adresleri oluşturma
PowerShell değişkenlerini ayarlayın:
$publicIpv4Name = "myIPv4Vip" $publicIpv6Name = "myIPv6Vip"
Ön uç IP havuzu için bir genel IP adresi oluşturun:
$publicipV4 = az network public-ip create --resource-group $rgname --name $publicIpv4Name --location $location --version IPv4 --allocation-method Dynamic --dns-name $dnsLabel $publicipV6 = az network public-ip create --resource-group $rgname --name $publicIpv6Name --location $location --version IPv6 --allocation-method Dynamic --dns-name $dnsLabel
Önemli
Yük dengeleyici, genel IP'nin etki alanı etiketini tam etki alanı adı (FQDN) olarak kullanır. Bu, yük dengeleyici FQDN olarak bulut hizmeti adını kullanan klasik dağıtımdan bir değişikliktir.
Bu örnekte FQDN contoso09152016.southcentralus.cloudapp.azure.com.
Ön uç ve arka uç havuzları oluşturma
Bu bölümde aşağıdaki IP havuzlarını oluşturacaksınız:
- Yük dengeleyicide gelen ağ trafiğini alan ön uç IP havuzu.
- Ön uç havuzunun yük dengeli ağ trafiğini gönderdiği arka uç IP havuzu.
PowerShell değişkenlerini ayarlayın:
$frontendV4Name = "FrontendVipIPv4" $frontendV6Name = "FrontendVipIPv6" $backendAddressPoolV4Name = "BackendPoolIPv4" $backendAddressPoolV6Name = "BackendPoolIPv6"
Bir ön uç IP havuzu oluşturun ve bunu önceki adımda oluşturduğunuz genel IP ile ve yük dengeleyiciyle ilişkilendirin.
$frontendV4 = az network lb frontend-ip create --resource-group $rgname --name $frontendV4Name --public-ip-address $publicIpv4Name --lb-name $lbName $frontendV6 = az network lb frontend-ip create --resource-group $rgname --name $frontendV6Name --public-ip-address $publicIpv6Name --lb-name $lbName $backendAddressPoolV4 = az network lb address-pool create --resource-group $rgname --name $backendAddressPoolV4Name --lb-name $lbName $backendAddressPoolV6 = az network lb address-pool create --resource-group $rgname --name $backendAddressPoolV6Name --lb-name $lbName
Yoklama, NAT kuralları ve yük dengeleyici kuralları oluşturma
Bu örnek aşağıdaki nesneleri oluşturur:
- 80 numaralı TCP bağlantı noktasına bağlantıyı denetlemek için bir yoklama kuralı.
- 3389 numaralı bağlantı noktasındaki tüm gelen trafiği RDP için 3389 numaralı bağlantı noktasına çevirmek için bir NAT kuralı.*
- Uzak masaüstü protokolü (RDP) için 3391 numaralı bağlantı noktasındaki tüm gelen trafiği 3389 numaralı bağlantı noktasına çevirmek için bir NAT kuralı.*
- 80 numaralı bağlantı noktasından 80 numaralı bağlantı noktasına gelen tüm trafiği arka uç havuzundaki adreslerde dengelemek için bir yük dengeleyici kuralı.
* NAT kuralları, yük dengeleyicinin arkasındaki belirli bir sanal makine örneğiyle ilişkilendirilir. Bağlantı noktası 3389'a ulaşan ağ trafiği, NAT kuralıyla ilişkili belirli sanal makineye ve bağlantı noktasına gönderilir. NAT kuralı için bir protokol (UDP veya TCP) belirtmeniz gerekir. Her iki protokolü de aynı bağlantı noktasına atayamazsınız.
PowerShell değişkenlerini ayarlayın:
$probeV4V6Name = "ProbeForIPv4AndIPv6" $natRule1V4Name = "NatRule-For-Rdp-VM1" $natRule2V4Name = "NatRule-For-Rdp-VM2" $lbRule1V4Name = "LBRuleForIPv4-Port80" $lbRule1V6Name = "LBRuleForIPv6-Port80"
Araştırmayı oluşturun.
Aşağıdaki örnek, her 15 saniyede bir 80 numaralı arka uç TCP bağlantı noktasına bağlantıyı denetleen bir TCP yoklaması oluşturur. Ardışık iki hatadan sonra arka uç kaynağını kullanılamaz olarak işaretler.
$probeV4V6 = az network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --threshold 2 --lb-name $lbName
Arka uç kaynaklarına RDP bağlantılarına izin veren gelen NAT kuralları oluşturun:
$inboundNatRuleRdp1 = az network lb inbound-nat-rule create --resource-group $rgname --name $natRule1V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3389 --backend-port 3389 --lb-name $lbName $inboundNatRuleRdp2 = az network lb inbound-nat-rule create --resource-group $rgname --name $natRule2V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3391 --backend-port 3389 --lb-name $lbName
İsteği alan ön uca bağlı olarak farklı arka uç bağlantı noktalarına trafik gönderen yük dengeleyici kuralları oluşturun.
$lbruleIPv4 = az network lb rule create --resource-group $rgname --name $lbRule1V4Name --frontend-ip-name $frontendV4Name --backend-pool-name $backendAddressPoolV4Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 80 --lb-name $lbName $lbruleIPv6 = az network lb rule create --resource-group $rgname --name $lbRule1V6Name --frontend-ip-name $frontendV6Name --backend-pool-name $backendAddressPoolV6Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 8080 --lb-name $lbName
Ayarlarınızı denetleyin:
az network lb show --resource-group $rgName --name $lbName
Beklenen çıktı:
info: Executing command network lb show info: Looking up the load balancer "myIPv4IPv6Lb" data: Id : /subscriptions/########-####-####-####-############/resourceGroups/pscontosorg1southctrlus09152016/providers/Microsoft.Network/loadBalancers/myIPv4IPv6Lb data: Name : myIPv4IPv6Lb data: Type : Microsoft.Network/loadBalancers data: Location : southcentralus data: Provisioning state : Succeeded data: data: Frontend IP configurations: data: Name Provisioning state Private IP allocation Private IP Subnet Public IP data: --------------- ------------------ --------------------- ----------- ------ --------- data: FrontendVipIPv4 Succeeded Dynamic myIPv4Vip data: FrontendVipIPv6 Succeeded Dynamic myIPv6Vip data: data: Probes: data: Name Provisioning state Protocol Port Path Interval Count data: ------------------- ------------------ -------- ---- ---- -------- ----- data: ProbeForIPv4AndIPv6 Succeeded Tcp 80 15 2 data: data: Backend Address Pools: data: Name Provisioning state data: --------------- ------------------ data: BackendPoolIPv4 Succeeded data: BackendPoolIPv6 Succeeded data: data: Load Balancing Rules: data: Name Provisioning state Load distribution Protocol Frontend port Backend port Enable floating IP Idle timeout in minutes data: -------------------- ------------------ ----------------- -------- ------------- ------------ ------------------ ----------------------- data: LBRuleForIPv4-Port80 Succeeded Default Tcp 80 80 false 4 data: LBRuleForIPv6-Port80 Succeeded Default Tcp 80 8080 false 4 data: data: Inbound NAT Rules: data: Name Provisioning state Protocol Frontend port Backend port Enable floating IP Idle timeout in minutes data: ------------------- ------------------ -------- ------------- ------------ ------------------ ----------------------- data: NatRule-For-Rdp-VM1 Succeeded Tcp 3389 3389 false 4 data: NatRule-For-Rdp-VM2 Succeeded Tcp 3391 3389 false 4 info: network lb show
NIC’leri oluşturma
NIC'ler oluşturun ve bunları NAT kuralları, yük dengeleyici kuralları ve yoklamalarla ilişkilendirin.
PowerShell değişkenlerini ayarlayın:
$nic1Name = "myIPv4IPv6Nic1" $nic2Name = "myIPv4IPv6Nic2" $subnet1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet1Name" $subnet2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet2Name" $backendAddressPoolV4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV4Name" $backendAddressPoolV6Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV6Name" $natRule1V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule1V4Name" $natRule2V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule2V4Name"
Her arka uç için bir NIC oluşturun ve bir IPv6 yapılandırması ekleyin:
$nic1 = az network nic create --name $nic1Name --resource-group $rgname --location $location --private-ip-address-version "IPv4" --subnet $subnet1Id --lb-address-pools $backendAddressPoolV4Id --lb-inbound-nat-rules $natRule1V4Id $nic1IPv6 = az network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-address-version "IPv6" --lb-address-pools $backendAddressPoolV6Id --nic-name $nic1Name $nic2 = az network nic create --name $nic2Name --resource-group $rgname --location $location --private-ip-address-version "IPv4" --subnet $subnet2Id --lb-address-pools $backendAddressPoolV4Id --lb-inbound-nat-rules $natRule2V4Id $nic2IPv6 = az network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-address-version "IPv6" --lb-address-pools $backendAddressPoolV6Id --nic-name $nic2Name
Arka uç VM kaynaklarını oluşturma ve her NIC'yi ekleme
VM'ler oluşturmak için bir depolama hesabınız olmalıdır. Yük dengeleme için VM'lerin bir kullanılabilirlik kümesinin üyesi olması gerekir. VM oluşturma hakkında daha fazla bilgi için bkz . PowerShell kullanarak Azure VM oluşturma.
PowerShell değişkenlerini ayarlayın:
$availabilitySetName = "myIPv4IPv6AvailabilitySet" $vm1Name = "myIPv4IPv6VM1" $vm2Name = "myIPv4IPv6VM2" $nic1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic1Name" $nic2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic2Name" $imageurn = "MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest" $vmUserName = "vmUser" $mySecurePassword = "PlainTextPassword*1"
Uyarı
Bu örnek, vm'lerin kullanıcı adını ve parolasını düz metin olarak kullanır. Bu kimlik bilgilerini düz metin olarak kullanırken uygun özeni gösterebilirsiniz. PowerShell'de kimlik bilgilerini işlemek için daha güvenli bir yöntem için cmdlet'ine
Get-Credential
bakın.Kullanılabilirlik kümesini oluşturun:
$availabilitySet = az vm availability-set create --name $availabilitySetName --resource-group $rgName --location $location
İlişkili NIC'lerle sanal makineleri oluşturun:
az vm create --resource-group $rgname --name $vm1Name --image $imageurn --admin-username $vmUserName --admin-password $mySecurePassword --nics $nic1Id --location $location --availability-set $availabilitySetName --size "Standard_A1" az vm create --resource-group $rgname --name $vm2Name --image $imageurn --admin-username $vmUserName --admin-password $mySecurePassword --nics $nic2Id --location $location --availability-set $availabilitySetName --size "Standard_A1"