چرا پیمایش NAT هنگامی که شبکه ها اتصالات مستقیم را دشوار می کنند مهم است
برخی از مشکلات اتصال به دلیل برنامه ای که استفاده می کنید نیست. آنها از مسیر شبکه بین دستگاه ها می آیند.
ممکن است وقتی تماسی فوراً در خانه Wi-Fi وصل میشود اما در هتل Wi-Fi با مشکل مواجه میشود، زمانی که یک لابی بازی برای یک بازیکن کار میکند و برای بازیکن دیگر با شکست مواجه میشود، یا زمانی که یک ابزار حفظ حریم خصوصی بعد از جابجایی از دادههای تلفن همراه به یک شبکه اداری متفاوت رفتار میکند، ممکن است متوجه این موضوع شوید. یکی از دلایل رایج NAT است: لایه ترجمه آدرس شبکه که به بسیاری از دستگاه ها اجازه می دهد یک آدرس اینترنتی عمومی را به اشتراک بگذارند.
این مقاله توضیح میدهد که پیمایش NAT چیست، چرا سوراخکاری UDP وجود دارد، زمانی که بازگشتهای رله مفید میشوند، و چرا خوانندگان VPN Satelites باید این مفاهیم را بهعنوان زمینه اتصال بهجای ضمانتهای جادویی در نظر بگیرند.
کاری که NAT در شبکه های روزمره انجام می دهد
اکثر مردم از شبکه های خصوصی بدون فکر کردن به آنها استفاده می کنند. لپ تاپ، تلفن، تبلت و تلویزیون شما ممکن است پشت یک روتر قرار گیرند. در داخل خانه، هر دستگاه آدرس خصوصی خود را دارد. در اینترنت گسترده تر، به نظر می رسد که آنها اغلب یک آدرس عمومی را به اشتراک می گذارند.
آن ترجمه مفید است. این به شبکه ها کمک می کند تا آدرس های عمومی IPv4 را حفظ کنند و مسیریابی معمولی خانه را قابل مدیریت نگه می دارد. اما یک مشکل عملی نیز ایجاد می کند: دستگاهی خارج از شبکه شما معمولاً نمی تواند فقط یک اتصال مستقیم به دستگاهی در داخل شبکه شما باز کند، مگر اینکه روتر بداند که ترافیک ورودی باید به کجا برسد.
برای مرور وب معمولی، این معمولا خوب است. دستگاه شما اتصال را به سمت بیرون شروع می کند، روتر نقشه برداری را به خاطر می آورد و پاسخ ها از طریق آن مسیر موقت برمی گردند. برای برنامههایی که برای ارتباط مستقیمتر به دو نقطه پایانی نیاز دارند، مخصوصاً در UDP، وضعیت میتواند کمتر قابل پیشبینی باشد.
این تنظیم اولیه برای پیمایش NAT است.
NAT Traversal چیست؟
پیمایش NAT یک نام کلی برای تکنیکهایی است که به برنامهها کمک میکند تا در شبکههایی که یک یا هر دو نقطه پایانی پشت NAT قرار دارند، ارتباط برقرار کنند.
به زبان انگلیسی ساده، این برنامه در تلاش است به یک سوال کاربردی پاسخ دهد: “آیا این دو دستگاه می توانند مسیری کارآمد برای یکدیگر پیدا کنند، حتی اگر روترهای آنها آدرس ها را ترجمه کرده و ترافیک ورودی را فیلتر کنند؟”
هیچ پاسخ جهانی واحدی وجود ندارد زیرا رفتار NAT متفاوت است. استانداردهایی مانند IETF RFC 4787 رفتار NAT را برای UDP توصیف می کند و توضیح می دهد که چرا سازگاری برای برنامه های بلادرنگ مانند ارتباطات چند رسانه ای و بازی آنلاین اهمیت دارد. همین مشکل گسترده در بسیاری از دستههای برنامههای مدرن ظاهر میشود: تماسها، ابزارهای همکاری، بازیها، ابزارهای دسترسی از راه دور، سیستمهای همتا به همتا، و برنامههای مشابه VPN، همگی میتوانند تحت تأثیر نحوه مدیریت شبکهها با ترافیک قرار گیرند.
برای خوانندگان VPN Satelites، راه حل مفید ساده است: اگر یک اتصال در بین شبکه ها رفتار متفاوتی داشته باشد، می تواند رفتار روتر، NAT درجه حامل، خط مشی دیوار آتش، فیلتر بسته، ازدحام یا سایر شرایط مسیر را منعکس کند. نباید بهطور خودکار بهعنوان دلیلی برای شکستن تنظیمات یک برنامه خوانده شود.
سوراخ کردن UDP چیست؟
UDP اغلب توسط برنامههای بلادرنگ استفاده میشود، زیرا میتواند از تأخیر و سربار مرتبط با ترافیک اتصال گرا جلوگیری کند. اما UDP یک جلسه طولانی مدت را به همان شکلی که بسیاری از افراد یک اتصال سنتی را تصور می کنند ایجاد نمی کند.
سوراخ کردن UDP یک تکنیک پیمایش NAT است که در آن دو نقطه پایانی هر کدام بستههای خروجی UDP را ارسال میکنند تا دستگاههای NAT آنها نگاشتهای موقتی ایجاد کنند. اگر زمانبندی و رفتار NAT مطابقت داشته باشند، ترافیک از طرف دیگر میتواند از طریق آن نقشهبرداریها بازگردد.
این عبارت تهاجمی به نظر می رسد، اما مفهوم معمولی تر از آن است که از نام آن پیداست. این در مورد کار با قوانین موجود روتر برای ترافیک خروجی و برگشتی است. تحقیقات بنیادی از Bryan Ford، Pyda Srisuresh، و Dan Kegel پانچ کردن سوراخ را به عنوان یک رویکرد عملی که توسط برنامههای مبتنی بر UDP استفاده میشود، توصیف میکند، در حالی که بر یک محدودیت کلیدی نیز تاکید میکند: هیچ تکنیک پیمایشی در هر راهاندازی NAT کار نمیکند.
این محدودیت مهم است. برخی از شبکه ها از نقشه برداری ها به روشی مفید استفاده مجدد می کنند. برخی دیگر نقشههایی را ایجاد میکنند که بیشتر به یک مقصد خاص گره خورده است. برخی از شبکه ها رفتار فایروال را در بالای NAT اضافه می کنند. برخی از شبکه های تلفن همراه و ISP کاربران را در پشت NAT درجه حامل قرار می دهند، جایی که کاربر به هیچ وجه لایه ترجمه بالادستی را کنترل نمی کند.
بنابراین وقتی کسی می پرسد که سوراخ کردن UDP چیست، پاسخ کوتاه این است: این راهی است برای برنامه های کاربردی که از طریق نگاشت های ایجاد شده توسط NAT یک مسیر مستقیم UDP را امتحان کنند. پاسخ دقیق این است: می تواند در بسیاری از محیط ها به خوبی کار کند، اما تضمینی نیست.
چرا اتصالات مستقیم گاهی اوقات با شکست مواجه می شوند
اتصال مستقیم ممکن است به چند دلیل معمولی شکست بخورد:
- هنگامی که یک برنامه با مقاصد مختلف تماس می گیرد، روتر ممکن است از همان نقشه پورت خارجی استفاده مجدد نکند.
- شبکه ممکن است بسته های UDP ورودی را با دقت بیشتری نسبت به شبکه دیگری فیلتر کند.
- یک لایه NAT درجه حامل ممکن است بین کاربر و اینترنت عمومی قرار گیرد.
- شبکه محل کار، مدرسه، هتل یا محل برگزاری ممکن است ترافیک را طبق خط مشی خود محدود کند.
- یک شبکه تلفن همراه ممکن است با تغییر کیفیت سیگنال یا پیوست شبکه مسیرها را تغییر دهد.
- یک محصول امنیتی یا فایروال محلی ممکن است ترافیک را قبل از رسیدن به برنامه مسدود کند.
هیچ یک از این موارد به این معنی نیست که کاربران باید سعی کنند قوانینی را که کنترل نمی کنند دور بزنند. نکته عملی این است که درک کنیم که رفتار اتصال به بیش از یک اولویت برنامه بستگی دارد. اگر شبکه ای عمداً نوعی از ترافیک را مسدود یا محدود کند، گام بعدی درست معمولاً استفاده از یک شبکه مجاز، بررسی شرایط سرویس یا صحبت با سرپرست شبکه است.
جایی که Relay Fallbacks مناسب است
هنگامی که اتصال مستقیم غیرقابل اعتماد باشد، برخی از سیستم ها از یک رله استفاده می کنند: هر دو نقطه پایانی به سمت بیرون به یک سرور میانی متصل می شوند و سرور ترافیک را بین آنها منتقل می کند. IETF RFC 5766 TURN را که مختصر پیمایش با استفاده از رلههای اطراف NAT است، بهعنوان پروتکلی برای ارتباط با کمک رله در شرایطی که ارتباط مستقیم همتا در موقعیتهای خاص NAT امکانپذیر نیست، توصیف میکند.
رله ها مشکلی متفاوت از پیمایش مستقیم NAT را حل می کنند. یک رله می تواند قابلیت دسترسی را بهبود بخشد زیرا هر دو دستگاه فقط باید به سرویس رله دسترسی پیدا کنند. موازنه این است که ترافیک مسیر اضافی را طی می کند، که می تواند تاخیر، هزینه پهنای باند و پیچیدگی عملیاتی را اضافه کند.
به همین دلیل است که بسیاری از طراحی های اتصال ترجیح می دهند ابتدا یک مسیر مستقیم را امتحان کنند، سپس در صورت نیاز به عقب برگردند. IETF RFC 8445 ICE را به عنوان یک رویکرد استاندارد برای پیمایش NAT برای ارتباطات مبتنی بر UDP توصیف می کند که از مفاهیم STUN و TURN برای کشف و آزمایش مسیرهای ممکن استفاده می کند. این بدان معنا نیست که هر ابزار مرتبط با VPN از ICE، STUN یا TURN استفاده می کند. این به سادگی یک الگوی مهندسی مشترک را نشان می دهد: آزمایش کنید که چه مسیری کار می کند، سپس اگر اتصال مستقیم در دسترس نیست از یک بازگشت استفاده کنید.
برای خوانندگان، درس مهم تعیین انتظارات واقع بینانه است. یک رله بازگشتی ممکن است در شرایطی که یک مسیر مستقیم از کار می افتد، اتصال را ممکن کند، اما این همان چیزی نیست که همه شرایط شبکه را از بین ببرند.
معنی این برای خوانندگان VPN Satelites چیست
محتوای VPN Satelites اغلب نزدیک به موضوعاتی مانند حریم خصوصی، اتصال، مسیریابی اینترنت و انتظارات کاربر است. پیمایش NAT به همان محله آموزشی تعلق دارد زیرا توضیح می دهد که چرا شبکه اطراف یک برنامه می تواند به اندازه خود برنامه مهم باشد.
برای این موضوع، مهم است که ارتباط محصول را کم نگه دارید. این مقاله ادعا نمیکند که VPN Satelites از روش پیمایش خاص NAT، معماری رله، راهاندازی انتقال پورت، گزینه IP استاتیک یا پشته پروتکل استفاده میکند. ارزش در اینجا سواد عملی است: درک شرایط به شما کمک می کند تا راهنمای عیب یابی را با دقت بیشتری بخوانید و مشکلات اتصال را ارزیابی کنید بدون اینکه انتظار داشته باشید هیچ برنامه مرتبط با VPN همه قوانین شبکه را لغو کند.
اگر یک اتصال ناپایدار است، چند بررسی کم خطر می تواند به شما کمک کند رفتار برنامه را از رفتار شبکه جدا کنید:
- شبکه مجاز دیگری را امتحان کنید، مانند Wi-Fi خانگی در مقابل داده تلفن همراه، و توجه داشته باشید که آیا مشکل به دنبال برنامه یا شبکه است.
- اگر روتر محلی را کنترل می کنید و اتصال عادی ضعیف به نظر می رسد، راه اندازی مجدد کنید.
- بررسی کنید که آیا شبکه توسط محل کار، مدرسه، هتل، محل برگزاری، یا ISP با محدودیت های ترافیکی مدیریت می شود یا خیر.
- برنامه و سیستم عامل را به روز نگه دارید، زیرا مدیریت اتصال می تواند در نسخه های مختلف تغییر کند.
- از تغییر تنظیمات پیشرفته روتر یا فایروال خودداری کنید، مگر اینکه تأثیر آن را متوجه شده باشید یا تأیید مدیر را داشته باشید.
این مراحل محدودیت ها را دور نمی زنند. آنها به شناسایی محل مشکل اتصال کمک می کنند.
چگونه ادعاهای پیمایش NAT را با دقت بخوانید
وقتی محصول، پروتکل یا برنامه ای در مورد پیمایش NAT صحبت می کند، ادعا را با دقت بخوانید.
سوالات مفید عبارتند از:
- آیا ادعا در مورد یک تکنیک شبکه عمومی است یا یک ویژگی محصول تایید شده؟
- آیا توضیح می دهد که کدام شرایط شبکه پشتیبانی می شود و کدام نه؟
- آیا به رفتار برگشتی بدون وعده دسترسی کامل اشاره می کند؟
- آیا از پیشنهاد اینکه کاربران می توانند محل کار، مدرسه، ISP، پلتفرم یا محدودیت های قانونی را نادیده بگیرند، اجتناب می کند؟
- آیا ادعاهای حفظ حریم خصوصی را از ادعاهای اتصال جدا می کند؟
به راحتی می توان از آن نکته آخر گذشت. قابلیتی که به اتصال دو نقطه پایانی کمک می کند، به طور خودکار تضمینی برای حفظ حریم خصوصی نیست. ویژگی حفظ حریم خصوصی به طور خودکار تضمین اتصال نیست. اسناد خوب باید این ایده ها را از هم جدا نگه دارند.
سوالات متداول
آیا پیمایش NAT همان VPN است؟
پیمایش NAT مجموعهای از تکنیکهای شبکهای برای مقابله با ترجمه آدرس و فیلتر کردن بین نقاط پایانی است. VPN یک دسته گسترده تر از فناوری برای ایجاد تونل های شبکه محافظت شده است. برخی از برنامههای شبیه به VPN ممکن است مجبور باشند رفتار NAT را در نظر بگیرند، اما مفاهیم یکسان نیستند.
آیا سوراخ کاری UDP همیشه کار می کند؟
نه. سوراخ کردن UDP به رفتار NAT، قوانین فیلتر کردن، زمان بندی و توپولوژی شبکه بستگی دارد. بحثهای تحقیق و استانداردها هر دو به یک واقعیت عملی اشاره میکنند: رفتار NAT متفاوت است، بنابراین ممکن است به مسیرهای بازگشتی نیاز باشد.
آیا بازگشت رله بهتر از اتصالات مستقیم است؟
آنها متفاوت هستند. هنگامی که ارتباط مستقیم امکان پذیر نیست، رله می تواند کمک کند، اما ممکن است تاخیر، استفاده از پهنای باند و هزینه عملیاتی را اضافه کند. یک مسیر مستقیم زمانی که کار می کند می تواند کارآمدتر باشد، اما ممکن است در شبکه های سخت گیرانه تر شکست بخورد.
آیا این مقاله میگوید که VPN Satelites از STUN، TURN، ICE، رلهها یا ارسال پورت استفاده میکند؟
خیر. این اصطلاحات به عنوان مفاهیم عمومی شبکه و پیشینه استانداردها مورد بحث قرار می گیرند. این مقاله هیچ ادعایی برای اجرای محصول خاص در مورد VPN Satelites ندارد.
آیا NAT میتواند قوانین شبکه را دور بزند؟
این مقاله راهنمایی دور زدن ارائه نمی کند. پیمایش NAT می تواند به توضیح رفتار اتصال کمک کند، اما کاربران باید قوانین قابل اجرا، شرایط خدمات و خط مشی های شبکه را دنبال کنند.
خط آخر
پیمایش NAT اهمیت دارد زیرا مسیر اینترنت بین دو دستگاه همیشه مستقیم یا قابل پیش بینی نیست. سوراخ کردن UDP می تواند به برخی از برنامه ها کمک کند تا ارتباط مستقیم را در سراسر NAT برقرار کنند، در حالی که برگشت رله می تواند در هنگام شکست مسیرهای مستقیم کمک کند. هر دو ایده مفید هستند، اما هیچ یک راه حل جهانی نیست.
برای خوانندگان VPN Satelites، عملی ترین درس تعیین انتظارات واقع بینانه است. قابلیت اطمینان اتصال به برنامه، دستگاه، شبکه محلی، خطمشیهای شبکه بالادستی و مسیر وسیعتر بین نقاط پایانی بستگی دارد. درک این لایهها، عیبیابی را آرامتر میکند و ادعاهای مربوط به محصول را آسانتر میخواند.
