ping6.net

IPv6 DNS: سجلات AAAA، الحل المزدوج، وأفضل الممارسات

تعلم كيف يعمل DNS مع IPv6، بما في ذلك سجلات AAAA، ترتيب الحل المزدوج، DNS64، والأخطاء الشائعة في التكوين.

ping6.net14 ديسمبر 202413 min read
IPv6DNSسجلات AAAADNS64مكدس مزدوجحل الأسماء

يعيش نشر IPv6 أو يموت عند DNS. انشر سجل AAAA قبل أن تعمل اتصالات IPv6، وينتظر المستخدمون انتهاء المهلة. تخطَّ DNS العكسي، وترفض خوادم البريد حركة المرور الخاصة بك. أسئ تكوين الحل المزدوج، وتجعل الشبكة أبطأ بدلاً من أسرع.

يغطي هذا الدليل كيفية عمل DNS مع IPv6، وما الذي ينكسر، وكيفية إصلاحه قبل أن يصبح مشكلة.

TL;DR - ملخص سريع

النقاط الرئيسية:

  • سجلات AAAA هي مكافئ IPv6 لسجلات A (كواد-إيه = 4 A's للعناوين 128 بت)
  • Happy Eyeballs (RFC 8305) تحاول IPv6 أولاً لكن تعود إلى IPv4 خلال 50-250 مللي ثانية
  • DNS64 يصنع سجلات AAAA من سجلات A لشبكات IPv6 فقط لكنه يكسر DNSSEC

انتقل إلى: سجلات AAAA للأساسيات، الحل المزدوج للأداء، أو الأخطاء الشائعة لاستكشاف الأخطاء.

سجلات AAAA: إجابة IPv6 لسجلات A#

سجل AAAA (يُنطق "كواد-إيه") يربط اسم مضيف بعنوان IPv6. إنه مكافئ IPv6 لسجل A، لكنه يحمل عنواناً 128 بت بدلاً من 32 بت.

التنسيق والبنية#

example.com.    3600    IN    AAAA    2001:db8::1

البنية تطابق سجلات A: الاسم، TTL، الفئة، النوع، والعنوان. يستخدم العنوان تدوين IPv6 القياسي مع النقطتين والأرقام السداسية العشرية.

يمكن حذف الأصفار البادئة في كل مجموعة، وتنضغط مجموعات الأصفار المتتالية إلى ::. كلاهما صالح ومتطابق:

example.com.    IN    AAAA    2001:0db8:0000:0000:0000:0000:0000:0001
example.com.    IN    AAAA    2001:db8::1

استخدم التنسيق المضغوط. إنه أسهل في القراءة وأقل عرضة للخطأ عند الكتابة.

الاستعلام عن سجلات AAAA#

استعلم عن سجلات AAAA بنفس الطريقة التي تستعلم بها عن سجلات A، فقط حدد النوع.

باستخدام dig:

dig AAAA example.com
dig AAAA @2001:4860:4860::8888 example.com

باستخدام nslookup:

nslookup -type=AAAA example.com
nslookup -type=AAAA example.com 2001:4860:4860::8888

باستخدام host:

host -t AAAA example.com

يمكنك أيضاً استخدام أداة البحث عن DNS للاستعلام عن سجلات A وAAAA في نفس الوقت ومقارنة النتائج.

سجلات AAAA مقابل A#

كلاهما يخدم نفس الغرض - ترجمة الأسماء إلى عناوين - لكنهما يختلفان في جوانب رئيسية:

الميزةسجل Aسجل AAAA
طول العنوان32 بت128 بت
تنسيق العنوانعشري منقط (192.0.2.1)سداسي عشري بنقطتين (2001:db8::1)
نوع السجل128
حجم الاستعلامأصغرأكبر (يؤثر على تجزئة UDP)
سلوك التخزين المؤقتTTL مستقلTTL مستقل

سجلات A وAAAA مستقلة تماماً. يمكن أن تحتوي على TTL مختلفة، أو تشير إلى خوادم مختلفة، أو توجد بدون الأخرى. هذه المرونة مفيدة ولكنها تخلق فرصاً لسوء التكوين.

اختبر قبل النشر

انشر سجل AAAA فقط إذا كانت خدمتك قابلة للوصول فعلاً عبر IPv6. نشر سجلات AAAA معطلة يسبب تأخيرات في الاتصال عندما يحاول العملاء IPv6 أولاً وينتظرون انتهاء المهلة قبل العودة إلى IPv4.

حل DNS المزدوج#

تعمل معظم الشبكات بمكدس مزدوج: IPv4 وIPv6 يعملان في نفس الوقت. عندما يبحث عميل عن اسم مضيف، يتلقى سجلات A وAAAA. ثم يقرر نظام التشغيل أيهما يستخدم.

Happy Eyeballs (RFC 8305)#

تطبق أنظمة التشغيل الحديثة Happy Eyeballs، وهي خوارزمية تجرب IPv4 وIPv6 لكنها تفضل IPv6 عندما يعمل. الخوارزمية:

  1. تستعلم DNS عن سجلات A وAAAA
  2. تبدأ الاتصال بعنوان IPv6 أولاً
  3. تنتظر 50-250 مللي ثانية (يعتمد على التطبيق)
  4. إذا لم يتصل IPv6 بعد، تبدأ اتصال IPv4 بالتوازي
  5. تستخدم أي اتصال يكتمل أولاً

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

ترتيب الحل#

يختلف الترتيب الذي يستعلم به العملاء عن السجلات ويحاولون الاتصالات حسب نظام التشغيل والتكوين.

معظم أنظمة Unix/Linux:

  • تستعلم عن A وAAAA في نفس الوقت أو AAAA أولاً
  • تفضل عناوين IPv6 إذا كانت موجودة
  • يتحكم بها /etc/gai.conf (تكوين getaddrinfo)

macOS:

  • يستعلم عن كلا نوعي السجلات بالتوازي
  • يطبق Happy Eyeballs بدقة
  • يفضل IPv6 بقوة عندما يكون متاحاً

Windows:

  • يستعلم عن كلا نوعي السجلات
  • يفضل IPv6 افتراضياً (قابل للتكوين عبر السجل)
  • يطبق Happy Eyeballs بدءاً من Windows 8

المتصفحات:

  • Chrome وFirefox يطبقان Happy Eyeballs الخاص بهما
  • لا تعتمد فقط على سلوك نظام التشغيل
  • قد تخزن نتائج الحل بشكل عدواني

متى يفوز IPv6 (أو يخسر)#

عادةً ما يفوز IPv6 بالسباق عندما:

  • اتصال IPv6 أصلي (غير نفقي)
  • توجيه IPv6 مباشر بدون قفزات إضافية
  • الوجهة متصلة جيداً عبر IPv6

يخسر IPv6 عندما:

  • يكون نفقياً (6to4، Teredo) مع زمن انتقال مضاف
  • يستغرق التوجيه مسارات أطول من IPv4
  • الخادم متصل بشكل سيئ عبر IPv6
  • مشاكل الجدار الناري أو middlebox تبطئ الاتصالات

أداء IPv6 في Facebook

وجد Facebook أن المستخدمين على اتصالات IPv6 الأصلية شهدوا تحميل صفحات أسرع بنسبة 10-15٪ مقارنة بـ IPv4. جاء تحسين الأداء من قفزات شبكة أقل، وعدم وجود NAT على مستوى المزود، وتوجيه أكثر مباشرة.

اختبار سلوك المكدس المزدوج#

فرض IPv4 أو IPv6 لاختبار السلوك:

# فرض IPv4
curl -4 https://example.com
 
# فرض IPv6
curl -6 https://example.com
 
# السماح لنظام التشغيل بالاختيار
curl https://example.com

قارن أوقات الاستجابة. إذا كان IPv6 أبطأ بشكل ملحوظ، تحقق من مشاكل التوجيه أو الاتصال قبل نشر سجلات AAAA على نطاق واسع.

DNS64 وNAT64#

يصنع DNS64 سجلات AAAA من سجلات A، مما يمكّن الشبكات التي تعمل فقط بـ IPv6 من الوصول إلى خدمات IPv4 فقط. يتزاوج مع NAT64، الذي يترجم الحزم بين IPv6 وIPv4.

كيف يعمل DNS64#

عندما يستعلم عميل IPv6 فقط عن اسم مضيف:

  1. يتلقى خادم DNS64 الاستعلام
  2. يتحقق من وجود سجل AAAA
  3. إذا كان AAAA موجوداً، يعيده بشكل طبيعي
  4. إذا كان سجل A فقط موجوداً، يصنع سجل AAAA باستخدام بادئة خاصة
  5. يتصل العميل بالعنوان IPv6 المصنوع
  6. بوابة NAT64 تترجم الاتصال إلى IPv4

البادئة المعروفة: 64:ff9b::/96#

البادئة الأكثر شيوعاً لـ DNS64 هي 64:ff9b::/96، المعرّفة في RFC 6052. آخر 32 بت من العنوان تضمّن عنوان IPv4.

مثال على التصنيع:

سجل A:      192.0.2.1
البادئة:     64:ff9b::/96
سجل AAAA:   64:ff9b::192.0.2.1
            أو 64:ff9b::c000:201 (بالنظام السداسي عشري)

تستخدم بعض الشبكات بادئات أخرى مثل 2001:db8::/96 أو نطاقات مخصصة. يجب تكوين البادئة بشكل متسق على كل من DNS64 وNAT64.

متى تحتاج DNS64/NAT64#

DNS64 ضروري لـ:

  • شبكات الهاتف المحمول التي تعمل فقط بـ IPv6 (شائع مع T-Mobile، AT&T)
  • مراكز البيانات التي تعمل فقط بـ IPv6 للوصول إلى خدمات IPv4 القديمة
  • اختبار سلوك العميل الذي يعمل فقط بـ IPv6

لا تحتاج DNS64 إذا:

  • كانت شبكتك مكدس مزدوج
  • جميع الخدمات التي تصل إليها تحتوي على IPv6 أصلي
  • يمكنك فرض IPv6 على جميع خدمات الخلفية

القيود والمشاكل#

يكسر DNS64 عدة أشياء:

فشل التحقق من DNSSEC - سجل AAAA المصنوع لا يطابق المنطقة الموقعة. يجب على خوادم DNS64 إزالة توقيعات DNSSEC، مما يقلل من الأمان.

تنكسر التطبيقات التي تضمّن عناوين IP - إذا تلقى تطبيق عنوان IPv4 في JSON أو XML أو تنسيقات بيانات أخرى، فلن يترجمه DNS64. يحاول التطبيق الاتصال بعنوان IPv4 من مكدس يعمل فقط بـ IPv6 ويفشل.

موازنات التحميل وCDN تتشوش - يجعل DNS64 جميع العملاء يبدون وكأنهم يأتون من عنوان بوابة NAT64. ينكسر تحديد الموقع الجغرافي، وتحديد المعدل، وتحديد العميل.

تفشل الإحالات وإعادة التوجيه - إذا تضمنت استجابة DNS عناوين IPv4 في أقسام إضافية (مثل سجلات glue لـ NS)، لا يمكن للعملاء الوصول إليها.

اختبر بدون DNS64

صمم الخدمات للعمل بشكل أصلي على IPv6. DNS64/NAT64 هي أداة انتقالية، وليست حلاً دائماً. تضيف زمن انتقال وتعقيداً وتكسر الحالات الطرفية.

DNS العكسي (سجلات PTR)#

يربط DNS العكسي عنوان IPv6 بالعودة إلى اسم مضيف. إنه ليس إلزامياً للاتصال لكنه مطلوب لخوادم البريد ومفيد لأدوات التسجيل والأمان.

منطقة ip6.arpa#

يستخدم DNS العكسي لـ IPv6 نطاق ip6.arpa. كل نيبل (4 بتات، أو رقم سداسي عشري واحد) من العنوان يصبح تسمية في اسم النطاق، مكتوباً بترتيب عكسي.

تحويل العناوين إلى تنسيق PTR#

خذ عنوان IPv6 الكامل غير المضغوط، اعكسه نيبل بنيبل، وأضف ip6.arpa.

مثال: 2001:db8::1

الخطوة 1: وسّع إلى الشكل الكامل:

2001:0db8:0000:0000:0000:0000:0000:0001

الخطوة 2: اكتب جميع النيبلات:

2 0 0 1 0 d b 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

الخطوة 3: اعكس الترتيب:

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 b d 0 1 0 0 2

الخطوة 4: افصل بنقاط وأضف ip6.arpa:

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa

هذا هو اسم سجل PTR. يشير إلى اسم مضيفك.

الاستعلام عن DNS العكسي#

باستخدام dig مع التحويل التلقائي:

dig -x 2001:db8::1

الاستعلام عن سجل PTR مباشرة:

dig PTR 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa

باستخدام host:

host 2001:db8::1

تفويض DNS العكسي#

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

للتخصيصات الأصغر (مثل /64)، يتعامل بعض مزودي خدمة الإنترنت مع سجلات PTR الفردية لك. اتصل بهم مع العنوان واسم المضيف.

DNS العكسي لخوادم البريد

تتحقق خوادم البريد من DNS العكسي لتقليل البريد العشوائي. إذا لم يكن لعنوان IPv6 لخادم البريد الخاص بك سجل PTR، أو إذا لم يطابق البحث الأمامي، فسترفض العديد من أنظمة البريد رسائلك أو تسجلها كبريد عشوائي.

الأخطاء الشائعة في DNS مع IPv6#

نشر AAAA بدون IPv6 يعمل#

هذا هو الخطأ رقم واحد. تمكّن IPv6 على خادم، تنشئ سجل AAAA، وتفترض أنه يعمل. لكن إذا حجب الجدار الناري IPv6، أو كان التوجيه معطلاً، أو لم يكن الخادم يستمع فعلياً على IPv6، تنتهي مهلة العملاء.

العرض: تحميل موقع ويب بطيء، خاصة على شبكات الهاتف المحمول التي تفضل IPv6.

الإصلاح: اختبر الاتصال من شبكات IPv6 خارجية متعددة قبل نشر سجل AAAA. استخدم أداة Ping للتحقق من إمكانية الوصول.

نسيان DNS العكسي#

يعمل DNS الأمامي بشكل جيد، لكنك تتخطى DNS العكسي. هذا يكسر تسليم البريد، ويربك تحليل السجل، ويبدو غير محترف.

العرض: رفض البريد، أخطاء "فشل البحث العكسي عن DNS".

الإصلاح: أنشئ سجلات PTR لجميع عناوين الخادم. تحقق باستخدام dig -x من مواقع متعددة.

عدم تطابق TTL بين A وAAAA#

سجل A الخاص بك لديه TTL 3600 ثانية، لكن AAAA لديه 300. عندما تحدّث DNS، يحصل العملاء على نتائج غير متسقة لساعات.

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

الإصلاح: طابق TTL لسجلات A وAAAA. يجب أن تكون متطابقة. خفض كلاهما قبل إجراء التغييرات، ثم ارفعهما مرة أخرى بعد ذلك.

الجدار الناري يحجب DNS عبر IPv6#

خادم DNS الخاص بك لديه عنوان IPv6 وسجل AAAA، لكن الجدار الناري يحجب UDP وTCP منفذ 53 عبر IPv6. لا يمكن للعملاء الاستعلام عنه.

العرض: تفشل استعلامات DNS من عملاء أو شبكات تعمل فقط بـ IPv6.

الإصلاح: اسمح بـ UDP وTCP منفذ 53 لكل من IPv4 وIPv6. اختبر من مضيف يعمل فقط بـ IPv6. تذكر أن DNS عبر TCP إلزامي، وليس اختيارياً.

تكوين مكدس مزدوج غير مكتمل#

تكوّن سجلات AAAA لموقع الويب الخاص بك ولكن ليس لـ CDN، أو خوادم البريد، أو نقاط نهاية API. يحصل المستخدمون على نتائج مختلطة.

العرض: الموقع الرئيسي يعمل عبر IPv6، لكن المحتوى المدمج، أو مكالمات API، أو البريد يعود إلى IPv4، مما يفقد فوائد الأداء.

الإصلاح: مكّن IPv6 لجميع الخدمات في السلسلة، وليس فقط الواجهة الأمامية. اختبر سير العمل الكامل من عملاء يعملون فقط بـ IPv6.

عناوين IPv4 مشفرة في التكوين#

يحل DNS الخاص بك بشكل جيد، لكن ملفات تكوين التطبيق تحتوي على عناوين IPv4 مشفرة. تنكسر الخدمات عندما يحاول عملاء IPv6 فقط الاتصال.

العرض: فشل التطبيق مع أخطاء اتصال على شبكات تعمل فقط بـ IPv6.

الإصلاح: استخدم أسماء المضيفين، وليس عناوين IP، في ملفات التكوين. دع DNS يحل إلى عائلة العناوين المناسبة.

أفضل الممارسات#

اختبر بدقة قبل النشر#

قبل إضافة سجلات AAAA إلى DNS الإنتاج:

  1. تحقق من أن الخدمة تستمع على IPv6: netstat -an | grep :80 (أو منفذك)
  2. اختبر من عنوان IPv6 خارجي: curl -6 https://[2001:db8::1]/
  3. تحقق من أن قواعد الجدار الناري تسمح بحركة مرور IPv6
  4. تحقق من صحة التوجيه باستخدام traceroute6
  5. اختبر من شبكات IPv6 متعددة (هاتف محمول، نطاق عريض، مركز بيانات)

لا تفترض أنه يعمل لأن نظام التشغيل لديه عنوان IPv6.

طابق TTL لسجلات A وAAAA#

عيّن TTL متطابقة. هذا يحافظ على سلوك التخزين المؤقت متسقاً ويبسط تحديثات DNS.

example.com.    3600    IN    A       192.0.2.1
example.com.    3600    IN    AAAA    2001:db8::1

إذا كنت بحاجة إلى تغيير العناوين، خفض TTL قبل 24-48 ساعة من التغيير، أجرِ التحديث، ثم ارفعه مرة أخرى.

كوّن DNS العكسي#

أنشئ سجلات PTR لجميع عناوين IPv6 القابلة للتوجيه بشكل عام. إنه مطلوب لخوادم البريد ومفيد لكل شيء آخر.

اعمل مع مزود خدمة الإنترنت أو RIR لتفويض المنطقة العكسية. حافظ على سجلات PTR متزامنة مع DNS الأمامي - يجب أن تتطابق.

راقب كلا البروتوكولين#

تتبع حجم استعلام DNS، وأوقات الاستجابة، ومعدلات الخطأ بشكل منفصل لسجلات A وAAAA. راقب الحل عبر كل من نقل IPv4 وIPv6.

أنشئ تنبيهات لـ:

  • فشل استعلامات AAAA عندما تنجح استعلامات A
  • اختلافات في وقت الاستجابة بين IPv4 وIPv6
  • انخفاضات مفاجئة في حجم استعلام IPv6

المراقبة المنفصلة تلتقط المشاكل قبل أن يشتكي المستخدمون.

استخدم خوادم DNS قادرة على IPv6#

يجب أن تجيب خوادم DNS الخاصة بك على الاستعلامات عبر كل من IPv4 وIPv6. كوّن كلا عائلتي العناوين حتى لو لم تكن شبكتك مكدس مزدوج بالكامل بعد.

اختبر من عملاء يعملون فقط بـ IPv6. عدد مفاجئ من خوادم DNS لديها سجلات AAAA لكنها لا تقبل فعلياً الاستعلامات عبر IPv6.

طبّق DNSSEC بعناية#

يعمل DNSSEC مع IPv6، لكن DNS64 يكسره. إذا كنت تستخدم DNS64 في شبكتك، لا يمكنك التحقق من DNSSEC على السجلات المصنوعة.

لعمليات النشر في الإنتاج، صمم لمكدس مزدوج أصلي وتجنب DNS64 حيثما أمكن.

مقالات ذات صلة#

اختبر تكوين DNS الخاص بك

استخدم أداة البحث عن DNS للاستعلام عن سجلات A وAAAA وPTR. تحقق من أن تكوين المكدس المزدوج الخاص بك صحيح قبل جعله مباشراً.

الأسئلة الشائعة#

هل أحتاج إلى سجلات A وAAAA لخدمات المكدس المزدوج؟

نعم. انشر كلا نوعي السجلات لخدمات المكدس المزدوج. العملاء الذين يدعمون IPv6 سيستخدمون AAAA، بينما عملاء IPv4 فقط يستخدمون A. لا تنشر AAAA إلا إذا كانت خدمتك تعمل فعلياً عبر IPv6 - سجلات AAAA المعطلة تسبب تأخيرات انتهاء المهلة.

هل يمكنني استخدام خوادم مختلفة لـ IPv4 وIPv6؟

نعم. سجلات A وAAAA مستقلة ويمكن أن تشير إلى خوادم مختلفة. هذا مفيد لنشر IPv6 التدريجي أو عندما تريد توجيه حركة المرور بشكل مختلف حسب البروتوكول. فقط تأكد من أن كلا الخادمين يقدمان محتوى ووظائف متطابقة.

لماذا موقع الويب الخاص بي بطيء على الهاتف المحمول لكنه سريع على WiFi؟

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

هل أحتاج DNS عكسي لكل شيء؟

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

كيف أختبر ما إذا كان DNS64 يعمل؟

استعلم عن اسم مضيف IPv4 فقط من عميل يعمل فقط بـ IPv6. إذا كان DNS64 يعمل، ستتلقى سجل AAAA مصنوعاً بالبادئة المكوّنة (عادة 64:ff9b::/96). استخدم dig AAAA ipv4only.arpa كاختبار - إنه نطاق IPv4 فقط مصمم لاختبار DNS64.