تفاوت Classless IP Address با classfull در چیست ؟
چرا Classless IP Address ؟
Classless IP Address و subnetting .
قیل از ورود به بحث Classless IP Address ، به بررسی تفاوت این دو سیستم ، یعنی Classfull با Classless می پردازیم .
در سیستم Classfull از subnet mask هایی با قوانین خاص Classfull استفاده می شود .
برای نمونه:
Class A
0-126.x.x.x
So and IP address 0.0.0.0 to 127.255.255.255 use subnet mask = ۲۵۵.۰.۰.۰
Class B
۱۲۸-۱۹۱
So IPaddresses 128.0.0.0 to 191.255.255.255 use subnet mask = ۲۵۵.۲۵۵.۰.۰
Class C
۱۹۲-۲۲۳
So IP addresses 192.0.0.0 to 223.255.255.255 use a subnet mask = ۲۵۵.۲۵۵.۲۵۵.۰
همانطور که مشخص شده در این سیستم ۳ نوع subnet mask موجود است و در کلاس A و B عملا تعداد آدرس ها به قدری زیاد است که در شبکه ها قابل استفاده نیست .
Classless IP Address بدین معناست که قوانین subnetmask را زیر پا بگذاریم و فقط تعریف SubnetMask را حفظ کنیم.
SubnetMask : تشکیل شده است از یک های پشت سر هم از سمت چپ که یک ها نماینده Net-ID و سپس صفرهای پشت سر هم که نماینده Host-ID است.
بدین صورت می توان ۲۵۵٫۲۵۵٫۲۲۴٫۰ را تشکیل داد چرا که به صورت باینری به این شکل می شود ۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۱۱۰۰۰۰۰٫۰۰۰۰۰۰۰۰ ، در این مثال یک ها پشت سر هم چیده شده اند ، و صفرها هم پشت سرهم هستند.خوب قانون رعایت شده و این یک SubnetMask سالم و قابل استفاده و در واقع همان W.X.Y.Z/19 است .
چرا Classless IP Address ؟
این سیستم باعث می شود تعداد صفرهای کمتری در SubnetMask استفاده شود و تعداد صفرهای کمتر به معنای تعداد آدرس های کمتر در شبکه است. در نمونه بالا یا همان W.X.Y.Z/19 بایستی طبق قانون Classfull تعداد یک ها ۱۶ باشد با تعداد صفرهای ۱۶ عدد ، اما در این مثال تعداد یک ها ۱۹ و تعداد صفرها ۱۳ که این به معنای تعداد آدرس کمتر در شبکه می باشد.
Classless IP Address و subnetting
همانطور که متوجه شدید ، Subnetting به معنای بازی با تعدا یک ها و صفرهای پشت سر هم در SubnetMask ، به صورتی که رنج آدرس های کوچکتری در دسترس باشد.
فرض کنید شما ادمین یک ساخمان دو طبقه هستید و رنج ۱۹۲٫۱۶۸٫۱۰٫۰/۲۴ در اختیار شما گذاشته شده ، شما حق استفاده از رنج دیگری را ندارید و بایستی به هر طبقه یک Net-ID مستقل اختصاص دهید.
برای حل این مشکل باید رنج ۱۹۲٫۱۶۸٫۱۰٫۰/۲۴ را به دو قسمت تقسیم کنیم و این کار فقط با کمک SubnetMask امکان پذیر است .
SubnetMask موجود :
۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۰۰۰۰۰۰۰۰
در صورتی که یک صفر در اکتت چهارم تبدیل به یک کنیم ،
۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۰۰۰۰۰۰۰
تعداد یکها به ۲۵ افزایش پیدا می کند (۲۵۵٫۲۵۵٫۲۵۵٫۱۲۸)و با توجه به اضافه کردن یک بیت به قسمت یکها یا همان Net-ID ، رنج اصلی به دو رنج تقسیم می شود ، چراکه هر بیت دو حالت دارد، صفر و یک .
در تصویر زیر اکتت آخر به صورت باینری نشان داده شده ، و مشخصا تعداد آدرس هایی که از بین می رود به ۴ آدرس رسیده ، چراکه در هر شبکه دو آدرس Net-id و Broadcast از بین می رود . اگر یک بیت دیگر به یک ها اضافه شده بود ، در حقیقت ۴ شبکه بوجود می آمد و ۸ آدرس از بین می رفت ، اما به ازای از دست دادن این تعداد آدرس ، ما کیفیتی دیگر ، یعنی تعداد شبکه های کوچکتر با آدرس های کمتر بدست می آوریم.
مثال :
خوب اگر تعداد شبکه های مورد نیاز ما ۱۰ شبکه باشد، بایستی ببینیم چند بیت یک باید به Subnetmask اضافه کنیم ، که با فرمول
۲N≥net-id در صورتی که N تعداد بیت هایی است که بایستی قرض گرفته شود، تعداد یک های قابل اضفه شدن مشخص می شود.
۲۱=۲
۲۲=۴
۲۳=۸
۲۴=۱۶
۲۵=۳۲
۲۶=۶۴
۲۷=۱۲۸
۲۸=۲۵۶
۲۹=۵۱۲
۲۱۰=۱۰۲۴
۲۱۱=۲۰۴۸
میدانیم که تعداد بیت ها در توان قرار داده شده یا همان N است، بنابراین تعداد دقیق ۱۰ شبکه قابل دسترس نیست ، ولی می توان 2۴=۱۶ شبکه را بدست آورد و N=4 در واقع تعداد بیت هایی است که بایستی قرض گرفته شود.
subnetMask به شکل مقابل می شود
11111111.11111111.11111111.000000000 255.255.255.0
باید ۴ بیت قرض گرفته شود.
۲۸/ یا 11111111.11111111.11111111.۱۱۱۱۰۰۰۰
حاصل به این صورت می شود که در هر شبکه ۴ صفر باقی می ماند: ۲-۲۴=۱۴ تعداد آدرس ها در شبکه خواهد بود.
در این مرحله SubnetMask را به صورت دسیمال محاسبه می کنیم.
اکتت اول ،دوم و سوم ۲۵۵ است ، محاسبه اکتت چهارم:
۱۱۱۱۰۰۰۰
۲۷+۲۶+۲۵+۲۴ = ۲۴۰
SubnetMask = ۲۵۵.۲۵۵.۲۵۵.۲۴۰
چگونه Net-ID ها را بدست آوریم؟
برای بدست آوردن Net-id ، با توجه به SubnetMask ، تعداد حالات را محاسبه می کند که برای ما کاری است دشوار چرا که باید ۱۶ حالت ممکن را محاسبه کنیم.ولی بوسیله فرمول گام پرش ، بسرعت به Net-ID های مورد نیاز خواهیم رسید.
Z=2r
r = تعداد صفر ها در اکتتی که قرض می گیریم.( برای گام پرش فقط تعداد صفر ها در همان اکتت را در نظر میگیریم و نه کل صفرها)
برای نمونه در همان مثال بالا :
۱۹۲٫۱۶۸٫۱۰٫۰/۲۴
را داریم و بایستی در Classless IP Address به تعداد حداقل ۱۰ Subnet برسیم.
در ادامه محاسبه کردیم که SubnetMask مقصد برابر با
۲۵۵٫۲۵۵٫۲۵۵٫۲۴۰
محاسبه گام پرش:
۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۱۱۱۰۰۰۰
تعداد صفرهای باقیمانده در اکتت چهارم ، ۴ عدد است ، گام پرش برابر است با
r=4
۲۴=۱۶
در اکتت چهارم شروع به پرش با گام های ۱۶تایی می کنیم و Net-idهای لازم را محاسبه می کنیم.
۱۹۲٫۱۶۸٫۱۰٫۰/۲۸ 192.168.10.16/28
۱۹۲٫۱۶۸٫۱۰٫۳۲/۲۸ 192.168.10.48/28
۱۹۲٫۱۶۸٫۱۰٫۶۴/۲۸ 192.168.10.80/28
۱۹۲٫۱۶۸٫۱۰٫۹۶/۲۸ 192.168.10.112/28
۱۹۲٫۱۶۸٫۱۰٫۱۲۸/۲۸ 192.168.10.144/28
۱۹۲٫۱۶۸٫۱۰٫۱۶۰/۲۸ 192.168.10.176/28
۱۹۲٫۱۶۸٫۱۰٫۱۹۲/۲۸ 192.168.10.208/28
۱۹۲٫۱۶۸٫۱۰٫۲۲۴/۲۸ 192.168.10.240/28
با مثال های بیشتر و تمرین بیشتر ، راه حل برای شما ساده می شود.
مثال ۲:
۱۷۲٫۱۶٫۰٫۰/۱۶
باید به ۵۰ شبکه یا Net-ID برسیم.
مرحله ۱: تعداد یک های لازم را مشخص کنیم.
۲N≥۵۰ ، 2N≥net-id
2۶≥۵۰
در نتیجه N=6، باید ۶ عدد یک در Subnetmask اضافه کنیم.
۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۰۰٫۰۰۰۰۰۰۰۰
۲۵۵٫۲۵۵٫۲۵۲.۰
مرحله ۲ :گام پرش را محاسبه کنیم.
Z=2r
r=2 تعداد صفرها در اکتتی که قرض می گیریم r:نکته
Z=2۲
Z=4 گام پرش
مرحله ۳ : محاسبه Net-ID
۱۷۲٫۱۶٫۰٫۰/۲۲ 172.16.4.0/22 172.16.8.0/22 ……… 172.16.252.0/22
مثال ۳:
۱۰٫۰٫۰٫۰/۸
باید به ۳۰۰ شبکه یا Net-ID برسیم.
مرحله ۱: تعداد یک های لازم را مشخص کنیم.
۲N≥۳۰۰ ، 2N≥net-id
2۹≥۳۰۰
در نتیجه N=9، باید ۹ عدد یک در Subnetmask اضافه کنیم.
۱۱۱۱۱۱۱۱٫۱۱۱۱۱۱۱۱٫۱۰۰۰۰۰۰۰٫۰۰۰۰۰۰۰۰
۲۵۵.۲۵۵٫۱۲۸.۰
مرحله ۲ :گام پرش را محاسبه کنیم.
Z=2r
r=7 تعداد صفرها در اکتتی که قرض می گیریم r:نکته
Z=2۷
Z=128 گام پرش
مرحله ۳ : محاسبه Net-ID
۱۰٫۰٫۰٫۰/۱۷ 10.0.128.0/17 10.1.0.0/17 10.1.128.0/17 10.2.0.0/17 10.2.128.0/17 ……… 10.255.128.0/17