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

العلامتان تعيشان في مكانين مختلفين وتنتهيان وفق جدولين مختلفين.

علامتان، عمران

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

لهذا قد تبدو مجموعة القواعد متّسقة بينما يرى قرار التوجيه صفراً: حُفظت القيمة ولم يُعِدها شيء.

النسخ بينهما خطوة تكتبها أنت

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

ct mark set meta mark
meta mark set ct mark

اكتب الاتجاه بجانب القاعدة، لأنه ليس بديهياً من الصياغة عند النظرة الأولى. السطر الأول يخزّن، والثاني يعيد، ولا يعني أحدهما الآخر.

صنِّف قبل البحث الذي يستهلكه

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

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

اسأل المسار سؤالاً موسوماً

ip route get 10.77.0.10 mark 0x2

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

العدّاد المتزايد دليل على أن قاعدة ما طابقت حزمة ما. وليس دليلاً على أن الحزمة النهائية حملت العلامة المقصودة عند نقطة القرار الصحيحة.

اقرأ العلامة، والاتجاه، والتوقيت، والقناع. أربعة فحوص، ويتوقف المسار عن كونه لغزاً.

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