خادم الحل في مكتبك يجيب عن كل شيء عدا نطاق مؤسسي واحد، وخادم DNS المؤسسي الذي يعرفه يقع خلف VPN. يستطيع BIND تسليم تلك المنطقة الواحدة إلى المنبع بثلاث طرق مختلفة، وكل منها يفشل بطريقة مختلفة. التوجيه الشرطي هو أصغر التزام، ومنطقة stub تحتفظ ببيانات التفويض، ومنطقة secondary تحتفظ بنسخة كاملة. اختر بحسب ما يسمح به المنبع وبحسب ما تريد أن يحتفظ به خادم الحل، لا بحسب المقتطف الذي صادفته أولًا.

ثلاثة ترتيبات لنطاق واحد

TypeWhat your resolver keepsUpstream mustFails when
forwarda forwarder listanswer queries from your source addressupstream is down and forward only is set
stubthe zone's NS records and addressesanswer NS queries for the zonedelegation data goes stale after an NS change
secondarya full copy of the zonepermit AXFR or IXFR from your sourcetransfer is blocked by ACL or firewall

التوجيه الشرطي: أصغر التزام

افترض خادم حل في المكتب على 192.168.10.53 وخادمًا مؤسسيًا على 10.40.0.53 يمكن الوصول إليه عبر نفق معتمد. التعريف ثلاثة أسطر، والسطر المهم هو forward only، لأنه يغيّر سلوك الفشل لا المسار.

zone "corp.example" {
    type forward;
    forward only;
    forwarders { 10.40.0.53; };
};

مع forward only، ينتج عن المنبع غير القابل للوصول SERVFAIL لهذه المنطقة بدلًا من الرجوع إلى الحل التكراري. هذا هو ما تريده عادة لنطاق خاص، لأن الرجوع سيرسل الأسماء الخاصة إلى خادم حل عام ويعيد إجابة غير مفيدة من الإنترنت. مرجع BIND يوثّق كلتا السياستين، والفرق أهم مما يوحي به المقتطف. ادمج المنطقة في التكوين القائم بدلًا من استبدال منطقة موجودة بالاسم نفسه.

منطقة stub أم secondary: عندما يهم التفويض

تسأل منطقة stub الخادم المؤسسي عن سجلات NS للمنطقة ثم تستعلم من الخوادم المرجعية مباشرة. اخترها عندما تكون منطقة المنبع كبيرة أو مقسّمة وتريد أن يتبع خادم الحل التفويض بدلًا من تثبيت كل شيء على عنوان واحد. الثمن هو الاعتماد على حداثة بيانات NS، وعلى إمكانية الوصول إلى كل خادم أسماء مدرج من عنوان المصدر الخاص بخادم الحل.

zone "corp.example" {
    type stub;
    masters { 10.40.0.53; };
};

zone "corp.example" {
    type secondary;
    primaries { 10.40.0.53; };
    file "corp.example.db";
};

يجيب secondary من بيانات محلية وينجو من انقطاع المنبع، وهذا سبب قبول اعتماد النقل. ويعني أيضًا أن خادم الحل يحتفظ الآن بنسخة من منطقة لا يملكها، فيصبح مسار الملف وقائمة ACL للنقل على الخادم الأساسي ومؤقتات التحديث جزءًا من سطحك التشغيلي.

الفحص الذي يحسم الاختيار

يولّد BIND استعلامه الصادر بنفسه، فالسؤال ليس هل يستطيع حاسوب محمول الوصول إلى 10.40.0.53، بل هل يستطيع مضيف خادم الحل ذلك، من عنوان المصدر الذي سيراه الخادم المؤسسي. اسأل النواة، ثم اسأل الخادم، بهذا الترتيب.

ip route get 10.40.0.53
named-checkconf
rndc reload corp.example
dig @10.40.0.53 corp.example NS +norecurse
dig @192.168.10.53 portal.corp.example

اسمح بـ UDP و TCP على المسار: الاستجابة المقتطعة تفرض TCP، والسياسة التي تسمح بـ UDP فقط تنتج أعطالًا متقطعة تشبه فقدان الحزم. يحتاج الجانب المؤسسي إلى قاعدة قبول لعنوان المصدر الخاص بخادم الحل وإلى مسار عودة إليه؛ وقد يكون ذلك المصدر هو العنوان الموجّه لخادم الحل أو عنوانًا مترجمًا صراحة، ونادرًا ما يكون عنوان مجموعة عملاء. إذا فشل استعلام NS فلن تعمل منطقة stub مهما كان سلوك منطقة forward.

تحقّق من الإجابة، لا من النفق

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

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

اكتب أي الأنواع الثلاثة اخترت ولماذا. من سيرى المنطقة تفشل بعدك سيحتاج تلك الجملة أكثر من ملف التكوين.

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