أضف ملف تعريف عميل إلى جهاز يشغّل خادم VPN بالفعل، وستكون الخدمة الأصلية أول الضحايا. قد لا يُنشأ النفق الجديد أبدًا، أو قد يقوم بينما يتوقف عملاء الخادم الحاليون بهدوء عن تلقي الردود. تصادمان ينتجان النتيجتين معًا: مجمّع أنفاق قيد الاستخدام بالفعل، ومسار افتراضي يثبّته نصف العميل الجديد ويغطي الجدول كله. لا ينتج أيّ منهما رسالة خطأ من OpenVPN، ولهذا يُقرأ العطل على أنه مشكلة في الخادم.

جهاز واحد، ودوران، وجوابان غير متوافقين عن وجهة الردود.

المجمّع نفسه وخادمان: أيّهما يفوز

يحتاج كل مثيل خادم إلى شبكة فرعية للنفق خاصة به. فنسخ سطر مثل server 10.8.0.0 255.255.255.0 إلى التهيئة الثانية يمنح المثيلين البادئة نفسها، وتكون النتيجة إما رفضًا للإقلاع أو صراعًا صامتًا يحصل فيه عملاء أحد الخادمين على عناوين يعتقد الخادم الآخر أنها ملكه أيضًا. لا تفيد منافذ UDP المختلفة ولا أسماء الأجهزة المختلفة، لأن أيًّا منهما لا يمسّ فضاء العناوين. غيّر المجمّع الثاني، وغيّره في كل مكان تذكره فيه المسارات.

أحصِ ما هو قائم قبل التعديل: يسرد ip -4 addr show أجهزة النفق، ويسرد ss -lunp المستمعين، ويسمّي systemctl list-units الوحدات. نظرة واحدة إلى عناوين النفق تحسم ما إذا كانت المجمّعات تتصادم.

ما يضيفه ملف تعريف العميل إلى الجدول

يكتب نصف العميل المسارات بمجرد أن يتصل. يقسّم redirect-gateway def1 المسار الافتراضي إلى 0.0.0.0/1 زائد 128.0.0.0/1، وكلاهما يُوجَّه عبر الجهاز الجديد، مع مسار مضيف إلى الخادم البعيد مثبّت عمدًا على الواجهة الفيزيائية. هذا التثبيت موجود كي يحتفظ النفق بمسار لنقل بياناته. كل شيء آخر، بما في ذلك الردود التي يدين بها الخادم المحلي لعملائه، يتبع الآن الافتراضي الجديد ويخرج عبر الوصلة البعيدة.

إذن التصادم الثاني ليس نفقًا معطوبًا. إنه نفق يعمل في مكان خاطئ من الجدول.

ثلاث طرق لإبقاء الدورين منفصلين

أقل إصلاح تدخلًا يُبقي المسار الافتراضي خارج ملف تعريف العميل: route-nopull مع أسطر route صريحة للبادئات البعيدة، بحيث لا يتغير الجدول المحلي إلا حيث طلبت. الخطوة التالية هي قاعدة سياسة تستثني شبكة النفق المحلية الفرعية، فتترك الردود على العملاء المحليين الواجهة التي وصلت عليها حتى مع وجود مسار افتراضي. الأكثر شمولًا هو فضاء أسماء شبكي منفصل لدور العميل، وهو يزيل الجدول المشترك تمامًا ويكلّف سياق توجيه ثانيًا للصيانة.

أي طريق سلكت، يجب أن يسمّي الاستثناء شبكة النفق المحلية الفرعية لا شبكة LAN. الرد الذي يرسله الخادم المحلي تكون وجهته عنوان نفق، لذا لا ينطبق عليه استثناء على شكل LAN.

أي المثيلين هو المسؤول

أوقف مثيل العميل وأعد اختبار العملاء الأصليين. التعافي الفوري يعني أن المشكلة في التوجيه لا في الخادم. أعد العميل وتتبّع ردًا واحدًا باستخدام ip route get مع إعطائه عنوان مصدر وعنوان وجهة، فيُظهر المسار الذي سيختاره النواة، ثم راقب الواجهة التي تستخدمها الحزم فعليًا باستخدام tcpdump -ni any port 1194. ملف حالة الخادم، المكتوب كل بضع ثوانٍ عبر توجيه status، يحمل قائمة العملاء المتصلين وعدادات البايتات في الاتجاهين.

اقرأ تلك العدادات مقابل بعضها. حركة تخرج ولا تعود أبدًا هي جواب توجيه لا مشكلة مصافحة.

مقالات ذات صلة