قم بتوصيل HDInsight بشبكتك المحلية

تعرف على كيفية توصيل HDInsight بشبكتك المحلية باستخدام شبكات Azure الظاهرية وبوابة VPN. تقدم هذه الوثيقة معلومات تخطيط حول:

  • استخدام HDInsight في شبكة Azure الظاهرية التي تتصل بشبكتك المحلية.
  • تكوين تحليل اسم DNS بين الشبكة الظاهرية وشبكتك المحلية.
  • تكوين مجموعات أمان الشبكة لتقييد وصول الإنترنت إلى HDInsight.
  • المنافذ التي يوفرها HDInsight على الشبكة الظاهرية.

نظرة عامة

للسماح لـ HDInsight والموارد في الشبكة المنضم إليها بالاتصال بالاسم، يجب تنفيذ الإجراءات التالية:

  1. إنشاء شبكة Azure الظاهرية.
  2. إنشاء خادم DNS مخصص في شبكة Azure الظاهرية.
  3. قم بتكوين الشبكة الظاهرية لاستخدام خادم DNS المخصص بدلاً من Azure Recursive Resolver.
  4. قم بتكوين إعادة التوجيه بين خادم DNS المخصص وخادم DNS المحلي.

تقوم هذه التكوينات بتمكين السلوك التالي:

  • تتم إعادة توجيه طلبات أسماء المجالات المؤهلة بالكامل التي تحتوي على لاحقة DNS للشبكة الظاهرية إلى خادم DNS المخصص. يقوم خادم DNS المخصص حينها بإعادة توجيه هذه الطلبات إلى Azure Recursive Resolver، الذي يقوم بإرجاع عنوان IP.
  • تتم إعادة توجيه جميع الطلبات الأخرى إلى خادم DNS المحلي. حتى طلبات موارد الإنترنت العامة مثل microsoft.com يتم إعادة توجيهها إلى خادم DNS المحلي لتحليل الاسم.

في الرسم التخطيطي التالي، تمثل الخطوط الخضراء طلبات الموارد التي تنتهي في لاحقة DNS للشبكة الظاهرية. الخطوط الزرقاء هي طلبات للموارد في الشبكة المحلية أو على شبكة الإنترنت العام.

Diagram of how DNS requests are resolved in the configuration.

المتطلبات الأساسية

إنشاء تكوين الشبكة الظاهرية

استخدم المستندات التالية لمعرفة كيفية إنشاء شبكة Azure الظاهرية المتصلة بشبكتك المحلية:

إنشاء خادم DNS مخصص

هام

يجب عليك إنشاء خادم DNS المخصص وتكوينه قبل تثبيت HDInsight في الشبكة الظاهرية.

تستخدم هذه الخطوات مدخل Microsoft Azure لإنشاء جهاز Azure ظاهري. للحصول على طرق أخرى لإنشاء جهاز ظاهري، راجع إنشاء جهاز ظاهري - Azure CLI وإنشاء جهاز ظاهري - Azure PowerShell. لإنشاء جهاز ظاهري يعمل بنظام Linux ويستخدم برنامج Bind DNS، استخدم الخطوات التالية:

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. في القائمة اليمنى، تحديد + إنشاء مورد.

    Create an Ubuntu virtual machine.

  3. حدد حساب>جهاز ظاهري للانتقال إلى الصفحة إنشاء جهاز ظاهري.

  4. من علامة التبويب أساسيات، أدخل المعلومات التالية:

    الحقل القيمة
    الاشتراك حدد اشتراكك المناسب.
    مجموعة الموارد حدد مجموعة الموارد التي تحتوي على الشبكة الظاهرية التي تم إنشاؤها مسبقاً.
    اسم الجهاز الظاهري أدخل اسماً مألوفاً يُعرف هذا الجهاز الظاهري. هذا المثال يستخدم DNSProxy.
    المنطقة حدد منطقة الشبكة الظاهرية نفسها التي تم إنشاؤها مسبقاً. لا تتوفر جميع أحجام الجهاز الظاهري في جميع المناطق.
    خيارات التوفر حدد مستوى التوفر المطلوب. توفر Azure مجموعة من الخيارات لإدارة التوفر والمرونة لتطبيقاتك. قم بتصميم الحل الخاص بك لاستخدام الأجهزة الظاهرية المنسوخة بشكل متماثل في مناطق التوفر أو مجموعات التوفر لحماية التطبيقات والبيانات الخاصة بك من انقطاع مراكز البيانات وأحداث الصيانة. هذا المثال يستخدم لا يلزم تكرار البنية التحتية.
    Image اتركها عند Ubuntu Server 18.04 LTS.
    نوع المصادقة كلمة المرور أو المفتاح العام SSH: أسلوب المصادقة لحساب SSH. نوصي باستخدام المفاتيح العامة، لأنها أكثر أماناً. هذا المثال يستخدم كلمة المرور. لمزيد من المعلومات، راجع المستند إنشاء مفاتيح SSH لأجهزة Linux الظاهرية واستخدامها.
    اسم المستخدم أدخل اسم مستخدم المسؤول للجهاز الظاهري. هذا المثال يستخدم sshuser.
    كلمة المرور أو المفتاح العام SSH يتم تحديد الحقل المتوفر حسب اختيارك لنوع المصادقة. أدخل القيمة المناسبة.
    المنافذ العامة الواردة حدد Allow selected ports. ثم حدد SSH (22) من القائمة المنسدلة تحديد المنافذ الواردة.

    Virtual machine basic configuration.

    اترك الإدخالات الأخرى عند القيم الافتراضية ثم حدد علامة التبويب الشبكات.

  5. من علامة التبويب الشبكات، أدخل المعلومات التالية:

    الحقل القيمة
    الشبكة الظاهرية حدد الشبكة الظاهرية التي أنشأتها مسبقاً.
    الشبكة الفرعية حدد الشبكة الفرعية الظاهرية للشبكة الظاهرية التي قمت بإنشائها سابقاً. لا تقم بتحديد الشبكة الفرعية المستخدمة من قبل بوابة VPN.
    عنوان IP عام استخدم القيمة التي يتم ملؤها تلقائياً.

    HDInsight Virtual network settings.

    اترك الإدخالات الأخرى عند القيم الافتراضية ثم حدد مراجعة + إنشاء.

  6. من علامة التبويب مراجعة + إنشاء، حدد إنشاء لإنشاء جهاز ظاهري.

