در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آشنایی با NAT و PAT به زبانی ساده!

در این انجمن و بسیاری از سایت های دیگه مطالب بسیاری در مورد NAT و کاربردهای آن به نوشته متخصصین حوزه شبکه های کامپیوتری وجود داره و بنده صرفاً با مشاهده طرح سوالات زیادی در انجمن در رابطه با بحث Port Forwarding (که معمولاً هر هفته یک سوال در این مورد در انجمن دیده می شود)، تصمیم گرفتم مقاله ای جامع در این رابطه به زبانی ساده بنویسم که با خوندنش مشکلات دوستان در این زمینه برطرف بشه.

به شکل زیر توجه کنید:

آشنایی با NAT و PAT به زبانی ساده!

همونطور که میبینید شبکه داخلی ما (همون LAN) در نهایت به مودم (یا بهتر بگیم مودم-روتر) متصله که وظیفه ارتباط شبکه داخلی با دنیای اینترنت رو داره.

همون طور که بسیاری از شما هم می دونید بعضی از آدرس ها در اینترنت قابل مسیریابی نبوده و در نتیجه غیر قابل استفاده می باشند آدرس هایی از قبیل:

10.x.x.x/8
172.16.x.x - 172.31.x.x/16
192.168.x.x/24

در شکل بالا هم، ما از آدرس شبکه 192.168.1.0 با تعداد بیت های مسک 24 که غیر قابل مسیریابی در اینترنت هست استفاده کردیم.

در اینترفیس WAN روترمون هم آدرس 52.10.10.50 رو داریم که از طریق ISP به مودم اختصاص داده شده.

فرض کنیم PC1 که آدرس آی پی 192.168.1.10 رو داره بخواد به وب سایتی با آدرس 4.4.4.1 در اینترنت درخواست صفحه وب رو بده، PC1 درخواست خودشو در قالب بسته IP به Default Gateway تنظیم شده در اینترفیس شبکش میفرسته (چون این آدرس در رنج شبکه خودش که 192.168.1.0/24 هست، وجود نداره) و این Default Gateway هم همین modem-router ما با آدرس داخلی 192.168.1.1 هست. هر بسته IP دارای یک آدرس Source و Destination هست که به مبدا و مقصد شرایط ارتباط با همدیگه رو فراهم می کنه

حالا مودم بسته رو به تجهیزات ISP میفرسته تا اونا هدایتش کنن به مقصد که همون 4.4.4.1 هست. اگه مودم به هر دلیلی آدرس مبدا بسته رو که 192.168.1.10 هست رو تغییر نده و بفرسته به روتر ISP ، روتر ISP با کمال احترام بسته رو Drop می کنه و از خودش عبور نمیده! چرا؟! چون میگه: آقا من نمیتونم بسته ای با IP Address در رنج Private رو در اینترنت مسیریابی کنم و بهش اجازه ورود بدم!

حالا راه حل چیه؟

1) یک راه حل اینه که ما از ISP، به تعداد کلاینت های موجود در داخل شبکمون Public IP خریداری کنیم! که اگه ما 100 تا کلاینت داشته باشیم با پاسخ "نه" از سوی ISP مواجه میشیم! چون در واقعیت این تعداد Public IP Address بدون استفاده رو ندارن که با ما بفروشن! چون تعداد IP های ورژن 4 بسیار محدود هست (حدود 4 میلیار برای کل کره زمین!) و در حال حاضر هم تعداد بسیار محدودی IP آزاد باقی مونده. اصلاً بگیم: آقا من تو ISP آشنا دارم می تونم 100 تا آی پی استاتیک پابلیک بگیرم! باشه می تونید بگیرید ولی به چه هزینه ای؟ قیمت هر آی پی استاتیک 10 هزار تومن هست که واسه 100 تا آی پی میشه 1 میلیون تومن در ماه!

2) راه حل دوم استفاده از تکنیکی به نام PAT که نوعی NAT محسوب میشه هست. سرویس NAT که مخفف Network Address Translation هست و همانطور که از اسمشم معلومه سرویسی برای ترجمه IP آدرس ها به همدیگه هستش. به عنوان مثال شما می تونید روی روتر تنظیماتی رو اعمال کنید که وقتی PC1 با آدرس داخلی 192.168.1.10 به سروری با آدرس 4.4.4.1 در اینترنت درخواست میفرسته، روتر آدرس مبدا بسته ارسالی رو به آی پی پابلیک قابل مسیریابی در اینترنت (که از ISP خریداری کردید) تغییر بده به عنوان مثال: 200.2.2.1. در این حالت تجهیزات ISP دیگه بسته مربوطه رو به دلیل عدم رعایت قانون استفاده از IP Address های مجاز، Drop نمیکنه.

سرویس NAT در اصل دو نوع هست، Dynamic NAT و Static NAT.

A) در Static NAT شما آدرسی معتبر و ثابت و قابل مسیریابی در اینترنت (Public IP Address) از ISP مربوطه میگیرید و روی روتر میگید: وقتی درخواستی به این آدرس اومد بفرستش به کامپیوتر فلان در شبکه داخلی. در همین مثال شکل بالا: از ISP یه Public IP Address با شماره 66.66.66.10 خریداری می کنیم و روی modem-router یک استاتیک NAT تنظیم می کنیم و میگیم: هر درخواستی به 66.66.66.10 اومد بفرستش روی Web Server با آدرس 192.168.1.20.

