البدء السريع: إنشاء منطقة DNS خاصة لـ Azure باستخدام Azure PowerShell

ترشدك هذه المقالة لإنشاء منطقة DNS الخاصة الأولى وتسجيل باستخدام Azure PowerShell.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

يتم استخدام منطقة DNS لاستضافة سجلات DNS لمجال معين. لبدء استضافة المجال الخاص بك في Azure DNS، تحتاج إلى إنشاء منطقة DNS لاسم المجال هذا. يتم بعد ذلك إنشاء كل سجل DNS لمجالك داخل منطقة DNS هذه. عند نشر منطقة DNS خاصة إلى شبكة الاتصال الظاهرية، يمكنك تحديد قائمة الشبكات الظاهرية المسموح لها بحل السجلات داخل المنطقة. وتسمى هذه الشبكات الظاهرية "linked". عند تمكين التسجيل التلقائي، يقوم Azure DNS أيضًا بتحديث سجلات المنطقة كلما تم إنشاء جهاز ظاهري أو تغيير عنوان IP الخاص به أو حذفه.

رسم تخطيطي ملخص لإعداد التشغيل السريع.

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

في حال لم يكن لديك اشتراك في Azure، يُمكنك إنشاء حساب مجاني قبل البدء.

إذا كنت تفضل ذلك، يمكنك إكمال هذا التشغيل السريع باستخدام Azure CLI.

Azure Cloud Shell

Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.

لبدء Azure Cloud Shell:

خيار مثال/ رابط
انقر فوق ⁧⁩جربه⁧⁩ في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد ⁧⁩جربه⁧⁩ لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. لقطة شاشة تعرض مثالاً على Try It for Azure Cloud Shell.
انتقل إلى ⁧⁩⁧ https://shell.azure.com⁩⁧⁩، أو حدد زر ⁩تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. زر لتشغيل Azure Cloud Shell.
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. لقطة شاشة تعرض زر Cloud Shell في مدخل Microsoft Azure

لاستخدام Azure Cloud Shell:

  1. ابدأ تشغيل Cloud Shell.

  2. حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.

  3. ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.

  4. حدد Enter لتشغيل التعليمات البرمجية أو الأمر.

إنشاء مجموعة موارد

أولًا، إنشاء مجموعة موارد لاحتواء منطقة DNS:

New-AzResourceGroup -name MyAzureResourceGroup -location "eastus"

قم بإنشاء منطقة DNS خاصة

يتم إنشاء منطقة DNS باستخدام أمر cmdlet التالي New-AzPrivateDnsZone.

ينشئ المثال التالي شبكة اتصال افتراضية باسم myAzureVNet. ثم تنشئ منطقة DNS تُسمى private.contoso.com في مجموعة موارد MyAzureResourceGroup، وتربط منطقة DNS بشبكة MyAzureVnet الافتراضية، ويتيح التسجيل التلقائي.

Install-Module -Name Az.PrivateDns -force

$backendSubnet = New-AzVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix "10.2.0.0/24"
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName MyAzureResourceGroup `
  -Location eastus `
  -Name myAzureVNet `
  -AddressPrefix 10.2.0.0/16 `
  -Subnet $backendSubnet

$zone = New-AzPrivateDnsZone -Name private.contoso.com -ResourceGroupName MyAzureResourceGroup

$link = New-AzPrivateDnsVirtualNetworkLink -ZoneName private.contoso.com `
  -ResourceGroupName MyAzureResourceGroup -Name "mylink" `
  -VirtualNetworkId $vnet.id -EnableRegistration

إذا كنت ترغب في إنشاء منطقة لتحليل الاسم فقط (لا يوجد تسجيل تلقائي لاسم المضيف)، فيمكنك استخدام المعلمة -EnableRegistration.

سرد مناطق DNS الخاصة

بحذف اسم المنطقة من Get-AzPrivateDnsZone، يمكنك تعداد كل المناطق في مجموعة موارد. ترجع هذه العملية صفيف كائنات المنطقة.

$zones = Get-AzPrivateDnsZone -ResourceGroupName MyAzureResourceGroup
$zones

