قبل از اینكه نگاهی عمیق به مقوله NAT داشته باشیم می بایست بدانیم كه
عملكرد NAT چگونه است. بسته به نوع استفاده ، NAT روشهای پیاده سازی
مختلفی دارد ولی همه آنها دارای یك مفهوم می باشند.
NAT بسیار
متداول شده تا آنجایی كه در قابلیت پشتیبانی از آن در اكثر دستگاه ها نظیر
router, firewall و... قرارداده شده است ویا حداقل یك نوع از این تكنولوژی
را پشتیبانی می كنند.
NAT تنها مختص شبكه هایی كه به اینترنت متصل هستند محدود نمی شوند ،بلكه
شما از این تكنولوژی می توانید بین شبكه های محلی خود نیز استفاده كنید
ولی چون اكثر سازمانها درجهت ارتباط با اینترنت از این روش استفاده می
كنند ما نیز به بررسی همین نوع استفاده می پردازیم.
مفهوم NAT بسیار ساده و به این صورت است كه یك دستگاه (مثل كامپیوتر یا
مسیریاب)به عنوان دروازه ورود به اینترنت عمل می كند و با این كار آدرس
های ایستگاه های كاری را به آدرس دستگاهی كه NAT روی آن فعال است ترجمه می
كند ،به بیان دیگر NAT روی دستگاهی كه به اینترنت وصل شده فعال می شود و
ایستگاه های كاری و به طور كلی شبكه شما را از دید اینترنت پنهان می دارد.
از سوی دیگر اینترنت شبكه شما را به صورت یك دستگاه ساده می بیند كه به اینترنت متصل می باشد.
NAT روی شبكه تغییر ایجاد نمی كند و نیازی به تنظیمات دوباره روی ایستگاه
های كاری نیست فقط ایستگاه های كاری می بایست آدرس دروازه خروجی از شبكه
را كه همان آدرس دستگاهی است كه NAT روی آن فعال شده را بدانند.
همانطوری كه در شكل بالا دیده می شود شبكه با چهار ایستگاه كاری و یك
مسیریاب جهت اتصال به اینترنت داریم .تمام ایستگاه های كاری دارای آدرس
محلی گروه C می باشند.
مفهوم NAT در شكل بالا به سادگی قابل فهم است.
NAT چگونه كار می كند ؟
سه روش كلی برای اجرای NAT وجود دارد اگر چه قاعده كلی برای هر روش یكی
است .همانطوری كه در شكل های بالا نشان داده شد ،ترافیك ارسالی از سمت
ایستگاه های كاری از درون یك روتر به اینترنت وارد می شوند و عملیات NAT
را روی بسته ها انجام می دهد و به مقصد می فرستد.
هربسته ای كه روی كارت شبكه محلی مسیریاب دریافت می شود توسط روتر عملیات
جابجایی آدرس محلی با آدرس اینترنتی انجام می شود و سپس بسته ها ارسال می
شود.
در این شكل یك ایستگاه كاری از داخل شبكه یك بسته اطلاعاتی را به آدرس
مقصد 135.250.24.10 می فرستد ، این بسته اطلاعاتی از داخل دروازه خروجی
گذشته وبه اینترنت می رسد.
عملیات NAT روی بسته ارسالی به روش زیر ارسال می گردد :
بسته اطلاعاتی اصلی پس از رسیدن به مسیریاب آدرس مبداء آن از 192.168.0.12
به 203.31.220.134 تغییر پیدا می كند سپس روتر این اطلاعات را در حافظه
خود و در NAT-Table نگهداری می كند و به این طریق است كه بسته هایی هم كه
از اینترنت ارسال می شوند ،مقصد خود را تشخیص می دهند.
بعد از بررسی مفاهیم
NAT مختصری از مفهوم NAT Table را بررسی می كنیم. NAT Table قلب اصلی
عملكردNAT می باشد. هر ارتباطی از داخل شبكه به خارج شبكه مانند اینترنت
در این جدول ثبت می شود تا مسیریاب بداند كه با اطلاعات دریافتی روی
Interface های خود چگونه رفتار كند و به كجا بفرستد. این جدول به تدریج
توسط ارتباط هایی كه ایجاد شده و از درون مسیریاب می گذرد پر می شود و
هرگاه كه ارتباطی قطع شود ركورد ثبت شده در این جدول حذف می گردد و فضا
برای ثبت ركوردهای دیگر باز می شود.
NAT Table در نوع های مختلف NAT متفاوت كار می كند. NAT Table بزرگتر به
معنی اشغال حافظه بیشتر است و می تواند ارتباطات زیادتری را ردیابی كند،
به این معنی كه دستگاهی كه NAT روی آن فعال است ، جدول بزرگتری دارد و می
تواند ارتباطات بیشتری را نسبت به دستگاهی كه NAT Table آن كوچكتر است ثبت
و كنترل نماید. شكل زیر ساختار یك NAT Table را نشان می دهد:
شكل فوق نمایانگر دو درخواست از داخل و از ایستگاههای كاری 192.168.0.5 و
192.168.0.21 به دستگاهی كه NAT روی آن فعال است ، می باشد. این بسته های
اطلاعاتی به صورت موقتی روی یك قسمت خاصی از مسیریاب ذخیره شده تا تغییرات
اندكی روی آن انجام شود. در این مثال مسیریاب آدرس مبداء هر بسته اطلاعاتی
را كه همان آدرس محلی ایستگاه های كاری می باشد با آدرس اینترنتی خود كه
آدرس 203.31.22.134 است تعویض می كند و سپس بسته اطلاعاتی از طریق كارت
شبكه اینترنتی مسیریاب و یا دستگاهی كه NAT روی آن فعال است به اینترنت
میفرستد . یعنی قبل از اینكه بسته های اطلاعاتی مسیریاب را ترك كنند یك
ركورد برای هر بسته داخل جدول NAT ثبت می شود این ركورد مسیریاب را قادر
می سازد تا تصمیم گیری مناسبی را برای بسته هایی كه از اینترنت برمی گردند
انجام دهد.
وقتی كه جواب یك درخواست از اینترنت برمی گردد چه اتفاقی می افتد؟
در واقع همان اتفاقی كه در مورد بسته های خروجی می افتد روی بسته های ورودی نیز انجام می شود.
وقتی جواب درخواستی از اینترنت به مسیریاب می رسد ، مسیریاب از جدول NAT
خود كمك گرفته و ركورد مشخص مربوط به این درخواست را پیدا می كند و یك
تغییر كوچك دیگر روی بسته اطلاعاتی انجام می دهد و این تغییر، تعویض IP
مقصد از 203.31.220.134 به 192.168.0.5 برای بسته اطلاعاتی اول و
192.168.0.21 برای بسته اطلاعاتی دوم می باشد. سپس این بسته های جدید به
مقصدشان فرستاده می شوند و مسیریاب ركورد مربوط به این دو را از جدول NAT
خود حذف می كند.
روی اكثر دستگاه هایی كه NAT را پشتیبانی می كنند، ارتباطات NAT محدود به
حافظه موجود روی آن دستگاه می باشد. هر ترجمه NAT (تعویضIP)حدود 160 بایت
از حافظه را اشغال می كند. نتیجه اینكه اگر1000 ترجمه اتفاق بیفتد حدود
1.6 مگابایت از حافظه اشغال می شود. بنابراینPlatform ی برای استفاده از
NAT مناسب است كه دارای حافظه كافی برای كنترل ارتباطات و عملكرد NAT را
نیز داشته باشد.