همه چيز درباره NAT
بسمه تعالي
برگرفته از مجله علم الکترونیک و کامپیوتر-شماره ۳۷۶-نوشته وحید گودرزی اصفهانی
معجزه NAT
مقدمه :
در واقع NAT ( Network Address Translation) سرویسی است که بر روی یکی از مسيريابهای مرزی شبکه (Area Border Router) فعال می شود و IP Address نودهای (Node) شبکه را به صورت استاندارد طرف مقابل تبدیل می کند.
مي توان ادعا کرد که اگر معجزه NAT نبود هم اکنون کاربران در سازمانهای بزرگ به این سهولت دسترسی به اینترنت نداشتند و کارمندان در صفهای بلند می ماندند تا شايد بتوانند به اینترنت متصل شوند.
NAT چیست :
همانطور که می دانید در شبکه های بزرگ از IP Address نامعتبر (Invalid) در اینترنت بهره گرفته می شود تا بتوانند طیف وسیعی از رايانه ها و یا دیگر نودهای (Node) شبکه را با کمترین هزینه به هم متصل کنند ولی این مساله در جای دیگر مشکل آفرین شده بود و این نودها (Node)نمی توانستند در Internet حضور خود را اثبات کنند چرا که IP آنها در شبکه جهانی اعتباری نداشت و اگر مدیران شبکه مي خواستند 10 رايانه را به شبکه جهانی متصل کنند می بایست 10 آدرس معتبر را خریداری می کردند و به این 10 نود اختصاص می دادند.
حالا تصور کنید کل سازمانهای جهان قصد داشته باشند برای کاربران خود IP معتبر خریداری کنند آیا چنین چیزی با در نظر گرفتن محدود بودن تعداد IP Address ها ، هزینه بالای خریداری و یا حتی اجاره یک آدرس و حجم زیاد کاربران امکانپذیر
می باشد؟
همینجا بود كه معجزه NAT ظهور کرد و این مشکل را تا حدودی بهبود داد. همانطور که اشاره شد NAT سرویسی است که بر روی یکی از Router های مرزی شبکه فعال می شود و IP نامعتبر (Invalid) کاربران داخلی شبکه را که قصد استفاده از شبکه جهانی را دارند به آدرس معتبر در شبکه اينترنت تبدیل می کند و بسته هائی که از طرف شبکه اینترنت به سمت شبکه داخلی حرکت می کنند را بصورت IP نامعتبر (Invalid) در شبکه اینترنت و معتبر در شبکه داخلی تبدیل می کند. برای مثال وقتی یک رايانه با آدرس 10.111.10.192قصد اتصال به وب سایت Yahoo را دارد ، اطلاعات درخواست این رایانه به مسيرياب مرزی منتقل می شود تا در اختیار وب سرور Yahoo قرار گیرد ولی از آنجا که این آدرس فقط تا همین Router قابلیت پیشروی دارد در همين Router توسط سرویس و یا تابع NAT به یک آدرس معتبر که قبلا توسط شرکت خریداری شده تبدیل می شود و از اینجا تا سرور Yahoo را با این آدرس جدید طی می کند و طبق معمول سرور Yahoo هم جواب این Packet اطلاعات را به همین آدرس برگشت می دهد تا به Router مرزی شبکه ما برسد.
مسيرياب مرزی پس از دریافت متوجه می شود که این آدرسی که Packet اطلاعات برای آن ارسال شده در شبکه محلي آن وجود ندارد، پس نگاهی به جدول ترجمه IP می اندازد و متوجه می شود که این آدرس را خودش به رايانه 10.111. 10.192 اختصاص داده و در نتیجه Packet اطلاعات دریافتی را به آدرس 10.111. 10.192 ارسال می کند.
بطور کلی سرویس NAT بر روی Router مرزی كه Packetهای اطلاعاتی که قصد ورود و خروج به شبکه محلي را دارند اجرا مي شود و این ترجمه را دائماً انجام می دهد البته باید توجه داشت که این سرویس به هریک از رايانه های شبکه که قصد رد شدن از این مرز را داشته باشند یک آدرس معتبر اختصاص می دهد و به عبارتی دیگر شبکه ای که روي آن سرویس NAT اجرا شده تنها به تعداد IP معتبر خریداری شده کاربران می توانند بصورت همزمان از شبکه اینترنت استفاده کنند به این صورت كه به محض اتمام کار یک کاربر در خارج از مرز شبکه داخلی، همان IP به اولین کاربر درخواست کننده بعدي اختصاص داده می شود.
|
Internal Address |
External Address |
|
10.0.0.1 |
14.1.23.1 |
|
10.0.0.2 |
14.1.23.2 |
|
10.0.0.3 |
14.1.23.3 |
|
10.0.0.4 |
14.1.23.4 |
سرویس NAT جدولی با دو ستون و به تعداد ردیف معادل IP های معتبر خریداری شده را در خود دارد که به محض درخواست کاربران شبکه برای خروج ، IP نامعتبر (Invalid) داخلی را در مقابل IP معتبر ثبت می کند و در هنگامی که جواب این Packet از مقصد بر می گردد با نگاهی به این جدول می فهمد که اطلاعات برای کدام رايانه در شبکه خودش ارسال شده است و هنگامی كه Packet وارد شبکه داخلی شد این IP نامعتبر (Invalid) از جدول پاک می شود و NAT آماده ارائه سرویس به درخواست کننده بعدی می شود همانطور که مشخص است NAT تنها به تعداد ردیف جدول خود می تواند بصورت همزمان ارائه سرویس کند و این بزرگترین ضعف NAT بشمار می رفت.
در ضمن قابل ذکر است که تعریف این جداول در Router به دو صورت استاتیک و داینامیک صورت می گیرد .که نحوه تنظیم آن برعهده مدیر شبکه می باشد و با Config کردن Router آن را مشخص می کند. در روش استاتیک بطور مشخص تعیین می شود که بر فرض برای همیشه آدرس نامعتبر (Invalid) 192 . 10 . 111. 10 برای خروج از مرز شبکه داخلی باید به 101 . 100. 100. 100 تبدیل شود ولی در روش داینامیک این انتخاب برعهده خود NAT گذاشته می شود اولین IP معتبر ممکن را به رايانه درخواست کننده اختصاص می دهد.
یکی از معایب که گاهی متخصصات شبکه آن را بر NAT وارد می دانند مخفی نگه داشتن IP داخلی یک سازمان در ارتباط با شبکه اینترنت می باشد , شما تصور کنید که اگر بتوانید با یک IP نامعتبر (Invalid) داخلی به یک سرویس دهنده در شبکه اینترنت اتصالی غیر مجاز برقرار کنید ، آیا شناسائی می شوید؟ شاید به جرات بتوان گفت که اگر NAT بصورت داینامیک تنظیم شده باشد و از نقل و انتقالات شبکه Log گرفته نشود شما هرگز شناسائی نخواهید شد و مسئولیت این حرکت غيرقانوني به دوش مدیران و مسئولان شبكه مذبور خواهد بود. همین مسئله باعث شده که گاهی شبکه های داخلی شركتها و سازمانها بعنوان پناهگاه هکرها مورد استفاده قرار گیرند.
از ديگر قابليتهاي NAT اتصال دو شبكه محل (LAN) با IP Address هاي مشابه ميباشد كه NAT با ترجمه اين آدرسهاي مشابه از بروز خطا جلوگيري مي نمايد.
توسعه NAT به PAT
از آنجا که بدون شک NAT در اتصال شبکه های بزرگ به اینترنت با مشکل ترافیک برخورد می كرد تصمیم گرفتند ستونی جدید به جدول ترجمه در Router اضافه کنند تا نام درگاه (port) مورد استفاده را در آن ثبت کنند به این طریق می توانستند با ترجمه همزمان IP و Port تعداد بیشتری رايانه را برای اتصال به شبکه اينترنت پیشتیبانی نمایند.
برای مثال 4 رايانه با 4 درگاه (port) متفاوت می توانند فقط با اشغال یک IP معتبر بطور همزمان سرویس بگیرند به این تکنولوژی PAT ( Port Address Translation) ویا سربار گذاری NAT گفته می شود.
|
Internal Address |
External Address |
|
10.0.0.1 |
14.1.23.5:62450 |
|
10.0.0.2 |
14.1.23.5:62451 |
|
10.0.0.3 |
14.1.23.5:62452 |
|
10.0.0.4 |
14.1.23.5:62453 |
یکی دیگر از مزایای NAT ویا PAT امنیتی است که این سرویس برای رايانه های داخل شبکه فراهم می آورد ، قطعاً شما از خارج شبکه نمی توانید بدون صدور مجوز از رایانه داخلی به آن دسترسی داشته باشيد چرا که IP آن در اینترنت غیر معتبر است. آیا شما می توانید از منزل با اتصال به اینترنت، رایانه محل کار خود را با آدرس 10.111.10.92 Ping کنید ؟ مسلماً نه.