من يطبّق فعليًا إعدادات DNS الخاصة بـ OpenConnect على Windows؟
يحتفظ Windows بحالة المحلّل في ثلاثة مواضع. اعثر على المساعد الذي يملك الاتصال قبل أن تعدّل DNS المحوّل يدويًا أو تضيف قاعدة مساحة أسماء.
رفع النفق ليس مثل تثبيت قيم DNS الخاصة به. يتفاوض OpenConnect، ويطبّق مساعد على جانب Windows. الفجوة بين هاتين الخطوتين تفسّر معظم إخفاقات الأسماء الخاصة على هذا العميل، والمساعد لا يكون صفحة إعدادات VPN في Windows إلا نادرًا.
افصل ما قدّمته البوابة عمّا ثبّته Windows
يسلّم العميل بيانات الاتصال إلى واجهة سكربت، ونسختا Unix وWindows برنامجان منفصلان. على Windows، يكون التنفيذ عادةً مساعد JavaScript يقرأ متغيّرات مثل خادم DNS الداخلي والنطاق الداخلي قبل أن يلمس أي محوّل. لا شيء داخل النفق نفسه يكتب حالة المحلّل.
هذا الانفصال مهم لأن القيمة قد توجد في التفاوض ولا تصل أبدًا إلى المحوّل. المساعد المفقود أو الذي يفشل في منتصف الطريق أو الذي يكون نسخة قديمة مضمّنة داخل غلاف GUI يترك Windows كما كان تمامًا. تبدو الجلسة متصلة، ولا يزال الاسم الخاص يُحلّ عبر المزوّد المحلي، ولا شيء في نافذة العميل يشير إلى الفرق. قراءة مخرجات المساعد نفسه هي الطريقة الموثوقة الوحيدة لمعرفة أي مرحلة انكسرت.
| Stage | What exists there | Where you see it |
|---|---|---|
| Negotiated | Internal DNS address and domain pushed by the gateway | Client log or helper input |
| Installed | Adapter DNS entry, connection suffix, or namespace rule | Adapter and policy queries |
| Selected | Resolver Windows uses for one specific query | The failing application |
قد يشحن غلاف GUI نسخته الخاصة من العميل والمساعد، لذا فإن وجود openconnect.exe ثانٍ في مكان آخر على القرص لا يثبت شيئًا. اعثر على الملف التنفيذي الذي بدأ الجلسة قبل أن تحكم على إعداداته.
اقرأ حالة المحلّل دون تغييرها
ثلاثة استعلامات للقراءة فقط تغطي الالتباس المعتاد، وكل منها يجيب عن سؤال مختلف:
Get-DnsClientServerAddress -AddressFamily IPv4
Get-DnsClient | Select-Object InterfaceAlias, ConnectionSpecificSuffix
Get-DnsClientNrptPolicy -Effective
الخادم على مستوى المحوّل هو ما يعنيه معظم الناس بـ DNS الخاص بالـ VPN. تحدد اللاحقة الخاصة بالاتصال ما إذا كان الاسم القصير يُوسّع أصلًا. تنطبق قائمة سياسة مساحة الأسماء على الأسماء المطابقة بغض النظر عن ترتيب المحوّلات، والنتيجة الفارغة هناك ليست عيبًا عندما لا يكون المساعد ينوي إنشاء واحدة أصلًا. قراءة الثلاثة قبل التعديل هي ما يمنع إصلاحًا يكتفي بنقل العرَض إلى مكان آخر.
ابدأ بالاسم المؤهّل بالكامل. إذا حُلّ FQDN ولم يُحلّ الاسم القصير، فإن اللاحقة أو قائمة البحث هي الفجوة وليس عنوان الخادم.
استعلم من الخادم المقصود مباشرةً كخطوة ثانية، بأي أداة محلّل مثبّتة بالفعل. الإجابة المباشرة تثبت أن الخادم قابل للوصول وموثوق للمنطقة. ولا تثبت شيئًا عن الخادم الذي يسأله التطبيق افتراضيًا.
سمِّ المكوّن الذي يملك الاتصال
ترتيبان شائعان. العميل الذي يبدأ من طرفية يمرّر مسار سكربته صراحةً، فيكون المالك ظاهرًا في الأمر الذي شُغّل. التطبيق المحزَّم يبدأ العميل نيابةً عنك ويحتفظ بالمساعد داخل مجلده، ما يعني أن المورّد يقرّر متى يتغيّر.
قارن إصدارات المساعد بين عمليات التثبيت قبل استبدال أي شيء. تشغيل مساعد أُحضر من مرآة بصلاحيات مرتفعة لأن اسم الملف يبدو مألوفًا يحوّل فجوة DNS إلى حادث أمني.
بمجرد معرفة المالك، يصبح هدف الإصلاح واضحًا: مسار سكربت مدعوم في المشغّل، أو تحديث حزمة، أو ملف تعريف مصحَّح على البوابة. لا شيء من ذلك يتطلب تعديل خصائص المحوّل يدويًا.
أصلح المالك، لا المحوّل
غالبًا ما يصمد DNS المضبوط يدويًا على المحوّل بعد قطع الاتصال، ولهذا يبدو أنه يعمل ثم يسبب مشكلة على الشبكة التالية. المحلّل العام المثبَّت على كل واجهة يخفي مشكلة مساحة الأسماء الخاصة بدلًا من حلها. عندما لم يتلقَّ المساعد قيمة DNS أصلًا، يكون ملف تعريف البوابة هو مكان البحث. وعندما تلقّاها وما زال المحوّل يعرض الخادم القديم، يكون المساعد قد فشل أثناء الاتصال وعادةً يسجّل سجل العميل ذلك قرب أسطر إعداد النفق.
أعد بناء الحالة عبر المسار المدعوم، ثم تحقّق من دورة كاملة: اتصل، وحلّ FQDN الخاص، وافتح الخدمة، واقطع الاتصال، وتأكد من أن المحوّل عاد بخوادمه السابقة.
افحص التطبيق الذي يفشل فعليًا
المتصفح الذي لديه إعداد DNS مشفّر خاص به يتجاهل كل ما سبق ويظل يجيب من محلّل عام. والتطبيق الذي يحتفظ بإجابة سلبية مخزّنة من قبل قيام النفق يتصرف بالطريقة نفسها. قارنه باستعلام نظام عادي على الجهاز نفسه قبل تغيير عناوين المحلّل مرة أخرى.
إذا كان استعلام النظام صحيحًا والتطبيق خاطئًا، فإن العطل المتبقي يقع داخل إعداد DNS لذلك التطبيق، وليس في مسار VPN.