CIDR چیه
جواب کوتاه
CIDR روش امروزیِ تیکه کردن آدرسهای IP هست. قبلش، شبکهها فقط سه تا اندازه داشتن (کلاس A و B و C) و کلی آدرس هدر میرفت. با CIDR هر شبکه میتونه هر اندازهای داشته باشه که توانی از ۲ هست، و اندازهش رو با یه عدد بعد از خط کج مینویسن؛ مثلا 192.168.1.0/24 یعنی ۲۴ بیت اول اسم شبکهست.
سه تا کلمه
- CIDRکوتاهشدهی Classless Inter-Domain Routing، یعنی «مسیریابی بیکلاس»: آدرسها توی هر اندازهای که توانی از ۲ باشه داده میشن، نه فقط سه تا اندازه.
- طول پیشوندعدد بعد از خط کج، مثلا ۲۴ توی /24: یعنی چند تا بیت اول آدرس اسم شبکهست. همون تعداد ۱های مسک.
- یکی کردن مسیرهاچند تا شبکهی پشت سر هم رو با یه پیشوند کوتاهتر اعلام کنید، تا جدول روترها کوچیک بمونه.
سه تا سایز، و یه عالمه جای خالی بینشون
مثلا فرض کنید یه فروشگاه لباس رو فقط توی سه تا سایز میفروشه، اونم با فاصلهی خیلی زیاد از هم. کسی که توی کوچیک جا نمیشه، باید متوسط بخره، حتی اگه توش گم بشه.
آدرسهای IP تا سال ۱۹۹۳ همینجوری داده میشد. شبکهها سه تا کلاس داشتن و اندازهی هر کدوم از خود آدرس معلوم بود:
شرکتی که ۳۰۰ تا دستگاه داشت، توی کلاس C با ۲۵۴ تا جا نمیشد و یه کلاس B میگرفت؛ یعنی ۶۵٬۵۳۶ تا آدرس برای ۳۰۰ تا دستگاه. وقتی اینترنت تجاری شد، درخواست کلاس B اونقدر تند بالا رفت که سال ۱۹۹۱ یه گروه نشستن تا یه فکری براش بکنن. (سایز لباسهای توی تصویر واقعی نیست؛ فاصلهی واقعی خیلی بیشتره.)
خیاط: هر سایزی، به شرط دو برابر بودن
راهحل این بود که فروشگاه بره کنار و یه خیاط بیاد که هر سایزی بدوزه، به یه شرط: هر سایز دو برابر یا نصف یه سایز دیگه باشه. این همون CIDR هست که سال ۱۹۹۳ اومد. کلاسها رفتن کنار و هر شبکه میتونه هر اندازهای داشته باشه که توانی از ۲ هست، از یه آدرس تا همهی آدرسها.
حالا اون شرکت ۳۰۰ دستگاهی یه شبکهی ۵۱۲ تایی میگیره، نه ۶۵٬۵۳۶ تایی:
عدد بعد از خط کج
وقتی دیگه اندازه از خود آدرس معلوم نیست، باید کنار آدرس نوشتش. CIDR این کار رو با یه خط کج و یه عدد میکنه: 192.168.1.0/24. به عدد بعد از خط کج میگن طول پیشوند ؛ یعنی چند تا بیت اول آدرس اسم شبکهست. این همون تعداد ۱های مسکه (درس سابنت مسک)؛ پس /24 همون 255.255.255.0 هست.
برای اینکه هر /n رو مسک کنید، n تا ۱ بنویسید و بقیه رو ۰ بذارید. مثلا /20:
دو بایت اول هشت تا ۱ دارن و میشن ۲۵۵. توی بایت سوم چهار تا ۱ هست: ۱۲۸ و ۶۴ و ۳۲ و ۱۶، که میشه ۲۴۰. بایت آخر ۰ هست. پس /20 یعنی 255.255.240.0، و تعداد آدرسهاش ۲ به توان ۱۲، یعنی ۴٬۰۹۶ تاست. قاعدهی کلیش اینه: /n جای ۲ به توان (۳۲ منهای n) تا آدرس داره.
جدول از /8 تا /32
هر یکی که به طول پیشوند اضافه بشه، تعداد آدرسها نصف میشه (درس محاسبهی سابنت):
| طول پیشوند | مسک | تعداد آدرس |
|---|---|---|
| /8 | 255.0.0.0 | ۱۶٬۷۷۷٬۲۱۶ |
| /12 | 255.240.0.0 | ۱٬۰۴۸٬۵۷۶ |
| /16 | 255.255.0.0 | ۶۵٬۵۳۶ |
| /20 | 255.255.240.0 | ۴٬۰۹۶ |
| /22 | 255.255.252.0 | ۱٬۰۲۴ |
| /23 | 255.255.254.0 | ۵۱۲ |
| /24 | 255.255.255.0 | ۲۵۶ |
| /28 | 255.255.255.240 | ۱۶ |
| /30 | 255.255.255.252 | ۴ |
| /32 | 255.255.255.255 | ۱ (فقط یه آدرس) |
دو سر جدول معنی خاصی دارن. /32 یعنی فقط یه آدرس، یعنی فقط یه دستگاه. و 0.0.0.0/0 یعنی همهی آدرسها؛ این همون «مسیر پیشفرض» هست که توی درس بعد، «گیتوی پیشفرض چیه»، میبینید.
چند تا رو یکی کنیم
CIDR فقط برای تیکه کردن نیست؛ برای یکی کردن هم هست. مثلا فرض کنید یه شرکت اینترنت چهار تا شبکهی /24 پشت سر هم داره. لازم نیست به همهی روترهای دنیا چهار تا خط جدا بگه؛ یه خط بسه:
چهار تا /24 روی هم ۱٬۰۲۴ تا آدرسه، یعنی ۲ به توان ۱۰؛ پس طول پیشوند ۳۲ منهای ۱۰، یعنی /22. این کار جدول روترهای اینترنت رو کوچیک نگه میداره، و یکی از دو تا هدف اصلی CIDR بود. شرطش اینه که شبکهها پشت سر هم باشن و اولیشون از یه مضرب تعدادشون شروع بشه.
دقیقترین مسیر برندهست
گاهی یه آدرس با دو تا خط جدول روتر جور درمیاد: یکی کلی، یکی دقیقتر. روتر همیشه خطی رو برمیداره که پیشوندش بلندتره، چون دقیقتره. مثل نامهای که هم «کل شهر» روش نوشته و هم «همین کوچه»؛ کوچه دقیقتره.
جزئیات جدول روتر توی درس «جدول مسیریابی» میاد.
توی IPv6
توی IPv6 مسک نقطهدار اصلا نوشته نمیشه؛ تنها راه استانداردش همین خط کجه (درس IPv6). مثلا 2001:db8::/32 یعنی ۳۲ بیت اول اسم شبکهست. یه شبکهی معمولی IPv6 /64 هست؛ یعنی ۶۴ تا بیت برای دستگاهها میمونه.
سه تا اشتباه رایج
- «/24 یعنی ۲۴ تا دستگاه.»نه. یعنی ۲۴ بیت اول اسم شبکهست. تعداد آدرسها ۲ به توان ۸، یعنی ۲۵۶ تاست.
- «CIDR و سابنت مسک دو تا چیز جدان.»نه. یه حرفن به دو شکل: /24 و 255.255.255.0 هر دو میگن ۲۴ بیت اول اسم شبکهست.
- «هر چهار تا شبکهی /24 رو میشه کرد یه /22.»نه. فقط اگه پشت سر هم باشن و اولیشون از یه مضرب ۴ شروع بشه؛ مثلا 192.168.0.0 تا 192.168.3.0، نه 192.168.1.0 تا 192.168.4.0.
جمعبندی. آنچه از این درس با خودتان میبرید.
- کلاسها فقط سه تا اندازه داشتن: ۲۵۴، ۶۵٬۵۳۶ و ۱۶٬۷۷۷٬۲۱۶. کلی آدرس هدر میرفت.
- CIDR (سال ۱۹۹۳) کلاسها رو کنار گذاشت: هر اندازهای که توانی از ۲ باشه.
- /n یعنی n تا بیت اول اسم شبکهست؛ ۲ به توان (۳۲ منهای n) تا آدرس داره.
- /n همون مسکیه که n تا ۱ داره؛ مثلا /20 یعنی 255.255.240.0.
- چند تا شبکهی پشت سر هم با یه پیشوند کوتاهتر اعلام میشن تا جدول روترها کوچیک بمونه.
- روتر از بین مسیرهایی که جورن، اونی رو برمیداره که پیشوندش بلندتره.
- توی IPv6 پیشوند فقط همینجوری نوشته میشه؛ یه شبکهی معمولی /64 هست.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.