تدوير مفتاح PSK لـ AWS VPN: أي نفق يسقط، ومتى
تغيير المفتاح المشترك مسبقًا لنفق واحد في AWS VPN يُسقط ذلك النفق حتى يتفق الطرفان. أثبت المسار البديل أولًا، ثم دوّر نفقًا واحدًا في كل مرة.
يسقط النفق في اللحظة التي يختلف فيها الطرفان حول المفتاح المشترك مسبقًا، ويبقى ساقطًا حتى يحمل الجانبان القيمة الجديدة. هذا الجزء متوقع: تعتبر AWS التغيير انقطاعًا للنفق المحدد، ولن يُكمل النظير IKE ما دام المفتاحان مختلفين. ما يفاجئ الناس هو النصف الثاني. لا يمتص النفق الآخر حركة المرور من تلقاء نفسه إلا إذا تحققت من قدرته على حملها. دوّر بهذا الترتيب وتبقى الانقطاع داخل نفق واحد.
ما يحدث فعليًا عند تغيير المفتاح
تعيد ModifyVpnTunnelOptions كتابة خيارات نفق واحد يُحدَّد بعنوان IP الخارجي الخاص به. يُهدم النفق ويُعاد بناؤه، لذا يتفاوض IKE وIPsec من الصفر بالمفتاح الجديد. تذكر AWS أن الانقطاع قد يستمر عدة دقائق، وهو وقت كافٍ لبروتوكول توجيه أن يلاحظه. النفق الآخر في الاتصال نفسه لا يتأثر بالاستدعاء.
هناك أثر ثانٍ يجدر معرفته قبل أن ترسل أي شيء. تأخذ عملية التعديل مجموعة خيارات النفق كاملة، لذا يُعاد كتابة أي حقل تتركه بالقيمة الافتراضية. إذا كنت قد ضبطت أعمار المرحلة 1 أو المرحلة 2، أو إعدادات اكتشاف النظير الميت، فمرّر القيم الحالية في الطلب نفسه أو خطط لاستعادتها بعده.
اقرأ القيم الحالية أولًا، ثم غيّر حقلًا واحدًا. هذا التسلسل هو كل انضباط هذه المهمة.
طابق نفق AWS مع النظير الصحيح أولًا
تسمّي وحدة التحكم الأنفاق حسب الترتيب، وجهازك لا يستخدم هذه التسمية. حدّد النفق بعنوان IP الخارجي الخاص به وطابقه مع مقطع النظير على بوابة العميل. النفق 1 في إعداد محلي ليس دليلًا على أنك تعدّل النفق الذي تسميه AWS النفق 1.
ابدأ من الاتصال نفسه، الذي يسرد النفقين والمفتاح الذي يحمله كل منهما حاليًا:
aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
--query "VpnConnections[0].Options.TunnelOptions[].[OutsideIpAddress,PreSharedKey]"المفتاح الذي يعود هو المستخدم الآن. قارنه بإعداد النظير قبل أن تغيّر أي شيء، لأن اختلافًا موجودًا مسبقًا يفسر نفقًا لم يكن مستقرًا أصلًا.
اجعل النفق الآخر يحمل حركة المرور أولًا
وجود نفقين في اتصال واحد لا يثبت أن جهازك أعدّ كليهما، ولا أن كليهما يعلن البادئات التي تحتاجها، ولا أن حركة المرور تنتقل بينهما. تحقق من تفاوض النفق البديل ومساره وتدفق تطبيق حقيقي في الاتجاهين. مع BGP، التجاور النشط دليل مفيد لكنه ليس مثل تأكيد البادئات. مع التوجيه الثابت، تأكد من كيفية اختيار البوابة للمسار وما تفعله عندما يختفي المسار المفضل.
إذا لم يستطع البديل حمل عبء العمل، فجدول الانقطاع أو أصلح النفق البديل قبل أن تلمس المفتاح. ضوء الحالة في صفحة وحدة التحكم ليس وعدًا بخدمة متواصلة.
دوّر نفقًا واحدًا، ثم تحقق بحركة مرور حقيقية
بعد إثبات المسار البديل، يكون التسلسل قصيرًا. سجّل عنوان النفق ونظيره والإعدادات غير السرية، واحتفظ بمسار إداري إلى البوابة لا يعتمد على النفق الذي أنت على وشك كسره.
- حدّث نظير بوابة العميل للعنوان الخارجي المحدد، أو جهّز التغيير لينفذ بعد ثوانٍ من استدعاء API.
- أرسل استدعاء التعديل بالمفتاح الجديد مع الأعمار الحالية وقيم DPD.
- انتظر عودة IKE وIPsec، ثم أكّد المسارات والبادئات المطلوبة.
- مرّر تدفق تطبيق ممثلًا عبر ذلك النفق وراقب الاتجاهين.
النفق غير صالح للاستخدام ما دام الطرفان مختلفين وما دامت AWS تطبق التعديل، لذا يجب أن يتبع تحديث النظير فورًا لا بعد الغداء. فقط عندما يحمل النفق المتغيّر حركة مرور حقيقية ينبغي أن تكرر الإجراء على النفق الآخر.
توقف إذا كان الاسترداد أو التوجيه لا يزال غير مؤكد بعد النفق الأول. نفقان يعملان نصف عمل أسوأ من نفق تعرف أنه يعمل.
عندما يتعثر الاسترداد، اقرأ جانب IKE
النفق الذي يبقى ساقطًا بعد أن يحمل الطرفان المفتاح الجديد يكون عادةً عدم تطابق في السياسة كشفه التدوير ولم يخلقه. يجب أن تتفق المقترحات والهوية التي يرسلها النظير ومحددات حركة المرور جميعًا مع جانب AWS، وقيمة نجت من نفق قائم قد تُرفض مع ذلك أثناء تفاوض جديد. اقرأ حالة التفاوض والرسالة المرفقة بها قبل أن تغيّر المفتاح مرة ثانية.
aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
--query "VpnConnections[0].VgwTelemetry[].[OutsideIpAddress,Status,StatusMessage]"إذا كان لا بد من التراجع عن التغيير، فلا تستعد المفتاح القديم لمجرد أنه كان يعمل سابقًا. اعتبر المفتاح المخترق مخترقًا وأصلح التفاوض بدلًا من ذلك. أنهِ العمل مع التحقق من كلا النفقين وتحديث جرد الأسرار بحيث يسجل كل نظير القيمة التي يحملها، واحتفظ بوثائق خيارات نفق AWS بجوار دليل التشغيل.