NAT (Network Address Translation):
قابلیتی است که به واسطه آن IP سیستم ها تغییر پیدا می کند . 99% مورد استفاده از NAT در بحث اتصال سیستم ها به اینترنت است . مستحضر هستید که هر کامپیوتری که بخواهد به اینترنت متصل شود ، نیازمند IP از جنس Public می باشد .
به عنوان مثال :
فرض کنید در مجموعه ای 100 تا کامپیوتر با IP Private
وجود دارد که قرار است آنها را روی اینترنت بفرستید . لذا برای تأمین IP Public ، نیازمند این هستید که 100 عدد IP Public از ISP مخابرات خریداری کنید تا بتوانید این 100 کامپیوتر را روی اینترنت بفرستید . ما فعلاً با جنبه های مالی کاری نداریم ، کامپیوتر های ما در شبکه IP Private دارند و این کامپیوتر ها اگر بخواهند وارد بستر اینترنت شوند ، حتماً باید IP آنها از Private به Public تغییر حالت پیدا کند و این تغییر حالت 2 جور اتفاق می افتد :
اینکه ما به کاربرها آموزش دهیم که ، هر وقت خواستید در شبکه داخلی کار کنید از فلان IP استفاده کنید و هر وقت خواستید به اینترنت وصل شوید از فلان IP استفاده کنید . این تغییر IP توسط کاربر مشکلات بسیار زیادی دارد ، زیرا آموزش دادن به آنها خود داستانی دارد به اضافه اینکه اگر فضای ما تحت Domain باشد ، کاربر معمولی قدرت تغییر IP Addressing سیستم را نخواهد داشت . ( از هر زاویه ای که نگاه کنید این روش به درد نمی خورد و اگر قرار است IP سیستم تغییر کند ، پس بهتر است به صورت اتوماتیک اتفاق بیفتد ) ، بنابراین وظیفه تغییر IP به صورت اتوماتیک را به Router اعمال می کنیم که اصطلاحاً به آن NAT گویند .
سناریو :
طبق تصویر فرض کنید IP Public با رنج ( 1.100 - 5.1.1.1 ) از ISP مخابرات خریداری
و ماهانه وجه بابت آنها پرداخت می کنید .
💻 کامپیوتری در شبکه داخلی با رنج 10.1.1.5 در خواست سایت Google.com را دارد .
💻 Packet که سمت Router ISP ارسال می شود ، ( آدرس مبدأ 10.1.1.5 ، آدرس مقصد 8.8.8.8 ، TCP 443 وب سایت Google است )
🔵 Router این Packet را به همین شکل سمت اینترنت می فرستد . حال بحثی که مطرح است Packet به 8.8.8.8 می رسد ، اما زمانی که برگردد به سمت 10.1.1.5 خواهد بود و این رنج IP در اینترنت شناخته شده نیست . ( جواب بر نمی گردد )
🔵 Router به جای اینکه Packet را اورجینال شده سمت اینترنت بفرستد ، طبق عملیات NAT آدرس Private را از روی Packet حذف و یکی از این 100 عدد IP Public را جای آن می گذارد . البته بعضی اوقات افراد فکر می کنند در عملیات NAT ، اگر بر روی سیستم خود IP Config بگیرند IP آنها عوض شده است . خیر ، IP کامپیوتر عوض نشده است ، بلکه Router در Packet که از سمت کامپیوتر آمده است دست می برد . ( IP Source عوض کرد )
🔵 Packet که Google دریافت می کند ، ( آدرس مبدأ 5.1.1.5 ، آدرس مقصد 8.8.8.8 ، TCP 443 وب سایت Google است )
🔵 در جوابی که Google سمت Router می فرستد ، ( آدرس مبدأ 8.8.8.8 ، آدرس مقصد 5.1.1.5 می باشد )
🔵 حال Packet به Interface روتر می رسد ، Router به دفترچه خود نگاه می کند که این IP Public را در زمان خروج به کدام IP Private داده است . بدین ترتیب پروسه تغییر IP به صورت اتوماتیک انجام می شود و کاربران مسلح به IP Public و اینترنت خواهند شد .
به این عملیات که Router یکبار در خروج IP Private را به IP Public و بار دیگر در ورود IP Public را به IP Private تبدیل می کند NAT گویند که به 3 روش انجام می شود :
1
Static NAT
2
Dynamic NAT
3
Masquerading (PAT)
👈 Static NAT :
قائده در Static NAT بدین شرح است که ، IP های Public را در اختیار Router قرار می دهید و تعیین می کنید که هر IP Public دقیقاً برای کدام IP Private در نظر گرفته شده است .
اگر بخواهید سناریو بالا را با Static NAT بیرون بفرستید ، باید کنار دست Router نشسته و تعیین کنید که هر 100 عدد IP public دقیقاً برای کدام IP Private در نظر گرفته شده است . البته اگر از زاویه دیگر هم این موضوع را بررسی کنید ، در دنیای امروزی اصلاً شدنی نیست که برای هر کامپیوتر یک IP Public در نظر بگیرید . یعنی عملاً انجام عملیات Static NAT برای سناریو ما شدنی نیست و باید به دنبال راه حل بهتری باشیم که هم در هزینه و هم در تعداد IP به نفع ما باشد .
سوال :
آیا Static NAT کاربردی
دارد ؟
این روش کاربرد دارد ، اما برای سیستمی که قرار است از اینترنت دیده شود ( مثلا
به سیستم مورد نظر Remote Desktop بزنید ، Website آن را ببینید و … ) ، بنابراین آن سیستم حتماً باید به روش Static NAT یک IP Public
اختصاصی داشته باشد .
👈 Dynamic NAT :
شباهت این روش با Static NAT این است که به تعداد افراد IP Public نیاز دارید ، بنابراین در مصرف و تعداد IP Public کمکی به شما نخواهد کرد . اما تفاوت این روش با Static NAT این است که ، در حالت Dynamic NAT یک Address Pool یا بازه IP تشکیل می دهید و به Router می گوید هر کسی که خواست روی اینترنت برود یک IP به صورت Random از داخل Pool در اختیار آنها بگذارد . بنابراین زمانی که کامپیوتر ها روی اینترنت می روند ، IP های آنها Random انتخاب می شود و تعیین شده از قبل نیست .
این روش کاربرد دارد ، مثلا در ISP ها زیاد استفاده می شود . یک سیستم وقتی می خواهد روی اینترنت برود به IP Public نیاز دارد و برای ISP هم زیاد فرق نمی کند امروز IP Public این است فردا یک چیز دیگر است . ( البته می توانید به ISP وجه را پرداخت کنید و IP Public را ثابت برای خود نگه دارید )
در تصویر ملاحظه بفرمایید ، Address Pool شما مسلح به 2 عدد IP Public است ، اما تعداد 3 عدد کامپیوتر در شبکه داخلی نیاز به اینترنت و IP Public دارد . به نظر شما آیا در یک مجموعه شدنی است که ما به تعداد افراد IP Public تهیه کنیم ، اما با توجه به خالی بودن Address Pool تعدادی از کاربران اینترنت نداشته باشند . پس برای شبکه های داخلی که قرار است بر روی اینترنت بروند ، Dynamic NAT روش مناسبی نیست حداقل Static NAT یک کاربردی داشت .
👈 Masquerading (PAT) :
به یاد داشته باشید هر دستگاهی بر روی اینترنت دارای شناسه منحصر به فرد به نام Socket است . اگر قرار است هر سیستم در دنیا دارای Socket منحصر به فرد باشد ، باید IP Address یا Port Number آن بقیه دنیا متفاوت باشد . بنابراین Socket از 2 بخش تشکیل شده است :
1
IP Address
2
Port Number
سوال :
روش های Static ( IP اختصاصی ) و Dynamic ( IP تصادفی ) در اختیار سیستم ها بود .
حال چرا شیوه را عوض نکنیم ؟ چرا IP را ثابت نگه نداریم و Port را عوض کنیم ؟ Port
رایگان 🤔
هر سیستمی در شبکه های کامپیوتری ، اعم از روتر ، کامپیوتر و … 65535 کد یا Port Number دارد ، که از این 65535 پورت 👈 0 تا 1023 آن رزرو شده و مابقی آزاد هستند .
قائده در Masquerading (PAT) بدین شرح است که ، فرض کنید در مجموعه ای 100 تا کامپیوتر با IP Private وجود دارد که قرار است آنها را روی اینترنت بفرستید . لذا برای تأمین IP Public ، نیازمند این نیستید که 100 عدد IP Public از ISP مخابرات خریداری کنید . کافی است این 100 نفر را با یک IP Public روی اینترنت بفرستید و فقط Port Number را تغییر دهید .
نکته که حائز اهمیت است در روش Masquerading (PAT) فقط یک مشکل وجود دارد ، افرادی که به این روش روی اینترنت می روند . ( اینترنت را می بینند ، اما از اینترنت دیده نمی شوند ) لذا اگر در یک مجموعه 100 عدد کامپیوتر به همراه 4 عدد Server وجود داشت ، نیازمند 5 عدد IP Public خواهید بود و این بدان معنا است که در شبکه های امروزی تلفیقی از PAT و Static دارید . ( PAT برای کسانی که قرار است اینترنت را ببینند ، Static هم برای کسانی که هم اینترنت را می بینند و هم قرار است دیده شوند )
در تصویر ملاحظه بفرمایید ، Router ما یک IP Public دارد ، اما سیستم ها روی اینترنت رفتند و به صورت Random شماره Port بالای 1024 انتخاب شده است .
نکته آخر ، فرض کنید که یک خط مستقیم از ISP خریداری کردید (
مثلا ، فلان مجموعه
نیاز به اینترنت با حجم بالا داشته و با دکل به صورت Point To Point به ISP متصل
شده اید )
غالباً ISP بعد از خریداری اینترنت به شما یک IP Public خواهد داد
، البته مستحضر هستید که یک IP Public هم سمت خود Router وجود دارد . بنابراین برای
فرستادن این 100 نفر روی اینترنت می توانید از IP خود Router جهت انجام عملیات PAT
استفاده کنید که نیازمند IP Public جداگانه نباشید .
NAT در سرویس RRAS :
طبق سناریو داستان NAT
را در سرویس RRAS پیاده سازی می کنیم ، چرا که سرویس RRAS یک Generic Router است و عملیات NAT را انجام می دهد .
شبکه داخلی در رنج 10.20.30.0/24 است که به سرویس RRAS متصل و از Interface خارجی سرویس RRAS به ISP متصل شده است . بین Router و ISP یک رنج IP Public است . هدف اینترنت کردن افرادی که در شبکه داخلی ما وجود دارند .
سوالی که مطرح است این است ، شکی نیست اگر قرار است اینترنت را به پشت سر Router
بفرستید ، خود Router اول باید اینترنت داشته باشد .
به نظر شما با توجه به اینکه ما ISP 👈 Ping 70.1.1.1 دارید ، آیا دلیلی دارد که Ping 8.8.8.8 (اینترنت) را نداشته باشید؟ بلی . با مشاهده Error General Failure به این نتیجه خواهید رسید .
نکته ای که حائز اهمیت است ، انتظار نداشته باشید با مشاهده Error General Failure شروع به نوشتن NAT کنید . Interface خروجی Router مسلح به IP Public است و به NAT وابسته نیست . NAT برای کسانی است که IP آنها Private است ، بنابراین ما باید بدون NAT اینترنت داشته باشیم . به یاد داشته باشید که ، Router ها بسته های اطلاعاتی را به سمت شبکه هایی که بشناسد ( یعنی در جدول مسیریابی آن باشد ) خواهد فرستاد . بنابراین شرط شناختن این است که ، از شبکه مورد نظر در Routing Table نام برده شده باشد . نتیجه اینکه در Routing Table ما الان چیزی در مورد اینترنت (8.8.8.8) وجود ندارد .
جهت تکمیل نقص جدول مسیر یابی Router ، دو روش وجود دارد :
1
در بحث مسیر یابی اتوماتیک یا Dynamic Route یک سری پروتوکل های مسیر یابی ( EIGRP ، OSPF ، RIPv2 ) وجود دارد که فقط مختص شبکه های داخلی است و در اینترنت از این جنس پروتوکل ها استفاده نمی شوند ، البته یک نوع پروتوکل مسیر یابی به نام BGP در اینترنت وجود دارد که راه اندازی آن داستان دارد . ( نتیجه اخلاقی دور پروتوکل ها را خط بکشید )
2
Static Route ( مسیر یابی دستی ) : با توجه به اینکه در اینترنت تعداد زیادی رنج IP وجود دارد و از پروتوکل های مسیریابی هم نمی توان استفاده کرد ، لذا باید IP Route بنویسید .
تا به امروز مقصد همیشه برای Router مشخص بوده است ، اما از حالا برعکس با Router حرف می زنیم . ( اگر Packet به دستت رسید که هیچ گونه اطلاعاتی یا مسیری درباره آن وجود نداشت ، آن را تحویل ISP بده تا کل اینترنت را شامل شود )
این قائده به Route چهار صفر یا Default Route معروف است ( در فضای Router یعنی هر چیزی که بلد نیستی )
به یاد داشته باشید که اگر Default Route را اشتباه تایپ کردید ، باید حتما Default Route اول پاک گردد تا Default Route جدید جایگزین شود .
route add -p 0.0.0.0 MASK 0.0.0.0 70.1.1.1
route delete 0.0.0.0
بعد از اینکه Router به اینترنت متصل شد ، نوبت کامپیوتر پشت سر Router است که جهت اینترنت دار شدن باید NAT بنویسید . در سناریو Router ما یک IP Public دارد ، بنابراین از همین IP Public جهت PAT استفاده می کنیم .
قبل از اینکه وارد پروسه PAT شویم ، غالباً در Router ها البته نه در همه برند ها روش کار بدین صورت است :
زمانی که در Microsoft می خواهید NAT بنویسید قائده بر این است ، باید برای NAT تعیین کنید که کدام Interface سمت شبکه Private و کدام Interface سمت شبکه Public است . همچنین عملیات NAT حتماً بر روی Interface که IP Public دارد باید انجام گردد .
✔️ در سرویس RRAS بر روی NAT کلیک راست ، گزینه New Interface را انتخاب کنید .
✔️ در پنجره باز شده وضعیت Interface ها را مشخص کنید . (Private و Public)
✔️ بعد از مشخص کردن وضعیت Interface در شبکه Public ، حتماً تیک Enabel Nat On This Interface را جهت انجام عمیات NAT فعال کنید .
Root Hints or Alternate DNS Servers :
سوال :
بعد از انجام عملیات NAT ، کامپیوتر ما وب سایت Google را رؤیت نمی کند ، دلیل آن
چیست ؟ یکی از دلایلی که Page باز نمی شود این است که ، DNS Server ما از کجا بفهمد
که IP سایت Google چیست . حال برای اینکه کامپیوتر ها بتوانند اسامی اینترنتی را به
IP تبدیل کنند ، 2 روش وجود دارد :
1
مستقیم به سیستم آدرس DNS های اینترنتی (DNS Root)
استفاده کنید ، (8.8.8.8 - 4.2.2.4 - 4.2.2.2)
وارد تنظیمات IP Addressing سیستم شوید و DNS های اینترنتی را در بخش Alternate DNS Servers تایپ کنید . ( دکمه Advanced جهت اضافه کردن (DNS Root) استفاده کنید )
2
با توجه به اینکه در بخش
Preferred DNS Servers
از 10.20.30.1 به عنوان DNS Server اول یاد کردید ، اگر 10.20.30.1 بتواند اسامی
اینترنتی را به IP تبدیل کنند ، مشکل اینترنت برطرف خواهد شد . وظیفه
Root Hints این است که
، شما به DNS Server بگویید که اگر کسی از تو سوالی پرسید که بلد نبودی 👈( نگو
بلد نیستم ، بگو از 8.8.8.8 یا 4.2.2.4 بپرس تا جواب بگیری )
✔️ در کنسول DNS Server بر روی Root Hints کلیک کنید .
✔️ در تب Root Hints یک سری آدرس DNS توسط Microsoft نوشته شده است که به کار ما نمی خورد .
✔️ به جای دکمه Add از Edit استفاده کنید تا IP شما در رأس جدول قرار گیرد .
✔️ در پنجره باز شده اسم اهمیتی ندارد ، فقط DNS های اینترنتی را تایپ کنید .
نکته ای که وجود دارد ، رؤیت شده بعضی وقت ها Root Hints متاسفانه خوب کار نمی کند . اگر احیاناً دیدید که Root Hints کار نکرد ، از روش اول ( DNS مستقیم به کاربر ) استفاده کنید .
سوال :
هدف ما این است که از هر جای دنیا به کامپیوتر شرکت Remote Desktop بزنیم . سوالی
که مطرح است از داخل اینترنت Remote Desktop به چه صورت امکان پذیر است ؟
✔️ سرویس Remote Desktop را در شبکه داخلی فعال کنید .
✔️ حالتی را انتخاب کنید که این سیستم از بیرون دیده شود ، بنابراین توصیه ما روش Static NAT می باشد .
✔️ طبق سناریو از ISP یک رنج 29/ خریداری شده است که 8 عدد IP Public در آن وجود دارد .
✔️ IP شبکه داخلی 10.20.30.60 است ، که باید Static NAT شود به 70.1.1.3 ( بنابراین وارد سرویس RRAS شوید و Interface که عملیات NAT بر روی آن فعال کردید را انتخاب کنید )
روش کار بدین شرح است :
✔️ بر روی Interface که عملیات NAT بر روی آن فعال است ، کلیک راست و Propertise را انتخاب کنید .
✔️ وارد تب Address Pool شوید و رنج IP که از ISP خریداری کردید را معرفی کنید . ( اگر رنج IP را معرفی نکنید ، نمی توانید از عملیات Reservation (NAT Static) استفاده کنید )
✔️ بعد از اینکه رنج IP Public در لیست قرار گرفت ، IP مورد نظر را از بخش Reservation معرفی کنید .
✔️ جهت اینکه از بیرون به آن وصل شوید ، تیک Allow incoming sessions to this address را فعال کنید .
✔️ نکته ای که حائز اهمیت است ، سرویس RRAS فقط IP هایی را به رسمیت می شناسد که بر روی Interface های آن سوار شده باشد . بنابراین باید در تنظیمات IP Addressing سرویس RRAS بر روی کارت شبکه که NAT روی آن فعال است ، آدرس ثانویه 7.1.1.30 را معرفی کنید .
نکاتی در بحث NAT :
سوال :
فرض کنید در شبکه داخلی یک سایت طراحی کردید ، آیا این سایت از بیرون دیده می شود ؟ بلی . با یک IP Public بر روی Port 443 قابل رؤیت خواهد بود .
بنابراین Telnet 23 ، Https 443 ، Remote Desktop 3389 یا نرم افزار حسابداری با پورت 8190 و … همه ی اینها را با یک IP Public از طریق اینترنت می توان دید . زیرا وقتی که به یک سیستم IP منحصر به فرد می دهید ، همراه آن 65535 کد یا Port Number دادید .
یه یاد داشته باشید که Default Route در سیستم عامل Microsoft معادل Gateway می باشد . بنابراین در تنظیمات IP Addressing می توانید به جای نوشتن Default Route ، به صورت مستقیم روی Interface آدرس ISP را به عنوان Gateway تنظیم کنید . اما در Cisco و MikroTik این قابلیت وجود ندارد و Interface های آنها Gateway ندارند ، پس باید حتماً Default Route بنویسید .