قم بإنشاء موازن تحميل عام باستخدام IPv6 - Azure CLI
إشعار
توضح هذه المقالة ميزة IPv6 التمهيدية للسماح لموزنات التحميل الأساسي بتوفير اتصال IPv4 وIPv6. يتوفر اتصال IPv6 الشامل الآن مع IPv6 لـ Azure VNETs الذي يدمج اتصال IPv6 مع الشبكات الظاهرية الخاصة بك ويتضمن ميزات رئيسية مثل قواعد IPv6 Network Security Group والتوجيه الذي يحدده المستخدم IPv6 وموازنة التحميل IPv6 Basic وStandard وأكثر من ذلك. IPv6 لـ Azure VNETs هو المعيار الموصى به لتطبيقات IPv6 في Azure. راجع IPv6 لتوزيع Azure VNET Powershell
Azure load balancer هو موازن تحميل من الطبقة 4 (TCP وUDP). توفر موازنات التحميل توفراً عالياً من خلال توزيع حركة المرور الواردة بين مثيلات الخدمة السليمة في الخدمات السحابية أو الأجهزة الظاهرية في مجموعة موازن التحميل. يمكن موازنات التحميل أيضاً تقديم هذه الخدمات على منافذ متعددة أو عناوين IP متعددة أو كليهما.
مثال سيناريو النشر
يوضح الرسم التخطيطي التالي حل موازنة التحميل الذي تم نشره باستخدام نموذج القالب الموضح في هذه المقالة.
في هذا السيناريو، يمكنك إنشاء موارد Azure التالية:
- جهازي ظاهريين (VMs)
- واجهة شبكة افتراضية لكل جهاز افتراضي مع تعيين كل من عناوين IPv4 و IPv6
- موازن تحميل عام بعنوان IPv4 وعنوان IP عام IPv6
- مجموعة توفر تحتوي على جهازي ظاهريين
- قاعدتان لموازنة التحميل لتعيين كبار الشخصيات العامة إلى نقاط النهاية الخاصة
نشر الحل باستخدام Azure CLI
توضح الخطوات التالية كيفية إنشاء موازن تحميل عام باستخدام Azure CLI. باستخدام CLI، يمكنك إنشاء وتكوين كل كائن على حدة، ثم تجميعها معاً لإنشاء مورد.
لاستخدام موازن التحميل، قم بإنشاء وتكوين الكائنات التالية:
- تكوين IP للواجهة الأمامية: يحتوي على عناوين IP عامة لحركة مرور الشبكة الواردة.
- تجمع عناوين الواجهة الخلفية: يحتوي على واجهات شبكة (NICs) للأجهزة الظاهرية لتلقي حركة مرور الشبكة من موازن التحميل.
- قواعد موازنة التحميل: تحتوي على القواعد التي تعين منفذا عاما على موازن التحميل إلى منفذ في تجمع عناوين الواجهة الخلفية.
- قواعد NAT الواردة: تحتوي على قواعد ترجمة عناوين الشبكة (NAT) التي تعين منفذا عاما على موازن التحميل إلى منفذ لجهاز ظاهري معين في تجمع عناوين الواجهة الخلفية.
- Probes: يحتوي على فحوصات السلامة المستخدمة للتحقق من توفر مثيلات الجهاز الظاهري في تجمع عناوين الواجهة الخلفية.
إعداد Azure CLI
في هذا المثال، يمكنك تشغيل أدوات Azure CLI في إطار أمر PowerShell. لتحسين إمكانية القراءة وإعادة الاستخدام، يمكنك استخدام قدرات البرمجة النصية لـ PowerShell، وليس أوامر cmdlets Azure PowerShell.
تثبيت وتكوين Azure CLI باتباع الخطوات الواردة في المقالة المرتبطة وتسجيل الدخول إلى حساب Azure الخاص بك.
قم بإعداد متغيرات PowerShell للاستخدام مع أوامر Azure CLI:
$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"
قم بإنشاء مجموعة موارد وموازن تحميل وشبكة افتراضية وشبكات فرعية
أنشئ مجموعة موارد:
az group create --name $rgName --location $location
قم بإنشاء موازن تحميل:
$lb = az network lb create --resource-group $rgname --location $location --name $lbName
إنشاء شبكة ظاهرية:
$vnet = az network vnet create --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefix
في هذه الشبكة الظاهرية، قم بإنشاء شبكتين فرعيتين:
$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
إنشاء عناوين IP عامة لتجمع الواجهة الأمامية
قم بإعداد متغيرات PowerShell:
$publicIpv4Name = "myIPv4Vip" $publicIpv6Name = "myIPv6Vip"
إنشاء عنوان IP عام لتجمع IP للواجهة الأمامية:
$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
هام
يستخدم موازن التحميل تسمية المجال الخاصة بـ IP العام كاسم مجال مؤهل بالكامل (FQDN). هذا تغيير عن النشر الكلاسيكي، الذي يستخدم اسم الخدمة السحابية كموازن التحميل FQDN.
في هذا المثال، يكون FQDN هو contoso09152016.southcentralus.cloudapp.azure.com .
إنشاء تجمعات الواجهة الأمامية والخلفية
في هذا القسم، يمكنك إنشاء تجمعات IP التالية:
- تجمع IP للواجهة الأمامية الذي يتلقى نسبة استخدام الشبكة الواردة على موازن التحميل.
- تجمع IP الخلفية حيث يرسل تجمع الواجهة الأمامية حركة مرور الشبكة المتوازنة التحميل.
قم بإعداد متغيرات PowerShell:
$frontendV4Name = "FrontendVipIPv4" $frontendV6Name = "FrontendVipIPv6" $backendAddressPoolV4Name = "BackendPoolIPv4" $backendAddressPoolV6Name = "BackendPoolIPv6"
قم بإنشاء تجمع IP للواجهة الأمامية، وربطه ب IP العام الذي قمت بإنشائه في الخطوة السابقة وموازن التحميل.
$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
قم بإنشاء التحقق وقواعد NAT وقواعد موازن التحميل
ينشئ هذا المثال العناصر التالية:
- قاعدة فحص للتحقق من الاتصال بمنفذ TCP 80.
- قاعدة NAT لترجمة جميع نسب استخدام الشبكة الواردة على المنفذ 3389 إلى المنفذ 3389 لـ RDP. *
- قاعدة NAT لترجمة جميع نسب استخدام الشبكة الواردة على المنفذ 3391 إلى المنفذ 3389 لبروتوكول سطح المكتب البعيد (RDP).*
- قاعدة موازن التحميل لموازنة جميع حركة المرور الواردة على المنفذ 80 إلى المنفذ 80 على العناوين في تجمع الخلفية.
* ترتبط قواعد NAT بمثيل جهاز ظاهري محدد خلف موازن التحميل. يتم إرسال حركة مرور الشبكة التي تصل إلى المنفذ 3389 إلى الجهاز الظاهري المحدد والمنفذ المقترن بقاعدة NAT. يجب عليك تحديد بروتوكول (UDP أو TCP) لقاعدة NAT. لا يمكنك تعيين كلا البروتوكولين لنفس المنفذ.
قم بإعداد متغيرات PowerShell:
$probeV4V6Name = "ProbeForIPv4AndIPv6" $natRule1V4Name = "NatRule-For-Rdp-VM1" $natRule2V4Name = "NatRule-For-Rdp-VM2" $lbRule1V4Name = "LBRuleForIPv4-Port80" $lbRule1V6Name = "LBRuleForIPv6-Port80"
إنشاء التحقيق.
ينشئ المثال التالي فحص TCP الذي يتحقق من الاتصال إلى منفذ TCP الخلفي 80 كل 15 ثانية. بعد فشلين متتاليين، فإنه يضع علامة على مورد الواجهة الخلفية على أنه غير متوفر.
$probeV4V6 = az network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --threshold 2 --lb-name $lbName
إنشاء قواعد NAT الواردة التي تسمح باتصالات RDP بموارد الواجهة الخلفية:
$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
إنشاء قواعد موازن التحميل التي ترسل حركة المرور إلى منافذ خلفية مختلفة، اعتمادا على الواجهة الأمامية التي تلقت الطلب.
$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
تحقق من الإعدادات:
az network lb show --resource-group $rgName --name $lbName
الناتج المتوقع:
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
إنشاء بطاقات واجهة الشبكة (NICs)
إنشاء NICs وربطها بقواعد NAT وقواعد موازن التحميل والتحقيقات.
قم بإعداد متغيرات PowerShell:
$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"
قم بإنشاء NIC لكل نهاية خلفية، وأضف تكوين IPv6:
$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
إنشاء موارد الجهاز الظاهري الخلفية، وإرفاق كل NIC
لإنشاء أجهزة افتراضية، يجب أن يكون لديك حساب تخزين. لموازنة الحمل، يجب أن تكون الأجهزة الظاهرية أعضاء في مجموعة الإتاحة. لمزيد من المعلومات حول إنشاء VMs، راجع إنشاء Azure VM باستخدام PowerShell .
قم بإعداد متغيرات PowerShell:
$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"
تحذير
يستخدم هذا المثال اسم المستخدم وكلمة المرور لأجهزة VM بنص واضح. توخ الحذر المناسب عند استخدام بيانات الاعتماد هذه بنص واضح. للحصول على طريقة أكثر أماناً للتعامل مع بيانات الاعتماد في PowerShell، راجع
Get-Credential
cmdlet.إنشاء مجموعة التوفر:
$availabilitySet = az vm availability-set create --name $availabilitySetName --resource-group $rgName --location $location
إنشاء الأجهزة الظاهرية باستخدام NIC المقترنة:
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"
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