واحد قائم وصفر متصل: ماذا يعد سطر strongSwan ذلك
العنوان القديم يعد ارتباطات IKE، لا الشبكات الفرعية ولا وحدات SA الفرعية، لذا اقرأ أولاً التعريفات المحمَّلة والأبناء المثبَّتين.
اقرأ سطر حالة يقول Security Associations (1 up, 0 connecting) فيبدو تقريراً عن نفق واحد يعمل. تمر شبكتان فرعيتان بحركة المرور عبره في الوقت نفسه، فيبدو الرقم كأنه يكذب. إنه لا يكذب؛ إنه يعد ارتباطات IKE، وواحد منها يمكن أن يستضيف عدة أبناء. اقرأ قوائم الجرد قبل أن تمسّ اقتراحاً أو مساراً.
لماذا يختلف العنوان وحركة المرور
يسمّي إخراج stroke القديم مجموعه ارتباطات أمنية ويستمدّه من مدير ارتباط IKE. كل ارتباط IKE قائم يسهم بواحد، بصرف النظر عن عدد وحدات CHILD SA تحته. الأب الواحد في IKEv2 يحمل عادة عدة أبناء، واحداً لكل زوج محدّدات حركة، وقد تغطي محدّدات الابن المتفاوض عليها أكثر من عنوان أو بادئة. لذلك لا علاقة ثابتة بين عدد العناوين في إعدادك والرقم في العنوان.
يُظهر الإخراج الحديث أحياناً مجموعاً بدل صياغة “up” القديمة، وخادم swanctl المُدار لا تحرّكه إعدادات stroke القديمة إطلاقاً. لا تفترض الصياغة ولا قاعدة العد عبر الإصدارات.
قارن ثلاث قوائم جرد قبل تغيير أي شيء
ابدأ بما هو محمَّل، ثم بما هو متفاوض عليه، ثم بما ينقل الحزم فعلاً. هذه ثلاثة أسئلة مختلفة ولكل منها أمره الخاص.
swanctl --list-conns
swanctl --list-sas
يسرد الأول تعريفات الاتصال التي قبلها الخادم. يسرد الثاني ارتباطات IKE القائمة مع أبنائها، وهناك يظهر التسلسل الهرمي الحقيقي. التعريف الموجود في ملف والغائب عن القائمة الأولى لم يُحمَّل قط، ولن يصلح ذلك أي عدد من محاولات المهيّئ. إذا كنت تشغّل الواجهة القديمة بدلاً من ذلك، فالمزدوج المكافئ هو ipsec statusall وقائمة swanctl نفسها بحسب الإضافة التي تملك الإعداد. لا تخلط الأدوات بين خادمين على مضيف واحد وتتوقع جواباً واحداً متسقاً.
swanctl --list-sas --raw | head -40
ip -s xfrm state
الصيغة الخام تبقي المعرّفات والمحدّدات مرئية للمقارنة، وقائمة حالة النواة تُظهر ما يعتقد المكدّس أنه ثبّته. عندما يختلف الخادم والنواة، يكون الخادم قد أُعيد تشغيله حول ابن موجود أو أُزيل كائن النواة من تحته.
اقرأ التسلسل الهرمي، لا المجموع
الأب القائم التوضيحي ذو الابن ين يبدو عقدة واحدة تحتها ابنان، كل منهما موسوم بحالته ووضعه. أفرغ الإخراج الفعلي وعدّ الأبناء بنفسك بدل قراءة ملخص لصقه أحدهم من لوحة.
swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'
أب واحد بابن ين مثبَّتين نفق سليم لشبكتين فرعيتين. أب واحد بابن مثبَّت وآخر غائب حالة مختلفة، ومحدّدات الابن المفقود هي ما يُقارَن باقتراح الطرف البعيد. أثناء إعادة توليد المفاتيح، قد يظهر ابن قديم وبديله معاً لنافذة قصيرة. احفظ الطابع الزمني مع اللقطة، لأن عدّاً يُؤخذ في منتصف إعادة التوليد يبدو تكراراً وعدّاً بعده يبدو فقداناً.
محمَّل ومثبَّت وحركة تمر
الابن في الحالة المثبَّتة له معاملات متفاوض عليها ومدخل في النواة. لكنه لم ينقل حزمة بالضرورة: قد تكون المحدّدات أضيق من الحركة التي تتوقعها، وقد يوجّه مسار تلك الحركة إلى مكان آخر قبل أن يراها النفق. أرسل تدفقاً يطابق المحدّدات المتفاوض عليها من مضيف مصرّح له، ثم اقرأ عدّادات الابن لا العنوان. العدّاد الذي يبقى على صفر وأنت تولّد حركة مطابقة يشير إلى التوجيه أو السياسة، لا إلى IKE.
swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'
بدء ابن مسمّى إجراء متعمّد له نتيجة مرئية، وهو يفصل بين “الاتصال خامل لأن أحداً لم يطلبه” و“الاتصال لا يستطيع النهوض”. سياسة المصيدة عند الطلب تتصرف تماماً كالحالة الأولى، فاقرأ إعداد بدء الاتصال قبل أن تسمّيه عطلاً.
عندما يكون العدد خاطئاً فعلاً
إذا غاب تعريف من الجرد المحمَّل، فانظر في تحميل الإعداد وفي أي نسخة من الخادم تعمل. إذا كان محمَّلاً لكنه لا يتفاوض أبداً، فقارن الاقتراحات وسياق المصادقة والمحدّدات مع النظير، ابناً واحداً في كل مرة. غيّر عنصراً واحداً في كل محاولة وسجّل المعرّف الذي غيّرته. التراجع عن اقتراح أمر تافه عندما تعرف أيّه؛ لكنه تخمين بعد ثلاث تعديلات لم تُفصل قط.
أصلح القراءة الخاطئة أولاً. معظم التقارير عن نفق ثانٍ “مفقود” تنتهي بابنين مثبَّتين تحت أب واحد، والشيء الوحيد الذي كان معطوباً هو سطر الملخص الذي وثق به الناس بدل التسلسل الهرمي.