من المفترض أن تُرسل العلامة المضبوطة في nftables صنفاً واحداً من حركة المرور عبر النفق، لكن الحركة تستمر في الخروج عبر الواجهة الفيزيائية. تبدو مجموعة القواعد صحيحة بمعزل عن غيرها. ما حدث عادةً هو أن شيئاً آخر كتب العلامة نفسها، أو أن قاعدة التوجيه تطابق قناعاً لم تعد القيمة الجديدة تُحققه.

الفحص 1: اقرأ القاعدة التي تطابقها النواة

ابدأ بقاعدة السياسة بدلاً من الجدار الناري. تستشير النواة القواعد بترتيب الأولوية وأول تطابق هو ما يحدد الجدول. اقرأ قيمة fwmark والقناع من القاعدة نفسها، ثم تأكّد من أن حزمة تحمل العلامة التي ضبطتها تطابقها فعلاً. القاعدة التي تتوقع قيمة كاملة من 32 بت لن تطابق حزمة تحمل بتاً واحداً فقط.

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

أمران يحسمان هذا: قائمة القواعد، والبحث عن المسار إلى الوجهة في ذلك الجدول.

الفحص 2: علامة الحزمة أم علامة الاتصال

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

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

حدّد أي كائن يملك إشارة التوجيه، ثم اضبطه عند النقطة التي يُتخذ فيها قرار التوجيه.

الفحص 3: من يكتب هذه العلامة أيضاً

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

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

اسرد الكُتّاب قبل إضافة كاتب آخر.

الفحص 4: القناع يحدد ما تحتفظ به

العلامة حقل من 32 بت، والأقنعة هي وسيلة تقاسم عدة مالكين له. ضبط قيمة بقناع يحافظ على البتات التي لا تملكها؛ أما ضبط الحقل كله فيدمّر بتات الآخرين. اقرأ القناع في كل قاعدة تمسّ الحقل، بما فيها التي لم تكتبها.

وثّق توزيع البتات بجوار مجموعة القواعد.

وإلا سيعيد الشخص التالي استخدام قيمة لها مالك بالفعل، ويبدو التعارض هنا كخطأ في التوجيه بينما هو خطأ في العنونة. توثيق nftables حول البيانات الوصفية للحزمة يشرح عمليات العلامة نفسها.

الفحص 5: تحقّق بتدفق حقيقي لا بعملية بحث

البحث العادي عن المسار لا يحمل علامة، لذا قد يُظهر مساراً مختلفاً عن الحزمة الحقيقية. أنشئ الحركة التي تهمّك وراقب العدّادات وقيد تتبّع الاتصال والواجهة التي تخرج منها فعلاً. اختبر الصنف المشمول والصنف المستبعد معاً، لأن العلامة الأوسع من اللازم تكسر الاستبعاد وهي تبدو ناجحة. إذا عمل الصنف المشمول ودخل الصنف المستبعد النفق أيضاً، فالعلامة أوسع من اللازم وليست أضيق.

تجنّب إفراغ حالة الاتصال لإجبار التحديث أثناء جلسة حيّة، لأن التدفقات الجديدة والقائمة يمكن أن تسلك مسارات مختلفة بشكل مشروع.

سجّل العلامة والقناع والجدول في مكان واحد، فيصبح التعديل التالي قابلاً للمراجعة.

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