بعد از اینکه با مفاهیم کلی و پایه ای NAT آشنا شدید وقت آن است که مواردی
را که بیشتر با آنها سرو کار دارید را بیشتر توضیح بدهیم و همچنین چند نکته
امنیتی را در انتهای مقاله تقدیمتان کنیم.
Dynamic NAT و Overloading :
در اینجا نشان می دهیم که Dynamic NAT چگونه کار می کند :
- یک شبکه داخلی (Stub Domain) که آدرسهای IP متعددی را به کلاینت های
خودش اختصاص داده است و نیز این آدرس ها به این گونه نیستند که فقط برای
همین کلاینت ها و یا اینکه توسط IANA برای آنها صادر شده باشد ، بلکه به
صورت عمومی اند و این آدرس ها فقط در همان کمپانی یا همان شبکه داخلی می
توانند یکتا باشند . البته لازم به ذکر است که در یک Stub Domain امکان
وجود IPهای معتبر یا Valid هم وجود دارد ، پس در کل می تواند شامل آدرس های
Private و Public باشد.
- این شرکت باید روتر هایی را برای NAT خودش قرار بدهد که این روتر ها
شامل آدرس های معتبر یا Public باشند که آنها را از قبل از IANA دریافت
کرده اند .
- یک کامپیوتر که درون Stub Domain است ، همیشه تلاش می کند تا با
کامپیوتر های دیگر که در بیرون از شبکه هستند ارتباط برقرار کند که این
قضیه مانند وب سرور ها می باشد.
- روتری که برای این شبکه قرار داده ایم نیز ، Packetهای ارسالی از طرف کامپیوتر هایی که درون Stub Domain هستند را دریافت می کند.
- زمانی که یک کامپیوتر درخواست ارتباط با یک کامپیوتر که در یک شبکه
دیگر است را دارد ، روتر نیز جدول Address Translation خودش را چک می کند ،
واگر با این کامپیوتر قبلا ارتباط برقرار شده بود ، آنگاه آدرس آن باید در
این جدول پیدا شود و اگر اولین بار است که درخواست ارتباط با کامپیوتر که
در آن شبکه است ، شده باشد آنگاه آدرس آن درون جدول Address Translation
ذخیره می شود.
- زمانی که یک Packet قصد بازگشت از کامپیوتر مقصد را داشته باشد ، روتر
آدرس مقصد روی Packet را نگاه می کند و بعد از آن به جدول Address
Translation خودش نگاه می کند و متوجه می شود که این Packet را کدام
کامپیوتر ارسال کرده است و بعد از اینکه متوجه شد که کدام کامپیوتر بوده که
Packet را ارسال کرده ، آنگاه آدرس همان کامپیوتر را به عنوان آدرس مقصد
Packet در نظر می گیرد. و اگر هم نتوانست آدرس کامپیوتر مقصد را پیدا کند
Packet را نابود یا اصطلاحا Drop می کند.
- کامپیوتر نیز Packet را از روتر دریافت می کند و این پروسه تا زمانی که
کامپیوتر با شبکه بیرونی بخواهد ارتباط برقرار کند نیز ادامه پیدا می کند.
حال که متوجه شدید که Dynamic NAT چگونه کار می کند ، زمان آن می رسد تا با نحوه کار overloading نیز آشنا شوید :
- یک شبکه داخلی (Stub Domain) داریم که آدرس IPای که به کامپیوترهای
آنها اختصاص داده شده است توانایی ارتباط با کامپیوترهای بیرون از شبکه
خودشان را ندارند ، یعنی در واقع آدرس های IP که دارند را از شرکت IANA که
IPهای اختصاصی می دهد نیز دریافت نکرده اند.
- سپس شرکتی که به کامپیوتر های خود IP های نامعتبر یا Private ارائه
داده نیز یک روتر که قابلیت NAT را داشته باشد برای این شبکه قرار می دهد
که این روتر IP های معتبر یا Public را از IANA دریافت کرده و در اختبیار
خودش نگه داشته است.
- و سپس یک کامپیوتر که درون Stub Domain قرار دارد و قصد اتصال به بیرون
از شبکه را دارد ، مانند اینکه بخواهد به یک وب سرور یا یک سایت اینترنتی
متصل شود.
- سپس روتر Packet درخواست کامپیوتر که دورن Stub Domain قرار دارد را دریافت می کند.
- روتر نیز آدرس IP و شماره پورت کامپیوتر درخواست کننده را دورن جدول
Address Translation خودش نگه داری می کند. و بعد به جای آدرس نامعتبر آن
یکی از آدرس های معتبر خودش را روی درخواست کامپیوتر قرار می دهد و درخواست
را به کامپیوتر مقصد ارسال می کند.
- زمانی که درخواست از کامپیوتر مقصد برگشت ، آنگاه روتر ، شماره پورت
مقصد روی آن درخواست را نگاه می کند . و بعد از اینکه آن آدرس مقصد را
مشاهده نمود ، آنگاه به جدول Address Translation خوددش نگاه می کند تا
متوجه بشود که این درخواست متعلق به کدام یک از کامپیوتر های درون Stub
Domain بوده است. سپس آدرس مقصد و پورت مقصد درخواست را با توجه به جدول
Address Translation به کامپیوتر مبدا که درخواست را ارسال کرده تغییر می
دهد و آن را ارسال می کند.
- و حالا کامپیوتر درخواست کننده نیز درخواستش را از روتر دریافت می کند .
و این فرایند تا زمانی که یک کامپیوتر بخواهد با کامپیوتر بیرون از شبکه
در ارتباط باشد نیز ادامه دارد.
Stub Domains :
در ابتدا نگاه هی به پایین بیاندازید تا متوجه شوید که کامپیوتر های درون
یک Stub Domain ممکن است چگونه برای کامپیوتر های درون یک شبکه خارجی یا به
عبارتی برای روتر NAT به نظر برسند.
کامپیوتر مبدا A :
آدرس IP : 192.168.32.10
شماره پورت : 400
آدرس IP روتر NAT : 215.37.32.203
شماره پورتی که از روتر NAT دریافت کرده : 1
کامپیوتر مبدا B :
آدرس IP : 192.168.32.13
شماره پورت : 50
آدرس IP روتر NAT : 215.37.32.203
شماره پورتی که از روتر NAT دریافت کرده : 2
کامپیوتر مبدا C :
آدرس IP : 192.168.32.15
شماره پورت : 3750
آدرس IP روتر NAT : 215.37.32.203
شماره پورتی که از روتر NAT دریافت کرده : 3
کامپیوتر مبدا D :
آدرس IP : 192.168.32.18
شماره پورت : 206
آدرس IP روتر NAT : 215.37.32.203
شماره پورتی که از روتر NAT دریافت کرده : 4
همانطور که می بینید ، روتر NAT ، آدرس IP و شماره پورت تمامی کامپیوتر ها
را در خودش ذخیره می کند. و برای ارسال Packetهای درخواست نیز همان فرایند
overloading که قبلا به طور کامل توضیح دادیم را انجام می دهد.اما این
امکان نیز وجود دارد که هنوز درون شبکه Stub Domain نیز کامپیوتر هایی
وجود داشته باشند که از آدرس های IP اختصاصی(Private) استفاده کنند. و
همچنین شما می توانید یک لیست دسترسی برای آدرسهای IP ایجاد کنید که برای
روتر بیانگر این موضوع باشند که کدام کامپیوترها درون شبکه به NAT احتیاج
دارند. که با این کار ، تمامی آدرس های IP ترجمه نشده را نیز اصطلاحا
Translate می کند و آنها را درون جدول Address Translation قرار می دهد.
نکته ای هم که باید بدانید این است ، که هر وقت چندین Translate به
طور همزمان بخواهند انجام شوند ، روتر ترتیب اصلی ترین Translate برای
سرویس دهی به آن را از روی مقدار ( DRAM (Dynamic Random Access Memory
تشخیص می دهد. به عنوان مثال اگر مقدار DRAM روتر 4MB باشد ، آنگاه به
صورت تئوری می تواند 26,214 آدرس را به طور همزمان Translate کند .
نکته دیگری هم که دریاره رنج ها و آدرس های IP باید بدانید این است
که IANA یک رنج آدرس معین را برای کارهای خاصی کنار گذاشته که کسی نمی
تواند از آنها برای آدرس دهی درون شبکه داخلی خودش استفاده کند که به آنها
آدرس های ثبت نشده نیز می گویند. و همچنین هیچ شرکت و اداره ای نمیتواند
ادعای مالکیت این آدرس ها را برای کامپیوتر های Public و Private خود بکند.
و همچنین روترها هم طوری طراحی شده اند که به محض دریافت آدرس های ثبت
نشده ، آنها را دور بیاندازند.
پس برای راحتی کار و سهولت آدرس دهی برای شبکه ، 3 کلاس آدرسهای IP را نوشته ایم که عبارتند از :
کلاس A : 10.0.0.0 تا 1.0255.255.255
کلاس B : 172.16.0.0 تا 172.31.255.255
کلاس C : 192.168.0.0 تا 192.168.255.255
امنیت و مدیریت NAT :
زمانی که شما یک Dynamic Nat یا NAT پویا را راه اندازی میکنید ، آنگاه به
طور اتوماتیک یک FireWall بین شبکه داخلی و شبکه خارجی یا بین شبکه داخلی و
اینترنت ایجاد می کند. و همچنینNAT فقط اجازه اتصالاتی را می دهد که از
درون Stub Domain سرچشمه گرفته باشند. در واقع این حرفمان به این معنی است
که ، یک کامپیوتر که درون یک شبکه خارجی قرار دارد نمی تواند به کامپیوتر
های ما که درون Stub Domain است متصل شود.مگر اینکه کامپیوترهای درون Stub
Domain ، خودشان آغاز کننده اتصال و ارتباط باشند. و همچنین یک کامپیوتر
درون Stub Domain می تواند به اینترنت متصل شود و صفحه مورد نظر خود را
جستجو کند و حتی می تواند فایل دلخواهش را هم دانلود کند اما کسی نمی تواند
خودش را به آدرس IP کامپیوتر شما چفت کند و از آن برای اتصال به پورت های
کامپیوترتان استفاده کند.

ولی در حالاتی خاص که از NAT استاتیک استفاده میشد که به آن inbound
mapping هم می گویند ، اجازه می دهند که دستگاه هایی که در شبکه خارجی
قرار دارند ، خودشان آغاز کننده اتصال باشند ، یعنی خودشان اتصال را با
کامپیوتر های ما که درون Stub Domain قرار دارند شروع کنند. مانند اینکه
شما اگر بخواهید از یک inside global address به یک inside local address
خاص که مثلا روی آن وب سرور قرار گرفته است ، آنگاه باید NAT استاتیک را
برای این کار فعال کنید.
در یک دیدگاه امنیتی به روترهای NAT می توان فهمید که ، بسیاری از روترهای
NAT قابلیت فیلترینگ گسترده و همچنین قابلیت Log برداری از ترافیک ها را
دارند. با توجه به دو مورد گفته شده نیز ، مبحث فیلترینگ اجازه می دهد که
کنترلی به سایت هایی که کارکنان در یک شرکت می خواهند آنها را مشاهده کنند ،
داشته باشیم و از مشاهده سایت های مشکوک جلوگیری کنیم. و همچنین شما با
استفاده از Log برداری از ترافیک می توانید متوجه شوید که مثلا کدام سایت
ها بیشتر مورد استفاده و مشاهده قرار می گیرند که می توانید یک گزارش کلی و
بزرگ از این بازدید ها تولید نمایید.
دوستان عزیز ما در این قسمت از مقاله قصد داریم توضیحاتی را بدهیم تا
مفاهیم کامل NAT را متوجه شوید.چرا که خیلی از دوستان به دلیل کمبود
اطلاعاتشان نسبت به NAT ، آن را با Proxy سرور اشتباه می گیرند ، که در
اینجا به روشنی تفاوت میان آنها را بیان می کنیم.NAT یک دستگاه است که به
طور واضح و شفاف بین سیستم های مبدا و مقصد قرار نمی گیرد و هیچ کدام از
آنها برای ارتباطشان با هم متوجه این دستگاه سوم (NAT) نیستند و به خیالشان
برای ارتباط با هم نیاز به هیچ رابطی ندارند و متوجه این نیستند که این
کار NAT است که ارتباط آنها را نیسر ساخته است. اما در Proxy سرور نیز یک
دستگاه در بین مبدا و مقصد به شفافیت وجود دارد. یعنی کامپیوتر مبدا برای
ارتباط نیز ، درخواستش را به Proxy سرور ارسال می کند و سپس Proxy سرور
درخواست را برای مقصد می فرستد.که در این حالت سیستم مقصد فکر می کند که
Proxy سرور نیز همان مبدا است و پاسخ را برای آن ارسال می کند و همچنین
Proxyسرور نیز پاسخ را برای مبدا می فرستد. در ضمن نکته دیگری هم که باید
بدانیم این است که Proxy سرور در لایه چهارم مدل مرجع OSI یا همان لایه
Transport یا لایه های بالاتر فعالیت می کند.در صورتیکه NAT در لایه سوم یا
همان لایه Network فعالیت می کند.که این موضوع یا قرار داشتن Proxy در
لایه بالاتر موجب کندتر کار کردن آن نسبت به NAT در بسیاری از موارد می
باشد.

نگارنده : رضا صادقی جم
منبع : انجمن حرفه ای های فناوری اطلاعات ایران