X
تبلیغات
رایتل

مبانی و مفاهیم (Network Address Translation (NAT - قسمت دوم

دوشنبه 11 شهریور‌ماه سال 1392 ساعت 01:08 ق.ظ
بعد از اینکه با مفاهیم کلی و پایه ای 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 کامپیوتر شما چفت کند و از آن برای اتصال به پورت های کامپیوترتان استفاده کند.
Image


ولی در حالاتی خاص که از 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 در بسیاری از موارد می باشد.
Image



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

نظرات (0)
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)

نام :
ایمیل :
وب/وبلاگ :
ایمیل شما بعد از ثبت نمایش داده نخواهد شد