CreateYourVPN Academy
دوره: همه‌چیز چگونه کار می‌کند

مانیتورینگ سرور و شبکه مش

CreateYourVPN چطور مراقب سلامت سرورهاست: خودبررسی، یک شبکه مش از بررسی‌های متقابل میان سرورها، و پنهان‌سازی خودکار سرورهای غیرقابل‌دسترس از کاربران.

یک سرور می‌تواند در بدترین لحظه ممکن ناامیدتان کند: سرویسی از کار می‌افتد، ارائه‌دهنده ماشین را راه‌اندازی مجدد می‌کند — یا بدتر از همه، سرور در کشور یک کاربر مسدود می‌شود و با اینکه فنی روشن است، دیگر در دسترس نیست. کاربرانتان هرگز نباید متوجه هیچ‌کدام از این‌ها شوند. این درس درباره این است که CreateYourVPN چطور مراقب سرورهای شماست و وقتی یکی از آن‌ها دچار مشکل شود چه اتفاقی می‌افتد.

دو لایه بررسی

سیستم به هر سرور از دو زاویه نگاه می‌کند.

۱. سرور خودش را بررسی می‌کند

هر چند دقیقه یک‌بار، هر سرور گزارش می‌دهد: آیا شنونده ترافیک روی پورت ۴۴۳ زنده است، و آیا سرویس VPN در حال اجراست؟ متریک‌های درس ۳ همراه با همان گزارش می‌رسند. اگر گزارش بگوید «حالم خوب نیست»، سرور وضعیت «سرور در دسترس نیست» می‌گیرد. اگر گزارش‌ها کاملاً قطع شوند، وضعیت به «داده‌ای از سرور دریافت نشد» تبدیل می‌شود — ممکن است ماشین خاموش شده یا شبکه‌اش را از دست داده باشد.

۲. سرورها به «در همدیگر می‌زنند»

خودبررسی نمی‌تواند موذیانه‌ترین مورد را بگیرد: سروری که باور دارد سالم است، اما از بیرون قابل‌دسترسی نیست — مثلاً آی‌پی‌اش مسدود شده. به همین دلیل همه سرورهای شما در یک شبکه مش از بررسی‌های متقابل به هم می‌پیوندند: هر سرور به‌طور منظم سعی می‌کند به هر همسایه دسترسی پیدا کند — درست همان‌طور که برنامه یک کاربر این کار را می‌کند.

از آنجا، یک «رأی‌گیری» وارد عمل می‌شود:

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

این دقیقاً همان طرحی است که مسدودی‌ها را می‌گیرد: اگر سروری در کشوری مسدود شود که سرورهای دیگرتان هم در آن هستند، همسایه‌های آن کشور به‌زودی دسترسی به آن را از دست می‌دهند، حد نصاب شکل می‌گیرد، و سیستم سرور را غیرقابل‌دسترس علامت می‌زند. در همین حال، سرورهای کشورهایی بدون مسدودی همچنان آن را می‌بینند — و این اختلاف نظر، تصویر را واضح می‌کند.

وقتی بررسی اتصال میان دو سرور انجام نمی‌شود

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

با این حال ما متوجه می‌شویم، اما صادقانه می‌گوییم چه چیزی را نمی‌دانیم. از «A، B را نمی‌بیند» نمی‌توان نتیجه گرفت نشانی کدام‌یک مسدود است: این یک و همان گزاره دربارهٔ مسیر میان آن دو است و از بیرون هر دو حالت یکسان به نظر می‌رسند. بنابراین:

  • به‌طور پیش‌فرض هیچ‌کس را متهم نمی‌کنیم. نقاط ورود سمتی که بررسی به آن نمی‌رسد را «در دسترس نیست» علامت می‌زنیم، و اگر بررسی در هیچ‌یک از دو جهت انجام نشود، نقاط ورود هر دو سمت را. در دلیل نام هر دو سرور می‌آید (با باز کردن یکی از نقاط ورود در کارت سرور دیده می‌شود). تصمیم دربارهٔ اینکه کدام سرور را عوض کنید با شماست: معمولاً همان سروری که مشتریان شما به آن نمی‌رسند.
  • هیچ‌کدام پنهان نمی‌شود. پنهان کردن جفت، یک سرور کاملاً سالم را هم همراه دیگری از اشتراک بیرون می‌برد. مشتریان همچنان نقاط ورود هر دو سرور را دریافت می‌کنند و توزیع بار صرفاً سرورهای سالم را ترجیح می‌دهد، اگر مسیر چنین سروری داشته باشد.

سرور بررسی‌کننده

