یکی از امکانات روترها و اغلب مودم‌های امروزی، NAT است. NAT مخفف Network Address Translation و به معنی ترجمه‌ی آدرس‌های شبکه است. این قابلیت برای کاهش هزینه و افزایش امنیت و همین‌طور برای فراهم کردن آی‌پی آدرس عمومی برای دسترسی از راه دور به وسایل شبکه‌ی داخلی طراحی شده است. به عبارت دیگر NAT برای هر وسیله‌ای که به شبکه لوکال متصل شده، یک آدرس عمومی ایجاد می‌کند.

در این مقاله با مفهوم و کاربرد NAT در شبکه آشنا می‌شویم و انواع آن را بررسی می‌کنیم. با ما باشید.

آشنایی با مفهوم IP Address

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

آدرس آی‌پی یک عبارت عددی ۳۲ بیتی است که به ۴ عدد تقسیم می‌شود. به عبارت دیگر برای هر عدد، ۸ بیت وجود دارد و لذا ۲ به توان ۸ حالت مختلف دارد. در نتیجه هر عدد 0 الی 255 است.

NAT در شبکه چیست و چه کاربردی دارد؟

تا چند سال پیش از سیستم IPv4 استفاده می‌شد که حاصل آن چیزی در حدود ۴.۳ میلیون آدرس آی‌پی مختلف است. اما با گسترش اینترنت، آی‌پی‌های بیشتری موردنیاز است و به همین علت سیستم IPv6 تدریجاً جای IPv4 را می‌گیرد. علاوه بر IPv6، مقوله‌ی NAT نیز مطرح شده که نیاز به آدرس‌های عمومی را کاهش می‌دهد.

سیستم IPv6 به لحاظ تئوری امکان تخصیص ۲ به توان ۱۲۸ آدرس آی‌پی مختلف را فراهم می‌کند که بسیار بالاتر از ۲ به توان ۳۲ حالتی است که IPv4 فراهم کرده است و شاید هیچ‌گاه به مرحله‌ای نرسیم که این تعداد آی‌پی عمومی موردنیاز باشد.

برای اطلاعات بیشتر در مورد شبکه‌های کامپیوتر به مطلب زیر توجه کنید:

NAT چیست؟

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

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

در اغلب روترها و مودم‌ها، آدرس آی‌پی وسایل متصل به شبکه یکی از ۴ حالت زیر است:

  • 192.168.1.1 الی 192.168.1.255
  • 192.168.0.1 الی 192.168.0.255
  • 10.0.0.1 الی 10.0.0.255
  • 172.16.0.1 الی 172.16.0.255

و در شبکه‌های بزرگ‌تر، رنج آدرس‌ها کمی متفاوت می‌شود، به عنوان مثال آدرس‌ها از 192.168.0.0 الی 192.168.255.255 است.

اما IP Address همه‌ی وسایل متصل به شبکه‌ی خصوصی از نگاه شبکه‌ی عمومی یکسان است. با مثالی ساده این موضوع روشن می‌شود:

همان‌طور که در تصویر زیر مشاهده می‌کنید، آدرس آی‌پی 10.0.0.6 برای گوشی موبایل، آدرس 10.0.0.2 برای تبلت، آدرس 10.0.0.4 برای کامپیوتر دستاپی و آدرس 10.0.0.3 برای لپ‌تاپ در نظر گرفته شده است. همه‌ی این وسایل به شبکه‌ای متصل هستند که توسط مودم راه‌اندازی شده است. دقت کنید که آدرس 10.0.0.1 نیز به اولین نقطه‌ی شبکه تعلق گرفته که خود مودم است.

NAT در شبکه چیست و چه کاربردی دارد؟

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

و اما سوال اصلی: چرا به NAT نیاز داریم؟

اگر شخصی از طریق شبکه‌ی داخلی بخواهد به فایل‌های اشتراک‌گذاری شده توسط لپ‌تاپ دسترسی داشته باشد، این کار ساده و امکان‌پذیر است و کافی است در کنار پروتکل ارتباطی نظیر FTP، از آدرس آی‌پی دیوایس موردنظر استفاده کند. اما اگر شخصی بخواهد از طریق اینترنت به لپ‌تاپ دسترسی پیدا کند چطور؟

