اختفاء جهاز Vagrant الافتراضي عند اتصال VPN: من يملك المسار المعطوب
جهاز كان يستجيب قبل دقيقة يختفي لحظة الاتصال. حدّد أي جهة تملك المسار المعطوب قبل تعديل أي إعداد.
كان الجهاز يستجيب قبل دقيقة، ثم اتصل الـ VPN، والآن تنتهي المهلة عند العنوان نفسه. ثلاثة أعطال تنتج هذا العَرَض، وهي تقع على أجهزة مختلفة. قد يفقد المضيف المسار إلى الشبكة الخاصة، أو يتعارض نطاق NAT الخاص بالضيف مع نطاق يعلنه النفق الآن، أو قد يستولي نفق كامل على كل مسار على المضيف. اعرف أي عطل حدث قبل تغيير أي إعداد، لأن كل إصلاح يقع في مكان آخر.
راقب المسار لا الجهاز
انظر إلى قرار التوجيه على المضيف بالنسبة إلى عنوان الضيف بينما النفق قائم. المسار الذي ما زال يشير إلى محول المضيف فقط ليس هو المشكلة. المسار الذي يشير الآن إلى محول الـ VPN هو المشكلة، والعميل هو من غيّره لا أنت. بقاء المحول بعنوانه يخبرك أن الواجهة صمدت، وهذه حقيقة مختلفة عن صمود المسار.
جلسة SSH تنقطع تمامًا عند لحظة الاتصال سلوك متوقع. يعيد العميل تدوير المحولات ويثبّت المسارات، لذا يموت الاتصال لثوانٍ. العطل هو الاتصال الذي لا يعود أبدًا، لا الذي غمز.
التقط الجدول قبل النفق ومرة أخرى بعده، ثم قارن بين هذين المخرجين. الفرق هو التشخيص، وهو أيضًا الدليل الذي سيطلبه مالك الشبكة.
ip -4 route get 192.168.56.10
ip -brief addr show
ip route show table main | head -20اقرأ جدول المضيف قبل الاتصال وبعده
على Linux تأتي الأفضلية بين المسارات المتداخلة من طول البادئة والمقياس، لذا يفوز مسار VPN أكثر تحديدًا حتى عندما يكون خاطئًا. على Windows يحدد مقياس الواجهة التعادل، وعادة ما يصل محول النفق بمقياس أدنى من مقياس المحول الافتراضي. في الحالتين يكون العَرَض المرئي متطابقًا: تغادر الحزم عبر محول النفق وتختفي.
اطبع المحولات ومقاييسها بجانب المسار الخاص ببادئة الضيف. هذا الزوج من المخرجات يجيب عن سؤال الملكية بنظرة واحدة.
Get-NetAdapter | Select-Object Name, InterfaceIndex, InterfaceMetric
Get-NetRoute -DestinationPrefix 192.168.56.0/24
route print -4 | Select-String '192.168.56'إذا تغيّر المسار ولم يتغيّر مقياس المحول، فقد ثبّت العميل مسارًا منافسًا. وإذا تغيّر المقياس، فقد أعاد العميل ترتيب المحولات. كلاهما قابل للإصلاح، ويُصلح كل منهما في مكان مختلف.
عندما يكون نطاق NAT الخاص بالضيف هو التعارض
يستخدم VirtualBox NAT النطاق 10.0.2.0/24 افتراضيًا، والنفق الذي يدفع النطاق نفسه يجعل الضيف يرسل تلك الحركة إلى بوابة NAT بدلًا من الوجهة الحقيقية. لا تغادر الحزمة المضيف أبدًا، لذا لن يظهرها أي سجل لجدار حماية على الطرف الآخر. لدى Docker Machine الفئة نفسها من التعارض في خطط المضيف فقط، وقد يتطلب تغيير ذلك الخط إعادة إنشاء الجهاز مع شهاداته.
اختر البديل بسرد ما يعلنه النفق بالفعل، ثم ما تستخدمه شبكة المكتب، ثم ما ادّعاه كل محول افتراضي على هذا المضيف. التداخل هو ما يكسر التوجيه، والتشابه غير ذي صلة. قد يقع نطاق بالكامل داخل نطاق آخر بينما لا يشبهه إطلاقًا بنظرة سريعة.
اضبط النطاق الجديد عند إنشاء الجهاز، أو غيّره وأعد التحميل، ثم اختبر الاتصال الفاشل مرة أخرى من الضيف. جدول الضيف نفسه هو العرض المهم.
VBoxManage modifyvm devbox --natnet1 10.77.0.0/24
vagrant reload devbox --provision
vagrant ssh devbox -c 'ip route get 10.20.0.15'أعد المسار دون مصارعة العميل
تقدم كل منصة طريقة لإعادة البادئة الخاصة بالمضيف فقط إلى المقدمة. على macOS يعمل مسار ثابت إلى واجهة المضيف فقط حتى الاتصال التالي. على Windows يُبقي مقياس واجهة أدنى على المحول الافتراضي أفضلية له. على Linux تغطي عملية استبدال بادئة واحدة. الثلاثة جميعًا حلول ملتوية، لأن العميل الذي يعيد تأكيد مساراته سيلغيها.
اكتب الفحص في سكربت بدلًا من إعادة اتصال عمياء عند الإقلاع. سكربت صغير يطبع المسار الخاص ببادئة الضيف بعد كل اتصال يحوّل لغزًا إلى سطر في سجل.
إذا كان الملف الشخصي نفقًا كاملًا، فاطلب من مالك الشبكة نفقًا منقسمًا أو استثناءً موثقًا. إضافة مسارات بصمت تتجاوز سياسة أمنية ليست إصلاحًا، بل مشكلة ثانية تصل لاحقًا ومعها مدقق.
تحقق من الإصلاح على الجانبين
تحقق من ثلاثة مسارات بعد التغيير: من المضيف إلى الضيف، ومن الضيف إلى مضيف الشركة، ومن الضيف إلى الإنترنت. الإصلاح الذي يعيد أحدها ويكسر آخر هو تغيير إعداد يتنكر في زي إصلاح. التقط المخرجات نفسها التي جمعتها قبل التغيير حتى تكون المقارنة متماثلة.
سجّل الواجهة والمقياس والمسار الذي تغيّر، مع الوقت، ليكون الحدوث التالي بحثًا لا إعادة بناء. تلك الملاحظة أثمن من سلسلة تذاكر طويلة.
ip -4 route get 192.168.56.10
traceroute -n -m 4 10.20.0.15
curl -sS -o /dev/null -w '%{http_code}\n' https://example.comعندما يصل المضيف إلى الضيف مرة أخرى ويصل الضيف إلى الشبكة المحلية، تكون قد أعدت المسار الذي بدأت به. وعندما يعمل واحد فقط من هذين، يكون العطل المتبقي في نطاق المالك الآخر، والفرق يخبرك أي نطاق هو.