وقتی چند دستگاه در یک شبکۀ داخلی با یک IP عمومی به اینترنت وصل میشوند، معمولاً NAT بخشی از مسیر ارتباط است. NAT آدرسهای خصوصی را هنگام عبور ترافیک به آدرس عمومی تبدیل میکند و پاسخها را دوباره به دستگاه درست میرساند. این سازوکار در شبکههای خانگی، سازمانی و زیرساختهای سروری کاربرد دارد. در ادامۀ این مطلب از مجلۀ VPSmarket، نحوۀ کار NAT، انواع آن و ارتباطش با Port Forwarding را بررسی میکنیم. اگر در حال طراحی چنین زیرساختی هستید، سرور مجازی هم میتواند یکی از گزینههایتان برای پیادهسازی باشد.
NAT چیست؟
NAT مخفف Network Address Translation یا «ترجمۀ آدرس شبکه» است. در این سازوکار، روتر یا تجهیز شبکه هنگام عبور ترافیک، اطلاعات مربوط به آدرس IP را تغییر میدهد. رایجترین کاربرد NAT این است که IPهای خصوصی شبکۀ داخلی را برای دسترسی به اینترنت به یک IP عمومی نگاشت کند. مثلاً سه دستگاه زیر را در نظر بگیرید:
192.168.1.10 192.168.1.11 192.168.1.12
این آدرسها خصوصیاند و نمیتوان از آنها بهصورت مستقیم روی اینترنت استفاده کرد. روتر درخواست هر دستگاه را با IP عمومی خود به اینترنت میفرستد و وقتی پاسخ برمیگردد، آن را به همان دستگاه داخلی هدایت میکند.
NAT در شبکه چگونه کار میکند؟
فرض کنید کامپیوتر شما با آیپی «192.168.1.10» میخواهد یک وبسایت را باز کند. روتر مجهز به NAT، آدرس خصوصی مبدأ را با IP عمومی خود جایگزین میکند و جزئیات این ترجمه را در جدول NAT نگه میدارد. مسیر ارتباط، در سادهترین حالت، به این شکل است:
کامپیوتر 192.168.1.10 ↓ روتر NAT ↓ IP عمومی روتر ↓ اینترنت
وقتی پاسخ از اینترنت برمیگردد، روتر جدول NAT را بررسی میکند تا مشخص شود بسته باید به کدام دستگاه داخلی تحویل داده شود. در بسیاری از اتصالها فقط IP تغییر نمیکند و شمارۀ پورت هم بخشی از ترجمه است. به کمک همین پورتها، روتر میتواند چند اتصال همزمان را پشت یک IP عمومی از هم تشخیص دهد.
انواع NAT چیست؟
به طور کلی 3 نوع NAT وجود دارد؛ Static NAT، Dynamic NAT و PAT. در Static NAT، نگاشت IP ثابت است. Dynamic NAT نگاشت را از میان مجموعهای از IPهای عمومی انجام میدهد و PAT علاوه بر IP، شمارۀ پورت را هم در ترجمه دخیل میکند. تفاوت این سه مدل بیشتر به شیوۀ نگاشت آدرسها و استفاده از پورتها برمیگردد. در جدول زیر تفاوت این 3 مدل را براساس معیارهای متفاوت برایتان مشخص کردهایم:
|
PAT |
Dynamic NAT | Static NAT |
معیار |
|
بر اساس IP و پورت |
پویا | ثابت |
نوع نگاشت |
|
معمولا یک IP |
چند IP از یک Pool | معمولا به تعداد نگاشتها |
IP عمومی موردنیاز |
|
بله |
الزامی نیست | الزامی نیست |
استفاده از پورت |
|
دسترسی چند دستگاه به اینترنت |
سازمانها با چند IP عمومی | انتشار یک سرویس یا سیستم مشخص |
کاربرد رایج |
|
بله |
محدود | محدود |
امکان استفاده چند دستگاه از یک IP عمومی |
در ادامۀ این بخش به توضیح مفصلتر انواع NAT میپردازیم.
1) Static NAT
در Static NAT، نگاشت میان یک IP خصوصی و یک IP عمومی از قبل مشخص میشود و تا زمانی که تنظیمات تغییر نکند، ثابت میماند.
مثلاً:
192.168.1.10 → 203.0.113.10
این مدل برای زمانی مناسب است که یک سیستم یا سرویس داخلی باید همیشه از طریق یک IP عمومی مشخص در دسترس باشد.
2) Dynamic NAT
در Dynamic NAT، بهجای یک نگاشت ثابت، مجموعهای (Pool) از IPهای عمومی در اختیار روتر قرار میگیرد و دستگاههای داخلی هنگام نیاز یکی از این آدرسها را دریافت میکنند. اگر یک سازمان چند IP عمومی داشته باشد، روتر میتواند آنها را میان اتصالهای مختلف مدیریت کند. به همین دلیل، برخلاف Static NAT، نگاشت یک دستگاه ممکن است در ارتباطهای مختلف تغییر کند.
3) PAT
PAT یا Port Address Translation مدلی است که معمولاً برای اتصال چند دستگاه داخلی به اینترنت استفاده میشود. در این روش، چند دستگاه یک IP عمومی مشترک دارند و روتر علاوه بر IP، شمارۀ پورت را هم تغییر میدهد تا اتصالها از هم قابل تشخیص باشند.
فرض کنید دو دستگاه همزمان از پورت مبدأ «5000» استفاده میکنند. روتر میتواند هر اتصال را روی IP عمومی به پورت متفاوتی نگاشت کند:
192.168.1.10:5000 → 203.0.113.5:61001 192.168.1.11:5000 → 203.0.113.5:61002
اگر پاسخی به پورت «61001» برسد، روتر از روی جدول ترجمه تشخیص میدهد که باید آن را به «192.168.1.10:5000» بفرستد. همین تفکیک اتصالها بر اساس پورت، بخش اصلی کار PAT است.
مزایای NAT
NAT فقط برای اشتراکگذاری یک IP عمومی میان چند دستگاه نیست و در مدیریت آدرسدهی شبکه هم کاربرد مهمی دارد. مهمترین مزایای آن عبارتاند از:
- صرفهجویی در IPهای عمومی: با توجه به محدودبودن آدرسهای عمومی IPv4، اختصاص یک IP عمومی جداگانه به هر دستگاه همیشه منطقی یا ممکن نیست. NAT اجازه میدهد چند دستگاه داخل شبکه از یک IP عمومی مشترک برای دسترسی به اینترنت استفاده کنند.
- جداسازی آدرسهای داخلی از شبکه عمومی: دستگاههای داخل شبکه با IP خصوصی کار میکنند و معمولاً این آدرسها مستقیماً روی اینترنت قابل دسترسی نیستند؛ در نتیجه، ساختار آدرسدهی داخلی از IPهای عمومی جدا میماند و نیازی نیست هر تغییر در شبکۀ داخلی روی آدرسهای عمومی اثر بگذارد.
- مدیریت سادهتر آدرسدهی شبکه: مدیر شبکه میتواند IPهای خصوصی را متناسب با ساختار داخلی شبکه تنظیم کند، بدون اینکه برای هر دستگاه به یک IP عمومی وابسته باشد. این موضوع بهویژه در شبکههایی با تعداد زیادی سیستم، مدیریت آدرسها را سادهتر میکند.
به این نکته توجه داشته باشید که NAT بهتنهایی یک راهکار امنیتی نیست و نباید جایگزین Firewall یا سایر کنترلهای امنیتی در نظر گرفته شود.
معایب و محدودیتهای NAT
در کنار مزایا، NAT میتواند در بعضی سناریوها پیچیدگی بیشتری به شبکه اضافه کند، مانند:
- پیچیدهترشدن ارتباطهای مستقیم: برخی برنامهها و پروتکلها برای برقراری ارتباط مستقیم میان دو دستگاه به تنظیمات بیشتری نیاز دارند. چون NAT آدرس مبدأ یا مقصد را تغییر میدهد، بعضی ارتباطهای End-to-End ممکن است بدون پیکربندی اضافه بهدرستی برقرار نشوند.
- دشوارترشدن عیبیابی: در شبکهای که NAT فعال است، IP مشاهدهشده در مقصد لزوماً همان IP واقعی دستگاه داخل شبکه نیست. همین تغییر آدرس میتواند دنبالکردن مسیر ارتباط و بررسی لاگها را هنگام عیبیابی کمی پیچیدهتر کند.
- نیاز به تنظیم برای ارتباطهای ورودی: اگر قرار باشد یک سرویس داخل شبکه از اینترنت در دسترس باشد، معمولاً باید Rule مشخصی مانند Port Forwarding تعریف شود. بدون این تنظیم، ترافیک ورودی نمیداند باید به کدام دستگاه یا سرویس داخلی هدایت شود.
- افزایش حساسیت تنظیمات: هرچه تعداد Ruleهای NAT بیشتر شود، مدیریت آنها هم اهمیت بیشتری پیدا میکند. یک قانون اشتباه یا قدیمی میتواند باعث اختلال در ارتباط یا در دسترس قرارگرفتن ناخواستۀ یک سرویس داخلی شود؛ بنابراین Ruleها باید مستند و دورهای بازبینی شوند.
NAT و Port Forwarding چه ارتباطی دارند؟
NAT فقط برای ترافیک خروجی نیست و میتوان از آن برای هدایت درخواستهای ورودی اینترنت به یک سرویس داخل شبکه هم استفاده کرد. فرض کنید وبسروری با آدرس زیر دارید:
192.168.1.20:80
روی روتر میتوان قانونی تعریف کرد تا درخواستهایی که به پورت 80 روی IP عمومی میرسند، به این سرور فرستاده شوند:
IP عمومی روی پورت 80 ↓ 192.168.1.20:80
به این کار Port Forwarding میگویند؛ روشی رایج برای در دسترس قرار دادن یک سرویس داخلی از بیرون شبکه.
نمونۀ تنظیم NAT در RouterOS
در RouterOS میتوان با Firewall NAT چنین قانونی ساخت. دستور زیر ترافیک TCP ورودی روی پورت 80 را از IP عمومی روتر به وبسرور داخلی «192.168.1.20» هدایت میکند:
/ip firewall nat add chain=dstnat protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.1.20 to-ports=80
در این رول (Rule)، «dstnat» برای ترجمۀ مقصد استفاده میشود، «dst-port=80» پورت ورودی را مشخص میکند و «to-addresses» آدرس سرور داخلی را تعیین میکند. در محیط واقعی بهتر است Rule را به IP یا Interface موردنیاز محدود کنید تا سرویس داخلی بیدلیل در معرض اینترنت قرار نگیرد.
NAT در سرور مجازی و میکروتیک
NAT فقط روی روترهای خانگی دیده نمیشود و در شبکههای سازمانی، دیتاسنترها و تجهیزات RouterOS هم از آن برای مدیریت ترافیک ورودی و خروجی استفاده میشود. برای زیرساختهای مبتنی بر RouterOS، خرید سرور مجازی میکروتیک میتواند در بعضی سناریوهای شبکه و مجازیسازی کاربردی باشد.
در سرور مجازی، نحوۀ پیادهسازی NAT به معماری شبکه، نوع IP و سیاستهای ارائهدهنده زیرساخت بستگی دارد.
NAT و امنیت شبکه
NAT را نباید با یک راهکار امنیتی کامل اشتباه گرفت. این فناوری میتواند دسترسی مستقیم از اینترنت به بعضی IPهای داخلی را محدود کند، اما جای فایروال، کنترل دسترسی و سایر لایههای امنیتی را نمیگیرد. یک Rule اشتباه در Port Forwarding ممکن است یک سرویس داخلی را ناخواسته روی اینترنت در دسترس قرار دهد. به همین دلیل، قوانین NAT و پورتهای باز باید دورهای بازبینی شوند.
جمعبندی
NAT با ترجمۀ آدرسهای IP، ارتباط میان شبکۀ خصوصی و شبکۀ عمومی را مدیریت میکند. Static NAT نگاشت ثابت دارد، Dynamic NAT از مجموعهای از IPهای عمومی استفاده میکند و PAT با کمک شماره پورت، چند اتصال را پشت یک IP عمومی از هم تشخیص میدهد.
برای مدیریت شبکه، شناخت پورت شبکه در کنار NAT کمک میکند مسیر اتصالها و رفتار Port Forwarding را بهتر دنبال کنید. همچنین، در پیادهسازی NAT فقط به اینکه Rule «کار میکند» بسنده نکنید. ثبت دلیل هر قانون، مستندسازی تنظیمات و حذف Ruleهای بلااستفاده، عیبیابی و نگهداری شبکه را در آینده سادهتر میکند.
سؤالات متداول
NAT چیست؟
NAT یا Network Address Translation روشی برای ترجمه آدرسهای IP هنگام عبور ترافیک میان شبکههای خصوصی و عمومی است. یکی از کاربردهای رایج آن این است که چند دستگاه داخلی بتوانند از یک IP عمومی برای اتصال به اینترنت استفاده کنند. روتر اطلاعات هر ترجمه را نگه میدارد تا پاسخ دریافتی به دستگاه درست برگردد.
انواع NAT کداماند؟
در Static NAT، یک IP خصوصی به یک IP عمومی مشخص نگاشت میشود. Dynamic NAT از مجموعهای از IPهای عمومی استفاده میکند و این نگاشت میتواند تغییر کند. PAT هم علاوه بر IP، پورت را ترجمه میکند تا چند دستگاه بتوانند یک IP عمومی را بهصورت مشترک استفاده کنند.
تفاوت Static NAT و Dynamic NAT چیست؟
در Static NAT، ارتباط میان IP خصوصی و IP عمومی ثابت است؛ بنابراین یک دستگاه داخلی معمولاً از همان IP عمومی استفاده میکند. در Dynamic NAT، IP عمومی از یک Pool انتخاب میشود و ممکن است در اتصالهای مختلف تغییر کند. Static NAT بیشتر برای سرویسهایی مناسب است که به یک آدرس عمومی ثابت نیاز دارند.
آیا NAT باعث افزایش امنیت میشود؟
NAT دسترسی مستقیم اینترنت به IPهای خصوصی را در بسیاری از سناریوها محدود میکند، اما یک راهکار امنیتی کامل نیست و جای Firewall یا کنترل دسترسی را نمیگیرد. یک Port Forwarding اشتباه هم میتواند سرویس داخلی را در معرض اینترنت قرار دهد؛ بنابراین Ruleهای NAT باید با دقت تنظیم و دورهای بازبینی شوند.
آیا NAT با Port Forwarding ارتباط دارد؟
بله. Port Forwarding ترافیک ورودی روی یک IP عمومی و پورت مشخص را به سرویس موردنظر در شبکه خصوصی هدایت میکند. برای نمونه، درخواستهای ورودی روی پورت 80 را میتوان به یک وبسرور با IP خصوصی مشخص فرستاد. این تنظیم باید همراه با محدودیتهای امنیتی مناسب انجام شود.
آیا NAT فقط در شبکههای خانگی استفاده میشود؟
خیر. NAT در شبکههای سازمانی، روترها، فایروالها، دیتاسنترها و تجهیزات میکروتیک هم کاربرد دارد. از آن میتوان برای اتصال کاربران داخلی به اینترنت، انتشار سرویسهای داخلی، مدیریت IPهای عمومی و Port Forwarding استفاده کرد. محل و نوع پیادهسازی NAT به معماری شبکه و نیاز زیرساخت بستگی دارد.