مراجعة عناوين IP

بمجرد إنشاء جهاز ظاهري، ستتلقى الإشعار تم التوزيع بنجاح مع زر الانتقال إلى المورد. حدد الانتقال إلى المورد للانتقال إلى الجهاز الظاهري الجديد الخاص بك. من طريقة العرض الافتراضية للجهاز الظاهري الجديد، اتبع الخطوات التالية لتعريف عناوين IP المقترنة:

  1. من الإعدادات، حدد الخصائص.

  2. لاحظ القيم الخاصة بـ PUBLIC IP ADDRESS/DNS NAME LABEL وPRIVATE IP ADDRESS لتستخدمها لاحقاً.

    Public and private IP addresses.

تثبيت Bind وتكوينه (برنامج DNS)

  1. استخدم SSH للاتصال بعنوان IP العام للجهاز الظاهري. استبدل sshuser بحساب مستخدم SSH الذي حددته عند إنشاء جهاز ظاهري. يتصل المثال التالي بجهاز ظاهري عند 40.68.254.142:

    ssh sshuser@40.68.254.142
    
  2. لتثبيت Bind، استخدم الأوامر التالية من جلسة SSH:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. لتكوين Bind لإعادة توجيه طلبات تحليل الاسم إلى خادم DNS المحلي الخاص بك، استخدم النص التالي كمحتويات الملف /etc/bind/named.conf.options:

    acl goodclients {
        10.0.0.0/16; # Replace with the IP address range of the virtual network
        10.1.0.0/16; # Replace with the IP address range of the on-premises network
        localhost;
        localnets;
    };
    
    options {
            directory "/var/cache/bind";
    
            recursion yes;
    
            allow-query { goodclients; };
    
            forwarders {
            192.168.0.1; # Replace with the IP address of the on-premises DNS server
            };
    
            dnssec-validation auto;
    
            auth-nxdomain no;    # conform to RFC1035
            listen-on { any; };
    };
    

    هام

    استبدال القيم الموجودة في القسم goodclients بنطاق عناوين IP للشبكة المحلية والشبكة الظاهرية. يحدد هذا القسم العناوين التي يقبل خادم DNS هذا الطلبات منها.

    استبدل الإدخال 192.168.0.1 في القسم forwarders بعنوان IP لخادم DNS المحلي الخاص بك. يقوم هذا الإدخال بتوجيه طلبات DNS إلى خادم DNS المحلي الخاص بك من أجل الدقة.

    لتحرير هذا الملف، استخدم الأمر التالي:

    sudo nano /etc/bind/named.conf.options
    

    لحفظ الملف، استخدم Ctrl+X، وY، ثم Enter.

  4. من جلسة SSH، استخدم الأمر التالي:

    hostname -f
    

    يُرجع هذا الأمر قيمة مشابهة للنص التالي:

    dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    النص icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net عبارة عن لاحقة DNS لهذه الشبكة الظاهرية. احفظ هذه القيمة، لأنها ستُستخدم لاحقاً.

  5. لتكوين Bind لحل أسماء DNS للموارد داخل الشبكة الظاهرية، استخدم النص التالي كمحتويات للملف /etc/bind/named.conf.local:

    // Replace the following with the DNS suffix for your virtual network
    zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
        type forward;
        forwarders {168.63.129.16;}; # The Azure recursive resolver
    };
    

    هام

    يجب استبدال icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net بلاحقة DNS التي قمت باستردادها سابقاً.

    لتحرير هذا الملف، استخدم الأمر التالي:

    sudo nano /etc/bind/named.conf.local
    

    لحفظ الملف، استخدم Ctrl+X، وY، ثم Enter.

  6. لبدء Bind، استخدم الأمر التالي:

    sudo service bind9 restart
    
  7. للتحقق من أن bind يمكنه حل أسماء الموارد في شبكتك المحلية، استخدم الأوامر التالية:

    sudo apt install dnsutils
    nslookup dns.mynetwork.net 10.0.0.4
    

    هام

    استبدل dns.mynetwork.net باسم مجال مؤهل بالكامل (FQDN) لمورد في شبكتك المحلية.

    استبدال 10.0.0.4 بـ عنوان IP الداخلي لخادم DNS المخصص في الشبكة الظاهرية.

    تبدو الاستجابة مشابهة للنص التالي:

    Server:         10.0.0.4
    Address:        10.0.0.4#53
    
    Non-authoritative answer:
    Name:   dns.mynetwork.net
    Address: 192.168.0.4
    

