نماد سایت بلاگ ایران هاست

NAT چیست و چگونه کار می کند؟

نات چیست

زمانی که اینترنت در حال طراحی و پیاده سازی بود، برخی از شرکت ها وظیفه تخصیص IP به سایر شرکت ها را داشتند. اما با توسعه اینترنت کم کم به این نتیجه رسیدند که با چنین رشدی، در اواسط دهه ۱۹۹۰ تمام ادرس های IP استفاده خواهند شد و در اینجا بود که مفهوم NAT شکل گرفت و راه حل در آن بود. اما NAT چیست و چه کار میکند؟ با ما همراه باشید تا به این پرسش مهم پاسخ دهیم. اما اجازه دهید پیش از تعریف NAT مقدمه ای از روند شکل گیری Ip بگوییم

فهرست این مقاله ( با کلیک روی هر عنوان به آن قسمت منتقل می شوید) پنهان

روند شکل گیری IP

اینترنت گسترده تر از آن چیزی شده که هرکسی میتوانست تصور کند. اگرچه اندازه دقیق آن مشخص نیست ولی به صورت تخمینی بیش از ۱۰۰میلیون میزبان و بیشتر از ۳۵۰ میلیون کاربر به صورت فعال در اینترنت وجود دارند که این تعداد بیش از کل جمعیت ایالات متحده می باشد. در واقع نرخ رشد اینترنت به صورتی است که در هر سال اندازه آن به طور موثر دو برابر می شود.

یک کامپیوتر برای ارتباط با کامپیوترهای دیگر و سرویس دهنده وب در اینترنت، نیازمند یک نشانی IP است. یک نشانی IP (Internet Protocol) یک شماره منحصر به فرد ۳۲بیتی است که مکان کامپیوتر شما در یک شبکه را مشخص می کند. به صورت خیلی ساده، IP همانند نشانی خیابان شما کار می کند، به عنوان روشی برای فهمیدن محل دقیق شما در جهت تحویل اطلاعات.

با انفجار اینترنت و افزایش شبکه های خانگی و تجاری، IPهای در دسترس به قدر کافی موجود نیستند. راه حل واضح این بود که مجددا فرمتی از نشانی ها طراحی شود تا امکان داشتن نشانی های بیشتر ایجاد شود. این فرمت تحت نام IPv6 ایجاد شد، اما از آنجا که به اصلاحاتی در کل زیرساخت اینترنت نیاز دارد چند سالی طول می کشد تا به اجرا برسد. حالا زمانی است که NAT ( RFC 1631 ) برای نجات به کمک ما می آید. در ادامه این مقاله از گروه تولید محتوای ایران هاست ( ارائه دهنده‌ی خدمات هاست حرفه ای وردپرس ) مختصصان ما به این سوال پاسخ می دهند که نات چیست؟

NAT چیست؟

برای اینکه بدانید تعریف nat در شبکه چیست، باید ابتدا فهمید که مخفف چه عبارتی است: NAT به مخفف عبارت Network Address Translation باز میگردد و در آدرس دهی های خصوصی یا به اصطلاح Private مورد استفاده قرار میگیرد. در واقع نات به عنوان راه حلی کوتاه مدت برای مشکل آی پی تعبیه شد که در ادامه مفصل تر توضیح خواهیم داد.

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

Network Address Translation با استفاده مجدد از نشانی های IP به ما در بهبود امنیت کمک می کند. مسیریاب نات ترافیک ورودی و خروجی از شبکه private را ترجمه می کند.

nat در مودم چیست؟

مودم با استفاده از قابلیت nat، آدرس‌های داخلی را به آدرس های جهانی که روی شبکه خارجی و اینترنت قابل استفاده هستند، تبدیل می‌کند.

بیشتر بخوانید: آی پی چیست

نحوه کار nat

 NAT به یک دستگاه همچون مسیریاب امکان می دهد تا به عنوان واسط بین اینترنت (یا شبکه Public) و یک شبکه محلی (یا شبکه Private) عمل کند. به این صورت که یک نشانی IP یکتا به عنوان نماینده گروهی از کامپیوترها در شبکه Public عمل می کند.

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

نات چه کاری انجام می دهد و چه مزایایی دارد؟

NAT همچون پذیرش گر یک اداره بزرگ است. شما دستورالعمل ها را در اختیار پذیرشگر قرار داده اید تا تمامی تماس ها را به شما متصل نکند مگر اینکه شما تقاضا کنید. بعدها شما با یک مشتری تماس می گیرید و برای او پیغامی مبنی بر اینکه با شما تماس بگیرد می گذارید. شما به پذیرش گر می گویید که منتظر یک تماس از سمت آن مشتری هستید تا آن را به شما وصل کند.

