اول اینو بگم که این مقاله مفید رو تو سایت دیگه ای دیدم و حیفم اومد اینجا نباشه(برگرفته از آشیانه)
این مقاله به سه قسمت اصلی تقسیم میشه :
1. توضیحات کلی و اصلی در مورد NAT و انواع آن
2. چگونگی پیاده سازی عملی NAT در سیستم عاملهای Windows Server
3. موضوعات متفرقه
قسمت اول : توضیحات کلی و اصلی در مورد NAT و انواع آن
NAT: یکی از راه هایی که برای اشتراک گذاری دسترسی به اینترنت در سیستم عاملهای ویندوز استفاده کنیم.
حالا ما چرا باید از Internet Connection Sharing استفاده کنیم ؟! یه توضیح کوچولو و خلاصه میدم :
کامپیوترها برای اینکه بتونن در دنیای اینترنت حضور داشته باشن باید دارای یک آدرس IP که ثبت شده هستش و بهش Public IP میگن باشن...مشکل همینجاست ! این آدرسها کم هستن !
در حال حاضر نزدیک به 95 درصد کامپیوترها و سرورهای جهان بر اساس پروتکل IPv4 آدرس دهی شده ن که به صورت فرضی و تئوری میتونه به 2 به توان 32 تا کامپیوتر آدرس بده که میشه تقریبا 4,294,967,296 تا کامپیوتر ! ولی به صورت عملی این آدرس الان بین 3,2 میلیون و 3,3 میلیون تا رو بیشتر نمیتونه آدرس دهی کنه و بقیه شون برای مواردی همچون Multicast , ARPANET Research و صد البته Private IP Addresses هستن.
پس در این موارد تکلیف اون کامپیوترهایی که نمیتونن Public IP داشته باشن چیه ؟! یکی از راه حلها اینه که میتونن برن و از IPv6 استفاده کنن که اینقدر بازه ی آدرسش گنده هستش که میتونه به تمامی موجودات زنده ی کره ی خاکیمون آدرس بده و باز هم کم نیاره !
و یکی از دیگر راه حلها اینه که برای دسترسی به اینترنت از تکنولوژیهای Internet Connection Sharing استفاده کنن !
NAT هم یکی از این تکنولوژیهاست که توسط شرکت Cisco برای اولین بار برای Router هاش پیاده سازی شده ولی الان حتی سیستم عاملها و پلتفرمهای نرم افزاری هم میتونن اینکار رو انجام بدن.
ما میدونیم که ICS خوب چیزیه ! نه تنها میتونه اینترنت رو برای ما Share کنه بلکه میتونه Port Forwarding رو در سطوح ابتدایی هم پیاده سازی کنه که بدین معنی هستش که ما با یه ICS ساده میتونیم یه Data Center کوچولو توی خونه مون هم راه بندازیم !
پس چرا باید بیخیال ICS بشیم و بریم دنبال چیزای یه کم پیچیده تری مثل NAT، اونم روی سیستم عاملهای Server که خیلیا ندارنش ؟!
اینجاست که اولین خط بین کاربر Client و Admin یک شبکه کشیده میشه : NAT مثل ICS نیست که هر کسی بتونه با یه Windows XP توی شبکه ی خانگی و یا حتی شرکتیش پیاده ش کنه. NAT قسمت کوچکی از سرویس خفن بازاری به نام Routing & Remote Access در سیستم عاملهای Server هستش که وظایف مختلفی از جمله RAS Server , NAT , Gateway 2 Gateway Implementation و صد البته Routing رو بر عهده داره.
حتما این سوال براتون پیش اومده که NAT چه چیزهایی رو داره که ICS نمیتونه ارائه بده ؟! اینم یه جواب خلاصه :
• ما از مقاله ی قبلی یادمون مونده که ICS فقط در بازه ی 192.168.0.1 میتونه آدرس دهی کنه و آدرسها رو قبول بکنه و با توجه به اینکه Subnet Mask این بازه ی آدرس کلاس C برابر هستش با 255.255.255.0 براحتی نتیجه میگیریم که ICS قدرت آدرس دهی در یک بازه ی 254 تایی رو بیشتر نداره.در سناریوهایی که ما میخوایم به تعداد زیادی از کامپیوترها اینترنت بدیم، ICS به درد لای جرز هم نمیخوره و این غیر قابل انعطاف بودنش گند میزنه به آبرو و حیثیتش !
• ICS رو میتونیم روی سیستم عاملهای Client هم اجرا کنیم در حالیکه NAT فقط باید بر روی سیستم عاملهای Windows Server اجرا بشه و غالبا این سرویس (NAT) برای پیاده سازی توسط Admin های شبکه مورد استفاده قرار میگیره و میتونه در سطوح Enterprise هم به خوبی فعالیت کنه.
• NAT میتونه هر آدرس دهی دلخواهی که ما براش در نظر میگیریم رو پیاده سازی کنه و برخلاف ICS فقط محدود به یک بازه ی 254 تایی نیست.
• شما میتونین روی NAT یک سری Route های Static و یا حتی Routing Protocol های Dynamic پیاده سازی کنین که نه تنها ارتباط کلاینتهای شما رو با اینترنت حفظ میکنه بلکه به کاربرانتون اجازه میده که به کمک این روتر جدید بتونن به Subnet های دیگر شبکه که NetID یکسانی با اونها ندارند هم وصل بشن.
• در NAT شما قادر به پیاده سازی Packet Filtering و همچنین Stateful Firewall هستین و بدین ترتیب میتونین بسیاری از دسترسیها رو بر اساس IP و پورتهایی که مشخص میکنید بلوکه کرده و ترافیک رو یه طورایی ***** کنین !
• عمل Port Forwarding اینبار برخلاف ICS محدود نیست و اگر میخواهید پورتی را Forward کنید که در لیست NAT موجود نیست، میتونین به راحتی این پورت رو به همراه یه توضیح درست و حسابی به لیست مربوطه اضافه کنین.
• به کمک سیستم Address Pooling میتونین NAT رو بین سه حالت Static , Dynamic و Masquerading تغییر بدین (توضیح میدم چیه ! گیر ندین فعلا !)
• و یک سری چیز خرده ریز دیگه که من نمیدونم و باید خودتون دنبالش بگردین و تازه بعدشم به من حتما بگین (این زکات علمتون میشه !)
بعد از این توضیح مختصر میرسیم به توضیح اینکه چند نوع NAT داریم. اصولا سه نوع NAT به طور کلی وجود داره ولی بعضی سایتا و مقاله نویسها میان و بعضی وقتا اینا رو با هم تلفیق میکنن و یه نوع جدید ازش به وجود میارن که عملا نوع جدیدی محسوب نمیشه بلکه یه کلون دورگه از قبلیا هستش !
این مقاله به سه قسمت اصلی تقسیم میشه :
1. توضیحات کلی و اصلی در مورد NAT و انواع آن
2. چگونگی پیاده سازی عملی NAT در سیستم عاملهای Windows Server
3. موضوعات متفرقه
قسمت اول : توضیحات کلی و اصلی در مورد NAT و انواع آن
NAT: یکی از راه هایی که برای اشتراک گذاری دسترسی به اینترنت در سیستم عاملهای ویندوز استفاده کنیم.
حالا ما چرا باید از Internet Connection Sharing استفاده کنیم ؟! یه توضیح کوچولو و خلاصه میدم :
کامپیوترها برای اینکه بتونن در دنیای اینترنت حضور داشته باشن باید دارای یک آدرس IP که ثبت شده هستش و بهش Public IP میگن باشن...مشکل همینجاست ! این آدرسها کم هستن !
در حال حاضر نزدیک به 95 درصد کامپیوترها و سرورهای جهان بر اساس پروتکل IPv4 آدرس دهی شده ن که به صورت فرضی و تئوری میتونه به 2 به توان 32 تا کامپیوتر آدرس بده که میشه تقریبا 4,294,967,296 تا کامپیوتر ! ولی به صورت عملی این آدرس الان بین 3,2 میلیون و 3,3 میلیون تا رو بیشتر نمیتونه آدرس دهی کنه و بقیه شون برای مواردی همچون Multicast , ARPANET Research و صد البته Private IP Addresses هستن.
پس در این موارد تکلیف اون کامپیوترهایی که نمیتونن Public IP داشته باشن چیه ؟! یکی از راه حلها اینه که میتونن برن و از IPv6 استفاده کنن که اینقدر بازه ی آدرسش گنده هستش که میتونه به تمامی موجودات زنده ی کره ی خاکیمون آدرس بده و باز هم کم نیاره !
و یکی از دیگر راه حلها اینه که برای دسترسی به اینترنت از تکنولوژیهای Internet Connection Sharing استفاده کنن !
NAT هم یکی از این تکنولوژیهاست که توسط شرکت Cisco برای اولین بار برای Router هاش پیاده سازی شده ولی الان حتی سیستم عاملها و پلتفرمهای نرم افزاری هم میتونن اینکار رو انجام بدن.
ما میدونیم که ICS خوب چیزیه ! نه تنها میتونه اینترنت رو برای ما Share کنه بلکه میتونه Port Forwarding رو در سطوح ابتدایی هم پیاده سازی کنه که بدین معنی هستش که ما با یه ICS ساده میتونیم یه Data Center کوچولو توی خونه مون هم راه بندازیم !
پس چرا باید بیخیال ICS بشیم و بریم دنبال چیزای یه کم پیچیده تری مثل NAT، اونم روی سیستم عاملهای Server که خیلیا ندارنش ؟!
اینجاست که اولین خط بین کاربر Client و Admin یک شبکه کشیده میشه : NAT مثل ICS نیست که هر کسی بتونه با یه Windows XP توی شبکه ی خانگی و یا حتی شرکتیش پیاده ش کنه. NAT قسمت کوچکی از سرویس خفن بازاری به نام Routing & Remote Access در سیستم عاملهای Server هستش که وظایف مختلفی از جمله RAS Server , NAT , Gateway 2 Gateway Implementation و صد البته Routing رو بر عهده داره.
حتما این سوال براتون پیش اومده که NAT چه چیزهایی رو داره که ICS نمیتونه ارائه بده ؟! اینم یه جواب خلاصه :
• ما از مقاله ی قبلی یادمون مونده که ICS فقط در بازه ی 192.168.0.1 میتونه آدرس دهی کنه و آدرسها رو قبول بکنه و با توجه به اینکه Subnet Mask این بازه ی آدرس کلاس C برابر هستش با 255.255.255.0 براحتی نتیجه میگیریم که ICS قدرت آدرس دهی در یک بازه ی 254 تایی رو بیشتر نداره.در سناریوهایی که ما میخوایم به تعداد زیادی از کامپیوترها اینترنت بدیم، ICS به درد لای جرز هم نمیخوره و این غیر قابل انعطاف بودنش گند میزنه به آبرو و حیثیتش !
• ICS رو میتونیم روی سیستم عاملهای Client هم اجرا کنیم در حالیکه NAT فقط باید بر روی سیستم عاملهای Windows Server اجرا بشه و غالبا این سرویس (NAT) برای پیاده سازی توسط Admin های شبکه مورد استفاده قرار میگیره و میتونه در سطوح Enterprise هم به خوبی فعالیت کنه.
• NAT میتونه هر آدرس دهی دلخواهی که ما براش در نظر میگیریم رو پیاده سازی کنه و برخلاف ICS فقط محدود به یک بازه ی 254 تایی نیست.
• شما میتونین روی NAT یک سری Route های Static و یا حتی Routing Protocol های Dynamic پیاده سازی کنین که نه تنها ارتباط کلاینتهای شما رو با اینترنت حفظ میکنه بلکه به کاربرانتون اجازه میده که به کمک این روتر جدید بتونن به Subnet های دیگر شبکه که NetID یکسانی با اونها ندارند هم وصل بشن.
• در NAT شما قادر به پیاده سازی Packet Filtering و همچنین Stateful Firewall هستین و بدین ترتیب میتونین بسیاری از دسترسیها رو بر اساس IP و پورتهایی که مشخص میکنید بلوکه کرده و ترافیک رو یه طورایی ***** کنین !
• عمل Port Forwarding اینبار برخلاف ICS محدود نیست و اگر میخواهید پورتی را Forward کنید که در لیست NAT موجود نیست، میتونین به راحتی این پورت رو به همراه یه توضیح درست و حسابی به لیست مربوطه اضافه کنین.
• به کمک سیستم Address Pooling میتونین NAT رو بین سه حالت Static , Dynamic و Masquerading تغییر بدین (توضیح میدم چیه ! گیر ندین فعلا !)
• و یک سری چیز خرده ریز دیگه که من نمیدونم و باید خودتون دنبالش بگردین و تازه بعدشم به من حتما بگین (این زکات علمتون میشه !)
بعد از این توضیح مختصر میرسیم به توضیح اینکه چند نوع NAT داریم. اصولا سه نوع NAT به طور کلی وجود داره ولی بعضی سایتا و مقاله نویسها میان و بعضی وقتا اینا رو با هم تلفیق میکنن و یه نوع جدید ازش به وجود میارن که عملا نوع جدیدی محسوب نمیشه بلکه یه کلون دورگه از قبلیا هستش !