تكوين الشبكة الظاهرية لاستخدام خادم DNS المخصص

لتكوين الشبكة الظاهرية لاستخدام خادم DNS المخصص بدلاً من محلل Azure المتكرر، استخدم الخطوات التالية من مدخل Microsoft Azure:

  1. من القائمة اليسرى، انتقل إلى All services>Networking>Virtual networks.

  2. حدد الشبكة الظاهرية من القائمة، والتي ستفتح بطريقة العرض الافتراضية لشبكتك الظاهرية.

  3. من طريقة العرض الافتراضية، ضمن الإعدادات، حدد خوادم DNS.

  4. حدد مخصص، وأدخل PRIVATE IP ADDRESS لخادم DNS المخصص.

  5. حدد حفظ.

    Set the custom DNS server for the network.

تكوين خادم DNS المحلي

في القسم السابق، قمت بتكوين خادم DNS المخصص لإعادة توجيه الطلبات إلى خادم DNS المحلي. تالياً، يجب تكوين خادم DNS المحلي لإعادة توجيه الطلبات إلى خادم DNS المخصص.

للحصول على خطوات محددة حول كيفية تكوين خادم DNS، راجع الوثائق الخاصة ببرنامج خادم DNS. ابحث عن الخطوات المتعلقة بكيفية تكوين معيد التوجيه الشرطي.

تقوم إعادة التوجيه المشروطة بإعادة توجيه الطلبات للاحقة DNS معينة فقط. في هذه الحالة، يجب تكوين معيد توجيه للاحقة DNS للشبكة الظاهرية. يجب إعادة توجيه طلبات هذه اللاحقة إلى عنوان IP خادم DNS المخصص.

يعد النص التالي مثالاً لتكوين معيد توجيه شرطي لبرنامج BIND DNS:

zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
    type forward;
    forwarders {10.0.0.4;}; # The custom DNS server's internal IP address
};

للحصول على معلومات حول استخدام DNS على Windows Server 2016، راجع وثائق Add-DnsServerConditionalForwarderZone...

بمجرد تكوين خادم DNS المحلي، يمكنك استخدام nslookup من الشبكة المحلية للتحقق أنه يمكنك حل الأسماء في الشبكة الظاهرية. المثال التالي

nslookup dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net 196.168.0.4

يستخدم هذا المثال خادم DNS المحلي عند 196.168.0.4 لحل اسم خادم DNS المخصص. استبدال عنوان IP بعنوان خادم DNS المحلي. استبدال العنوان dnsproxy باسم المجال المؤهل بالكامل الخاص بخادم DNS المخصص.

اختياري: التحكم في نسبة استخدام الشبكة

يمكنك استخدام مجموعات أمان الشبكة (NSG) أو المسارات المعرفة من قبل المستخدم (UDR) للتحكم في نسبة استخدام الشبكة. تسمح لك مجموعات NSG بتصفية نسبة استخدام الشبكة الواردة والصادرة، والسماح بها أو رفضها. تتيح لك مسارات UDR التحكم في كيفية تدفق نسبة استخدام الشبكة بين الموارد في الشبكة الظاهرية والإنترنت والشبكة المحلية.

تحذير