بحذف اسم المنطقة واسم مجموعة الموارد من Get-AzPrivateDnsZone، يمكنك تعداد كافة المناطق في اشتراك Azure.

$zones = Get-AzPrivateDnsZone
$zones

إنشاء أجهزة ظاهرية للاختبار

الآن، أنشئ جهازين افتراضيَّين حتى تتمكن من اختبار منطقة DNS لديك:

New-AzVm `
    -ResourceGroupName "myAzureResourceGroup" `
    -Name "myVM01" `
    -Location "East US" `
    -subnetname backendSubnet `
    -VirtualNetworkName "myAzureVnet" `
    -addressprefix 10.2.0.0/24 `
    -OpenPorts 3389

New-AzVm `
    -ResourceGroupName "myAzureResourceGroup" `
    -Name "myVM02" `
    -Location "East US" `
    -subnetname backendSubnet `
    -VirtualNetworkName "myAzureVnet" `
    -addressprefix 10.2.0.0/24 `
    -OpenPorts 3389

سيستغرق إنشاء جهاز ظاهري بضع دقائق حتى يكتمل.

إنشاء سجل DNS إضافي

إنشاء مجموعات السجلات باستخدام New-AzPrivateDnsRecordSet cmdlet. يقوم المثال التالي بإنشاء سجل بالاسم النسبي db في منطقة DNS private.contoso.com ، في مجموعة الموارد MyAzureResourceGroup. الاسم المؤهل لمجموعة السجلات هو db.private.contoso.com. نوع السجل هو "A"، بعنوان IP "10.2.0.4"، وTTL الافتراضي هو 3600 ثانية.

New-AzPrivateDnsRecordSet -Name db -RecordType A -ZoneName private.contoso.com `
   -ResourceGroupName MyAzureResourceGroup -Ttl 3600 `
   -PrivateDnsRecords (New-AzPrivateDnsRecordConfig -IPv4Address "10.2.0.4")

عرض سجلات DNS

لسرد سجلات DNS في منطقتك، قم بتشغيل:

Get-AzPrivateDnsRecordSet -ZoneName private.contoso.com -ResourceGroupName MyAzureResourceGroup

اختبر المنطقة الخاصة

يمكنك الآن اختبار دقة الاسم لمنطقتك الخاصة private.contoso.com.

تكوين VMs للسماح للداخل ICMP

يمكنك استخدام أمر اختبار الاتصال لاختبار تحليل الاسم. لذلك، قم بتكوين جدار الحماية على كلا الجهازين الظاهريين للسماح بحزم ICMP الواردة.

  1. اتصل بـ myVM01 باستخدام اسم المستخدم وكلمة المرور التي استخدمتها عند إنشاء الجهاز الظاهري.

  2. افتح نافذة Windows PowerShell بامتيازات المسؤول.

  3. شغّل الأمر التالي:

    New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
    

كرر مع myVM02.

اختبر الاتصال على الأجهزة الظاهرية بالاسم

  1. من موجه أوامر myVM02 Windows PowerShell، قم بتنفيذ الأمر ping myVM01 باستخدام اسم المضيف المسجل تلقائيًّا:

    ping myVM01.private.contoso.com
    

    يجب أن ترى مخرجات مشابهة لما هو معروض أدناه:

    PS C:\> ping myvm01.private.contoso.com
    
    Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data:
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time=1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.2.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 1ms, Average = 0ms
    PS C:\>
    
  2. الآن قم بتنفيذ الأمر ping على اسم "db" الذي قمت بإنشائه مسبقًا:

    ping db.private.contoso.com
    

    يجب أن ترى مخرجات مشابهة لما هو معروض أدناه:

    PS C:\> ping db.private.contoso.com
    
    Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data:
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.2.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milliseconds:
        Minimum = 0ms, Maximum = 0ms, Average = 0ms
    PS C:\>
    

تنظيف الموارد

عندما لم تعد هناك حاجة لذلك، احذف مجموعة موارد "MyAzureResourceGroup" لحذف الموارد التي تم إنشاؤها في هذه المقالة.

Remove-AzResourceGroup -Name MyAzureResourceGroup

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