B) در Dynamic NAT شما به تعداد کلاینت های شبکه داخلیتون از ISP مربوطه آی پی آدرس Public خریداری می کنید و روی روتر یه pool ایجاد می کنید و IP هارو در داخلش قرار میدید و به روتر میگید: هر سیستمی بخواد به اینترنت دسترسی داشته باشه یه IP Address از داخل pool بردار و اختصاص بده به کلاینت مربوطه (همون عمل ترجمه IP Address) و وقتی کارش تموم شد آدرس رو رو دوباره برگردون به pool.

در همه مثال های بالا فقط عمل ترجمه آدرس انجام میشه، در برخی از موارد ما نیاز داریم با یک آدرس آی پی Public (همونی که ISP به مودم میده) کاری کنیم که همه کلاینت های شبکه داخلیمون به اینترنت دسترسی داشته باشن. در این حالت راه حل پیش رو استفاده از قابلیتی به نام PAT یا Overloading روی سرویس NAT هست. PAT مخفف Port Address Translation و Overloading هم یعنی اضافه بار. همونطور که از اسمشونم پیداست با این سرویس می تونیم ما با ترجمه آدرس پورت ها بار اضافه ای روی دوش این Public IP بیچارمون بذاریم! به طوری که، تمامی کلاینت های LAN ما بتونن با استفاده از یک Public IP Address که در این مثال 52.10.10.50 هست به تمامی سرور های موجود در اینترنت دسترسی داشته باشن.

در مواردی نیاز هست پا را فراتر گذاشته! و خودمون هم در داخل شبکمون یه سرور (به عنوان مثال Web Server) پیاده سازی کنیم و کاری کنیم با داشتن تنها یک آدرس پابلیک روی مودم اون سرویس رو از اینترنت هم قابل دسترس کنیم. راه حلی که در این مورد استفاده میشه Port Forwarding نامیده میشه. چون بدون استفاده از Port Forwarding جلوی تمامی درخواست های ورودی به مودم (درخواست هایی که از اینترنت به مودم یا شبکه داخلیمون میان) توسط سرویس PAT گرفته میشه. برای اینکه ما به درخواست های ورودی (به عنوان مثال همین Web Service) پاسخ بدیم باید در مودم یا روترمون اینگونه عمل کنیم: روتر عزیز! هر درخواستی که به اینترفیس WAN ت با پروتکل TCP و شماره پورت 80 میاد اونو بفرستش (Forward کن به) وب سرور داخلی با آی پی آدرس 192.168.1.20. به این ترتیب از اینترنت میشه به وب سرور داخلی دسترسی داشت و از خدماتش استفاده کرد.

امیدوارم تونسته باشم با زبانی ساده و دوستانه تمامی مطالب در مورد NAT و PAT رو به دانشجویان شبکه عزیز، توضیح بدم.

موفق و ITPro ای باشید :)

نویسنده : نوید یحیی پور

منبع : جزیره سیسکو وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#تفاوت_nat_و_pat #چگونه_port_forwarding_انجام_دهیم #آموزش_مبانی_شبکه #مقایسه_nat_و_pat #ترجمه_شماره_پورت_شبکه #network_address_translation_چیست #ترجمه_آدرس #پورت_فورواردینگ
8 نظر
وحید محمودی

عالی بود دست مریزاد مهندس

rahman_alam

آقا من واقعا استفاده کردم...عالی بود...

Farahani

واقعا عالی بود

مهسا مصلح

خیلی خوب بود

ممنون

میلاد فشی

ممنون توضیحاتتون رون و ساده بود.

فقط نکته ای که هست اینه که پورت های شبکه 16 بیتی هستند.پورت های نرم افزاری عددی بین 0 تا 65535 است.

پورت ها هم دو دسته دارند : 1-Well-known port numbers و 2-Dynamically assigned port

برای NAT with overloading از دسته ی دوم میشه استفاده کرد.که عددی بین 1024 تا 65535 است.

نوید یحیی پور

ممنون از توجهتون آقای مهندس میلاد فشی

این توضیحات رو ندادم که مطلب ساده تر باشه

پورت هایی که شما بهش اشاره کردید به ephemeral ports معروفند

هر سیستم عاملی از رنج متفاوتی از این پورت ها استفاده می کنه (به عنوان source port)

به عنوان مثال ویندوز 7 و 8 یا سرور 2008 از رنج 49152 تا 65535 استفاده می کنه در صورتی که ویندوز 2003 از 1024 تا 5000

لینوکس از 32768 تا 61000

ولی در کل رنجشون از 1024 به بعد شروع میشه چون تا 1024 پورت های ثبت شده معروف هستند

dfr_n2000

1) یک راه حل اینه که ما از ISP، به تعداد کلاینت های موجود در داخل شبکمون Public IP خریداری کنیم!

در Dynamic NAT شما به تعداد کلاینت های شبکه داخلیتون از ISP مربوطه آی پی آدرس Public خریداری می کنید.

این دو که یک راه حل است.

نوید یحیی پور

خب؟

فقط در PAT یا Overloading NAT تعداد آی پی های public یا خریداری شده کم میشه چون Port address translation انجام میگیره

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....