پس از توضیحاتی که در خصوص سوئیچینگ و پروتکل های مربوط به آن دادیم می خواهیم در خصوص مسیریابی یا همان routing صحبت کنیم. اما پیش از آنکه به سراغ routing برویم، بایستی در خصوص ساختار IP و مفاهیم پایه مسیریابی اطلاعاتی داشته باشیم. IP اولین آدرس اجباری برای هر interface در روتر است و بدون آن روتر کاری نمیتواند انجام دهد.
مسیریابی یا routing به فرآیند یافتن بهترین مسیر برای انتقال ترافیک بین دو آدرس ‘گفته میشود. routing به روشهای مختلفی انجام میشود.
روشهای مختلف مسیریابی
یک نوع از روشهایی که یک روتر میتواند بین دو subnet مسیر یابی را انجام دهد این است که روتر به هر دو subnet متصل باشد. به این روش مسیر یابی connected route میگویند.
در روش دیگر، زمانیکه مسیر مستقیم موجود نیست دروازه ی خروجی برای رنجی مشخص در جدول روتینگ به صورت دستی (static) مشخص شده باشد.
روش سوم استفاده از پروتکل های روتینگ و یا Dynamic Routes میباشد. Dynamic routing protocols نرم افزارهایی هستند که بروی روتر نصب شده و غیر فعالند و برای استفاده از آنها بایستی آنها را فعال کنیم.
کار اصلی روتر مسیریابی و جداسازی broadcast domain های از یکدیگر است به همین دلیل در شرایط معمول، یک روتر بروی دو interface متفاوتش نمی تواند IP از رنج آدرس یکسان داشته باشد.
از آنجایی که در مسیریابی دائما با محاسبات IP سروکار داریم پیش از باز کردن بحث مسیریابی محاسبات IP را بررسی میکنیم.
ایجاد جدول routing پس از تنظیم IP
وقتی به یک کارت شبکه آدرس میدهیم، سیستم به صورت پیش فرض خصلتی را به نام routing ایجاد میکند. زمانی که IP مقصد با IP مبدا در یک subnet باشد از مسیری به نام connected route استفاده میکند و gateway آن نیز interface ای است که IP بروی آن تنظیم شده است. (مایکروسافت اسم gateway خود را که در محدوده ی خود کارت شبکه اش میباشد را on-link گذاشته و این در حالیست که سیسکو از اسم routeهای connected ویا connected route استفاده میکند.)
تمام سیستم هایی که روی آنها IP تنظیم میشود دارای جدولی به نام Routing Table هستند. برای دیدن این جدول بروی سیستم های مایکروسافتی با دستور route print میتوان route های موجود را مشاهده کرد.
اگر کاربری بخواهد ارتباطی با مقصد برقرار کند در صورتی که مقصد در همان subnet باشد از طریق سوئیچ و connected route به مقصد متصل میشود و ترافیک سمت روتر نخواهد رفت. در صورتیکه مقصد در same subnet نباشد کاربر به routing table خود رجوع خواهد کرد در صورت وجود مسیر ترافیک برای gateway مشخص شده ارسال خواهد شد. در صورت عدم وجود مسیر خاص اگر default gateway تعریف شده باشد، تمام ترافیک های تعریف نشده از مسیر default gateway برای انتقال ارسال میشود.
نحوه برقراری ارتباط با مقصدی خارج از subnet
سیستم مبدا برای برقراری ارتباط با خارج از subnet خود به routing table اش مراجعه میکند و از آن جدول IP دستگاه gateway که بایستی در رنج خودش باشد را بدست می آورد. سپس پس از arp discovery به منظور ارتباط با router، ترافیک را به سمت gateway ارسال می کند. روتر پس از دریافت اطلاعات مبدا، MAC داخل پکت را حذف و MAC خود را قرار داده و ترافیک را برای مقصد ارسال میکند. تعویض MAC روتر با آدرس لایه 2 مبدا را ARP Proxy می نامند.
محاسبات IP
هر IP شامل 4 اکتد و هر اکتد 8 بیت است. به همین علت هر اکتد میتواند عددی بین 0 تا 255 باشد.
هر IP شامل دو بخش است: IP Address = Net ID + Host ID
آدرس IP های دریک رنج داری NET ID یکسان میباشند.
از مشخصاتی که در تنظیمات IP در هر interface یا پورت انجام میدهیم، subnet mask است. کار subnet mask مشخص کردن محدوده network یا همان prefix length میباشد. (بخش ثابتی از یک IP را prefix length میگویند.)
از آنجایی که برای درک مطالب IP بایستی در تبدیل اعداد در مبنای 10 به 2 و بالعکس سرعت عمل بالایی داشته باشیم میتوانیم از ترفندهایی برای بالا بردن سرعت عملمان استفاده کنیم. در زیر یکی از این ترفندهای پرکاربرد را توضیح دادهایم.
در حالت عادی تصور کنید میخواهیم عدد 231 را به مبنای 2 ببریم. برای اینکار باید بنویسیم:
231=128+64+32+0+0+4+2+1=11100111
اما برای تبدیل سریع تر اعداد ده ده ایی به دودویی، بخاطر سپردن معادل دودویی اعداد بزرگتر از 128 کمک فراوانی خواهد نمود.
حال اگر بخواهیم عدد 231 را به مبنای دو دو ایی ببریم میشود 224+7 یا همان 11100111 که روش سریعتری در محاسبه خواهد بود.
کلاسهای IP Address و رنج های Public و Private
IP ها در تقسیم بندی کلی به دو دسته Public و Private تقسیم میشوند. اصطلاحا میگویند این دو رنج IP به دنیای همدیگر راهی ندارند. علت این است که در رنج IP های اینترنتی routing یا مسیریابی IP های Private انجام نمیشود.
آدرسهای Private به شرح زیر در کلاسهای متفاوت اند:
تمام آدرس های باقی مانده (آدرس هایی غیر از LoopBack، APIPA، Multicasting و Reserve) آدرس های Public هستند.
بوسیله subnet mask نمیتوان مشخص نمود که IP در دسته public یا private قرار دارد و تنها از طریق IP میتوان این موضوع را تشخیص داد.
کلاس بندی IP ها
دسته بندی دیگری از IP ها وجود دارد که آنها را براساس کلاسهای A و B و C و D تقسیم بندی میکنند. در این تقسیم بندی subnet و IP عوامل متمایز کنند اند.
اکتد اول از IP ایی بین 1-127 بوده و subnet آن 255.0.0.0 باشد کلاس A
اکتد اول از IP ایی بین 128-191 بوده و subnet آن 255.255.0.0 باشد کلاس B
اکتد اول از IP ایی بین 192-223 بوده و subnet آن 255.255.255.0 باشد کلاس C
اکتد اول از IP ایی بین 224-239 بوده و subnet آن 255.255.255.0 باشد کلاس D یا استفاده Multicasting
اکتد اول از IP ایی بین 240-255 بوده و subnet آن 255.255.255.0 باشد آدرس رزرو است.
اگر آدرسی در یکی از رنج ها باشد اما subnet آن متفاوت باشد، دیگر کلاس full نیست.
برای بدست آوردن Net ID و Broadcast ID، IP و Mask را با هم And منطقی می کنیم. مقدار بدست آمده همان Net ID است و در صورتیکه تمام صفرهای موجود در انتهای Net ID را یک کنیم، مقدار بدست آمده Broadcast ID است.
چند مثال
مثال: IP های داده شده در شبکه چندم میباشند.
204.76.62.100/25 204.76.62.100/26 204.76.62.100/28
در مورد اول فقط دو شبکه وجود دارد. تعداد host ها در هر شبکه 128 عدد است. پس در مورد اول IP در شبکه zero یا اولین شبکه میباشد.
در مورد دوم چهار شبکه وجود دارد. در هر شبکه 64 IP وجود خواهد داشت. و 100=64*1+36 که IP در شبکه اول میباشد.
در حالت سوم 16 شبکه وجود دارد و 100=16*6+4 که IP در شبکه شش ام خواهد بود.
مثال: IP کاربری 192.168.1.61/28 میباشد. Net ID و Broadcast IP چیست؟
باتوجه به prefix length که 28 است پس subnet mask = 255.255.255.192 و میتوان نتیجه گرفت که هر شبکه دارای 64 آدرس است. چون 61 از 64 کوچکتر است بنابراین NET ID = 192.168.1.0 و Broadcast IP = 192.168.1.63 میباشد.
مثال: Subnet mask شرکت کوچکی که تنهای دارای یک رنج است بصورت 255.255.255.224 می باشد. ماکزیمم تعداد کاربران این شرکت چه مقداری است.
تعداد IP هایی که یک subnet در خود جای میدهد برابر است با 256-224 = 32 که از این میزان دو IP ابتدا و انتها (برای NET ID و Broadcast IP) کسر میشود. حداکثر تعداد IP قابل استفاده در این شبکه 30 آدرس است.