إنشاء شبكات ظاهرية لمجموعات Azure HDInsight
توفر هذه المقالة أمثلة ونماذج التعليمات البرمجية لإنشاء وتكوين شبكات Azure الظاهرية. لاستخدامها مع مجموعات Azure HDInsight. يتم تقديم أمثلة تفصيلية لإنشاء مجموعات أمان الشبكة (NSGs)، وتكوين DNS.
للحصول على معلومات أساسية حول استخدام الشبكات الظاهرية باستخدام Azure HDInsight، راجع تخطيط شبكة ظاهرية لـAzure HDInsight.
المتطلبات الأساسية لعينات التعليمات البرمجية والأمثلة
قبل تنفيذ أي من نماذج التعليمات البرمجية في هذه المقالة، يتعين عليك فهم شبكة TCP/IP. إذا لم تكن على دراية بشبكات TCP/IP، فاستشر شخص قبل إجراء تعديلات على شبكات الإنتاج.
تتضمن المتطلبات الأساسية الأخرى للنماذج في هذه المقالة العناصر التالية:
- إذا كنت تستخدم PowerShell، فستحتاج إلى تثبيت AZ Module.
- إذا كنت ترغب في استخدام Azure CLI، ولم تقم بتثبيته بعد، فراجع تثبيت Azure CLI.
هام
إذا كنت تبحث عن إرشادات خطوة بخطوة حول توصيل HDInsight بشبكة الاتصال المحلية باستخدام شبكة Azure الظاهرية، فراجع مستند توصيل HDInsight بشبكتك المحلية.
مثال: مجموعات أمان الشبكة مع HDInsight
توضح الأمثلة في هذا القسم كيفية إنشاء قواعد مجموعة أمان الشبكة. تسمح القواعد لـHDInsight بالاتصال بخدمات إدارة Azure. قبل استخدام الأمثلة، أضبط عناوين IP؛ لمطابقة عناوين منطقة Azure التي تستخدمها. يمكنك العثور على هذه المعلومات في عناوين IP لإدارة HDInsight.
قالب Azure Resource Manager
ينشئ قالب Resource Manager التالي شبكة ظاهرية تقيد حركة المرور الواردة؛ ولكنها تسمح بحركة المرور من عناوين IP المطلوبة بواسطة HDInsight. ينشئ هذا القالب أيضًا مجموعة HDInsight في الشبكة الظاهرية.
Azure PowerShell
استخدم البرنامج النصي PowerShell التالي لإنشاء شبكة ظاهرية تقيد حركة المرور الواردة، وتسمح بحركة المرور من عناوين IP لمنطقة شمال أوروبا.
هام
غير عناوين IP لـhdirule1
وhdirule2
في هذا المثال لمطابقة منطقة Azure التي تستخدمها. يمكنك العثور على هذه المعلومات في عناوين IP لإدارة HDInsight.
$vnetName = "Replace with your virtual network name"
$resourceGroupName = "Replace with the resource group the virtual network is in"
$subnetName = "Replace with the name of the subnet that you plan to use for HDInsight"
# Get the Virtual Network object
$vnet = Get-AzVirtualNetwork `
-Name $vnetName `
-ResourceGroupName $resourceGroupName
# Get the region the Virtual network is in.
$location = $vnet.Location
# Get the subnet object
$subnet = $vnet.Subnets | Where-Object Name -eq $subnetName
# Create a Network Security Group.
# And add exemptions for the HDInsight health and management services.
$nsg = New-AzNetworkSecurityGroup `
-Name "hdisecure" `
-ResourceGroupName $resourceGroupName `
-Location $location `
| Add-AzNetworkSecurityRuleConfig `
-name "hdirule1" `
-Description "HDI health and management address 52.164.210.96" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "52.164.210.96" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 300 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule2" `
-Description "HDI health and management 13.74.153.132" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "13.74.153.132" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 301 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule3" `
-Description "HDI health and management 168.61.49.99" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "168.61.49.99" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 302 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule4" `
-Description "HDI health and management 23.99.5.239" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "23.99.5.239" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 303 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule5" `
-Description "HDI health and management 168.61.48.131" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "168.61.48.131" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 304 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule6" `
-Description "HDI health and management 138.91.141.162" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "138.91.141.162" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 305 `
-Direction Inbound `
# Set the changes to the security group
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
# Apply the NSG to the subnet
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $vnet `
-Name $subnetName `
-AddressPrefix $subnet.AddressPrefix `
-NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork
يوضح هذا المثال كيفية إضافة قواعد للسماح بحركة المرور الواردة على عناوين IP المطلوبة. لا يحتوي على قاعدة لتقييد الوصول الوارد من مصادر أخرى. توضح التعليمات البرمجية التالية كيفية تمكين وصول SSH من الإنترنت:
Get-AzNetworkSecurityGroup -Name hdisecure -ResourceGroupName RESOURCEGROUP |
Add-AzNetworkSecurityRuleConfig -Name "SSH" -Description "SSH" -Protocol "*" -SourcePortRange "*" -DestinationPortRange "22" -SourceAddressPrefix "*" -DestinationAddressPrefix "VirtualNetwork" -Access Allow -Priority 306 -Direction Inbound
Azure CLI
استخدم الخطوات التالية لإنشاء شبكة ظاهرية تقيد حركة المرور الواردة، ولكنها تسمح بحركة المرور من عناوين IP المطلوبة بواسطة HDInsight.
استخدم الأمر التالي لإنشاء مجموعة أمان شبكة جديدة تسمى
hdisecure
. استبدل RESOURCEGROUP
بمجموعة الموارد التي تحتوي على شبكة Azure الظاهرية. استبدل LOCATION
بالموقع (المنطقة) الذي تم إنشاء المجموعة فيه.az network nsg create -g RESOURCEGROUP -n hdisecure -l LOCATION
بمجرد إنشاء المجموعة، تتلقى معلومات حول المجموعة الجديدة.
استخدم ما يلي لإضافة قواعد إلى مجموعة أمان الشبكة الجديدة التي تسمح بالاتصال الوارد على المنفذ 443 من خدمة إدارة وصيانة Azure HDInsight. استبدل
RESOURCEGROUP
باسم مجموعة الموارد التي تحتوي على شبكة Azure الظاهرية.هام
غير عناوين IP لـ
hdirule1
وhdirule2
في هذا المثال لمطابقة منطقة Azure التي تستخدمها. يمكنك العثور على هذه المعلومات في عناوين IP لإدارة HDInsight.az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule1 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "52.164.210.96" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 300 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule2 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "13.74.153.132" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 301 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule3 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "168.61.49.99" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 302 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule4 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "23.99.5.239" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 303 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule5 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "168.61.48.131" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 304 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule6 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "138.91.141.162" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 305 --direction "Inbound"
لاسترداد المعرف الفريد لمجموعة أمان الشبكة هذه، استخدم الأمر التالي:
az network nsg show -g RESOURCEGROUP -n hdisecure --query "id"
يُرجع هذا الأمر قيمة مشابهة للنص التالي:
"/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
استخدم الأمر التالي لتطبيق مجموعة أمان الشبكة على شبكة فرعية. استبدل قيم
GUID
وRESOURCEGROUP
بالقيم التي تم إرجاعها من الخطوة السابقة. استبدل VNETNAME
وSUBNETNAME
باسم الشبكة الظاهرية واسم الشبكة الفرعية التي تريد إنشائها.az network vnet subnet update -g RESOURCEGROUP --vnet-name VNETNAME --name SUBNETNAME --set networkSecurityGroup.id="/subscriptions/GUID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
بمجرد اكتمال هذا الأمر، يمكنك تثبيت HDInsight في الشبكة الظاهرية.
تفتح هذه الخطوات الوصول إلى خدمة إدارة وصيانة HDInsight على سحابة Azure فقط. يتم حظر أي وصول آخر إلى مجموعة HDInsight من خارج الشبكة الظاهرية. لتمكين الوصول من خارج الشبكة الظاهرية، يجب عليك إضافة قواعد إضافية لمجموعة أمان الشبكة.
توضح التعليمات البرمجية التالية كيفية تمكين وصول SSH من الإنترنت:
az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n ssh --protocol "*" --source-port-range "*" --destination-port-range "22" --source-address-prefix "*" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 306 --direction "Inbound"
مثال : تكوين DNS
تحليل الاسم بين شبكة ظاهرية وشبكة محلية متصلة
يفترض هذا المثال الافتراضات التالية:
أنك لديك شبكة Azure ظاهرية متصلة بشبكة محلية باستخدام بوابة VPN.
خادم DNS المخصص في الشبكة الظاهرية يشغل Linux أو Unix كنظام التشغيل.
تم تثبيت Bind على خادم DNS المخصص.
على خادم DNS المخصص في الشبكة الظاهرية:
استخدم إما Azure PowerShell أو Azure CLI للبحث عن لاحقة DNS للشبكة الظاهرية:
استبدل
RESOURCEGROUP
باسم مجموعة الموارد التي تحتوي على الشبكة الظاهرية، ثم أدخل الأمر:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
على خادم DNS المخصص للشبكة الظاهرية، استخدم النص التالي كمحتويات الملف
/etc/bind/named.conf.local
:// Forward requests for the virtual network suffix to Azure recursive resolver zone "0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net" { type forward; forwarders {168.63.129.16;}; # Azure recursive resolver };
استبدل القيمة
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
بلاحقة DNS للشبكة الظاهرية الأخرى.يوجه هذا التكوين كافة طلبات DNS للاحقة DNS بالشبكة الظاهرية إلى محلل العودية Azure.
على خادم DNS المخصص للشبكة الظاهرية استخدم النص التالي كمحتويات الملف
/etc/bind/named.conf.options
:// Clients to accept requests from // TODO: Add the IP range of the joined network to this list acl goodclients { 10.0.0.0/16; # IP address range of the virtual network localhost; localnets; }; options { directory "/var/cache/bind"; recursion yes; allow-query { goodclients; }; # All other requests are sent to the following forwarders { 192.168.0.1; # Replace with the IP address of your on-premises DNS server }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on { any; }; };
استبدل القيمة
10.0.0.0/16
بنطاق عنوان IP الخاص بالشبكة الظاهرية. يسمح هذا الإدخال لعناوين طلبات تحليل الاسم ضمن هذا النطاق.أضف نطاق عنوان IP للشبكة المحلية إلى المقطع
acl goodclients { ... }
. يسمح الإدخال بطلبات تحليل الاسم من الموارد في الشبكة المحلية.استبدل القيمة
192.168.0.1
بعنوان IP لخادم DNS المحلي. يقوم هذا الإدخال بتوجيه جميع طلبات DNS الأخرى إلى خادم DNS المحلي.
لاستخدام التكوين، أعد تشغيل Bind. على سبيل المثال،
sudo service bind9 restart
.أضف معيد توجيه شرطي إلى خادم DNS المحلي. كون معيد التوجيه الشرطي لإرسال طلبات للاحقة DNS من الخطوة 1 إلى خادم DNS المخصص.
ملاحظة
راجع وثائق برنامج DNS للحصول على تفاصيل حول كيفية إضافة معيد توجيه شرطي.
بعد إكمال هذه الخطوات، يمكنك الاتصال بالموارد في أي من الشبكتين باستخدام أسماء مجالات مؤهلة بالكامل (FQDN). يمكنك الآن تثبيت HDInsight في الشبكة الظاهرية.
تحليل الاسم بين شبكتين ظاهريتين متصلتين
يفترض هذا المثال الافتراضات التالية:
لديك شبكتان ظاهريتان من Azure متصلتان باستخدام إما بوابة VPN أو بوابة نظير.
خادم DNS المخصص في كلتا الشبكتين يشغل Linux أو Unix كنظام التشغيل.
تم تثبيت Bind على خادم DNS المخصص.
استخدم إما Azure PowerShell أو Azure CLI للبحث عن لاحقة DNS لكلا الشبكتين الظاهريتين:
استبدل
RESOURCEGROUP
باسم مجموعة الموارد التي تحتوي على الشبكة الظاهرية، ثم أدخل الأمر:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
استخدم النص التالي كمحتويات الملف
/etc/bind/named.config.local
على خادم DNS المخصص. إجراء هذا التغيير على خادم DNS المخصص في كل الشبكتين الظاهريتين.// Forward requests for the virtual network suffix to Azure recursive resolver zone "0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net" { type forward; forwarders {10.0.0.4;}; # The IP address of the DNS server in the other virtual network };
استبدل القيمة
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
بلاحقة DNS للشبكة الظاهرية الأخرى. يقوم هذا الإدخال بتوجيه طلبات لاحقة DNS للشبكة البعيدة إلى DNS المخصص في تلك الشبكة.على خادم DNS المخصص في الشبكتين الظاهريتين، استخدم النص التالي كمحتويات الملف
/etc/bind/named.conf.options
:// Clients to accept requests from acl goodclients { 10.1.0.0/16; # The IP address range of one virtual network 10.0.0.0/16; # The IP address range of the other virtual network localhost; localnets; }; options { directory "/var/cache/bind"; recursion yes; allow-query { goodclients; }; forwarders { 168.63.129.16; # Azure recursive resolver }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on { any; }; };
استبدل القيم
10.0.0.0/16
و10.1.0.0/16
بنطاق عنوان IP الخاص بشبكتك الظاهرية. يسمح هذا الإدخال للموارد في كل شبكة بتقديم طلبات خوادم DNS.تتم معالجة أية طلبات ليست لاحقات DNS للشبكات الظاهرية (على سبيل المثال، microsoft.com) بواسطة محلل العودية Azure.
لاستخدام التكوين، أعد تشغيل Bind. على سبيل المثال،
sudo service bind9 restart
على كلا خادمي DNS.
بعد إكمال هذه الخطوات، يمكنك الاتصال بالموارد في أي من الشبكتين الظاهريتين باستخدام أسماء مجالات مؤهلة بالكامل (FQDN). يمكنك الآن تثبيت HDInsight في الشبكة الظاهرية.
أختبر الإعدادات قبل نشر مجموعة HDInsight
قبل نشر المجموعة الخاصة بك، يمكنك التحقق من صحة العديد من إعدادات تكوين الشبكة الخاصة بك عن طريق تشغيل أداة HDInsight Network Validator على جهاز ظاهري Azure Linux في نفس شبكة VNet والشبكة الفرعية مثل المجموعة المخطط لها.
الخطوات التالية
للحصول على مثال شامل لتكوين HDInsight للاتصال بشبكة محلية، راجع توصيل HDInsight بشبكة محلية.
لتكوين مجموعات Apache HBase في شبكات Azure الظاهرية، راجع إنشاء مجموعات Apache HBase على HDInsight في شبكة Azure الظاهرية.
لتكوين النسخ المتماثل الجغرافي Apache HBase، راجع إعداد النسخ المتماثل لمجموعة Apache HBase في شبكات Azure الظاهرية.
لمزيد من المعلومات حول شبكات Azure الظاهرية، راجع نظرة عامة على شبكة Azure الظاهرية.
لمزيد من المعلومات حول مجموعات أمان الشبكة، راجع مجموعات أمان الشبكة.
لمزيد من المعلومات حول المسارات المعرفة من قبل المستخدم، راجع المسارات المعرفة من قبل المستخدم وإعادة توجيه عنوان IP.