المقدمة
يصف هذا المستند إستخدام تطبيقات VPN المبنية على نظام Windows الأساسي العالمي (UWP) من Microsoft. تظهر هذه التطبيقات بشكل نموذجي كتطبيقات في واجهة المستخدم الرسومية (GUI) عبر شبكات المترو/الحديثة الخاصة بنظام التشغيل Windows 8 أو إصدار أحدث. لا تستخدم تطبيقات سطح المكتب وبرامج نمط Windows التقليدية بروتوكول UWP ولا تتأثر.
إذا كنت تواجه مشكلات مع شبكة Windows VPN غير الخاصة بنمط التطبيق أو دائما على شبكة VPN، فراجع ملاحظتنا على شبكة Windows VPN في Umbrella Roaming Client: دليل التوافق للبرامج وشبكات VPN .
لا ينتج عن الوحدة النمطية تجوال AnyConnect Umbrella نفس مشكلة قابلية التشغيل البيني.
التأثير
عندما يكون العميل المتجول نشطا، يتلقى مستخدمو تطبيق UWP VPN رسالة "لا يعرف هذا المضيف" أو رسالة خطأ مماثلة عند محاولة بدء جلسة VPN. وهذا يمنع المستخدم من الاتصال بنجاح بشبكة VPN. لا يظهر هذا الخطأ إذا كان العميل المتجول قد تم إيقافه أو إذا كان إصدار سطح المكتب من عميل VPN قد تم إستخدامه.
على سبيل المثال، هذه لا تعمل:
- تطبيق Pulse الآمن + عميل التجوال
- SonicWall MobileConnect + عميل متجول
بالنسبة لهذه العناصر، يعمل الاتصال بنفس الطرف الرئيسي للشبكة الخاصة الظاهرية (VPN):
- تطبيق Pulse Secure Desktop + عميل تجوال
- تطبيق SonicWall NetExtender أو تطبيق SonicWall Desktop + عميل متجول
- تطبيق Pulse Secure + وحدة التجوال AnyConnect Umbrella*
- SonicWall MobileConnect + وحدة AnyConnect Umbrella Roaming Module*
*لا تقوم وحدة AnyConnect Umbrella بتعيين 127.0.0.1 (واجهة أخرى) كإعداد DNS، ولكنها تقوم بدلا من ذلك بإعادة توجيه DNS إلى 127.0.0.1 باستخدام برنامج تشغيل kernel. لا تعلم تطبيقات UWP أنها تستخدم محول مختلف ل DNS ولا تتأثر في هذا الوقت.
سبب جذري
أنشأت Microsoft، عن طريق التصميم، تطبيقات "حديثة" في نظام التشغيل Windows 8+ لتحصل على مساحة أكبر من الحماية. ينطبق أحد هذه القيود على تطبيقات الشبكات الخاصة الظاهرية (VPN). تم تقييد شبكات VPN المبنية على بروتوكول UWP (التطبيقات) لاستخدام الواجهة التي تقوم بإنشاء الاستعلام. بما أن عميل Umbrella المتجول يستمع إلى 127.0.0.1 - واجهة مختلفة l0 - وبالتالي، لن يصل الاستعلام إلى العميل المتجول (أو أي إعادة توجيه DNS أخرى يتم تشغيلها على 127.0.0.1).
يسمح الاستدعاء التالي بتقييد إنشاء مأخذ التوصيل بواجهة واحدة فقط. هذه هي حالة تطبيقات UWP VPN المعروفة التي تقيد DNS بالواجهة الخاصة بها:
ConnectAsync(HostName، سلسلة، SocketProtectionLevel، مهايئ شبكة)
"تقتصر آلية تحليل الاسم التي يستخدمها الأسلوب ConnectAsync(Hostname، و String، و SocketProtectionLevel، و NetworkAdapter) على الواجهة المحددة لمساحة اسم نظام اسم المجال (DNS)." https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket
من المعتقد أن واجهة برمجة تطبيقات Windows VPN تستخدم هذه الآلية أو آلية اتصال مماثلة ينتج عنها شبكات VPN على نمط UWP "app" لعدم العمل مع العميل المتجول نظرا لأنه يستخدم 127.0.0.1 ل DNS. ونتيجة لذلك، تفشل إتصالات VPN حيث يتم إرسال DNS إلى 127.0.0.1؛ ومع ذلك، ونظرا لقيود المكالمة، لا يتم تلقيها أبدا أو الرد عليها من قبل العميل المتجول. ونتيجة لذلك، يفشل اتصال VPN بسبب فشل DNS.
السبب الجذري مشابه في أصله كتقييد لتصميم مؤشر اتصال NCSI ل Windows حيث لا يتم الاستعلام عن 127.0.0.1 لتأكيد اتصال DNS (الذي تم حله بواسطة Microsoft).
قرار
في هذا الوقت للعميل المتجول المستقل، لا يوجد تحديث للعميل المتجول يمكن أن يغير سلوك Windows هذا الناتج عن تعيين 127.0.0.1 كخادم DNS المحلي. هذا لب
التناسب لعميل التجوال ليعمل. إلى أن تسمح Microsoft باستخدام 127.0.0.1 ل DNS بواسطة تطبيق UWP VPN، يكون الخيار الوحيد هو التبديل إلى إصدار سطح المكتب من عميل VPN أو إستخدام الوحدة النمطية تجوال AnyConnect التي تستخدم برنامج تشغيل kernel لتوجيه DNS.