كيفية إدارة مناطق DNS باستخدام PowerShell

توضح لك هذه المقالة كيفية إدارة مناطق DNS الخاصة بك باستخدام Azure PowerShell. يمكنك أيضاً إدارة مناطق DNS الخاصة بك باستخدام النظام الأساسي Azure CLI أو مدخل Microsoft Azure.

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

يتم استخدام منطقة DNS لاستضافة سجلات DNS لمجال معين. لبدء استضافة المجال الخاص بك في Azure DNS، تحتاج إلى إنشاء منطقة DNS لاسم المجال هذا. يتم بعد ذلك إنشاء كل سجل DNS لمجالك داخل منطقة DNS هذه.

على سبيل المثال، قد يحتوي المجال "contoso.com" على العديد من سجلات DNS مثل، "mail.contoso.com" (لخادم البريد) و"www.contoso.com" (لموقع ويب).

عند إنشاء منطقة DNS في Azure DNS:

  • يجب أن يكون اسم المنطقة فريداً ضمن مجموعة الموارد، ويجب ألا تكون المنطقة موجودة بالفعل. وإلا، ستفشل العملية.
  • يمكن إعادة استخدام نفس اسم المنطقة في مجموعة موارد مختلفة أو اشتراك Azure مختلف.
  • حيث تتشارك مناطق متعددة في نفس الاسم، ويعين كل مثيل عناوين خوادم أسماء مختلفة. يمكن تكوين مجموعة واحدة فقط من العناوين باستخدام مسجل اسم المجال.

ملاحظة

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

للمزيد من المعلومات، راجع تفويض مجال إلى DNS Azure.

أعِدّ Azure PowerShell لنظام أسماء مجالات Azure (Azure DNS)

قبل أن تبدأ

هام

يتطلب استخدام ميزة Azure هذه من PowerShell ⁧AzureRM⁩ تثبيت الوحدة النمطية. هذه وحدة نمطية قديمة متوفرة فقط في إصدار ويندوز PowerShell 5.1 التي لم تعد تتلقى ميزات جديدة. الوحدات ⁧Az⁩و⁧AzureRM⁩ ليست⁧⁩متوافقة⁧⁩ عند تثبيتها لنفس إصدارات PowerShell. إذا كنت بحاجة إلى كلا الإصدارين:

  1. ⁩قم بإلغاء تثبيت الوحدة النمطية Az⁧⁩ من جلسة عمل PowerShell 5.1.
  2. ⁩قم بتثبيت الوحدة النمطيةAzureRM⁧⁩ في جلسة عمل PowerShell 5.1.
  3. ⁩قم بتنزيل وتثبيت PowerShell Core 6.x أو أحدث⁧⁩.
  4. ⁩قم بتثبيت الوحدة النمطية Az⁧⁩ فى جلسة عمل PowerShell 5.1.

تحقق من أن لديك العناصر التالية قبل بدء الإعداد الخاص بك.

قم بتسجيل الدخول إلى حساب Azure الخاص بك

افتح وحدة تحكم PowerShell الخاصة بك واتصل بحسابك. لمزيد من المعلومات، راجع تسجيل الدخول باستخدام Azure PowerShell.

Connect-AzAccount

حدد الاشتراك

تحقق من الاشتراكات الخاصة بالحساب.

Get-AzSubscription

اختر أياً من اشتراكات Azure المراد استخدامها.

Select-AzSubscription -SubscriptionName "your_subscription_name"

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

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

يمكنك تخطي هذه الخطوة إذا كنت تستخدم مجموعة موارد موجودة.

New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"

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

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

ينشئ المثال التالي منطقة DNS تسمى contoso.com في مجموعة الموارد المسماة MyDNSResourceGroup:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

يوضح المثال التالي كيفية إنشاء منطقة DNS مع علامتي Azure Resource Manager وproject = demo وenv = test:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

احصل على منطقة DNS

لاسترداد منطقة DNS، استخدم Get-AzDnsZone cmdlet. تقوم هذه العملية بإرجاع كائن منطقة DNS المطابق لمنطقة موجودة في Azure DNS. يحتوي الكائن على بيانات حول المنطقة (مثل عدد مجموعات السجلات)، لكنه لا يحتوي على مجموعات السجلات نفسها (راجع Get-AzDnsRecordSet).

Get-AzDnsZone -Name contoso.com –ResourceGroupName MyDNSResourceGroup

Name                  : contoso.com
ResourceGroupName     : myresourcegroup
Etag                  : 00000003-0000-0000-8ec2-f4879750d201
Tags                  : {project, env}
NameServers           : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
                        ns4-01.azure-dns.info.}