دسترسی به مودم از طریق اینترنت امکان‌پذیر است چرا که مودم یک آدرس آی‌پی عمومی دارد اما در مقابل دسترسی به لپ‌تاپ غیرممکن است چرا که آدرس آی‌پی عمومی ندارد. به این ترتیب مقوله‌ی NAT مطرح می‌شود که از امکانات مودم یا روتر است. NAT آدرس وسایل متصل به شبکه‌ی داخلی یا خصوصی را به آدرسی عمومی تبدیل یا ترجمه می‌کند و در نتیجه دسترسی به لپ‌تاپ از طریق اینترنت امکان‌پذیر می‌شود.

برای اطلاعات بیشتر به مطلب زیر توجه فرمایید:

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

NAT چطور کار می‌کند؟

همان‌طور که اشاره کردیم NAT یکی از ویژگی‌های امنیتی و در واقع فایروال است. به همین جهت برای دسترسی به تنظیمات NAT در مودم‌ها و روترها، معمولاً می‌بایست بخش Firewall را بررسی کرد.

زمانی که از شبکه استفاده می‌کنید، مودم یا روتر علاوه بر بررسی کردن آدرس آی‌پی سیستم مبدأ و مقصد، مشخصه‌های دیگر کانکشن شامل شماره‌ی پورت‌ها و ترتیب بسته‌های داده را نیز بررسی می‌کند. به این کار بررسی وضعیت ارتباط گفته می‌شود. برای ترجمه کردن آدرس‌های شبکه یا NAT می‌توان از آدرس آی‌پی استفاده کرد. البته برای بسیاری از کاربردها در کنار استفاده از IP Address از شماره پورت نیز استفاده می‌شود.

در تنظیمات فایروال روتر یا مودم معمولاً قابلیت باز گذاشتن و مسدود کردن پورت‌ها وجود دارد و از همه مهم‌تر، قابلیت ارجاع دادن کانکشن‌هایی با یک پورت خاص به وسایل شبکه پیش‌بینی شده است که به این کار فروارد کردن پورت یا Port Forwarding گفته می‌شود. فایروال مأمور بررسی کردن پورت‌ها است و مجوز برقراری کانکشن را صادر می‌کند.

برای اطلاعات بیشتر در مورد امنیت شبکه به مطلب زیر توجه فرمایید:

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

به عنوان مثال در شبکه‌ی زیر، آدرس آی‌پی منبع یا Source IP که به کامپیوتر دستاپی مربوط می‌شود، 192.168.0.100 است و مودم یا روتر، این آدرس خصوصی را به آدرس آی‌پی 68.202.151.70 تبدیل می‌کند. 

NAT در شبکه چیست و چه کاربردی دارد؟

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

NAT در شبکه چیست و چه کاربردی دارد؟

در مودم‌ها و روترها قابلیت ترجمه‌ی آدرس و پورت نیز وجود دارد که به آن NAPT گفته می‌شود. به همین ترتیب قابلیت ترجمه کردن پورت نیز وجود دارد که به آن PAT گفته می‌شود. با استفاده از NAPT می‌توان ارتباطی بین اپلیکیشن‌ها در شبکه‌ی خصوصی و عمومی ایجاد کرد که کاربرد بسیار زیادی دارد.

انواع NAT

با توضیحاتی که دادیم، کاربری NAT ساده به نظر می‌رسد ولیکن کاربران معمولی کمتر از آن استفاده می‌کنند چرا که کمی پیچیده به نظر می‌رسد. NAT در یک دسته‌بندی کلی به چند نوع تقسیم می‌شود که ۳ نوع آن مهم‌تر و پرکاربردتر است: NAT دینامیک، NAT استاتیک و NAT اورلود. در ادامه با این سه نوع بیشتر آشنا می‌شویم.

Dynamic NAT

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

Overloading NAT

نوع بعدی NAT که Overloading NAT نام دارد، به این صورت است که برای تعدادی وسیله‌ی داخل شبکه که آدرس آی‌پی‌های متفاوتی دارند، یک آدرس آی‌پی عمومی در نظر گرفته می‌شود. این روش NAT از جهت اینکه به آدرس‌های عمومی کمتری نیاز است، شبیه NAT دینامیک است اما تفاوت در این است که آدرس عمومی تغییر نمی‌کند.