برای گرفتن پاسخ دقیق به‌جای «یکی از آن دو»، سروری را که به بررسی‌اش اعتماد دارید علامت بزنید: کارت سرور → «از این سرور برای بررسی مسدودبودن بقیه استفاده کن».

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

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

برای یک سرور مشکل‌دار چه اتفاقی می‌افتد

وضعیت‌ها مستقیماً به توازن بار تغذیه می‌شوند: سرورهایی با وضعیت‌های «سرور در دسترس نیست» و «از سرورهای شما در دسترس نیست» از چرخش بیرون کشیده می‌شوند — هیچ اتصال جدیدی به سمت آن‌ها فرستاده نمی‌شود، و در اشتراک‌های کاربران جای آن‌ها را سرورهای سالم از همان مسیرها می‌گیرند. تنها استثنا جفت قطع‌شده بدون سرور بررسی‌کننده است: آنجا نقاط ورود علامت می‌خورند، اما هیچ‌کدام کنار گذاشته نمی‌شود.

در همان حال، سیستم محتاط است — بر اساس اصل «آسیبی نرسان» ساخته شده:

  • یک مسیر هرگز خالی رها نمی‌شود. اگر همه سرورهای یک مسیر «بد» شوند، سیستم بهترین گزینه موجود را به کاربران خدمت می‌دهد به‌جای یک فهرست خالی — وگرنه برنامه‌ها تصمیم می‌گیرند سرورها ناپدید شده‌اند و آن‌ها را پاک می‌کنند.
  • سکوت حکم نیست. وضعیت «داده‌ای از سرور دریافت نشد» به‌تنهایی سرور را از چرخش خارج نمی‌کند: بدون داده تازه، سیستم حرکت ناگهانی‌ای انجام نمی‌دهد.

همه‌چیز خودش را ترمیم می‌کند

هیچ‌کدام از وضعیت‌ها برای همیشه «می‌چسبد» — وضعیت از داده‌های تازه دوباره استنتاج می‌شود:

  • سرور دوباره گزارش سالم می‌فرستد ← «سرور در دسترس نیست» برداشته می‌شود؛
  • همسایه‌ها دوباره به آن دسترسی پیدا می‌کنند ← رشته شکست بازنشانی می‌شود، و نشان «از سرورهای شما در دسترس نیست» ناپدید می‌شود؛
  • گزارش‌ها از سر گرفته می‌شوند ← «داده‌ای از سرور دریافت نشد» ناپدید می‌شود.

سرور را تعمیر کنید (یا صبر کنید تا مسدودی‌اش برداشته شود) — و خودش دوباره وارد سرویس می‌شود. هیچ «دوباره روشنش کن» دستی لازم نیست.

کجای پنل این را ببینیم

کارت هر کاربر را باز کنید ← فهرست سرورهای او: کنار هر سرور یک نقطه وضعیت هست، و وقتی چیزی خراب است — یک عنوان با دلیل: «سرور در دسترس نیست»، «از سرورهای شما در دسترس نیست» (شامل اینکه چند سرور شما نمی‌توانند آن را ببینند)، یا «داده‌ای از سرور دریافت نشد». نشانه‌های غیرمستقیم هم روی کارت‌های سرور دیده می‌شوند: نشان «قدیمی» روی متریک‌ها و «بدون داده — عامل پاسخ نمی‌دهد».

بررسی‌های مش بسیار مقتصدند: تماس‌های آزمایشی کوچکی با سقف حجم روزانه سخت‌گیرانه‌اند — هیچ تأثیری روی ترافیک یا کارایی سرورهای شما ندارند.

نکات کلیدی

  • دو لایه کنترل: یک سرور خودش را بررسی می‌کند، و همسایه‌های مش آن از بیرون بررسی‌اش می‌کنند.
  • مسدودی‌ها با «رأی‌گیری» چند سرور شناسایی می‌شوند — بدون هراس از یک لغزش موردی.
  • سرورهای مشکل‌دار از چرخش خارج می‌شوند؛ کاربران بی‌سروصدا به سرورهای سالم منتقل می‌شوند.
  • همه‌چیز خودش ترمیم می‌شود: به‌محض اینکه سروری دوباره زنده شود، به‌طور خودکار بازمی‌پیوندد.
  • اگر بررسی اتصال میان جفتی از سرورها انجام نشود و سرور بررسی‌کننده انتخاب نشده باشد، نقاط ورود سمت غیرقابل‌دسترس (یا هر دو سمت، اگر در هیچ جهتی انجام نشود) را علامت می‌زنیم و هیچ‌کدام را پنهان نمی‌کنیم: تصمیم با شماست.

بعدی

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

On this page