خط وضعیتی را بخوانید که می‌گوید 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'

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

وقتی شمارش واقعاً غلط است

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

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

مقالات مرتبط