مستندات النفق المنقسم تحتاج إلى قاعدة DNS بجانب كل مسار
المسار يقرر حسب العنوان، والمحلل يقرر حسب الاسم. وثّق المحددين لكل تدفق، ولكل منهما اختبار واحد، وإلا فشلت الملاحظة عندما يتغير DNS.
ملاحظة النفق المنقسم التي تقول "حركة المكتب تمر عبر VPN" وثّقت قرارًا واحدًا وأشارت ضمنًا إلى ثلاثة قرارات أخرى. على طبقة الحزم يختار جدول التوجيه واجهة حسب عنوان الوجهة؛ وعلى طبقة الأسماء يختار المحلل خادمًا حسب الاستعلام، ويُتخذ القراران بشكل مستقل. ولهذا السبب يمكن أن تنتج بادئة موثّقة بشكل صحيح جهازًا يحل اسمًا داخليًا إلى عنوان عام، أو لا يحل شيئًا على الإطلاق بينما يبدو المسار مثاليًا.
محددان، ومحاولة اتصال واحدة
عندما يتصل تطبيق بـ files.corp.example، يحدث استعلامان قبل أن توجد حزمة. يقرر المحلل أي خادم يتلقى الاستعلام، باستخدام نطاقات البحث أو نطاقات التوجيه لكل ارتباط أو قاعدة ملف تعريف صريحة. ثم يقرر جدول التوجيه أين يذهب العنوان الناتج، باستخدام أطول تطابق للبادئة مقابل الوجهة.
لا شيء يربط هذين القرارين. يمكن لمنطقة خاصة أن تجيب بـ 10.20.4.11 بينما يرسل جدول التوجيه 10.20.0.0/16 إلى النفق، ويعمل الاتصال. اقلب أيًا منهما ويفشل بطريقة تبدو كالآخر: سياسة DNS صحيحة مع مسار مفقود تعطي اسمًا محلولًا ومهلة، بينما مسار صحيح مع محلل عام يعطي عنوانًا يُوجَّه بنظافة إلى المكان الخطأ.
يجعل DNS ذو الأفق المنقسم هذا أكثر حدة. يمكن للاسم نفسه أن يعيد عنوانًا خاصًا من المحلل الداخلي وعنوانًا عامًا من المحلل المواجه للإنترنت، لذا لا تستطيع ملاحظة تسجل البادئة فقط أن تتوقع أي عنوان سيستخدمه العميل فعليًا. اكتب مسار المحلل وإلا فالعنوان تخمين.
ما تغفله ملاحظة المسار فقط
سجل المسار فقط غير صالح للفشل الأكثر شيوعًا في النفق المنقسم: الأسماء. يبلغ المستخدم أن الشبكة الداخلية لا تُحمَّل، والنفق قائم، والبادئة موجودة. من يتولى التذكرة ليس لديه سجل بالمحلل الذي كان ينبغي أن يجيب، ولا طريقة لتمييز لاحقة بحث خاطئة عن خادم محجوب، ولا خط أساس للمقارنة.
الإغفال الثاني هو قائمة الاستثناءات. يُعرَّف تصميم النفق المنقسم بقدر ما يبقى خارج النفق بقدر ما يدخل إليه، والنطاقات المستثناة هي عادة أول ما ينكسر، لأن مسارًا محليًا أكثر تحديدًا أو مرشحًا على جانب العميل يمكنه تجاوز النية دون لمس ملف التعريف.
الثالث هو الجانب البعيد من النفق. مسار العميل يضع الحزمة على السلك فقط؛ ولا يزال على البوابة أن تمررها وأن يكون لها مسار عودة. دليل strongSwan لإعادة التمرير تذكير بأن قواعد إعادة التمرير والجدار الناري على البوابة جزء من الميزة، لا جزء من السباكة التي يمكنك افتراضها.
الحقول التي تجعل الملاحظة قابلة للتنفيذ
صف واحد لكل تدفق، والتدفق هو وجهة زائد اسم زائد مالك. هذه هي الحقول التي تصمد أمام حادث حقيقي:
| Field | Why it has to be written down |
|---|---|
| Destination prefix and address family | The route is per family; an IPv4 note says nothing about a AAAA answer |
| Selected tunnel or direct path | Names the decision, not the symptom |
| Private namespace and resolver | Which domain, which server, which search suffix |
| Public name path | Confirms public names do not accidentally use the private resolver |
| Where the rule lives | Client profile, server push, OS policy or management tool |
| Owner and review date | Namespaces change owner more often than routes change |
صف "أين يعيش" هو الذي يتخطاه الناس. بادئة يدفعها الخادم، ومسار يضيفه ملف تعريف العميل، ومسار يُكتب في صدفة، تختلف في من يمكنه تغييرها وفي ما إذا كانت تصمد بعد إعادة الاتصال. بدون ذلك الحقل، لا يستطيع المهندس التالي معرفة أي الثلاثة ينظر إليه.
اختبار واحد لكل قاعدة، لا واحد لكل نفق
كل صف يحتاج إلى فحصين غير ضارين: واحد يمارس المسار وآخر يمارس الاسم. بالنسبة للمسار، اطلب شيئًا يجب أن يعبر النفق وأكّد المسار بدلًا من الوصول، على سبيل المثال tracert -d 10.20.4.11 على Windows أو ip route get 10.20.4.11 على Linux. وبالنسبة للاسم، استعلم عن الاسم الخاص وسجّل أي خادم أجاب، باستخدام resolvectl query files.corp.example أو dig files.corp.example مقابل المحلل الذي تسميه الملاحظة.
أضف توقعًا سلبيًا أيضًا: ما ينبغي أن يحدث عندما يكون النفق معطلًا. قد لا يملك تطبيق مستثنى على جهاز Android أو iOS مع تمكين الحجب بدون VPN أي اتصال على الإطلاق، ويمكن لعميل سطح مكتب أن يترك التطبيق نفسه يعمل بينما يعيد النفق الاتصال. تسجيل الإجابة المقصودة يحول "VPN كسر تطبيقي" إلى عبارة قابلة للفحص.
احتفظ بالسجل مع التكوين
خزّن الملاحظة بجوار ملف التعريف الذي تصفه وأصدرها بإصدار مع ذلك الملف. مستند في ويكي لا يحدّثه أحد هو إشاعة؛ وجدول في المستودع نفسه الذي يحوي المسارات المدفوعة وسياسة المحلل يمكن مراجعته في التغيير نفسه.
عندما ينكسر شيء، قارن المسار المطبّق والمحلل الفعّال بالسجل قبل إضافة استثناء آخر. سببان من الأسباب الثلاثة الشائعة — قاعدة نطاق أسماء قديمة وعملية مساعدة خارج سياسة التطبيق — يبدوان تمامًا كعطل VPN ويصيران غير مرئيين إذا كانت الملاحظة تسرد البادئات فقط.
قبل أن تعتبر الملاحظة منتهية، تأكد من أنها تجيب كتابيًا عن هذه: أي بادئة، ولأي عائلة عناوين؛ أي نطاق أسماء خاص، وبأي محلل يُجاب عنه؛ أي أسماء تبقى عامة عمدًا؛ أين تُكوَّن كل قاعدة ومن يملكها؛ والأمر الواحد الذي يثبت المسار والأمر الذي يثبت الاسم. إذا غاب أي من ذلك، فسيُشخَّص الحادث التالي من الصفر.