حالة Cloud VPN: اقرأ حالة المورد قبل سجل IKE
يبلّغ النفق المُدار عن التخصيص وIKE وحركة المرور الموجّهة كمراحل منفصلة. اربط كائنًا واحدًا ونافذة زمنية واحدة قبل تعديل النظير.
يعمل نفق Cloud VPN بدورتي حياة في الوقت نفسه، وهما ليستا على الساعة ذاتها. يجب تخصيص المورد وتهيئته قبل أن يتمكن من التفاوض، وبعد ذلك يكون للبروتوكول تسلسله الخاص من رسائل IKE. ويمكن لحقل الحالة أن يبلّغ عن الأولى بينما لا يقول شيئًا مفيدًا عن الثانية. وقراءتهما كشيء واحد هي الطريقة التي يُحمَّل بها عدم تطابق المفتاح مسؤولية تأخر التجهيز.
ابدأ بكائن نفق واحد ونافذة زمنية واحدة.
دورتا حياة وكائن نفق واحد
دورة حياة المورد هي تهيئة المزوّد للنفق: العناوين، والتهيئة، والسعة. أما دورة حياة البروتوكول فتبدأ عندما يمتلك الطرفان تهيئة كافية لتبادل IKE_SA_INIT، ثم IKE_AUTH، ثم ارتباطات الأمان الفرعية. والنفق الذي لا يزال في المرحلة الأولى لم يفشل في المصادقة، لأن المصادقة لم تُجرَّب بعد.
هذا التمييز هو المشكلة كلها. وكل ما عدا ذلك هو كيفية ملاحظته دون دمج رسائل غير مترابطة.
اقرأ الكائن، لا ملخص وحدة التحكم
اطلب من واجهة API الحقلين المهمين فقط دون غيرهما، ليبقى الجواب صغيرًا بما يكفي لقراءته في الثالثة صباحًا: gcloud compute vpn-tunnels describe NAME --region REGION --format="yaml(status,detailedStatus)". يسمّي حقل status مرحلة دورة الحياة، ويحمل detailedStatus السبب المقروء المرتبط بها. وتفريغ التهيئة الكامل يجيب عن أسئلة مختلفة ويصعب لصقه في تذكرة. ومثل هذه الاستدعاءات للقراءة فقط لا يمكنها تغيير النفق، وهذا مهم ما دامت الحادثة قائمة.
سجّل الطابع الزمني للاستدعاء إلى جانب القيم، لأن الحقلين يتغيّران.
ALLOCATING_RESOURCES ليس عدم تطابق في المفتاح
عندما يبلّغ النفق عن ALLOCATING_RESOURCES، يكون المزوّد ما زال يجمّع الكائن. ولا يمكن ملاحظة عدم تطابق مفتاح مشترك مسبقًا في تلك المرحلة، كما أن انسداد منفذ النظير غير مُثبت بالمثل. وما يمكنك فحصه هو الرسالة التفصيلية، وما إذا كان المشروع والخدمة يبدوان سليمين، وما إذا كانت تهيئة النفق مكتملة بما يكفي ليتصل به النظير أصلًا. واستبدال السر الآن يغيّر قيمة لم تُختبر قط.
انتظر حتى تتحرك الحالة قبل أن تستنتج شيئًا عن التهيئة.
ESTABLISHED هو بداية فحوص الوصول
النفق القائم يعني أن IKE اكتمل، لا أن حركة المرور تتدفق. تحقّق من المسارات التي يحملها النفق، وحيث يوجد Cloud Router، تحقّق من جلسة BGP والبادئات التي تعلّمها. ثم اختبر تبادلًا تطبيقيًا مسموحًا، لأن قاعدة جدار حماية أو مسارًا ناقصًا يمكن أن يحجب حركة المرور عبر نفق سليم تمامًا. وكل واحد من ذلك ملاحظة منفصلة بإصلاح منفصل.
الحالة تخبرك بالسؤال التالي الذي يجب أن تطرحه. وهي لا تجيب أبدًا عن سؤال الوصول بدلًا عنك.
اربط كائنًا واحدًا ونافذة زمنية واحدة
فشل مصادقة قديم في السجل ينتمي إلى محاولة أسبق، إلا إذا وقع طابعه الزمني داخل النافذة التي تبحث فيها. اسحب سجلات مورد النفق للدقائق نفسها التي سجّلت فيها الحالة، واحتفظ بالمعرّفات معًا. وقد يُظهر حدث IKE لاحق أن التفاوض بدأ بينما رسالة وحدة التحكم التي تحدّق فيها صارت قديمة بالفعل.
إذا تعافى النفق قبل أن تجمع أي شيء، فقل ذلك. فالسبب غير المحدَّد سجل أفضل من قصة واثقة جُمعت من سطور غير مترابطة.
الخطوة التالية دائمًا بالشكل نفسه: كائن واحد، نافذة واحدة، مرحلة واحدة. وكل ما هو أوسع من ذلك ملخص، لا تشخيص.