مشتری با شماره اصلی اداره شما تماس می گیرد(این شماره تنها شماره ای است که مشتری می شناسد). وقتی مشتری به پذیرش گر می گوید که شما در انتظار تماس او هستید، پذیرش گر جدولی (که نام  اشخاص را به شماره داخلی آنها مربوط می کند) را بررسی می کند. پذیرش گر می داند که شما خود تقاضای این تماس را کرده اید(طی پیغام تلفنی که برای مشتری گذارده اید) و مشتری را به داخلی شما متصل می کند.

NAT به صورت یک دستگاه Firewall، Router یا کامپیوتر که بین شبکه داخلی و شبکه Public قرار می گیرد عمل می کند.

انواع NAT

انواع NAT که در اشکال متعددی دارد که به روش های مختلفی عمل می کنند:

Static NAT 

 ارتباط (map) یک نشانی IP ثبت نشده به یک نشانی IP ثبت شده بر پایه ارتباط یک به یک.
این روش به خصوص زمانی مفید است که یک دستگاه نیازمند ارتباط های قابل دسترس از خارج از شبکه باشند.

در Static NAT نشانی IP کامپیوتر ۱۹۲.۱۶۸.۳۲.۱۰ همیشه به ۲۱۳.۱۸.۱۲۳.۱۱۰ ترجمه خواهد شد.

Dynamic NAT 

 یک نشانی IP ثبت نشده را به یک نشانی IP از یک گروه نشانی های IP ثبت شده، مرتبط (map) می کند. در Dynamic NAT نشانی IP کامپیوتر ۱۹۲.۱۶۸.۳۲.۱۰ به اولین نشانی در دسترس در محدوده ۲۱۳.۱۸.۱۲۳.۱۰۰ تا ۲۱۳.۱۸.۱۲۳.۱۵۰ ترجمه خواهد شد.

Overloading: شکلی از Dynamic NAT که چند نشانی IP ثبت نشده را به یک نشانی IP با پورت های متفاوت مرتبط(map) می کند. این روش به PAT(Port Address Translation)، NAT با نشانی واحد یا NAT تسهیم شده در مرتبه پورت(port-level multiplexed NAT) معروف است.

در روش Overloading هر کامپیوتر در شبکه Private به یک نشانی IP یکسان(۲۱۳.۱۸.۱۲۳.۱۰۰) با یک شماره پورت متفاوت ترجمه شده است.

Overlapping: زمانی که نشانی های IP به کار رفته در شبکه داخلی شما، نشانی های IP ثبت شده در شبکه دیگر باشند، مسیریاب می بایست یک جدول مراجعه از این نشانی ها ایجاد کرده تا بتواند آنها را جدا کند و با IPهای یکتای ثبت شده جایگزین کند.

قابل توجه است که مسیریاب NAT می بایست نشانی های داخلی را به نشانی های یکتا ترجمه کند در حین اینکه نشانی های ثبت شده خارجی را به نشانی هایی که در شبکه داخلی یکتا هستند ترجمه می کند. این روش می تواند هم در Static NAT و هم با استفاده از DNS و Dynamic NAT اجرا شود.

محدوده IP داخلی ۲۳۷.۱۶.۳۲.XX به عنوان IPهای ثبت شده شبکه دیگری هم ثبت شده است. بنابراین مسیریاب نشانی ها را جهت جلوگیری از conflict نهانی با شبکه دیگر ترجمه می کند. همچنین مسیریاب زمانی که اطلاعات به شبکه داخلی فرستاده شده اند، نشانی IP ثبت شده جهانی را به نشانی های IP محلی ثبت نشده ترجمه خواهد نمود.

شبکه داخلی معمولا یک LAN(Local Area Network) است که عموما یک stub domain است. یک stub domain یک LAN است که از نشانی های IP به صورت داخلی استفاده می کند. بسیاری از ترافیک شبکه در یک stub domain محلی است بنابراین اطلاعات از شبکه داخلی خارج نخواهند شد.

یک stub domain شامل IPهای ثبت شده و IPهای ثبت نشده هستند. البته هر کامپیوتری که از IPهای ثبت نشده استفاده می کند می بایست از NAT کمک بگیرد تا ارتباطش را با دیگر نقاط جهان برقرار کند.

بیشتر بخوانید: وظیفه dns چیست

پیکربندی NAT 

NAT به روش های مختلفی پیکربندی می شود. در مثال زیر مسیریاب NAT به گونه ای پیکربندی شده تا نشانی های IP ثبت نشده(داخلی، محلی) را که در شبکه Private(داخلی) وجود دارند به IPهای ثبت شده ترجمه کند. این حالت هر زمان که یک دستگاه داخلی با یک IP ثبت نشده نیاز به ارتباط با یک شبکه عمومی(خارجی) دارد اتفاق می افتد.

