تونل بالا آمد، ping پاسخ داد و همه تأیید کردند. چهار ساعت بعد نشست قطع می‌شود، همتاها خطای پیشنهاد یا تبادل کلید ثبت می‌کنند و نخستین گمان این است که چیزی در شبکه تغییر کرده است. چیزی تغییر نکرد. تونلی که ترافیک را حمل می‌کند اثبات کرده است که دو همتا در نحوه احراز هویت و نحوه محافظت از نخستین انجمن فرزند توافق دارند و هیچ چیزی درباره تبادل کلیدی که در تجدید مطالبه خواهند کرد اثبات نکرده است. ناسازگاری در شکاف میان این دو رویداد نشسته است.

متصل بودن به معنای توافق تنظیمات PFS نیست

با IKEv2، نخستین انجمن فرزند در جریان تبادل احراز هویت ساخته می‌شود و کلیدهای آن از موادی مشتق می‌شوند که انجمن IKE پیش‌تر تولید کرده است. برای آن فرزند تبادل Diffie-Hellman جداگانه‌ای رخ نمی‌دهد، بنابراین سیاستی که در تجدید چنین چیزی را الزام می‌کند، هنگام برپایی آزموده نمی‌شود.

تجدید تبادلی دیگر است. وقتی کلید یک انجمن فرزند تجدید می‌شود، همتاها می‌توانند با گروهی که در پیشنهادهایشان نام برده شده تبادل کلید تازه‌ای انجام دهند و این نخستین لحظه‌ای است که تنظیمات گروه مقایسه می‌شود. بنابراین دو همتای ناسازگار می‌توانند احراز هویت کنند، انجمن فرزند نصب کنند و ترافیک را عبور دهند و سپس در تجدید شکست بخورند.

ناسازگاری کجای رشته پیشنهاد پنهان می‌شود

در strongSwan گروه به پیشنهاد فرزند افزوده می‌شود، به همین دلیل رشته‌ای مانند aes256gcm16-prfsha256-ecp256 شبیه یک انتخاب رمزنگاری به نظر می‌رسد اما الزام تبادل کلید را هم حمل می‌کند. همتایی که تنها aes256gcm16-prfsha256 ارائه می‌دهد چنین الزامی ندارد و دو فهرست در رمزنگاری مشترک‌اند اما در تبادل اختلاف دارند.

پیشنهاد فرزند و پیشنهاد IKE را دو فهرست جدا بخوانید. گروهی که در فهرست IKE ظاهر می‌شود چیزی درباره فهرست فرزند نمی‌گوید، و ویرایش یکی هنگام خواندن دیگری راه معمول از دست رفتن همین نکته است.

شکست را بخوانید، نه فایلی را که ویرایش کردید

notify‌ای را پیدا کنید که تبادل را پایان داد. تجدید کلید فرزندی که «هیچ پیشنهاد قابل قبولی نیست» برمی‌گرداند به فهرست‌های پیشنهاد اشاره دارد؛ درخواست تجدیدی که هرگز پاسخ نمی‌گیرد به مسیر یا به همتایی اشاره دارد که گوش دادن را متوقف کرده است. این دو اصلاح‌های متفاوتی می‌خواهند و جمله‌بندی خط گزارش آن‌ها را جدا می‌کند.

پیکربندی در حال اجرا را تأیید کنید، نه پیکربندی روی دیسک را. فایلی که ذخیره شده اما بارگذاری نشده، یا اتصالی که از include دیگری دوباره خوانده شده، ناسازگاری‌ای می‌سازد که هیچ ویرایشی روی فایل مرئی آن را درست نمی‌کند.

سه رویداد که همه به آن‌ها تجدید کلید می‌گویند

تجدید کلید انجمن IKE، احراز هویت مجدد IKE و تجدید کلید انجمن فرزند عملیات‌های جدایی با قواعد پیشنهاد جداگانه هستند. شکستی که در یکی از آن‌ها گزارش شود چیزی مستقیماً درباره بقیه نمی‌گوید، و گزارشی که آن‌ها را مخلوط می‌کند وقتی سه تاست مانند یک نقص تکرارشونده خوانده می‌شود.

توجه کنید همتا کدام رویداد را نام می‌برد، سپس پیشنهادها را فقط برای همان رویداد بررسی کنید. یک فهرست را تغییر دهید، دوباره بارگذاری کنید و همان رویداد را دوباره اجبار کنید. اگر گزارش احراز هویت مجدد را نام ببرد، پیشنهاد IKE همان است که باید خواند. اگر تجدید کلید فرزند را نام ببرد، پیشنهاد فرزند گروهی را حمل می‌کند که اهمیت دارد.

خاموش کردن تجدید راه‌حل نیست

صفر کردن زمان تجدید کلید تبادلی را که شکست می‌خورد سرکوب می‌کند و تونل سپس تا زمانی که برچیده شود یا همتا دوباره راه‌اندازی شود زنده می‌ماند. آنچه خریده‌اید کلیدی با عمر بیشتر و ناسازگاری‌ای است که در یک مهاجرت، یک ممیزی یا یک به‌روزرسانی از سوی فروشنده دوباره به شما می‌رسد. همین برای عمرهایی صادق است که بسیار فراتر از سیاست مورد انتظار طرف دیگر کشیده شده‌اند.

به‌جای آن پیشنهادها را هم‌تراز کنید. گروهی را انتخاب کنید که هر دو همتا پیاده‌سازی می‌کنند، آن را در پیشنهاد فرزند در هر دو سر بگذارید و سیاست تجدید را در محدوده‌ای نگه دارید که سازمان واقعاً می‌خواهد.

با همان تبادلی که شکست خورد اثباتش کنید

زمان تجدید کلید فرزند را در یک پنجره نگهداری کوتاه کنید تا رویداد به‌جای ساعت‌ها در چند دقیقه برسد، یا یک تجدید دستی را راه بیندازید. سپس مراقب یک تجدید موفق باشید و تأیید کنید که ترافیک از داخل آن ادامه می‌یابد، چون دست‌دادن تازه‌ای که انجمن فرزند را نصب می‌کند اما جریان برنامه را می‌اندازد نقصی دیگر است.

پس از آن عمر عادی را بازگردانید و هر دو سابقه رویداد را نگه دارید، شکست‌خورده و موفق. شاهدی که می‌خواهید این است که اتصال چرخه حیات خودش را از سر بگذراند، نه اینکه از یک ping جان به در برده باشد.

مقالات مرتبط