مشروع WireGuard VPN إعلان معلم رئيسي لمستخدمي Windows اليوم: تنفيذ وضع kernel جديد تمامًا لبروتوكول VPN يسمى WireGuardNT. يسمح التطبيق الجديد بتحسين الإنتاجية بشكل كبير عبر اتصالات LAN بسرعة 10 جيجابت في الثانية ، بالإضافة إلى العديد من اتصالات WI-Fi.
WireGuard (على Windows) و Wintun
يستخدم تطبيق WireGuard الأصلي على نظام التشغيل Windows wireguard-go ، وهو تطبيق مساحة مستخدم لتطبيق WireGuard مكتوب بلغة برمجة Google Go. ثم يتم ربط Wireguard-go بجهاز شبكة افتراضية ، ومعظمها موجود أيضًا في مساحة المستخدم. لم يعجب دونينفيلد نوافذ الصنبور، واجهة الشبكة الافتراضية التي يوفرها مشروع OpenVPN. لذلك قام بتنفيذ بديله الخاص من الصفر ، يسمى وينتون.
يعد Wintun تحسنًا كبيرًا مقارنة بنوافذ النقر: فقد قام مشروع OpenVPN نفسه بدعم Wintun بأداء مثير للإعجاب. النتائج (414 ميجابت في الثانية على windows tap مقابل 737 ميجابت في الثانية على Wintun). ولكن أثناء استخدام Wintun يعد تحسينًا على نوافذ تسجيل الدخول ، فإنه لا يغير الحاجة إلى تبديل سياق ثابت بين مساحة kernel (حيث توجد مكدس الشبكة “الحقيقي”) ومساحة المستخدم (حيث يكون كل من OpenVPN و wireguard مباشرًا).
من أجل التخلص من الاختناقات المتبقية في الأداء ، يجب تضمين المكدس بالكامل (المحول الافتراضي والعملات المشفرة وكل شيء بينهما) في النواة. في Linux ، هذا يعني أن تكون DLKM (وحدة نواة التحميل ديناميكيًا). في نظام التشغيل Windows ، يعني هذا أن تكون برنامج تشغيل جهازًا جيدًا مدمجًا في النواة.
WireGuardNT و NT kernel
إن التخلص من مكونات مساحة المستخدم في مكدس WireGuard على Windows والاحتفاظ بكل شيء في النواة يعني تغيير WireGuard للعمل على Windows بنفس الطريقة التي يعمل بها بالفعل على Linux. في الواقع ، بدأت WireGuardNT كمنفذ مباشر لتطبيق Linux WireGuard في النواة.
وفقًا لمنشئ WireGuard Jason Donenfeld ، بعد نجاح المنفذ الأولي ، “تباعدت قاعدة بيانات NT بسرعة لتلائم NTisms و NDIS أبيس. والنتيجة النهائية هي تنفيذ متكامل وعالي الأداء لـ WireGuard لـ NT kernel ، والذي يستخدم مجموعة كاملة من إمكانيات NT kernel و NDIS. “
هذا يعني أيضًا ، بالطبع ، التخلص من الكثير من مفاتيح تبديل السياق. النتائج النهائية صلبة: أكثر من ثلاثة أضعاف الأداء المتميز ، تقاس بـ Ethr على زوج من Equinix Metal (المعروف سابقًا باسم packet.net) c3. small حالات.
ومع ذلك ، فإن فوائد التبديل الأقل للسياق تمتد إلى أبعد من خوادم Xeon بواجهات 10 جيجابت في الثانية. ذكر دونينفيلد أن بعض المختبرين الأوائل أفادوا أن WireGuardNT قد أصلح مشكلات الأداء الضخمة أحيانًا التي تظهر عند استخدام اتصال VPN الخاص بهم عبر Wi-Fi.
اختبرنا الاختلاف مباشرةً ، باستخدام HP EliteBook مع لوحة Intel AX201 Wi-Fi 6 ، متصلاً بعقدة جهاز التوجيه لمجموعة اختبار Plume Wi-Fi 6 Superpods. على الرغم من أن نتائجنا لم تكن مذهلة مثل بعض النتائج المبكرة المختبرين ، يؤكدون زيادة كبيرة في الأداء. على نفس الجهاز وبنفس التكوينات ، قمنا بقياس أن WireGuardNT iperf3 يعمل بنسبة 10 إلى 25٪ أسرع من wireguard-go و Wintun.
اختبار WireGuardNT اليوم
WireGuardNT متاح للاختبار في نظام Windows العام تحميل لـ WireGuard الآن ، من الإصدار 0.4. ولكن نظرًا لأنه لا يزال مصنفًا على أنه تجريبي ، فسيتعين عليك إضافة مفتاح تسجيل يدويًا و DWORD لاستخدامه. افتح regedit
كمسؤول ، ثم انتقل إلى HKLM -> البرامج. بعد ذلك ، قم بإنشاء مفتاح باسم WireGuard ، وفي هذا المفتاح ، DWORD باسم ExperimentalKernelDriver.
مع ضبط ExperimentalKernelDriver على 1 ، ستستخدم أنفاقك كود WireGuardNT الجديد – بدونه (أو مع ضبطه على 0) ، سيستخدمون السلوك الافتراضي ، وهو رمز wireguard-go / wintun القديم. لكي يسري التغيير الذي أجريته ، ستحتاج إلى النقر بزر الماوس الأيمن فوق رمز WireGuard في علبة النظام والنقر فوق “خروج”. عندما تفتح تطبيق WireGuard مرة أخرى ، فسيحترم إعداد ExperimentalKernelDriver الخاص بك.
من الآن فصاعدًا ، سيتم تمكين WireGuardNT افتراضيًا وستحتاج إلى تعيين علامة تسجيل بدلاً من ذلك إذا كنت تريد الرمز القديم. أبعد من ذلك ، يخطط المشروع لإزالة wireguard-go / wintun بالكامل في النظام الثنائي العام. من ناحية أخرى ، ستبقى المشاريع نفسها ، لأنها تتمتع بفائدة واسعة تتجاوز عميل WireGuard الأصلي.