* یک ISP محدوده ای از نشانی های IP را به شرکت شما اختصاص می دهد. این محدوده اختصاص داده شده از نشانی ها، ثبت شده و یکتا هستند و به نشانی های Inside Global هستند. نشانی های IP داخلی به دو گروه تقسیم می شوند. یک گروه کوچک(نشانی های outside local) که به وسیله مسیریاب NAT استفاده می شوند.

دیگری گروهی بسیار بزرگ تر که به عنوان نشانی های inside local معروف هستند، در stub domain ها استفاده خواهند شد. نشانی های  outside local جهت ترجمه نشانی های IP منحصر به فرد استفاده می شوند که با عنوان نشانی های outside global  دستگاه ها در شبکه public معروف هستند.

نشانی های IP نامگذاری های متفاوتی دارند خواه چه در شبکه private(stub domain) باشند یا در شبکه public(  اینترنت چیست به زبان ساده )، چه ورودی باشند و چه خروجی.

Overloading NAT از ویژگی TCP/IP protocol stack به نام تسهیم گری(multiplexing) استفاده می کند. این قابلیت به یک کامپیوتر امکان می دهد تا چندین ارتباط همزمان با یک کامپیوتر(یا کامپیوترهای) راه دور با استفاده از پورت های TCP یا UDP متفاوت برقرار کند. یک بسته IP یک Header دارد که شامل اطلاعات زیر است:

نشانی ها، دو ماشین ابتدا و انتهای مسیر را تعیین می کنند در حالی که شماره پورت ها از ایجاد یک ارتباط یکتا بین دو ماشین اطمینان حاصل می کنند. ترکیب این چهار عدد یک ارتباط مستقل TCP/IP ایجاد می کنند. هر شماره پورتی ۱۶ بیت را به خود اختصاص می دهد که به معنی وجود ۶۵۵۳۶ مقدار ممکن است. از آنجایی که هر سازنده به روش هایی با تفاوتی خیلی کم پورت ها را به هم مرتبط(map) می کنند، در واقع در حدود ۴۰۰۰  پورت در دسترس است.

معایب NAT

عملکرد Dynamic NAT 

در اینجا چگونگی عملکرد Dynamic NAT را بررسی می کنیم:

عملکرد Overloading NAT

Stub Domains

به جدول زیر توجه کنید تا بدانید چگونه کامپیوترهای یک stub domain در شبکه خارجی ظاهر می شوند.

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

شما همچنان می توانید کامیپیوترهایی در stub domain  داشته باشید که از نشانی های IP اختصاصی استفاده کنند. شما می توانید فهرستی از نشانی های IP ایجاد کنید که به  مسیریاب بگویند کدام کامپیوترها در شبکه نیاز به NAT دارند.

تعداد ترجمه های همزمان که یک مسیریاب پشتیبانی می کند با میزان DRAM(Dynamic Random Access Memory) که دارد تعیین می شود. در صورتی که یک مورد در جدول ترجمه نشانی تنها ۱۶۰ بایت فضا اشغال کند، مسیریابی که ۴مگابایت DRAM دارد، از لحاظ تئوری می تواند تا ۲۶۲۱۴ ترجمه همزمان را پردازش کند که برای بسیاری از مصارف کافی است.

IANA محدوده مشخصی از نشانی های IP را جهت استفاده به عنوان نشانی های شبکه های داخلی و غیرقابل مسیریابی(non-routable) کنار گذاشته است. این نشانی ها ثبت نشده در نظر گرفته شده اند. (برای اطلاعات بیشتر RFC1918: Address Allocation for Private Internets را که این محدوده های نشانی را تعیین می کند مراجعه کنید.)

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

برای هر سه کلاس نشانی های IP محدوده ای برای استفاده در شبکه ها در نظر گرفته شده است:

محدوده یک: کلاس A- 10.0.0.0 تا ۱۰.۲۵۵.۲۵۵.۲۵۵

محدوده دو: کلاس B- 172.16.0.0 تا ۱۷۲.۳۱.۲۵۵.۲۵۵

محدوده سه: کلاس C- 192.168.0.0 تا ۱۹۲.۱۶۸.۲۵۵.۲۵۵

اگرچه هر محدوده در کلاس متفاوتی قرار دارد با این حال نیاز نیست تا محدوده دقیقی را برای شبکه داخلی خود استفاده کنید. با این حال این عادت خوبی است چرا که احتمال مغایرت (conflict) نشانی های IP را بسیار کاهش می یابد.

Source NAT

Source NAT آدرس منبع را در عنوان IP یک بسته تغییر می دهد. همچنین ممکن است در هدرهای TCP / UDP پورت مقصد را تغییر دهد. استفاده معمولی از این روش برای هدایت بسته‌های ورودی به مقصد یک آدرس / پورت عمومی به یک آدرس / پورت IP خصوصی در داخل شبکه است.

امیدواریم با خواندن این مقاله با مفهوم  تعریف nat در شبکه و مزایای nat آشنا شده باشید.

خروج از نسخه موبایل