يقوم جهاز Mac بتنزيل نص سياسة ثم يسأل ذلك النص أي وسيط ينبغي أن يستخدمه الطلب، بينما يقرر النفق فقط كيف يُبلَغ القفزة المختارة. ينتهي الجوابان عند المقبس نفسه، لذا يبدو الطلب الذي يفشل بعد نجاحهما كعطل واحد مع أنه عطلان. فصل التنزيل عن الاختيار، والاختيار عن المسار، هو معظم العمل في هذه التذاكر. الترتيب أدناه يتبع ما يفعله macOS فعليًا، مع الفحوص التي تُظهر كل مرحلة.

أين يفترق عنوان PAC عن الوكيل

عنوان مثل https://config.corp.example/proxy.pac يسمّي مستندًا لتنزيله، وذلك المستند يسمّي خادمًا لإرسال الحركة عبره. لصق عنوان URL في حقل مضيف الوكيل يطلب من العميل فتح اتصال وكيل بخادم ملفات لا يستمع لاتصال كهذا أبدًا. داخل الملف دالة يستدعيها العميل مع كل طلب، وقيمتها المرجعة هي القفزة التالية لذلك الوجهة الواحدة. هذا التوسط يفسّر لماذا يمكن أن يختلف سلوك جهازين على خدمة شبكة واحدة مع أن كليهما يحمل عنوان URL الصحيح. كما يفسّر لماذا يسري تغيير السياسة دون أن يلمس أحد الوكيل نفسه.

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

يجب جلب النص قبل أن يقرر أي شيء

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

نفّذ الفحوص الثلاثة أدناه بالترتيب وتوقف عند أول فشل، لأن المراحل لا تشترك في سبب. معًا تُظهر هل السياسة مُهيأة، وهل يمكن الوصول إليها، وماذا تُرجع.

scutil --proxy
networksetup -getautoproxyurl "Wi-Fi"
curl -sS -o /dev/null -w "%{http_code}\n" https://config.corp.example/proxy.pac

الأمر الأول يطبع قاموس الوكيل للخدمة النشطة، بما في ذلك أي عنوان URL للتكوين التلقائي يحتفظ به النظام. الثاني يبلّغ عن عنوان URL المرتبط بخدمة واحدة مسمّاة، وهذا يهم على حاسوب محمول يتنقل بين Wi-Fi وEthernet. الثالث يجلب الملف دون عرضه، فيبقى الخطأ 404 والمهلة وفشل المحلّل قابلة للتمييز. وإذا أعاد ذلك الأمر الأخير النص بينما تستمر التطبيقات في الفشل، فقد تجاوزت المشكلة مرحلة الجلب.

ما الذي يتجاوزه جواب DIRECT فعليًا

يمنح مواصفات PAC العميل مفردات صغيرة، و DIRECT كلمة واحدة منها. تقول الكلمة للعميل أن يتجاوز الوكيل لذلك الطلب ولا تقول شيئًا عن الواجهة التي سيستخدمها المقبس بعد ذلك. المقبس المباشر على نفق كامل يخرج مع ذلك عبر VPN ويُظهر عنوان خروج النفق للوجهة.

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

ثلاثة أعطال تظهر كصفحة خطأ واحدة

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

curl -v --max-time 8 http://proxy.corp.example:8080/
curl -v --max-time 8 https://intranet.corp.example/

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

ما الذي تسلّمه مع التذكرة

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

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

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