استيراد وتصدير ملف منطقة DNS باستخدام Azure CLI

في هذه المقالة، ستتعلم كيفية استيراد ملف منطقة DNS وتصديره في Azure DNS باستخدام Azure CLI. يمكنك أيضا استيراد ملف منطقة وتصديره باستخدام مدخل Microsoft Azure.

مقدمة إلى ترحيل منطقة DNS

ملف منطقة DNS هو ملف نصي يحتوي على معلومات عن كل سجل نظام اسم المجال (DNS) في المنطقة. يتبع تنسيقاً قياسيّاً، ما يجعله مناسباً لنقل سجلَّات DNS بين أنظمة DNS. يعد استخدام ملف المنطقة طريقة سريعة وملائمة لاستيراد مناطق DNS إلى Azure DNS. يمكنك أيضاً تصدير ملف منطقة من Azure DNS لاستخدامه مع أنظمة DNS الأخرى.

يدعم Azure DNS استيراد ملفات المنطقة وتصديرها عبر Azure CLI ومدخل Azure.

Azure CLI هي أداة سطر أوامر عبر الأنظمة الأساسية تُستخدم لإدارة خدمات Azure. إنه متاح لأنظمة التشغيل Windows وMac وLinux من صفحة تنزيلات Azure.

الحصول على ملف منطقة DNS الحالي الخاص بك

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

  • إذا كانت منطقة DNS الخاصة بك مستضافة بواسطة خدمة شريك، يجب أن يكون للخدمة طريقة لتنزيل ملف منطقة DNS. تشمل خدمات الشركاء مسجل المجال أو مزود استضافة DNS المخصص أو مزود خدمة سحابي بديل.
  • إذا كانت منطقة DNS الخاصة بك مستضافة على Windows DNS، فإن المجلد الافتراضي لملفات المنطقة هو %systemroot%\system32\dns. يظهر المسار الكامل لكل ملف منطقة أيضاً في علامة التبويب General لوحدة تحكم DNS.
  • إذا تمت استضافة منطقة DNS الخاصة بك باستخدام BIND، فسيتم تحديد موقع ملف المنطقة لكل منطقة في ملف تكوين BIND named.conf.

هام

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

قم باستيراد ملف منطقة DNS إلى Azure DNS

يؤدي استيراد ملف منطقة إلى إنشاء منطقة جديدة في Azure DNS إذا لم تكن المنطقة موجودة بالفعل. إذا كانت المنطقة موجودة، فسيتم دمج مجموعات السجلات في ملف المنطقة مع مجموعات السجلات الموجودة.

سلوك الدمج

  • بشكل افتراضي، يتم دمج مجموعات السجلات الجديدة مع مجموعات السجلات الموجودة. لا يتم تكرار السجلات المتطابقة ضمن مجموعة السجلات المدمجة.
  • عندما يتم دمج مجموعات السجلات، يتم استخدام وقت البقاء (TTL) لمجموعات السجلات الموجودة مسبقاً.
  • يتم دائماً أخذ معلمات بدء التفويض (SOA)، باستثناء host من ملف المنطقة المستوردة. يستخدم سجل خادم الاسم الذي تم تعيينه في قمة المنطقة دائما TTL المأخوذ من ملف المنطقة المستوردة.
  • سيحل سجل CNAME المستورد محل سجل CNAME الموجود الذي يحمل نفس الاسم.
  • عند حدوث تعارض بين سجل CNAME وسجل آخر يحمل نفس الاسم من نوع مختلف، يتم استخدام السجل الحالي.

معلومات إضافية حول الاستيراد

