به عنوان یک دانشجوی کامپیوتر؛ ترم 6 دانشگاه بعد از تقلای زیادم برای فهمیدن اینکه IP چیه و چجوری میشه IP کامپیوتر رو به دست آورد، به دوگانه ای برخورد کردم که مغزم را به شدت درگیر کرد و اون IP Private و IP Public بود. در حقیقت سوال من این بود: "اگه IP حکم آدرس خونه رو داره و بسته های دریافتی از اینترنت مستقیم به اون آدرس میره پس چرا کامپیوترِ من، دوتا IP داره؟! یعنی کامپیوترهای ما دوتا آدرس متفاوت داره؟! و چرا باید دوتا آدرس متفاوت داشته باشه؟! ".
برای روشن تر شدن مسئله واجب میدونم که نگاهی به گذشته و تاریخچه پیدایش IP ها داشته باشیم. مهندسان زمانی که IP هارو به عنوان آدرسی منحصر به فرد برای کامپیوترها و دستگاه ها انتخاب کردند هیچوقت به چنین روزی فکر نمیکردند!! یعنی اونا اصلا توقع نداشتن یک شخص چندین وسیله (DEVICE) که به اینترنت متصل هست رو داشته باشه یا حتی اصلا توقع نداشتند که تمام انسان های جهان حداقل یک وسیله (DEVICE) داشتن باشن که به اینترنت متصل میشه. ولی امروزه تقریبا تمام انسان های جهان یک یا چند گوشی موبایل دارند که به اینترنت متصله!! اونا برای خودشون کامپیوتر شخصی دارند که به اینترنت متصله و یا حتی خیلی از لوازم خونشون به اینترنت متصله و با اینترنت در ارتباطه.
و اما جنبه ی تلخ ماجرا اینجاست که مهندس های کامپیوتر اومدن و یک آدرس IP چهار قستمی که هر کدوم از قسمت ها از ۱ تا ۲۵۵ مقدار میگرفت رو ساختن. که به عبارتی ۲۵۵ به توان ۴ آدرس IP منحصر به فرد خواهد شد. که اگه ۲۵۵ رو به توان ۴ برسونید به عدد ۴ میلیارد و فلان خواهید رسید!! بله این عددیه که مهندس ها فکر میکردن به اندازه کافی بزرگ هست که در آینده به مشکل بر نخورن ولی خب همونجور که گفتیم انسان جایز الخطاس، مهندسان انسان هستند پس مهندسان هم اشتباه خواهند کرد...
خب به نظر شما راه حل چیه؟ شما به عنوان شخصی که یک سیستم رو طراحی کرده که کل جهان داره ازش استفاده میکنه و عملا جمع کردن اون سیستم و باز طراحی اون غیر ممکنه و هزینه بره؛ چه راه حلی به ذهنتون میرسه؟!
مهندسان سعی کردن با طراحی و معرفی IP ورژن ۶ و بزرگ کردن رنج IP های منحصر به فرد، هم به نجات کمبود IP ها برسن و هم نواقص و ایرادات IP های ورژن ۴ رو رفع کنند. IP ورژن ۶ در تاریخ ۱۹۹۸ میلادی توسط گروه ویژه مهندسی اینترنت IETF به دنیا عرضه شد ولی خب تا به امروز نتونسته کمک چندانی به ما بکنه چون اکثر وسایل شبکه که تا به امروز ساخته شده از IP ورژن ۶ پشتیبانی نمیکنه و دنیای شبکه هنوز آماده پذیرش اون به عنوان یک راه حل نیست.
چیزی که مهندسان رو از این مخمصه نجات داد IP ورژن ۶ نبود بلکه ساخت روشی به اسم NAT بود. از نظر من NAT وصله کاری دنیای شبکه بود. یعنی مهندسان فقط میخواستن این سیستم فراگیر شدشون به هر نحوی که هست کار کنه در صورتی که یک مهندس باهوش سیستمی که ساده باشه و به درستی کار کنه رو به سیستمی که پیچیدس و به درستی کار میکنه رو ترجیح میده.
اگه بخوایم خیلی وارد مسائل فنی نشیم و به ساده ترین حالت ممکن اونو توضیح بدیم باید بگیم که NAT نقش یک رابط رو داره!! منظور از رابط چیه؟ این رابط کجا قرار داره؟ مهندسا به این فکر کردن که به جای اینکه به هر نفر از افراد داخل یک شبکه ( به عنوان مثال افراد متصل به یک مودم در یک خانه) یک IP منحصر به فرد بدن بیان و اون IP منحصر به فرد رو فقط به مسیریاب اون شبکه بدن ( بازهم به عنوان مثال مودم شما)!! که این IP همون IP Public شماست. و مسیریاب (مودم شما) بیاد و یک سری IP که به اسم IP Private شناخته میشه رو به وسیله های (DEVICE) متصل به اون شبکه بده.
برای روشن تر شدن مسئله به شکل زیر توجه کنید. در اینجا ما تونستیم ۳ تا کامپوتر رو به روش NAT به اینترنت متصل کنیم و فقط از یک IP Public استفاده کنیم!!! که اینجا اون IP Public در مودم ما میشه نماینده بقیه افرادی که در شبکه به اون متصل هستند.
حالا کامپوترهای ما میتونن پیغام های خودشون رو به مسیریاب با آدرس IP Public بدن و مسیریاب اون پیغام هارو با آدرس IP Public خودش به مقصد برسونه و جواب رو برگردونه به کامپیوتر مربوطه...
امیدوارم تا حدودی تونسته باشم مسئله تفاوت میان IP Public و IP Private و لزوم اون براتون مشخص کنم.
به امید دنیای بهتر؛ روز خوش.