در سه قسمت گذشته مباحثی مانند مفاهیم پایهای فایروال و شبکههای کامپیوتری را بیان کردیم. از این قسمت کار را کمی عملیتر و مفهومیتر پیگیری خواهیم کرد. برای شروع، مهمترین مفهوم شبکهای (که اصول اولیه کاری با فایروالها است)، یعنی نحوه آدرسدهی را انتخاب کردهایم. همانطور که انسانها نیاز به داشتن شماره تلفن (برای زنگ زدن) و یا نشانی محل سکونت (برای ارسال نامه) به شخص دیگر دارند، کامپیوترها هم برای برقراری ارتباط با یکدیگر، به پارامترهایی مشابه نیاز خواهند داشت. البته نحوه آدرسدهی و نوع نشانیها در سیستمهای کامپیوتری و شبکهای متفاوت با دنیای واقعی ما است. انواع آدرسهای کامپیوتری
آدرسهای سختافزاری یا Physical Address : هر قطعه سختافزاری که در شبکه مورد استفاده قرار میگیرد، از یک نشانی منحصر به فرد برخوردار است که در اصطلاح به آن آدرس مک (Mac Address) میگویند. این آدرس توسط سازنده قطعه تعیین میشود و باید به گونهای باشد که در کل دنیا منحصر به فرد باشد. مزیت این آدرس انحصاری این است که در شبکه وقتی صحبت از سیستمی با آدرس مک خاص باشد، از آن فقط یک گیرنده یافت خواهد شد و دو سیستم همزمان اعلام آمادگی دریافت پکت را نخواهند داشت! این نشانی در شبکههای کوچک و یا مدلهای خاصی که در سوئیچهای لایه دو مورد استفاده قرار میگیرد، کاربرد دارد. اما در بستر شبکهای بزرگ با هزاران و حتی میلیونها سیستم، مشکلات زیادی را به وجود میآورند. این مسئله بسیار ساده و قابل درک است، تصور کنید هزاران و یا میلیونها آدرس به طور پراکنده در مکانهای مختلفی پخش شده باشند و پکتی قرار باشد به یکی از آنها برسد. به طور مثال در دنیای واقعی، فرض کنید وارد شهری بزرگ مانند تهران شدهاید و قصد پیدا کردن دوستی قدیمی را دارید. حال آنکه تنها اطلاعاتی که از وی دارید، نام و نام خانوادگی (با فرض منحصر بودن!) است. به طور حتم بدون گروهبندی و مسیردهی صحیح، شاید صدها سال هم اگر به دنبال وی بگردید، به نتیجهای نرسید. ولی اگر بدانید او در چه محلهای ساکن است و خانهاش در چه خیابانی واقع شده، کار راحتتر میشود. پس میتوان این گونه نتیجه گرفت که آدرس مک به تنهایی نمیتواند کمک زیادی در برقراری ارتباط باشد. آدرسآیپی یا Logical Address : مطابق با پرتوکل TCP/IP هر سیستمی حداقل باید با یک آدرس آیپی در شبکه معرفی شود. برعکس مکآدرس، هیچکس نمیتواند تضمین کند که آدرسهایآیپی سیستمها در سراسر دنیا حتماً منحصر بفرد باشند چراکه یک نشانی ثابت و غیر قابل تغییر نیستند و با نظر مدیر شبکه میتواند این آدرس تغییر کند به همین خاطر هم به آن آدرس منطقی یا Logical Address گویند. ولی مطمئناً مدیر شبکه باید بگونه بستر شبکهای خود را آدرسدهی کند که هیچ وقت دو نشانی آیپی یکسان در آن شبکه قرار نگیرد (زیرا عملکرد دو ماشین با آیپی همسان تحت این شرایط از بین خواهد رفت). در یک مثال عملی فرض کنید قرار است یک نامه به نشانی برود که دقیقاً دو مقصد هم آدرس داشته باشد! نشانی از طریق DNS: تا این جا متوجه شدیم که در دنیای شبکه، کامپیوترها از طریق آدرسهای مک و آیپی میتوانند با یکدیگر ارتباط برقرار کنند. اما مشکل این است که شاید آنها در ردیابی و ارسال داده، مشکلی در شناسایی یکدیگر با اعداد (آیپی) نداشته باشند. اما اگر قرار باشد کاربر اقدام به این کار کند چطور؟ فرض کنید قرار است از فردا برای برقراری ارتباط با سرورهای گوناگون از طریق آدرس آیپی اقدام کنید. به طور مثال به جای وارد کردن آدرسwww.gmail.com مجبور باشید در مرورگر خود آدرس آیپی 209.85.171.83 را وارد کنید! اولاً این کار بسیارمشکل است و به خاطر سپردن این نشانی کار راحتی نیست، به خصوص وقتی روزانه با دهها وبسایت گوناگون سروکار داشته باشید. مشکل دوم این است که خیلی از وبسایتها به طور روزانه (شاید هم بیشتر) آیپی خود را تغییر میدهند. پس به خاطر سپردن آدرس این سایتها، کار هر کسی نخواهد بود! برای حل این مشکل مفاهیم کلی آدرسآیپی آیا 1+1 میشود 10 ؟!همانطور که در ابتدای مقاله گفتیم، آدرسدهی شبکه اصل مهمی در کار با فایروال است، پس بهتر است کار را به طور پایهای با ساختار آیپی شروع کنیم. البته لازمه این کار آشنایی نسبی با محاسبات باینری است. البته نگران نباشید، چون محاسبات باینری فرق چندانی با دسیمال (که همان محاسبات ریاضی معمولی است) ندارد. در محاسبات دسیمال یا دهدهی فرض بر این است که اعداد از صفر تا 9 خوانده میشوند، اگر بخواهیم یک واحد بیشتر از 9 را استفاده کنیم، صفر را کنار 1 قرار داده و به 10 میرسیم. در این حالت به بازه دهگان رسیدهایم. حال در همین بازه، 25 را این گونه میخوانیم: 2 واحد دهگان به علاوه 5 واحد یکان. زمانی که به بازه صدگان میرسیم، نیز همین مکانیسم را داریم، به طور مثال در مورد عدد 255 میگوییم: 2 واحد صدگان به علاوه 5 واحد دهگان و 5 واحد یکان. شاید کمی خندهدار به نظر برسد، اما این همان مبانی دوران ابتدایی است که آموختهایم و به دلیل مرور زمان شاید تا به امروز دیگر به آن فکر هم نکرده باشیم. در روش باینری نیز همین اصول رعایت میشود، با این تفاوت که فقط اعداد 0 و 1 در آن وجود دارد، از این رو عدد 1 دسیمال در حالت باینری همان 1 است، اما عدد 2 چون وجود ندارد، باید یک صفر جلوی 1 قرار دهیم. از این رو عدد 2 دسیمال معادل 10 باینری میشود و به همین ترتیب به جای 3، عدد 11 و 4 عدد 100 و ... قرار میدهیم. نکته: توجه داشته باشید هنگام صحبت از اعداد باینری، هر رقم از این اعداد یک بیت در نظر گرفته میشود. از این رو آدرسهای آیپی که در موردشان بحث کردیم (آیپی نگارش 4) از 32 بیت تشکیل میشوند. مفهوم آدرس آیپی در شبکه چه میزان شبکه، چه میزان هاست؟ 192.168.10.200 11000000.10101000.00001010.11001000
شکل1
شکل2
بطور کلی هر نشانی آیپی به دو بخش تقسیم میشود. اول قسمت نشانی شبکه
(Network Address یاNetID)و دومی نشانی میزبان (Host Address یا HostID). قسمت شبکهای دقیقاً مانند همان نشانی پستی است که شامل شهر، محله، خیابان و ... میشود. در یک شبکه هم محدودهای از آیپیها که دارای یک محدوده مشابه آیپی هستند در اصطلاح در یک سگمنت شبکهای قرار گرفتهاند. اما قسمت دوم آدرس همانند پلاک مقصد مورد نظر خواهد بود. پلاک مقصد دقیقاً به همان گیرنده مورد نظر شما تعلق دارد و در حقیقت در آن محدوده باید یکتا باشد. به بیان دیگر قسمت Host Address هم در شبکه یکتا و منحصر به همان کامپیوتر مقصد باید باشد. در دنیای شبکه ابزارهایی وجود دارند که عملیات مسیریابی یا همان روتینگ (Routing)را بعهده میگیرند. این ابزار که به آنها روتر(Router) میگویند، قادرند پکتها را از سگمنتهای مختلف دریافت کرده و به سگمنتی دیگری ارسال کرده و گیرنده مورد نظر را یافته (با توجه به عدد Host منحصر بفردش) و پکت را به آن تحویل دهند. ترکیب و ساختار آدرسآیپی بصورت 4 بخش از اعداد دسیمالی است که با نقطه (.) از یکدیگر مجزا میشوند (بطور مثال 192.168.1.200). این اعداد میتوانند از 0 تا 255 بگونهای که در 8 بیت قرار گیرند مقداردهی شوند. در ادامه این مقاله بطور جامع در این مورد صحبت خواهیم کرد.
شکل3
(DNS (Domain Name System ارایه شده است که طی آن، به جای وارد کردن آیپی میتوان نام مقصد را وارد کرد. برای مثال به جای آدرس 209.85.171.83 کافی است آدرس وبسایت جیمیل یعنی www.gmail.com را وارد کنید. به طور حتم، به خاطر سپردن این آدرس خیلی راحتتر از وارد کردن 12 رقم مختلف است. به خاطر داشته باشید درحقیقت DNS به دلیل سهولت کار مورد استفاده قرار میگیرد، از این رو تبادل دادهها میان کامپیوترها همچنان از طریق آدرسهای آیپی انجام میپذیرد و فقط رابط انسانی آن به جای آیپی به نام تبدیل شده است. در حقیقت وقتی DNS را وارد میکنید، سیستم ابتدا از طریق سرور دیتابیس (که به آن DNS Server میگویند) به دنبال آیپی آن DNS خواهد گشت و پس از یافتن آن اقدام به تبادل داده خواهد کرد.
اما شاید از خود بپرسید چگونه میتوان از آدرس آیپی یک DNS اطلاع یافت؟ معمولاً روشهای گوناگونی وجود دارد که یکی از کاربردیترین آنها مراجعه به سایتهایی مانند www.samspade.org است. با مراجعه به این نشانی میتوانید DNS مورد نظر را وارد کرده و اطلاعات جامعی از قبیل آدرس آیپی، نام موسس وبسایت و ... را بیابید.
شکل4
اگر مدیر شبکه هستید و یا قصد دارید در آینده باشید، مطمئناً مجبور خواهید بود ترافیک شبکه خود را قانونمند کنید. این قانونگذاری با ابزاری به نام فایروال (از نوع سختافزاری ویا نرمافزاری) قابل اعمال است. به عبارت دیگر، اغلب کارهایی که در آینده به عنوان مدیر شبکه باید در این باره انجام دهید، با تعریف قوانین از طریق آدرسهای آیپی امکانپذیر خواهد بود. برای مثال میتوانید تعیین کنید که مجموعهای از آیپیها بتوانند به سروری (با آیپی مشخص) متصل شوند. فرض کنید سرور مذکور اطلاعات واحد مالی شرکت را در بر داشته باشد. در این حالت مطمئناً فقط واحد مالی (با محدود آیپی تعیین شده) و بعضی از مدیران باید بتوانند به آن دسترسی داشته باشند و دیگران تحت هیچ شرایطی نباید این سرور را ببینند. همانطور که میدانید، اگر فایروال و یا Access List تعریف نشده باشد، هر کلاینتی در شبکه قادر است به هر سیستم دیگری دسترسی داشته باشد. مطمئن باشید مدیران ارشد سازمان به هیچ وجه از شنیدن این خبر خوشحال نخواهند شد. از این رو باید فایروال را در شبکه تنظیم کرد. این تنظیم هم فقط با تعیین محدوده آیپیها و فیلترینگ آنها میسر خواهد شد.
اگر به مبحث قبلی یعنی آدرسدهی از طریق آیپی باز گردیم، متوجه میشویم اعداد ورودی (مانند 192.168.1.200) در قالب دسیمال تعریف شدهاند. حال آنکه در حقیقت این اعداد را کامپیوتر به صورت باینری محاسبه و پردازش می کند. در جدول 1 معادلهای مختلف باینری و دسیمال نشان داده شدهاند. با توجه به همین جدول میتوان آیپی 192.168.1.200 را این گونه تفسیر کرد: 192 برابر است با 128 به علاوه 46، 168 برابر است با 128 بعلاوه 32 به علاوه 8، 1 همان 1 است، عدد پایانی 200 هم 128 به علاوه 64 به علاوه 8 خواهد بود. در نتیجه این آدرس آیپی در حالت باینری 11000000.10101000.00000001.11001000 خواهد بود. در حقیقت این اعداد از جمع زدن معادلهای باینری با یکدیگر به دست میآیند. مثلاً عدد 192 دسیمال یعنی: 128 (10000000) به علاوه 64 (1000000) که نتیجه آن در حالت باینری 11000000 میشود.
جدول 1
نکته: اگر این تبدیلها به نظر جدید میآید (و یا آنها را فراموش کردهاید) ممکن است در ابتدا کمی گیج کننده باشند، اما جای نگرانی نیست، چون با کمی تمرین به آن مسلط خواهید شد. اگر میخواهید اعداد دسیمال را به راحتی به باینری تبدیل کنید، از ابزار ماشین حساب ویندوز استفاده کنید. البته برای این کار کافیست از منوی View گزینه Scientific را برگزیند. سپس عدد دسیمالی خود را وارد کنید. دقت داشته باشید در گوشه سمت چپ ـ بالا گزینه Dec انتخاب شده باشد. پس از وارد کردن عدد مورد نظر، گزینه Bin را انتخاب کنید. اکنون جواب حاصله معادل باینری همان عدد ورودی شماست.
شاید از خود بپرسید اصلاً آدرسآیپی چه هدفی را در شبکه دنبال میکند و چرا به وجود آمده است؟ در حقیقت یک نشانی آیپی، بیانگر چندین مشخصه مهم است. اصولاً در هر شبکه (شبکه کوچک محلی یا شبکه بسیار بزرگ مانند اینترنت) به هر سیستم (اعم از کامپیوتر، روتر و ...) حداقل یک آدرس آیپی اختصاص داده میشود. یعنی سیستمی که بتواند در شبکه ارتباط برقرار کند، باید بدون هیچ قید و شرطی یک نشانی آیپی داشته باشد و البته آدرس آیپی همسان نیز در آن شبکه وجود نداشته باشد. بنابراین میتوان نتیجه گرفت که هر نشانی آیپی در شبکه منحصر به فرد است. مشخصه دوم هر آیپی این است که در شبکه، آیپیها به دو قسمت طبقهبندی میشوند: قسمت شبکه و قسمت میزبان. همانطور که در ابتدای مقاله گفتیم، قسمت شبکه بیانگر سگمنتی است که سیستم مورد نظر در آن واقع شده و قسمت میزبان (هاست) نیز نمایانگر خود سیستم در آن سگمنت است. عدد هاست نیز باید در هر سگمنت شبکه منحصر به فرد باشد.
در همان مثال نشانی پستی افراد در دنیای واقعی، تفکیک نشانی به بخش شهر-محله-خیابان و ... (که میتواند بین افراد زیادی مشترک باشد) و بخشی که به طور انحصاری به خود فرد تخصیص داده شده (پلاک منزل)، باعث میشود تا فرد را به راحتی بیابیم. اما در مورد آیپی چنین شرایطی وجود ندارد، در واقع چگونه میتوان با دیدن یک آیپی متوجه شد که کجای آن اعداد بخش شبکه و کجای آن بخش هاست است؟ این کار با تکنیک خاصی انجام میپذیرد که در ادامه مقاله به آن میپردازیم.
مدیر شبکه میتواند هر میزان که مایل است عدد شبکهای تعیین کند و هر قدر هم باقی ماند، به هاستها اختصاص دهد. البته نباید هیچ یک از آنها صفر شده و یا از دامنه 32 بیت خارج شوند. به طور مثال میتوان تعیین کرد که 8 بیت اول نمایانگر آدرس شبکه (Network Address) باشد. یعنی 256 شبکه با این کار قابل تفکیک خواهد بود. در این حالت با 24 بیت باقی مانده (از کل 32 بیت) نیز میتوان 16,777,216 هاست در اختیار داشت. حال اگر شرایط را تغییر دهیم، یعنی 8 بیت به هاستها و 24 بیت باقی مانده را به شبکهها تخصیص دهیم، جای این دو عدد عوض میشود. یعنی 16,777,216 شبکه و 256 هاست خواهیم داشت. شاید مسئله کمی بغرنج به نظر برسد! بله بدون دانستن یک نکته مهم نمیتوان مطلب بیان شده را دنیای واقعی شبکهها درک کرد. این نکته همان جداکننده قسمت شبکه و هاست هر آدرس آیپی است. این جداکننده در اصطلاح Subnet Mask نامیده میشود و در حالت باینری همیشه از این قانون پیروی میکند: شروع آن با 1 است و آخرین عدد آن نیز 0 خواهد بود. در حقیقت Subnet Mask ساختاری شبیه آیپی دارد. 12 عدد دسیمال که با نقطه «.» به 4 بخش 3 عددی تقسیم میشوند
(به طور مثال 255.255.255.0).
همانطور که قبلاً در شکل 1 نشان دادیم، هنگام تخصیص یک آیپی در سیستم شبکهای TCP/IP، در خطی جداگانه باید Subnet Mask آن را نیز وارد کنیم. وقتی این اعداد را به حالت باینری در نظر بگیریم، ارقامی که 1 هستند نشان دهنده قسمت شبکه و ارقامی که صفر هستند نمایانگر قسمت هاست خواهند بود. در این جا آدرس آیپی 192.168.10.200 با Subnet Mask پیشفرض 255.255.255.0 را در حالت دسیمال و باینری میبینید:
255.255.255.0 11111111.11111111.11111111.00000000
توجه: در موارد Subnet Mask و حالتهای پیشفرض و توضیحات دیگر آن در آینده صحبت خواهیم کرد.همانطور که ملاحظه میکنید در مثال بیان شده، شبکه ما با آدرس آیپی 192.168.10.X معرفی شده، چون Subnet Mask را 255.255.255.0 در نظر گرفتهایم. این Subnet Mask به ما میگوید که 24 بیت اول آیپی مخصوص قسمت شبکه
(16,777,216 شبکه) و 8 بیت باقی مانده نمایانگر 256 هاست است. فعلاً فرض کنید اعداد 0 و 255 غیر قابل استفادهاند (در قسمتهای بعدی دلیل آن را بیان خواهیم کرد)، بنابراین در شبکه مذکور میتوان محدوده آیپیهای بین 192.168.10.1 را تا 192.168.10.254 را به هاستها تخصیص داد.
شکل5
در قسمت آینده کار را با معرفی کلاسهای مختلف آدرسآیپی و آیپیهای Valid و Private ادامه خواهیم داد و نگاهی نیز به پروتکلهای رایج در شبکههای امروزی خواهیم داشت.