توفر الملاحظات التالية مزيداً من التفاصيل الفنية عن عملية استيراد المنطقة.

  • التوجيه $TTL اختياري ومعتمد. في حالة عدم تقديم أي توجيه $TTL، يتم استيراد السجلات التي لا تحتوي على TTL الصريح لتعيين مدة البقاء الافتراضية البالغة 3600 ثانية. عندما يُحدَّد سجلان في نفس مجموعة السجلات TTLs مختلفة، تُستَخدم القيمة الأقل.
  • التوجيه $ORIGIN اختياري ومعتمد. عند عدم $ORIGIN التعيين، تكون القيمة الافتراضية المستخدمة هي اسم المنطقة كما هو محدد في سطر الأوامر، بما في ذلك نقطة النهاية (.).
  • التوجيهان $INCLUDE and $GENERATE غير مدعومين.
  • أنواع السجلات هذه مدعومة: A وAAAA وCAA وCNAME وMX وNS وSOA وSRV وTXT.
  • يتم إنشاء سجل SOA تلقائياً بواسطة Azure DNS عند إنشاء منطقة. عند استيراد ملف منطقة، يتم أخذ جميع معلمات SOA من ملف المنطقة باستثناء المعلمة host. تستخدم هذه المعلمة القيمة التي يوفرها Azure DNS لأنها تحتاج إلى الرجوع إلى خادم الاسم الأساسي الذي يوفره Azure DNS.
  • يتم أيضاً إنشاء سجل خادم الاسم الذي تم تعيينه في قمة المنطقة تلقائياً بواسطة Azure DNS عند إنشاء المنطقة. يتم استيراد مدة البقاء (TTL) الخاصة بمجموعة السجلات هذه فقط. تحتوي هذه السجلات على أسماء خادم الأسماء التي يوفرها Azure DNS. لا تتم الكتابة فوق بيانات السجل بالقيم المضمنة في ملف المنطقة المستوردة.
  • أثناء المعاينة العامة، يدعم Azure DNS سجلات TXT أحادية السلسلة فقط. يجب أن يتم ربط سجلات TXT متعددة السلاسل واقتطاعها إلى 255 حرفاً.

تنسيق CLI والقيم

تنسيق أمر Azure CLI لاستيراد منطقة DNS هو:

az network dns zone import -g <resource group> -n <zone name> -f <zone file name>

القيم:

  • <resource group> هو اسم مجموعة الموارد للمنطقة في Azure DNS.
  • <zone name> هو اسم المنطقة.
  • <zone file name> هو مسار / اسم ملف المنطقة المراد استيراده.

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

القيام باستيراد ملف المنطقة

لاستيراد ملف منطقة للمنطقة contoso.com.

  1. قم بإنشاء مجموعة موارد إذا لم يكن لديك واحدة.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. لاستيراد contoso.com المنطقة من الملف contoso.com.txt إلى منطقة DNS جديدة في مجموعة الموارد myresourcegroup، قم بتشغيل الأمر az network dns zone import.

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

    az network dns zone import -g myresourcegroup -n contoso.com -f contoso.com.txt
    

تحقق من المنطقة

يمكنك استخدام أي من الطرق التالية للتحقق من منطقة DNS بعد قيامك باستيراد الملف:

  • لسرد السجلات، استخدم أمر Azure CLI التالي:

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • يمكنك أيضاً سرد السجلات باستخدام أمر Azure CLI az network dns record-set ns list.

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

    az network dns record-set ns list -g myresourcegroup -z contoso.com  --output json 
    
    [
      {
       .......
       "name": "@",
        "nsRecords": [
          {
            "additionalProperties": {},
            "nsdname": "ns1-03.azure-dns.com."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns2-03.azure-dns.net."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns3-03.azure-dns.org."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns4-03.azure-dns.info."
          }
        ],
        "resourceGroup": "myresourcegroup",
        "ttl": 86400,
        "type": "Microsoft.Network/dnszones/NS"
      }
    ]
    

    استخدم موجه أوامر Windows للاستعلام عن سجل "www" باستخدام الأمر nslookup.

    nslookup www.contoso.com ns1-03.azure-dns.com
    
        Server: ns1-01.azure-dns.com
        Address:  40.90.4.1
    
        Name:www.contoso.com
        Addresses:  134.170.185.46
        134.170.188.221
    

تحديث تفويض DNS

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

تصدير ملف منطقة DNS من Azure DNS

لتصدير منطقة DNS، استخدم أمر Azure CLI التالي:

az network dns zone export -g <resource group> -n <zone name> -f <zone file name>

القيم:

  • <resource group> هو اسم مجموعة الموارد للمنطقة في Azure DNS.
  • <zone name> هو اسم المنطقة.
  • <zone file name> هو مسار / اسم ملف المنطقة المراد تصديره.

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

لتصدير ملف المنطقة

لتصدير منطقة Azure DNS الحالية contoso.com في مجموعة الموارد myresourcegroup إلى الملف contoso.com.txt (في المجلد الحالي)، قم بتشغيل azure network dns zone export. يستدعي هذا الأمر خدمة Azure DNS لتعداد مجموعات السجلات في المنطقة وتصدير النتائج إلى ملف منطقة متوافق مع BIND.

az network dns zone export -g myresourcegroup -n contoso.com -f contoso.com.txt

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