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

لماذا يعود العنوان إلى ما كان عليه

kvnet محوّل افتراضي ينشئه العميل عند بدء الاتصال ويحذفه عند انتهائه. لذلك فإن أمر ip link set اليدوي يبقى بالضبط ما دامت الجلسة التي طُبّق عليها، ويبدأ الاتصال التالي مما يخصصه العميل. وعلى جهاز يفشل فيه العميل في تطبيق العنوان المتوقع، يعيد كل اتصال جديد إدخال نفس عدم التطابق، فترفض قاعدة الإيجار أو الوصول الجهاز مرة أخرى.

هذا النمط تشخيصي بحد ذاته. النفق الذي يعمل في جلسة واحدة ويفشل في التالية ليس مشكلة بيانات اعتماد، لأن بيانات الاعتماد لا تتغير بين الاتصالات.

اقرأ القيمة من العميل، لا من الواجهة

يكتب عميل Linux تفاصيل التفاوض إلى سجل التصحيح الخاص به، ويظهر العنوان الذي ينوي استخدامه هناك بوصفه آخر رمز على شكل عنوان في تسلسل الاتصال. قارن ذلك بما تحتفظ به النواة فعليًا، وهو على بعد readlink واحد: cat /sys/class/net/kvnet/address.

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

طبّقه بعد وجود الواجهة

يمكن لمستخدمي NetworkManager إسقاط برنامج نصي في دليل الموزّع الخاص به والتصرف فقط عندما تصعد واجهة VPN. أما العميل المُدار بـ systemd فيحتاج إلى عناية أكبر: فإسقاط يُشغَّل عند بدء الخدمة ينطلق عادة قبل وجود المحوّل، لذا على الخطاف أن ينتظر الواجهة بدلًا من افتراضها. اضبط العنوان حينها، وإن رفضت النواة بينما الوصلة قائمة، فأنزلها واضبط العنوان ثم أعد إصعادها. اقرأ الرمز المستخرج مرة أخرى عبر نمط MAC قبل تمريره إلى ip link، حتى لا يتحول سطر سجل غير متوقع إلى وسيط.

أي شيء يعمل بصلاحيات root انطلاقًا من سجل عميل يستحق ملكية ضيقة: ملف مملوك لـ root، غير قابل للكتابة من الآخرين، ولا تداخل من الصدفة يتجاوز العنوان المُتحقق منه. أبقِ فحص النمط داخل البرنامج النصي. لا تدع محتوى السجل يقرر أي أمر يعمل.

تحقق من الإيجار لا من الوصلة

ينبغي أن يُظهر ip -4 -o addr show dev kvnet عنوانًا في النطاق المتوقع، وينبغي أن يُظهر ip neigh show dev kvnet البوابة، وينبغي أن تستجيب خدمة واحدة خلف VPN. ثم افصل الاتصال وأعد الاتصال مرة واحدة؛ فإن عاد العنوان، فالخطاف يعمل على الحدث الخطأ أو لا يعمل إطلاقًا.

الواجهة التي تظهر بالعنوان الصحيح ولا تحصل على إيجار أبدًا تشير إلى جانب الخادم. ذلك فحص آخر وفريق آخر عادة. تأكد من أن الحساب مسموح والمجمع ما زال يملك عنوانًا قبل تعديل الخطاف مرة أخرى.

أعد النظر في الحل البديل بعد الترقية

بناء عميل يضبط العنوان بشكل صحيح يترك خطافك يطبّق قيمة قديمة، وهذا عطل جديد أدخله إصلاح. لا تنسخ MAC من جهاز آخر أو من منشور منتدى أيضًا؛ استخدم القيمة التي يسجلها هذا العميل لهذا الحساب، وسجّل التاريخ الذي تحققت فيه منها.

أبقِ البرنامج النصي قصيرًا بما يكفي لقراءته في جلسة واحدة. الحلول البديلة التي تحلل السجلات مؤقتة بطبيعتها. والبقاء منها ما يستطيع قارئ مستقبلي فهمه دون الموضوع الأصلي.

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