NumberOfRecordSets    : 2
MaxNumberOfRecordSets : 5000

قائمة مناطق DNS

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

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

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

$zoneList = Get-AzDnsZone
$zoneList

حَدِّثْ منطقة DNS

يمكن إجراء تغييرات على مورد منطقة DNS باستخدام Set-AzDnsZone. لا يقوم أمر cmdlet هذا بتحديث أي من مجموعات سجلات DNS داخل المنطقة (راجع كيفية إدارة سجلات DNS). يتم استخدامه فقط لتحديث خصائص مورد المنطقة نفسه. تقتصر خصائص المنطقة القابلة للكتابة حالياً على "علامات" Azure Resource Manager لمورد المنطقة.

استخدم إحدى الطريقتين التاليتين لتحديث منطقة DNS:

تحديد المنطقة باستخدام اسم المنطقة ومجموعة الموارد

يستبدل هذا الأسلوب علامات المنطقة الحالية بالقيم المحددة.

Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

تحديد المنطقة باستخدام كائن المنطقة $

يقوم هذا الأسلوب باسترداد كائن المنطقة الموجود، وتعديل العلامات، ثم تنفيذ التغييرات. بهذه الطريقة، يمكن الاحتفاظ بالعلامات الموجودة.

# Get the zone object
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzDnsZone -Zone $zone

عند الاستخدام Set-AzDnsZone مع كائن $zone، يتم استخدام عمليات التحقق من Etag لضمان عدم الكتابة فوق التغييرات المتزامنة. يمكنك استخدام مفتاح -Overwrite الاختياري لإلغاء عمليات التحقق هذه.

حذف منطقة DNS

يمكن حذف مناطق DNS باستخدام cmdlet المسمى Remove-AzDnsZone.

ملاحظة

يؤدي حذف منطقة DNS أيضاً إلى حذف جميع سجلات DNS داخل المنطقة. هذه العملية لا يمكن التراجع عنها. إذا كانت منطقة DNS قيد الاستخدام، فسوف تفشل الخدمات التي تستخدمها المنطقة عند حذف المنطقة.

للحماية من الحذف العرضي للمنطقة، راجع كيفية حماية سجلات ومناطق DNS.

استخدم إحدى الطريقتين التاليتين لحذف منطقة DNS:

تحديد المنطقة باستخدام اسم المنطقة واسم مجموعة الموارد

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

تحديد المنطقة باستخدام كائن المنطقة $

يمكنك تحديد المنطقة المراد حذفها باستخدام كائن $zoneالذي تم إرجاعه بواسطةGet-AzDnsZone.

$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone

يمكن أيضاً توصيل كائن المنطقة بالتدفق بدلاً من تمريره كمعامل:

Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone

كما هو الحال مع Set-AzDnsZone، يؤدي تحديد المنطقة باستخدام كائن $zone إلى تمكين عمليات التحقق من Etag لضمان عدم حذف التغييرات المتزامنة. استخدم مفتاح -Overwrite لإلغاء عمليات التحقق هذه.

مطالبات التأكيد

تدعم أوامر cmdlet التالية New-AzDnsZone وSet-AzDnsZone وRemove-AzDnsZone مطالبات التأكيد جميعها.

يطلب كل من New-AzDnsZone وSet-AzDnsZone التأكيد إذا كان متغير تفضيل PowerShell $ConfirmPreference له قيمة Medium أو أقل. نظراً لأن حذف منطقة DNS يمكن أن يتسبب في حدوث حالات غير مرغوب فيها، فإن الأمر Remove-AzDnsZone يطالب بالتأكيد إذا كان $ConfirmPreference متغير PowerShell له أي قيمة بخلاف None.

نظراً لأن القيمة الافتراضية لـ $ConfirmPreference هي High، فإن Remove-AzDnsZone فقط تطالب بالتأكيد بشكل افتراضي.

يمكنك تجاوز إعداد $ConfirmPreference الحالي باستخدام المعلمة -Confirm. إذا حددت -Confirm أو -Confirm:$True، فسيطالبك الأمر cmdlet بالتأكيد قبل تشغيله. إذا حددت -Confirm:$False، فلن يطالبك الأمر cmdlet بالتأكيد.

لمزيد من المعلومات عن -Confirm و$ConfirmPreference، راجع حول متغيرات التفضيل.

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

تعرف على كيفية إدارة مجموعات السجل والسجلات في منطقة DNS الخاصة بك.
تعرف على كيفية تفويض مجالك إلى Azure DNS.
راجع الوثائق المرجعية لـ Azure DNS PowerShell.