NAT یکی از مفاهیم اساسی در شبکههای کامپیوتری و دورههای سیسکو است. دانشجویان، کارآموزان، تکنسینها، مهندسان و متخصصان شبکه باید به خوبی با NAT در شبکه آشنایی داشته باشند و بتوانند انواع NAT را استفاده کنند.
مطالب زیادی درباره NAT نوشته شده است و کتابهای زیادی هم به فارسی دراینباره یافت میشود ولی در غالب این مقالات، بیشتر اطلاعات فنی ارائه شده و کاربر معمولی کامپیوتر یا فردی که تازه میخواهد وارد دنیای شبکه شود؛ برایش سخت است دقیقا دریابد NAT چیست و نحوه کار آن در شبکهها و روترها چگونه است.
در این مقاله میخواهیم به زبان سادهای درباره NAT یا «ترجمه آدرس شبکه» صحبت کنیم و به بررسی انواع NAT، مزایا و معایب NAT و تفاوت NAT با PAT بپردازیم. توصیه میکنیم تا آخر این مطلب را بخوانید و پاسخ بسیاری از سوالات خود درباره این مفهوم کلیدی شبکه را دریابید.
چرا به NAT در شبکه نیاز داریم؟
پیش از اینکه بخواهیم بگوییم NAT چیست؛ بهتر است درباره دو مشکلی صحبت کنیم که در شبکههای محلی سازمانها و شرکتها وجود دارد و راهحل آنها NAT است. در واقع، میخواهیم بگوییم اصلا چرا نیاز به NAT داریم و اینقدر در شبکه برایمان اهمیت دارد.
تصور کنید مدیر یک شبکه محلی در سازمانی هستید. این شبکه دارای ۱۰ سرور است و شما میخواهید به هر سرور یک آدرس IP خصوصی اختصاص بدهید. مثلا سرور نخست آدرس IP برابر با ۱۷۶.۱۶.۰.۱ داشته باشد؛ سرور دوم آدرس آیپی ۱۷۶.۱۶.۰.۲ و همینطور ده سرور را آدرس IP منحصربهفردی بدهید تا مدیریت و پیکربندی آنها در شبکه آسانتر باشد.
تا زمانی که این سرورها به اینترنت وصل نمیشوند؛ هیچ مشکلی نیست و شما میتوانید از هر آدرس IP خصوصی برای نودها و دستگاههای شبکه خود استفاده کنید ولی به محض اینکه این سرورها یا نودهای شبکه به اینترنت وصل شوند؛ مشکل آغاز میشود؛ چون هر دستگاه برای اتصال به اینترنت باید یک آدرس IP عمومی بگیرد. دیگر نمیتوان سرور اول را با آدرس آیپی ۱۷۶.۱۶.۰.۱ به اینترنت وصل کرد؛ چون این آدرس آیپی در اینترنت به صورت عمومی استفاده شده است.
به علاوه اینکه امروزه تعداد دستگاههای متصل به اینترنت بسیار بیشتر از تعداد آدرسهای آیپی عمومی IPv4 اینترنت است. ما کلا ۴.۳ میلیارد آدرس IP عمومی داریم ولی بهتر است بدانید نزدیک به ۷ میلیارد نفر روی زمین زندگی میکنند که حدود ۴ میلیارد نفر آنها به اینترنت دسترسی دارند و اگر هریک فقط یک دستگاه برای اتصال به اینترنت داشته باشند؛ کل تعداد آدرسهای IP عمومی اینترنت تخصیص یافتهاند. حالا، تصور کنید هر فردی چند دستگاه به اینترنت وصل کند یا هزاران شبکه و سرور و وبسایت و تجهیزات زیرساخت اینترنت که باید آدرس آیپی منحصربهفرد داشته باشند.
شاید سوال کنید پس داستان IPv6 چیست؟ در جواب باید گفت پروتکل IPv4 شامل چهار بخش عددی و جمعا ۳۲ بیتی است ولی پروتکل IPv6 شامل آدرسهای ۱۲۸ بیتی است و تعداد بسیار بیشتری آدرس IP عمومی در اختیار ما قرار میدهد ولی هنوز IPv6 همهگیر نشده و بسیاری از دستگاههای قدیمی در اینترنت با آن مشکل دارند و ازش پشتیبانی نمیکنند. شاید روزی که IPv6 در سراسر اینترنت فراگیر شود؛ دیگر نیازی به NAT هم نداشته باشیم!
پس، به زبان ساده ما دو مشکل بزرگ برای تخصیص یک آدرس IP به تجهیزات شبکهمان داریم. نخست، اگر یک آدرس IP خصوصی بدهیم؛ باید در هنگام اتصال به اینترنت، به یک آدرس IP عمومی قابل پذیرش در اینترنت تبدیل یا ترجمه شود و مشکل دوم اینکه نمیتوانیم یک آدرس IP عمومی اینترنت را برای یک نود شبکه محلی خودمان اجاره کنیم یا منحصربهفرد تخصیص دهیم.
اینجا است که NAT یا «ترجمه آدرس شبکه» وارد میشود و این دو مشکل ما را برطرف میکند. به همین دلیل است که مفهوم و کاربرد NAT برای شبکهکارها فوقالعاده مهم است و دانشجویان دورههای آموزشی شبکه و سیسکو باید کاملا با NAT آشنا باشند. برای آشنایی با دورههای شبکه و شروع آموزشهای شبکه میتوانید به نگاهی به فهرست آموزشهای شبکه ویدئویی فرادرس در لینک زیر بیندازید:
NAT چیست؟
NAT (مخفف Network Address Translation) که به فارسی «ترجمه آدرس شبکه» گفته میشود؛ میتواند آدرس IP خصوصی یک دستگاه در شبکه شما را به آدرس IP عمومی روی اینترنت ترجمه یا تبدیل کند. به زبان دیگر، به شما اجازه میدهد برای هر نود شبکه LAN خود یک آدرس IP خصوصی منحصربهفرد و یکتا تعریف کنید و بعد این نودها بدون هیچگونه مشکلی به اینترنت وصل شوند.
همانطور که میدانید هر دستگاه یا کامپیوتر در شبکه باید یک آدرس آیپی داشته باشد و بدون این آدرس آیپی نمیتواند در شبکه دیده شده و با دیگر کامپیوترها یا دستگاههای شبکه تبادل اطلاعات کند. دامنه آدرسهای آیپی خصوصی که میتوانید در شبکه برای دستگاههای خود استفاده کنید؛ محدود است و شامل موارد زیر میشود:
از ۱۰.۰.۰.۰ تا ۱۰.۲۵۵.۲۵۵.۲۵۵
از ۱۷۲.۱۶.۰.۰ تا ۱۷۲.۳۱.۲۵۵.۲۵۵
از ۱۹۲.۱۶۸.۰.۰ تا ۱۹۲.۱۶۸.۲۵۵.۲۵۵
این آدرسهای آیپی فقط در شبکه محلی و خصوصی شما قابل استفاده هستند و نمیتوانید با این آدرسها یک دستگاه کامپیوتر را به اینترنت وصل کنید. اصلا، شرکتهای اینترنتی اجازه نمیدهند یک دستگاه با آدرس آیپی خصوصی وارد اینترنت شود. برای ورود به اینترنت باید یک آدرس IP عمومی به دستگاه کامپیوتر بدهید. NAT در روترها یا تجهیزات دیگر شبکه همین کار را میکند و آدرس IP خصوصی کامپیوتر را به آدرس IP عمومی مورد قبول روی اینترنت تبدیل میکند.
وقتی کامپیوتر یا هر دستگاه دیگری در شبکه میخواهد یک بسته اطلاعات روی اینترنت برای سرور مقصد خاصی بفرستد؛ روتر این بسته که دارای آدرس IP خصوصی را تحویل گرفته و آدرس آیپی خصوصی آن را با یک آدرس IP عمومی اینترنت تعویض میکند و روی اینترنت میفرستد.
NAT چگونه کار می کند؟
در همان مثالی که زدیم؛ تصور کنید سرور شماره ۱ با آدرس آیپی ۱۷۶.۱۶.۰.۱ میخواهد به یک سرور دیگر روی اینترنت وصل شود. روتر واسط سرور داخلی شبکه با اینترنت، آدرس آیپی ۱۷۶.۱۶.۰.۱ خصوصی را به یک آدرس آیپی عمومی مانند ۴۷.۱۱۱.۲۱۰.۰۸ تبدیل میکند تا بتوان بسته را روی اینترنت به مقصد رساند.
مودمها و روترها در حافظه خود دارای یک جدول NAT Table هستند که با همین نام هم شناخته میشود. از روی همین جدول NAT میتوان یک آدرس IP خصوصی را به یک آدرس IP عمومی ترجمه و تبدیل کرد. وقتی یک دستگاه از بیرون شبکه هم میخواهد با یک دستگاه در داخل شبکه محلی ارتباط برقرار کند؛ باز هم مودم و روتر از روی همین جدول NAT اقدام به ترجمه آدرس آیپی عمومی به آدرس آیپی خصوصی میکنند.
در مثال بالا، روتر بستهای با آدرس ۴۷.۱۱۱.۲۱۰.۰۸ دریافت میکند و برای اینکه به دست سرور شماره ۱ برسد؛ آدرس IP آن را در شبکه محلی به آدرس ۱۷۶.۱۶.۰.۱ تغییر میدهد.
نکته بسیار مهمی که باید در اینجا بدانیم؛ دستگاه روتر یا هر دستگاه دیگری غیر از کامپیوتر یا نود نهایی، مسئول ترجمه آدرس شبکه است و روی یک کامپیوتر عملیات NAT انجام نمیشود.
در عملیات NAT مسایل مختلفی مطرح است که مهندسان و متخصصان شبکه باید آنها را رفع و مدیریت کنند. مثلا، ممکن است یک آدرس عمومی در جدول NAT Table یا Routing Table موجود نباشد و روتر نداند که آدرس خصوصی یا Inside Global را به چه آدرس عمومی (Outside Local) ترجمه کند. بنابراین، شما باید ابتدا یک فهرست از آدرسهای خصوصی در شبکه خود و فهرستی از آدرسهای عمومی داشته باشید و آنها را برای روتر یا مودم یا دستگاه واسط شبکه تعریف کنید.
اگر دوست دارید درباره NAT و نقشها و وظایف روترها در یک شبکه دارای NAT بیشتر بخوانید و یاد بگیرید؛ بهترین دورهای که میتوانید سراغش بروید؛ دوره +Network است:
انواع NAT و کاربردها و ویژگی های هر یک
حالا که دریافتیم NAT چیست و چگونه کار میکند؛ سراغ یک مبحث مهم دیگری میرویم و اینکه اصلا چند نوع NAT داریم و هریک چه تفاوت و ویژگی دارند؟
۱- Static NAT: اگر در عملیات NAT یا ترجمه آدرس شبکه، همیشه یک آدرس IP خصوصی منحصربهفرد به یک آدرس IP عمومی منحصربهفرد یا برعکس ترجمه و جایگزین شود؛ اصطلاحا گفته میشود از NAT ثابت یا ایستا استفاده میکند. به زبان ساده، اگر همیشه آدرس محلی ۱۷۶.۱۶.۰.۱ به آدرس عمومی ۴۷.۱۱۱.۲۱۰.۰۸ و برعکس تبدیل شود؛ ما داریم از NAT ایستا استفاده میکنیم.
۲- Dynamic NAT: در نات پویا یا داینامیک، هر بار آدرس آیپی خصوصی به یک آدرس آیپی عمومی وارد شده در جدول NAT تبدیل میشود. یعنی یک بار آدرس محلی ۱۷۶.۱۶.۰.۱ به آدرس ۴۷.۱۱۱.۲۱۰.۰۸ تبدیل شود و در اتصال بعدی به آدرس عمومی دیگری مثلا ۱۴۵.۵۱.۱۸.۲۲۳ وصل میشود و در اتصال بعدی، باز هم یک آدرس آیپی عمومی دیگر جایگزین میشود.
۳- PAT یا Port Address Translation: ترجمه آدرس پورت یک گونه از NAT است که در آن، چندین آدرس IP خصوصی به یک آدرس IP عمومی ترجمه میشوند. برخی اوقات دوست ندارید چندین آدرس آیپی عمومی خریداری کنید و از این طرف تعدادی دستگاه دارید که باید به اینترنت وصل شوند. بنابراین، با استفاده از PAT چندین آدرس آیپی محلی و خصوصی به یک آدرس عمومی تبدیل میشوند. به این روش Overloading هم گفته میشود.
یک اصطلاح دیگر هم در انواع NAT به نام Overlapping مطرح است که زمانی اتفاق میافتد که چندین آدرس IP خصوصی یک شبکه محلی، دقیقا در یک شبکه دیگری هم استفاده شوند. روتر در روش Overlapping باید یک به یک، آدرسهای IP یک شبکه را از آدرسهای IP شبکه دیگر مجزا و براساس جدول Routing Table به یک آدرس عمومی ترجمه کند. زمانی از این روش استفاده میشود که شما چندین شبکه محلی مجزا از یکدیگر داشته باشید ولی بخواهید از طریق یک روتر یا گیتوی به اینترنت متصل شوند.
دقت کنید که همه این انواع NAT یک کار مشخص انجام میدهند و آن جایگزین کردن یک آدرس آیپی خصوصی با یک آدرس آیپی عمومی و برعکس است ولی روشهای تبدیل این آدرسها و شرایط هریک با هم تفاوت دارد و انتخاب هریک بستگی زیادی به طراحی و توپولوژی و معماری شبکه شما دارد. لزوما نات ایستا برای همه شبکهها خوب نیست یا اینکه پیشنهاد نمیشود از نات پویا استفاده شود.
مزایای NAT در شبکه
اولین مزیت NAT این است که اجازه میدهد بیش از ۴.۳ میلیارد دستگاه به اینترنت وصل شوند. تصور کنید دهها کامپیوتر در شبکه داشتید ولی نمیتوانستند به اینترنت وصل شوند و فقط در شبکه LAN سازمان به صورت اینترانت کار میکردند. NAT کمک میکند آدرسهای IP عمومی بیشتری آزاد باشند و بتوان از آنها کاربردهای مهمتری گرفت.
مزیت دوم NAT برای شبکهها و سازمانها این است که میتوانند بینهایت دستگاه در شبکه داشته باشند و همه آنها را بدون مشکل و محدودیت و با ارزانتری قیمت و هزینه به اینترنت وصل شوند. طراحی شبکهها با NAT سادهتر میشود و مهندسان شبکه میتوانند معماری و توپولوژیهای مختلفی در شبکه داشته باشند و پیکربندیهای گوناگونی پیادهسازی کنند.
یک مزیت بزرگ NAT که نباید مورد غفلت قرار بگیرد؛ ارتقای امنیت شبکه LAN و دستگاههای محلی است. همین پروسه تبدیل آدرس IP خصوصی به عمومی و برعکس در بستههای ورودی و خروجی شبکه LAN، باعث میشود هر فردی نتواند به شبکه و دستگاههای شما دسترسی داشته باشد. به نوعی میتوان NAT را یک دیواره آتش (فایروال) ساده در شبکه دانست و به همین دلیل هم معمولا در کنار فایروال قرار میگیرد. در آموزش امنیت شبکه فرادرس به تفاوتهای NAT با پراکسی و مزایای NAT برای ارتقای امنیت شبکههای کامپیوتری LAN و همینطور راهاندازی NAT در فایروالها اشاره میشود.
شما یک آدرس عمومی برای شبکه خود میگیرید ولی در پشت سر آن دهها شبکه و آدرس آیپی محلی و دستگاه قرار دارد. هر فردی از جمله هکرها و نفوذگران به شبکه، وقتی به شبکه شما نگاه میکنند؛ یک کامپیوتر با یک آدرس IP عمومی میبینند و این یک مزیت بزرگ امنیتی برای شبکه شما است.
همینطور، اشاره شد که NAT باعث کاهش هزینههای یک سازمان در خرید و اجاره آدرس IP عمومی ایستا میشود. تصور کنید برای هریک از کامپیوترهایی که باید به اینترنت وصل شوند؛ یک آدرس IP عمومی خریداری میشد؛ چقدر هزینه در بر داشت!
معایب NAT در شبکه
هر فناوری با معایبی همراه است و NAT هم از این قاعده مستثنا نیست. همینکه سرآیند و آدرس آیپی یک بسته طی فرآیندی تغییر میکند؛ میتواند معابی برای شبکه به همراه داشته باشد. مثلا، استفاده از پروتکلهای تونلینگ مثل IPSec در شبکهای که NAT دارد؛ به سختی و با پیچیدگیهای خاص خودش همراه است. همینطور، پروتکلهای TCP و UDP در شبکههای دارای نات به مشکل برخورد میکنند و احتمالا مختل شوند و اجازه ندهند بستههای ورودی به شبکه، درست به مقصد برسند.
عیبیابی شبکهای که بستهها در آن دو یا چند آدرس IP متفاوت میگیرند؛ کمی سخت میشود و به راحتی نمیتوان دست به تغییرات در شبکه زد. از سوی دیگر، تمام جزئیات این تغییر آدرسهای آیپی باید در حافظه یک روتر ثبت شود که به نوبه خودش باعث افزایش استفاده از منابع سختافزاری شبکه و کندی سیستم میشود.
بنابراین، استفاده از NAT در شبکه با معایبی هم همراه است ولی اینقدر مزیت دارد که غالب مدیران و مهندسان شبکه، اصلا به این معایب فکر هم نمیکنند و در پی پیادهسازی بهترین سناریوی NAT برای شبکه LAN خود هستند.
چرا باید نصب و پیکربندی NAT در شبکه را یاد بگیریم؟
امیدواریم به زبان ساده و روانی توانسته باشیم به این پرسش پاسخ دهیم که NAT چیست و چه کاربردی در شبکههای کامپیوتری دارد.
همانطور که اشاره کردیم؛ NAT یک مبحث مهم و جدی در شبکههای کامپیوتری و تجهیزات شبکه سیسکو است. در بسیاری از دورههای آموزشی سیسکو مانند CCNA سراغ NAT رفته و انواع آموزشهای مرتبط با آن ارائه میشود. از جمله آموزش راهاندازی NAT در روترهای سیسکو یا آموزش راهاندازی NAT در ویندوز سرور و همینطور برای دستگاههای میکروتیک!
شما اگر میخواهید یک خبره شبکه باشید؛ باید روشهای مختلف راهاندازی NAT و PAT در روترهای سیسکو را بدانید و حتی به تفاوتهای NAT و Proxy آگاه بوده و بتوانید برای یک شبکه محلی انواع NAT ثابت و NAT پویا را فعال کنید.
تمام این مباحث گفته شده درباره NAT را میتوانید در دوره آموزشی CCNA سیسکو فرادرس در لینک زیر فرا بگیرید:
اگر برای خرید مودم، اینترنت و تجهیزات شبکه سوال داشتید یا نیاز به راهنمایی و کمک دارید؛ کانال تلگرام شبکهچی به آیدی shabakehchi@ را فالو و پرسش خود را برای مدیر کانال بفرستید تا جواب دهیم.