ما الذي تغيّره سياسة التوجيه في حركة VPN، وما لا تغيّره
القواعد تختار الجدول الذي يُستشار، لذا فالمسار الافتراضي في الجدول الرئيسي لا يفسّر شيئًا غالبًا. اقرأ الأولويات والعلامات والمصادر معًا قبل إضافة قاعدة.
يجيب التوجيه بحسب السياسة عن سؤال مختلف عن ذاك الذي تطرحه معظم ملاحظات استكشاف الأخطاء. يقول الجدول الرئيسي إلى أين تذهب الوجهة؛ أما قواعد السياسة فتقول أي جدول يُستشار أصلًا، ويمكنها أن تقرر ذلك انطلاقًا من عنوان المصدر أو علامة الحزمة، أو الواجهة التي وصلت عبرها الحزمة. عندما يتصرف النفق بشكل غير متسق، فمجموعة القواعد هي السبب في كثير من الأحيان، وجدول التوجيه ليس كذلك في كثير من الأحيان.
القواعد تختار الجدول، ثم يختار الجدول المسار
تحمل كل قاعدة أولوية وشرط مطابقة وجدولًا مستهدفًا. تمرّ النواة على القواعد بترتيب الأولوية وتتوقف عند أول مطابقة، ثم تُجري بحثًا عاديًا عن أطول بادئة في ذلك الجدول. والقاعدة التي تشير إلى جدول فارغ تسقط إلى ما تختاره القاعدة التالية، وهكذا يمكن لقاعدة مكتوبة بعناية أن تبدو وكأنها لا تفعل شيئًا.
لهذا السبب نادرًا ما يفسّر إفراغ الجدول الرئيسي عميل VPN عاملًا. فعادةً ما يُدخل العملاء قواعد بأرقام أولوية منخفضة، قبل قاعدة الجدول الرئيسي الافتراضية بوقت طويل، فلا تصل الحزمة أبدًا إلى المسار الذي كنت تحدّق فيه. وخفض مقياس في الجدول الرئيسي لا يغيّر شيئًا في حركة جرى تحويلها بالفعل.
ويمكن للقاعدة أيضًا أن تحوّل بادئة إلى ثقب أسود أو إلى مسار غير قابل للوصول عن قصد. فبعض العملاء يضيفون قاعدة كهذه كمفتاح إيقاف، وحينها يبدو الإسقاط وكأنه نفق معطوب لا نفق مُهيّأ.
اقرأ مجموعة القواعد كتسلسل، لا كقائمة
اطبع القواعد بأولوياتها والجداول التي تشير إليها، ثم اطبع كل جدول يحمل مسارًا افتراضيًا أو مسار نفق. الترتيب هو الجزء المهم، وهو الجزء الذي تحذفه لقطة الشاشة عادةً:
ip rule show ip route show table all | sed -n '1,60p' ip route get 198.51.100.20 from 10.8.0.2 ip route get 198.51.100.20 from 10.8.0.2 mark 0x1
الأمران الأخيران هما اللذان يحوّلان النظرية إلى ملاحظة، لأنهما يسألان ما الذي ستفعله النواة لذلك المصدر وتلك العلامة. وإذا تغيّرت الإجابة عندما تتغيّر العلامة، فثمة قاعدة قائمة على العلامة تعمل، وأي اختبار يغفل العلامة إنما يختبر حزمة مختلفة. والاتصال الخارجي يستحق قاعدة خاصة به. فالنفق الذي يوجّه كل الحركة عبر نفسه يجب أن يستثني عنوان الطرف الذي يتصل به، وإلا أُعيد إرسال الحزم المشفّرة إلى النفق الذي غادرته للتو. ومعظم العملاء يُدرجون هذا الاستثناء تلقائيًا، ومجموعة القواعد المحرّرة يدويًا هي المكان الذي يضيع فيه.
العلامات والمقابس: طريقتان يقسّم بهما العملاء الحركة
بعض العملاء يضعون علامة على الحزم في الجدار الناري ويضيفون قاعدة تطابق العلامة. وآخرون يستخدمون توجيهًا على مستوى المقبس، فيضعون مسارًا على المقبس قبل أن يتصل. الأول ظاهر في ip rule؛ والثاني ليس كذلك، ولن يظهر في بحث عام.
إذا تصرّف برنامج اختبار بشكل مختلف عن التطبيق الذي يُفترض أن يمثله، فتحقق مما إذا كان التطبيق يضع علامة أو يرتبط بجهاز. وهذا الفرق ليس لغزًا بعد تسمية الآلية، وهو يفسّر لماذا يمكن لأمر curl من صدفة وتبويب متصفح أن يسلكا مسارين مختلفين على الجهاز نفسه. والتقنيتان كلتاهما توجيه بحسب السياسة بالمعنى الواسع: فهما تختاران مسارًا باستخدام شيء غير الوجهة. ولا واحدة منهما تُصرّح بالحركة، ولا واحدة منهما تغني عن قواعد الجدار الناري أو بيانات الاعتماد التي يتوقعها الطرف المقابل.
تتبّع الملكية قبل أن تضيف قاعدة أخرى
القواعد يثبّتها شيء ما. فعميل VPN ومدير شبكة وسكربت مكتوب يدويًا يمكن لكل منها أن يضيف قواعد عند بدء التشغيل، ومنطق إعادة الاتصال قد يترك المجموعة السابقة خلفه. وقاعدتان قديمتان من ملف تعريف سابق ستظلان توجّهان الحركة بعد حذف الملف بوقت طويل.
اعرف أي عملية تملك القاعدة من خلال أولويتها وشكلها، وتحقق مما إذا كان ذلك المالك يعيد كتابة المجموعة عند كل اتصال. فإن كان يفعل، فقاعدة يدوية تُضاف اليوم تختفي غدًا، والإصلاح يقع في إعدادات العميل لا في ملف تاريخ الصدفة. ومسح مجموعة القواعد كلها للاختبار اختصار مغرٍ بكلفة متوقعة: فهو يزيل أيضًا القواعد التي يحتاجها العميل لإبقاء نفقه الخاص عاملًا. احذف قاعدة واحدة في كل مرة، أو اختبر على جهاز يمكنك إعادة تشغيله.
أثبت النطاق بتدفقين، لا بتدفق واحد
لا يُتحقق من التصحيح إلا بتدفق يجب أن يتأثر وتدفق يجب ألا يتأثر. اختر وجهة توجّهها السياسة إلى النفق، وأخرى يجب أن تتركها خارجه، ثم قارن عمليات البحث والالتقاطات لكليهما:
ip route get 198.51.100.20 from 192.0.2.44 ip route get 198.51.100.21 from 192.0.2.44 tcpdump -ni any host 198.51.100.21 and port 443
عندما تُعيد عمليتا البحث واجهتين مختلفتين، فالقاعدة تفعل شيئًا. وعندما تُعيدان الواجهة نفسها، فالقاعدة تطابق نطاقًا أوسع مما أُريد، وهذا هو الخلل الذي يرسل شبكة فرعية كاملة بهدوء عبر نفق مخصص لتطبيق واحد.
سجّل أولويات القواعد والخدمة المالكة في التذكرة، مع عنواني الاختبار. فيحصل الشخص التالي على زوج قابل للتكرار بدلًا من وصف لأعراض، ويستطيع أن يعرف خلال دقيقة ما إذا كان التوجيه بحسب السياسة لا يزال يعمل.