يتطلب HDInsight إمكانية وصول الوارد من عناوين IP محددة في سحابة Azure، وإمكانية وصول صادر غير مقيد. عند استخدام مجموعات NSG أو مسارات UDR للتحكم في نسبة استخدام الشبكة، يجب تنفيذ الخطوات التالية:

  1. اعثر على عناوين IP للموقع الذي يحتوي على الشبكة الظاهرية الخاصة بك. للحصول على قائمة بعناوين IP المطلوبة حسب الموقع، راجع عناوين IP المطلوبة.

  2. بالنسبة لعناوين IP المحددة في الخطوة 1، اسمح بنسبة استخدام الشبكة الواردة من عناوين IP تلك.

    • إذا كنت تستخدم NSG: اسمح بنسبة استخدام الشبكة الواردة في المنفذ 443 لعناوين IP.
    • إذا كنت تستخدم UDR:قم بتعيين نوع الوثبة التالية من المسار إلى الإنترنت لعناوين IP.

للحصول على مثال لاستخدام Azure PowerShell أو Azure CLI لإنشاء NSGs، راجع المستند توسيع HDInsight باستخدام شبكات Azure الظاهرية.

إنشاء نظام مجموعة HDInsight

تحذير

يجب عليك تكوين خادم DNS المخصص قبل تثبيت HDInsight في الشبكة الظاهرية.

استخدم الخطوات الموجودة في إنشاء نظام مجموعة HDInsight باستخدام مدخل Microsoft Azure لإنشاء نظام مجموعة HDInsight.

تحذير

  • أثناء إنشاء نظام المجموعة، يجب عليك اختيار الموقع الذي يحتوي على شبكتك الظاهرية.
  • في الجزء إعدادات متقدمة من التكوين، يجب تحديد الشبكة الظاهرية والشبكة الفرعية التي قمت بإنشائها سابقاً.

الاتصال بـ HDInsight

تفترض معظم الوثائق بشأن HDInsight أن لديك إمكانية الوصول إلى نظام المجموعة عبر الإنترنت. على سبيل المثال، أنه يمكنك الاتصال بنظام المجموعة في https://CLUSTERNAME.azurehdinsight.net. يستخدم هذا العنوان البوابة العامة، والتي لا تتوفر إذا كنت قد استخدمت مجموعات NSG أو مسارات UDR لتقييد الوصول من الإنترنت.

تشير بعض الوثائق أيضاً إلى headnodehost عند الاتصال بنظام المجموعة من جلسة SSH. هذا العنوان متوفر فقط من العُقد في داخل نظام المجموعة، ولا يمكن استخدامه على العملاء المتصلين عبر الشبكة الظاهرية.

للاتصال مباشرة بـ HDInsight عبر الشبكة الظاهرية، استخدم الخطوات التالية:

  1. لاكتشاف أسماء المجال الداخلية المؤهلة بالكامل لعُقد نظام مجموعة HDInsight، استخدم إحدى الطرق التالية:

    $resourceGroupName = "The resource group that contains the virtual network used with HDInsight"
    
    $clusterNICs = Get-AzNetworkInterface -ResourceGroupName $resourceGroupName | where-object {$_.Name -like "*node*"}
    
    $nodes = @()
    foreach($nic in $clusterNICs) {
        $node = new-object System.Object
        $node | add-member -MemberType NoteProperty -name "Type" -value $nic.Name.Split('-')[1]
        $node | add-member -MemberType NoteProperty -name "InternalIP" -value $nic.IpConfigurations.PrivateIpAddress
        $node | add-member -MemberType NoteProperty -name "InternalFQDN" -value $nic.DnsSettings.InternalFqdn
        $nodes += $node
    }
    $nodes | sort-object Type
    
    az network nic list --resource-group <resourcegroupname> --output table --query "[?contains(name,'node')].{NICname:name,InternalIP:ipConfigurations[0].privateIpAddress,InternalFQDN:dnsSettings.internalFqdn}"
    
  2. لتحديد المنفذ المتوفر عليه خدمة ما، راجع مستند المنافذ المستخدمة من قِبل خدمات Apache Hadoop على HDInsight.

    هام

    بعض الخدمات المستضافة على العُقد الرئيسية تكون نشطة فقط على عقدة واحدة في كل مرة. إذا حاولت الوصول إلى خدمة على عقدة رئيسية واحدة وفشلت، قم بالتبديل إلى العقدة الرئيسية الأخرى.

    على سبيل المثال، يصبح Apache Ambari نشطاً على عقدة رئيسية واحدة فقط في كل مرة. إذا حاولت الوصول إلى Ambari على عقدة رئيسية واحدة وتم إرجاح خطأ 404، حينها يكون يعمل على العقدة الرئيسية الأخرى.

الخطوات التالية