هل تستخدم آلة Hyper-V الافتراضية شبكة VPN الخاصة بالمضيف؟ يتوقف الأمر على المحول
شبكة VPN الخاصة بالمضيف ليست إعدادًا على مستوى الجهاز بأكمله. يحدد نوع المحول ما إذا كانت حركة الضيف تُجسَّر أو تُوجَّه عبر المضيف أو تُعزل، وهذا يغيّر الإجابة.
ثبّت عميل VPN على مضيف Hyper-V، وافتح متصفحًا هناك، فيتغيّر عنوان الخروج؛ وافتح الصفحة نفسها داخل الآلة الافتراضية فقد تُظهر العنوان القديم، أو لا تُظهر شيئًا على الإطلاق. الاستنتاج المعتاد أن الآلة الافتراضية معطوبة، أو أنه يجب تفعيل النفق المنقسم. لا شيء من ذلك يلزم. عميل VPN ليس خاصية للجهاز؛ بل هو مجموعة مسارات ومحول افتراضي وغالبًا مرشّح مرتبط بواجهات محددة. أما وصول حركة الضيف إلى تلك الآلية أصلًا فيعتمد على المحول الافتراضي الذي يستخدمه الضيف.
الأسطورة كما تُروى ببساطة
الاعتقاد السائد أن شبكة VPN المثبتة على المضيف تحمي الجهاز كله، بما في ذلك الآلات الافتراضية، لأن الآلة الافتراضية مجرد عملية تعمل على ذلك الجهاز. إنه اعتقاد مريح، لأن برامج مكافحة الفيروسات وجدران حماية المضيف تعمل عادة بهذه الطريقة. أما مسارات الشبكة فلا.
لا تمسّ حزمة الضيف مكدس VPN الخاص بالمضيف إلا إذا وجّهها المضيف أو رشّحها. انقل هذه الجملة إلى ورقة لاصقة، لأن كل حالة أدناه تنويع عليها.
ثلاثة أنواع من المحولات، ثلاثة مسارات
يربط المحول الخارجي محولًا افتراضيًا ببطاقة شبكة فعلية، ويرسل الضيف الحزم عبر ذلك الربط بعنوان MAC الخاص به. يصبح الضيف نظيرًا على الشبكة الفعلية، بعقد DHCP الخاص به وبوابة وخوادم DNS خاصة به. يعيش المسار الافتراضي لشبكة VPN الخاصة بالمضيف في مكدس المضيف ولا يحرّك تلك الحزم، لأنها تُجسَّر بدلًا من أن تُوجَّه عبر المضيف. ولهذا أيضًا يُعدّ المحول الخارجي فوق محول Wi-Fi فكرة سيئة: فمعظم برامج تشغيل الشبكات اللاسلكية لا تحمل حزمًا لعنوان MAC ثانٍ.
يربط المحول الداخلي الضيوف بمحول افتراضي على المضيف. وهو بذاته لا يوفر مخرجًا إلى الإنترنت؛ إذ يوفّر كائن NAT على المضيف الترجمة، كما هو موصوف في دليل NAT في Hyper-V. الآن تدخل حزم الضيف فعليًا مسار التوجيه وNAT في المضيف، فتعود مسارات عميل VPN ومرشّحاته مهمة. هذا هو الترتيب الذي تتبع فيه الآلة الافتراضية شبكة VPN الخاصة بالمضيف حقًا، والذي يمكن فيه لمفتاح الإيقاف أن يقطع الضيف تمامًا.
لا يملك المحول الخاص محول مضيف ولا وصلة صاعدة. يتحدث الضيوف إلى بعضهم فقط ولا شيء غيرهم، فإذا لم يكن للآلة الافتراضية على محول خاص إنترنت، فالموجّه المفقود هو السبب وشبكة VPN لا علاقة لها بالأمر.
المحول الافتراضي هو ترتيب قائم بذاته
توفّر Windows محولًا افتراضيًا يجمع بين محول داخلي وNAT ووكيل DNS. يختار المضيف شبكته الفرعية، وقد تتغيّر بعد إعادة التشغيل، وهو ليس الكائن نفسه الذي تنشئه أنت كشبكة NAT. وإعادة بنائه كما لو كان شبكة مختبر هي الطريقة التي ينتهي بها الناس إلى شبكتي NAT وضيف لا يزال بلا مسار.
إذا كانت الآلة الافتراضية على المحول الافتراضي، فاقرأ العنوان الذي تلقّاه الضيف وقارنه بجدول NAT في المضيف قبل أن تلمس عميل VPN. فعدم تطابق بوابة الضيف مع بادئة NAT يفسّر أعطالًا أكثر من أي إعداد في العميل.
أربع حقائق تحسم السؤال
اجمع هذه قبل تغيير أي شيء: نوع المحول ووصِلته الصاعدة، والمحول المرفق بالآلة الافتراضية، وعنوان الضيف نفسه وبوابته وخوادم DNS، وحالة NAT والمسار الافتراضي في المضيف. أوامر القراءة فقط هي Get-VMSwitch، Get-VMNetworkAdapter -VMName "TestVM"، Get-NetNat، وGet-NetRoute -DestinationPrefix 0.0.0.0/0؛ وداخل الضيف يعطي ipconfig /all الباقي.
ثم قرّر ما يُفترض أن يفعله الضيف. إذا كان ينبغي أن يبقى خارج شبكة VPN، فاحصل على الاستثناء المدعوم من المزوّد لذلك المسار تحديدًا، لأن استبعاد ملف تنفيذي على المضيف لا يعفي حركة الآلة الافتراضية المُمرَّرة. وإذا كان ينبغي أن يستخدم شبكة VPN، فتحقّق من معالجة العميل الموثّقة لحركة الآلة الافتراضية بدلًا من افتراض أن اختبارًا في متصفح المضيف يغطي ذلك.
الاختبار داخل الضيف هو الدليل الوحيد الذي يُعتدّ به. افحص عنوان الخروج من الضيف، وحلّ اسمًا داخليًا، وأعد توصيل شبكة VPN وكرّر. ونتيجة متصفح المضيف ليست بديلًا عن أي من ذلك.
ما تكلفه الأسطورة
يعطّل الناس مفتاح الإيقاف، أو يضيفون مسارات ثابتة، أو يحذفون المحولات وينشئونها من جديد فقط ليجتاز اختبار ما. وكل اختصار يغيّر نمط الفشل: فقد يصل الضيف إلى الإنترنت عبر مسار لم يقصده أحد، أو يفقد المضيف اتصاله عندما يعيد محول خارجي ربط بطاقته الفعلية.
إعادة ربط محول خارجي تقطع وصول المضيف نفسه، لذا أبقِ مسارًا خارج النطاق مفتوحًا وتجنّب حذف المحولات وأنت لا تزال تشخّص. والنتيجة الصحيحة هي مسار الضيف المقصود، بما في ذلك كيف يعيد الاتصال وكيف يفشل، لا علامة صحّ خضراء من تحميل صفحة واحدة.
الإجابة الدائمة هي سطر واحد لكل آلة افتراضية في الجرد: أي محول تستخدم وأي مكوّن يوفّر بوابتها. وبعد كتابة ذلك، يصبح تغيير VPN التالي بحثًا في سجل بدلًا من ظهيرة كاملة من التخمين.