Amirali Yaghoutiمهندس ارشد نرم‌افزار

مطالعه موردی مهندسی

نگهبان نرم WireGuard

تونل وایرگارد تا مدت‌ها بعد از اینکه دیگر ترافیکی عبور نمی‌دهد، همچنان خودش را «متصل» اعلام می‌کند. همین فاصله کل مسئله است: اینترفیس سالم است، کار نمی‌چرخد، و آخرش از یک دستور شکست‌خورده می‌فهمی، نه از خود VPN.

مسئله تجاری

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

آنچه تحویل دادم

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

رویکرد فنی

  • سلامت یعنی ترافیک به آن سر برسد. هر بررسی‌ای که به وضعیت اینترفیس یا فرایند تکیه کند، دقیقاً همان خرابی‌ای را که این ابزار برای گرفتنش ساخته شده «سالم» گزارش می‌کند.
  • بازیابی به‌جای تعمیر جزئی، کل نشست را ری‌استارت می‌کند؛ روی یک تونل بدون اتصال، همین راه‌حل خشن قابل اتکاترین است.
  • شکست‌ها فقط رفع نمی‌شوند، لاگ هم می‌شوند. لاگ است که شبکه‌ی بی‌ثبات را از مشکل پیکربندی جدا می‌کند.
  • روی خود ماشین کلاینت اجرا می‌شود؛ تنها نقطه‌ای با دید واقعی به اینکه تونل از محل مصرفش کار می‌کند یا نه.

نتیجه و شواهد

تونل در حالت عادی خودش را درست می‌کند، و لاگ شکست‌ها الگو را از حرف و خاطره به داده‌ی قابل دیدن تبدیل کرد؛ چیزی که روش دستی هیچ‌وقت نداشت.

اهمیت برای کارفرما

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

خلاصه-اجرایی-پروژه

خلاصه اجرایی خوانا

خلاصه_اجرایی {
  پروژه: "WireGuard Soft-Fix Watchdog"
  اجرا_روی: "ماشین کلاینت (مک)"
  تعریف_سلامت: "ترافیک به آن سر می‌رسد --
                 نه وضعیت اینترفیس یا فرایند"
  بازیابی: "ری‌استارت نشست؛ ساده و قابل اتکا"
  سابقه: "شکست‌ها در طول زمان لاگ می‌شوند تا الگو رو بیاید"
  چه_چیزهایی_را_می‌گیرد: "خواب/بیداری، تغییر شبکه، توقف بی‌صدا"
}

ارزش حرفه‌ای این پروژه

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

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