تصل تذاكر الدعم غالبًا وقد تمت الموافقة على تغيير جدار الحماية مسبقًا، بينما يظل النفق رافضًا للصعود. هذه هي النتيجة المتوقعة عندما يملك أحد الطرفين فقط الميزة: يجب تنفيذ تغليف TCP وفق RFC 9329 وتهيئته على الطرفين، ويحدث الاتفاق داخل الاتصال قبل أن تتحرك أي حركة مرور محمية. فتح منفذ يعني الإعلان عن مستمع قد لا يكون موجودًا، والمستمع الذي لا يطابقه إعداد على الطرف الآخر يقبل الاتصال ثم يصمت. التسلسل أدناه يضع الفحوص الرخيصة أولًا.

اعرف ما تضيفه الميزة فعليًا

ينقل IPsec الأصلي البيانات المشفّرة كـ بروتوكول IP 50، دون رقم منفذ يُسمح به. يلفّ اجتياز NAT تلك الحزم داخل UDP إلى المنفذ 4500، ولهذا تذكر قواعد كثيرة لجدار الحماية ذلك المنفذ. يضيف RFC 9329 تمثيلًا تدفقيًا: تسافر حزم IKE وIPsec معًا داخل اتصال TCP واحد، عادةً إلى المنفذ 4500.

التدفق ليس خدمة ويب. اتصال TCP بالمنفذ 4500 لا يقول شيئًا عن HTTP أو TLS أو ملاءمة الوسيط، والوسيط HTTP في المسار سيكسر عادةً التأطير بدلًا من نقله.

فحص مسبق قبل لمس جدار الحماية

يضع المعيار TCP كبديل للشبكات التي تُسقط مسار UDP، لا كبديل عنه. احصل على حقيقتين من كل مورّد: الاسم الدقيق للميزة والإصدار الذي ينفّذ RFC 9329 بدلًا من نسخة مملوكة. لقد استُخدمت تسميات مثل IPsec over TCP لتصاميم غير ذات صلة، لذا اطلب مرجع المستند ومفتاح الإعداد الذي يشغّلها. بدون هذين الجوابين، لا تفترض شيئًا عن التوافق على السلك.

أثبت ذلك في مختبر يكون فيه الطرفان ملكك. البوابة التي ترد على TCP 4500 لكنها لا تكمل IKE أبدًا هي بصمة مستمع يفتقر إلى التغليف المطابق على الطرف الآخر، واكتشاف ذلك هناك أرخص بكثير من اكتشافه أثناء نافذة تغيير.

على المستجيب: هل يوجد مستمع

ابدأ بالمقبس. يُظهر ss -ltnp | grep 4500 ما إذا كان مستمع TCP موجودًا وأي عملية تملكه. غياب سطر ينهي التحقيق عند إعداد البوابة بدلًا من الشبكة.

إذا كان المقبس موجودًا، راقب المصافحة بدلًا من التخمين من جهة العميل: tcpdump -ni any 'tcp port 4500'. مصافحة ثلاثية مكتملة تتبعها صمت تعني أن التدفق قُبل وأن تبادل IKE داخله فشل، بينما SYN بلا إجابة يشير إلى التصفية أو إلى العنوان الخطأ.

قارن بمسار UDP في نافذة الالتقاط نفسها حتى لا يختلط الأمران: tcpdump -ni any 'udp port 4500 or proto 50'. حركة على البروتوكول 50 أو منفذ UDP 4500 بينما تعتقد أن TCP مستخدم تعني أن الطرفين لم يتفقا أبدًا على البديل. التقط على البوابة أيضًا إن أمكن، لأن الالتقاط من جهة العميل لا يمكنه إظهار ما أرسله الطرف البعيد.

اقبل على أربع مراحل منفصلة

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

StageWhat you checkWhat it proves
1TCP connection established to 4500A listener exists and the path permits it
2IKE_SA authenticated in the gateway logBoth peers agreed on the encapsulation
3CHILD_SA installed, visible with ip xfrm stateKeys exist for the protected traffic
4A new application exchange succeedsThe data path works, not just the control path

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

الاسترجاع، وتكلفة إبقائه مشتعلًا

خطّط للتراجع قبل التغيير: أوقف خيار التغليف على الطرفين وأكّد عودة النفق عبر UDP. احتفظ بقاعدة TCP لدورة مراجعة واحدة في حال احتجت البديل مجددًا، ثم أزلها. المستمع غير المستخدم على 4500 مساحة سطح بلا قيمة تشغيلية.

راقب بصمة الأداء بمجرد أن يحمل عملًا حقيقيًا. يضيف TCP داخل TCP طبقات إقرار تتوقف عند فقد واحد، ويمكن للتدفقات التي تتشارك اتصالًا واحدًا أن تحجب بعضها، لذا قِس التطبيق الذي سيستخدم النفق بدلًا من قياس ping.

قائمة القبول

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

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

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