شاید می‌پرسید که چطور برای چند وسیله‌ی شبکه‌ی داخلی از یک آدرس آی‌پی عمومی استفاده می‌شود؟ در این روش NAT از پورت‌های مختلف برای هر وسیله‌ی داخلی استفاده می‌شود. به عنوان مثال فرض کنید که آدرس آی‌پی مودم شما در شبکه‌ی جهانی اینترنت، 5.165.2.200 است. فرضاً با انجام تنظیمات NAT، آدرس آی‌پی عمومی کامپیوتر شما 5.165.2.200:2000 خواهد بود که در این آدرس، عدد ۲۰۰۰ همان شماره پورت است. آدرس تبلت شما 5.165.2.200:2001 خواهد بود و به همین ترتیب پورت‌های ۲۰۰۲ و غیره را برای وسایل بعدی در نظر می‌گیرید.

NAT در شبکه چیست و چه کاربردی دارد؟

دقت کنید که به این نوع NAT، ترجمه‌ی آدرس پورت یا PAT نیز گفته می‌شود که قبلاً به آن اشاره کردیم. نام دیگر این روش، NAT تک آدرسی یا Single-Address NAT و همین‌طور Port-Level Multiplexed NAT است.

Static NAT

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

جهت دریافت اطلاعات تکمیلی در خصوص فایروال و تنظیمات NAT در محصولات سیسکو به مقاله‌ی زیر توجه فرمایید:

مشکل NAT و کند شدن شبکه

برای نوشتن داده‌ها در هر ردیف جدول NAT، مقداری حافظه موردنیاز است و طبعاً هر زمان که تعداد کانکشن‌ها زیاد شود و جدول NAT بزرگ شود، با مشکل مواجه می‌شویم. برای هر ردیف از یک جدول NAT معمولی چیزی در حدود ۱۶۰ باید حافظه موردنیاز است. لذا برای ۱۰۰ هزار ردیف چیزی در حدود ۱۵ مگابایت RAM موردنیاز است که البته در روترهای معمولی نیز این مقدار حافظه وجود دارد اما در هر مودم و روتر بسیار ارزان، این مقدار حافظه در دسترس نیست.

مشکل مهم‌تر و جدی‌تر، سرعت روتر در تخصیص آدرس‌ها است.

NAT در شبکه چیست و چه کاربردی دارد؟

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

شاید تصور کنید که زمانی که با یک کامپیوتر معمولی مشغول وب‌گردی هستید، تعداد کانکشن‌ها آنچنان زیاد نیست که جای نگرانی داشته باشد اما در عمل اینطور نیست. به عنوان مثال زمانی که در حال تماشا کردن ویدیو در یک وب‌سایت هستید، می‌توانید ابزار Resource Monitor ویندوز را اجرا کنید و به تب فعالیت‌های شبکه یا Network نگاهی بیاندازید. درست مثل تصویر زیر و همان‌طور که می‌بینید تعداد کانکشن‌ها زیاد است. از طرفی بسته‌های داده کوچک است و به عنوان مثال حین تماشای ویدیو، بسته‌های بزرگ با حجم ۱۵۰۰ بایت دریافت شود. لذا برای کار ساده‌ای مثل تماشای ویدیو، در هر ثانیه بیش از ۱۰۰۰ بسته‌ی داده دریافت می‌شود و برای هر بسته می‌بایست پردازش‌های مربوط به NAT انجام شود.

NAT در شبکه چیست و چه کاربردی دارد؟

مثال ما در مورد تماشای ویدیو بود در حالی که در کاربردهایی نظیر بازی‌های مولتی‌پلیر و دانلود از تورنت و غیره، بسته‌های داده بسیار کوچک‌تر است و پردازش موردنیاز برای جدول NAT سنگین‌تر می‌شود. به همین علت است که اگر تعداد ردیف‌های جدول NAT زیاد باشد، به ناچار می‌بایست مودم یا روتر گران‌تری تهیه کرد که پردازنده‌ی قوی‌تری داشته باشد.

جهت دریافت اطلاعات بیشتر در خصوص NAT به مقاله‌ی زیر توجه فرمایید: