Network Address Translation

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
مهندسی اینترنت
مقاله بعدی:الگوریتم های مسیریابی
مقاله قبلی:پروتکلDHCP


همانطور که قبلاً گفته شد، فیلد آدرس IP در سرآیند بسته های IP قادر به حمل 32 بیت داده می باشد و به عبارتی، آدرس IP سیستمهای انتهایی در اینترنت 32 بیتی است. بنابراین، حداکثر 32^2 یا 4294967296 آدرس IP قابل تعریف می باشند که با توجه به تعداد قابل توجه سیستم های انتهایی متصل به اینترنت و روند رو به رشد آنها، به نظر میرسد که ممکن است برای پاسخگویی به نیاز اینترنت کافی نباشد. یکی از راه هایی که برای رفع این مشکل مطرح شده است و به شکل گسترده ای مورد استفاده قرار گرفته است، ترجمه ی آدرس شبکه (Network Address Translation) یا NAT است. شکل 1 نمایش دهنده ی مثالی از عملکرد NAT است. Mef4sh1.PNG

مسیریاب نمایش داده شده در وسط شکل 1 دارای یک واسط متصل به شبکه ی خانگی و محلی و همچنین، دارای یک واسط دیگر متصل به اینترنت می باشد. تمام آدرس های IP منتسب شده به واسط های شبکه در شبکه ی خانگی در یک زیرشبکه ی مشترک با آدرس زیرشبکه ی 10.0.0.0/24 قرار دارند (هم خانواده هستند). این محدوده ی آدرس، یکی از سه محدوده ی رزرو شده (محدوده های آدرس 10.0.0.0/8 ، 172.16.0.0/12 و 192.168.0.0/16 ) برای آدرس دهی به شبکه های محلی خصوصی می باشد (یک شبکه ی خصوصی شبکه ای است که آدرس های آن فقط برای سیستم های انتهایی داخل آن شبکه معنادار می باشند). در واقع، هیچ بسته ای در اینترنت (ورای شبکه ی محلی) نمی تواند از آدرسهای موجود در این محدوده ها به عنوان آدرس مبدأ یا مقصد استفاده نماید زیرا، چند صد یا چند هزار شبکه ی دیگر وجود دارند که از همین محدوده برای آدرسدهی به سیستمهای انتهایی خود استفاده می نمایند. مسیریاب مجهز به NAT ، توسط اینترنت به عنوان یک مسیریاب مشاهده نمی شود و به جای آن، مانند یک سیستم انتهایی مستقل با یک آدرس IP مستقل مشاهده میشود. در شکل 1 مشاهده میشود که تمام بسته های خروجی از مسیریاب به سمت اینترنت دارای آدرس مبدأ 138.76.29.7 هستند و بسته های ورودی به مسیریاب از طرف اینترنت دارای آدرس مقصد برابر با 138.76.29.7 هستند. به نوعی مشاهده میشود که مسیریاب مجهز به NAT جزئیات شبکه ی خانگی را از اینترنت مخفی نگه می دارد. ذکر این نکته نیز خالی از لطف نمی باشد که یکی از روش های اخصاص آدرس های IP ، به سیستم های انتهایی مشاهده شده در شکل 1 استفاده از یک کارپذیر (DHCP(DHCP Server است. آدرس IP واسط سمت اینترنت مسیریاب توسط کارپذیر DHCP در ISP به آن اختصاص یافته است و آدرسهای IP سیستمهای انتهایی توسط کارپذیر DHCP اجرا شده در مسیریاب به آنها اختصاص یافته است.

بنابراین، عملکرد NAT بدین صورت است که هر کدام از سیستمهای انتهایی ترافیک خود را با ثبت آدرس IP خود در آن تولید می کنند و در حین عبور بسته های مربوط به این ترافیک از مسیریاب مجهز به NAT ، بخشی از مشخصات آنها دچار تغییر میشود (مثلاً آدرس IP مبدأ آنها با آدرس IP سمت اینترنت مسیریاب جایگزین میشود) و به سمت اینترنت ارسال می شوند. اما، سؤالی که مطرح میشود این است که مسیریاب چگونه بسته های ورودی از سمت اینترنت را به سیستم انتهایی درست ارسال میکند. در واقع این کار با استفاده از یک جدول ترجمه ی NAT و ثبت آدرسهای IP و شماره های پورت در آن انجام میشود. به عنوان مثال فرض شود که کاربر استفاده کننده از سیستم انتهایی 10.0.0.1 یک صفحه ی وب بر روی یک کارپذیر وب (پورت 80 ) با آدرس IP برابر با 128.119.40.186 را درخواست میدهد. این سیستم انتهایی شماره ی پورت 3345 را به صورت دلخواه بر روی بسته ثبت میکند و آنرا با آدرس IP خودش به عنوان آدرس مبدأ برای مسیریاب ارسال میکند (این مسیریاب از دید سیستم های انتهایی درون شبکه ی خانگی یک مسیریاب واقعی است). مسیریاب بسته را دریافت میکند، یک شماره ی پورت جدید ( 5001 ) برای آن تولید میکند، آدرس IP سمت اینترنت خود را با آدرس IP مبدأ آن را جایگزین میکند و شماره ی پورت قدیمی را با شماره ی پورت جدید جایگزین میکند. در واقع فقط هر کدام از شماره پورتهایی که در جدول ترجمه ی NAT موجود نباشند میتوانند به عنوان شماره ی پورت جدید انتخاب شوند (شماره ی پورت یک عدد 1۶ بیتی است که بیش از 60000 شماره ی پورت همزمان را ممکن میسازد). این نگاشت در جدول ترجمه ی NAT ثبت میگردد. حال، آن دسته از بسته های ورودی به مسیریاب از طرف اینترنت که آدرس مقصد آنها برابر با آدرس مقصد ثبت شده در جدول است و شماره ی پورت مقصد آنها نیز برابر با 5001 است دچار تغییر میشوند و آدرس سیستم انتهایی تولید کننده ی درخواست و شماره ی پورت استفاده شده برای تولید درخواست در آنها ثبت میگردد. بدین ترتیب، بسته ها توسط سیستم انتهایی درست و برنامه ی کاربردی درست دریافت میشوند.