
در شبکه خانگی، محدودیت CGNAT (Carrier-Grade NAT یا ترجمه آدرس شبکه در سطح اپراتور) چیزی نیست که کاربر بتواند درباره آن مذاکره کند؛ بلکه واقعیتی است که تحمیل میشود. یکی از کاربران هوملب که بیش از یک سال با این محدودیت دستوپنجه نرم کرده بود، تجربه خود را از روزی روایت میکند که اپراتور اینترنتش سرانجام یک IP عمومی (Public IP) در اختیارش گذاشت و همین تغییر ساده، معماری چندلایهای را که طی ماهها ساخته بود، از بنیان دگرگون کرد.
استکی که CGNAT آن را ساخت
این زیرساخت از ابتدا با نقشهای دقیق ساخته نشده بود. نقطه شروع، تنها یک سرویس بود: Jellyfin. زمانی که نیاز به دسترسی از راه دور مطرح شد، کاربر متوجه شد اتصالش پشت CGNAT قرار دارد و از آن لحظه، زنجیرهای از راهحلهای موقت آغاز شد که امروز به یک ساختار پیچیده و بههمپیوسته تبدیل شده است.
نخستین گزینه، Tailscale بود؛ ابزاری که برای شروع بسیار مناسب به نظر میرسید. اما بهمحض اشتراکگذاری Jellyfin با یکی از دوستان، مشکل آشکار شد: برای تماشای محتوا، آن دوست نیز باید Tailscale را نصب میکرد، وارد حساب کاربری میشد و سپس Jellyfin را باز میکرد. همین پیچیدگی باعث شد تمام سرویسهایی که قرار بود عمومی باشند، به Cloudflare Tunnel منتقل شوند؛ راهکاری که چند ماه بینقص کار کرد.
با این حال، سیاستهای Cloudflare درباره میزبانی سرویسهای استریم از طریق تونل، همراه با دغدغههایی مانند وابستگی به سرویس ابری و از دست رفتن کنترل، کاربر را به سمت جایگزینها سوق داد. در نهایت Pangolin، یک پلتفرم SASE (Secure Access Service Edge) خودمیزبان مبتنی بر WireGuard، روی یک سرور مجازی (VPS) مستقر شد و همه سرویسهای تونل Cloudflare به آن منتقل شدند.
در همین بازه، گزینههای خودمیزبان دیگری نیز آزمایش شدند: Headscale که جایگزین زیرساخت ابری Tailscale شد و NetBird، پلتفرم شبکهسازی با معماری اعتماد صفر (Zero-Trust) و مبتنی بر WireGuard. در پایان، Pangolin و NetBird باقی ماندند و به یک VPS ارزانقیمت جداگانه منتقل شدند. یک اپراتور دوم اینترنت (که آن هم پشت CGNAT بود) نیز برای افزایش پایداری به مجموعه اضافه شد.
تا پیش از این تغییر، هوملب روان و قابل اتکا بود: دو اپراتور اینترنت برای تأمین دسترسی، یک لپتاپ کاری هشتساله که به سرور خانگی تبدیل شده بود برای پردازش، یک NAS قدیمی Synology برای ذخیرهسازی انبوه سرویسهایی مانند Jellyfin، Immich و Nextcloud، و یک VPS ارزان بهعنوان دروازه ورودی. محدودیتی که موقتی پنداشته میشد، به یک قید دائمی در طراحی تبدیل شده بود.
IP عمومی دقیقاً چه چیزی را تغییر داد
همهچیز با پیشنهاد ویژه اپراتور اصلی برای واگذاری IP عمومی تغییر کرد. با توجه به زندگی در منطقهای روستایی، شمار اپراتورهای قابل انتخاب محدود است و هزینه اعلامشده برای IP عمومی همیشه بیش از نیمی از هزینه ماهانه اتصال بود. اما وقتی اپراتور اصلی در طرح سالگرد، این سرویس را با یکدهم هزینه ماهانه عرضه کرد، فرصت از دست نرفت.
نخستین تصور این بود که اکنون دسترسی مستقیم به سرور خانگی ممکن است؛ اما بهمحض انجام هدایت پورت (Port Forwarding) روی گیتوی دومداره ER605، نخستین مانع ظاهر شد. هدایت پورت کار نکرد، زیرا نوع اتصال روی ER605 در حالت Dynamic تنظیم شده بود و در نتیجه IP عمومی روی ONT ارائهشده از سوی اپراتور خاتمه مییافت.
تلاش بعدی، حذف لایه دوم NAT و انتقال نشست PPPoE به خود گیتوی از طریق حالت بریج (Bridge Mode) بود؛ اما اتصال برقرار نشد. حتی کلون کردن آدرس MAC دستگاه ONT نیز نتیجهای نداشت و احتمالاً اپراتور محدودیتی اعمال کرده بود. سرانجام پس از ساعتها آزمایش مشخص شد که ONT اپراتور از پیش قابلیتهای DMZ و سرورهای مجازی (Virtual Servers) را در اختیار میگذارد. DMZ از قبل فعال بود و کاربر بدون دستزدن به آن، سرورهای مجازی موردنظر را که پیشتر در ER605 تعریف کرده بود، در ONT بازتاب داد.
در نهایت دسترسی مستقیم به سرویس هوملب از طریق IP عمومی ممکن شد. اما نکته غافلگیرکننده این بود که با غیرفعال کردن DMZ، دسترسی عمومی از کار افتاد و با بازگرداندن آن دوباره برقرار شد؛ یعنی این DMZ بود که ترافیک را حمل میکرد، نه سرورهای مجازی. پس از آن، Nginx Proxy Manager (NPM) مستقر شد و پورتهای ۸۰ و ۴۴۳ هدایت شدند تا زنجیره نهایی به این شکل درآید: ONT DMZ ← ER605 (هدایت ۸۰/۴۴۳) ← سرور خانگی (NPM).
نیمی که ماند و ریسکی که پذیرفته شد
IP عمومی ارزان بود، اما قرار گرفتن در معرض اینترنت، ارزان نبود. با این حال حذف کامل VPS تصمیم دشواری بود، زیرا این سرور دو نقش کلیدی داشت: ورود عمومی (Public Ingress) و دسترسی خصوصی. Pangolin بههمراه CrowdSec مسئول بخش دسترسی عمومی بود و NetBird نیز دسترسی خصوصی به سرویسهای مدیریتی را فراهم میکرد.
در نهایت راهحل میانه انتخاب شد: VPS حذف شد، اما نیمی از وظایف آن حفظ شد. سرویسهایی که Pangolin در جلوی آنها قرار داشت، پشت NPM منتقل شدند و بهجای بازگشت به Tailscale، NetBird روی VPS قدیمیتری که از قبل اجاره شده بود و ظرفیت کافی داشت، مستقر شد.
مهمترین پیامد این تغییر، دگرگونی مدل امنیتی بود. پیشتر شبکه خانگی مستقیماً در معرض اینترنت نبود؛ Pangolin آن را پنهان نگه میداشت و CrowdSec ترافیک را فیلتر میکرد. اما اکنون گیتوی ER605 به دروازه اصلی میان شبکه محلی (LAN) و اینترنت تبدیل شده است.
یک مصالحه دیگر نیز پس از مهاجرت آشکار شد: اپراتور دوم اینترنت برای افزایش پایداری اضافه شده بود، اما اکنون که دسترسی عمومی از طریق NPM به اپراتور اصلی وابسته است، قطعی آن به معنای از دست رفتن سرویسهای عمومی خواهد بود. دسترسی خصوصی بهواسطه NetBird همچنان برقرار میماند و همین موضوع، پذیرش این مصالحه را ممکن کرد.
مشکل رفت، راهحلها ماندند
CGNAT کاربر را وادار کرده بود زیرساختی بسازد که بتواند به آن تکیه کند؛ اما بهمحض دریافت IP عمومی، نیمی از آن زیرساخت بیاستفاده شد. IP عمومی مصالحههایی به همراه داشت، اما یک مشکل واقعی را حل کرد. اکنون دسترسی عمومی و دسترسی خصوصی، الگوهای خرابی متفاوتی دارند و همین تفکیک، ارزش هزینه را دارد. CGNAT یک استک کامل ساخت، اما آن استک در نهایت یک راهحل موقت بود؛ هر آنچه اکنون بر پایه IP عمومی ساخته شود، یک بهبود واقعی خواهد بود.