اگر با شبکه، سرور، فایروال، VPN، میکروتیک، Docker، Kubernetes یا سرویسهای ابری کار کرده باشید، حتماً با عبارتهایی مانند ۱۹۲.۱۶۸.۱.۰/۲۴، ۱۰.۰.۰.۰/۸ یا ۱۷۲.۱۶.۰.۰/۱۲ روبهرو شدهاید. این عبارتها فقط یک آدرس IP نیستند؛ بلکه یک شبکه، تعداد آدرسهای موجود، محدوده میزبانها و مرزهای مسیریابی را مشخص میکنند.
درک درست IP و Subnet و CIDR برای تنظیم فایروال، طراحی شبکه داخلی، اتصال چند سرور، ساخت VPN، تعریف شبکه Docker، پیکربندی روتر، محدودسازی دسترسی و مدیریت زیرساخت ابری ضروری است. یک اشتباه کوچک در Subnet Mask یا Prefix میتواند باعث قطع ارتباط، تداخل IP، باز شدن ناخواسته دسترسی یا مسیریابی اشتباه ترافیک شود.
در این مقاله، از پایه توضیح میدهیم آدرس IP چیست، تفاوت IP عمومی و خصوصی کدام است، Subnet چگونه یک شبکه را تقسیم میکند، Subnet Mask چه کاری انجام میدهد و علامتهایی مانند /۲۴ یا /۲۹ در CIDR دقیقاً چه معنایی دارند. سپس با مثالهای واقعی یاد میگیریم Network Address، Broadcast Address، رنج قابل استفاده و تعداد Hostهای یک شبکه را محاسبه کنیم.
سطح مقاله: مقدماتی تا متوسط | مناسب برای: مدیران سرور، کارشناسان شبکه، کاربران VPS، توسعهدهندگان، متخصصان DevOps، کاربران میکروتیک و افرادی که میخواهند مفاهیم پایه شبکه را اصولی یاد بگیرند.
فهرست مطالب
- آدرس IP چیست؟
- ساختار آدرس IPv4 چگونه است؟
- تفاوت IP عمومی و خصوصی
- رنجهای IP خصوصی
- Subnet چیست؟
- بخش Network و Host در آدرس IP
- Subnet Mask چیست؟
- CIDR چیست؟
- جدول کامل CIDR و تعداد IP
- Network Address و Broadcast Address چیست؟
- روش محاسبه Subnet و رنج IP
- مثال محاسبه /۲۴، /۲۶، /۲۷، /۲۸، /۲۹ و /۳۰
- کاربرد /۳۱ و /۳۲
- VLSM چیست؟
- تجمیع مسیر یا Route Aggregation
- CIDR در IPv6
- کاربرد Subnet و CIDR در سرور و شبکه
- بررسی IP و Route در لینوکس
- اشتباهات رایج در Subnetting
- سوالات متداول
- جمعبندی
آدرس IP چیست؟
IP مخفف Internet Protocol است. آدرس IP یک شناسه عددی است که به یک رابط شبکه اختصاص داده میشود تا دستگاهها بتوانند یکدیگر را در شبکه پیدا کنند و با هم ارتباط داشته باشند.
میتوان IP را شبیه آدرس یک ساختمان در نظر گرفت. همانطور که برای رساندن یک بسته باید آدرس مقصد مشخص باشد، برای ارسال داده در شبکه نیز باید آدرس IP مقصد مشخص شود.
آدرس IP دو وظیفه اصلی دارد:
- شناسایی دستگاه یا رابط شبکه: مشخص میکند داده باید به کدام سیستم تحویل داده شود.
- تعیین موقعیت دستگاه در ساختار شبکه: مشخص میکند دستگاه متعلق به کدام شبکه است و بستهها از چه مسیری باید به آن برسند.
در حال حاضر دو نسخه اصلی IP استفاده میشود:
- IPv4: آدرسهای ۳۲ بیتی مانند
۱۹۲.۱۶۸.۱.۱۰ - IPv6: آدرسهای ۱۲۸ بیتی مانند
۲۰۰۱:db8:100::10
بخش عمده مثالهای این مقاله بر IPv4 متمرکز است؛ زیرا محاسبات Subnet در آن ملموستر است. با این حال، در ادامه CIDR در IPv6 را نیز توضیح میدهیم.
ساختار آدرس IPv4 چگونه است؟
هر آدرس IPv4 از ۳۲ بیت تشکیل شده است. برای خوانایی بهتر، این ۳۲ بیت به چهار بخش ۸ بیتی تقسیم میشوند که به هر بخش یک Octet گفته میشود.
مثال:
۱۹۲.۱۶۸.۱.۱۰این آدرس شامل چهار Octet است:
۱۹۲ | ۱۶۸ | ۱ | ۱۰هر Octet هشت بیت دارد و مقدار آن میتواند از صفر تا ۲۵۵ باشد؛ زیرا با هشت بیت میتوان ۲۵۶ حالت مختلف از صفر تا ۲۵۵ ایجاد کرد.
نمایش باینری آدرس بالا به این شکل است:
۱۹۲ ۱۶۸ ۱ ۱۰
۱۱۰۰۰۰۰۰ ۱۰۱۰۱۰۰۰ ۰۰۰۰۰۰۰۱ ۰۰۰۰۱۰۱۰بنابراین آدرسهای زیر معتبر هستند:
۱۰.۰.۰.۱
۱۷۲.۱۶.۲۰.۵۰
۱۹۲.۱۶۸.۱۰۰.۲۵۴
۸.۸.۸.۸اما این آدرس معتبر نیست:
۱۹۲.۱۶۸.۱.۳۰۰چون مقدار هر Octet نمیتواند بیشتر از ۲۵۵ باشد.
تفاوت IP عمومی و خصوصی چیست؟
آدرسهای IPv4 بهطور کلی در دو گروه عمومی و خصوصی قرار میگیرند.
IP عمومی یا Public IP
IP عمومی یک آدرس یکتا و قابل مسیریابی در اینترنت است. سرورهای عمومی، وبسایتها، روترهای اینترنتی و سرویسهایی که باید از اینترنت قابل دسترس باشند، معمولاً حداقل یک Public IP دارند.
برای مثال، وقتی یک سرور مجازی ایران یا سرور مجازی آلمان تهیه میکنید، معمولاً یک IP عمومی در اختیار شما قرار میگیرد تا بتوانید با SSH، RDP، HTTP یا HTTPS به آن متصل شوید.
IP خصوصی یا Private IP
IP خصوصی در شبکههای داخلی استفاده میشود و مستقیماً در اینترنت Route نمیشود. کامپیوترها، موبایلها، دوربینها، سرورهای داخلی و کانتینرها معمولاً از آدرس خصوصی استفاده میکنند.
برای دسترسی یک سیستم دارای IP خصوصی به اینترنت، معمولاً از NAT استفاده میشود. روتر، آدرس خصوصی مبدا را به IP عمومی تبدیل میکند و پاسخها را دوباره به دستگاه داخلی برمیگرداند.
رنجهای IP خصوصی کداماند؟
سه رنج اصلی برای شبکههای خصوصی در IPv4 رزرو شدهاند:
| رنج خصوصی | CIDR | تعداد کل آدرس | کاربرد رایج |
|---|---|---|---|
۱۰.۰.۰.۰ تا ۱۰.۲۵۵.۲۵۵.۲۵۵ | ۱۰.۰.۰.۰/۸ | ۱۶٬۷۷۷٬۲۱۶ | شبکههای بزرگ، دیتاسنتر و Cloud |
۱۷۲.۱۶.۰.۰ تا ۱۷۲.۳۱.۲۵۵.۲۵۵ | ۱۷۲.۱۶.۰.۰/۱۲ | ۱٬۰۴۸٬۵۷۶ | شبکه سازمانی، Docker و زیرساخت داخلی |
۱۹۲.۱۶۸.۰.۰ تا ۱۹۲.۱۶۸.۲۵۵.۲۵۵ | ۱۹۲.۱۶۸.۰.۰/۱۶ | ۶۵٬۵۳۶ | شبکه خانگی و اداری کوچک |
نکته مهم: همه آدرسهای ۱۷۲.x.x.x خصوصی نیستند. فقط بازه ۱۷۲.۱۶.۰.۰ تا ۱۷۲.۳۱.۲۵۵.۲۵۵ خصوصی است.
همچنین رنج ۱۲۷.۰.۰.۰/۸ برای Loopback رزرو شده است. معروفترین آدرس این رنج ۱۲۷.۰.۰.۱ یا localhost است که هر سیستم برای ارتباط با خودش از آن استفاده میکند.
Subnet چیست؟
Subnet یا Subnetwork به معنای یک بخش منطقی کوچکتر از یک شبکه بزرگتر است. با Subnetting میتوان یک رنج IP بزرگ را به چند شبکه مستقل و کوچکتر تقسیم کرد.
فرض کنید یک شرکت یک شبکه ۱۹۲.۱۶۸.۱.۰/۲۴ با ۲۵۶ آدرس دارد. بهجای اینکه همه دستگاهها در یک شبکه باشند، میتوان آن را به چند Subnet تقسیم کرد:
- شبکه کاربران اداری
- شبکه سرورها
- شبکه دوربینها
- شبکه مهمان
این تقسیمبندی چند مزیت مهم دارد:
- کاهش Broadcast و بهبود کارایی شبکه
- تفکیک امنیتی بخشهای مختلف
- امکان تعریف Firewall Rule بین شبکهها
- مدیریت بهتر IPها
- جلوگیری از دسترسی مستقیم کاربران به سرورها
- سادهتر شدن Route و عیبیابی شبکه
برای مثال میتوان شبکه ۱۹۲.۱۶۸.۱.۰/۲۴ را به چهار شبکه /۲۶ تقسیم کرد:
۱۹۲.۱۶۸.۱.۰/۲۶
۱۹۲.۱۶۸.۱.۶۴/۲۶
۱۹۲.۱۶۸.۱.۱۲۸/۲۶
۱۹۲.۱۶۸.۱.۱۹۲/۲۶هر کدام از این Subnetها ۶۴ آدرس کل و ۶۲ آدرس قابل استفاده برای Host دارند.
بخش Network و Host در آدرس IP
هر آدرس IP در یک شبکه از دو بخش منطقی تشکیل میشود:
- Network Portion: شبکهای را مشخص میکند که دستگاه به آن تعلق دارد.
- Host Portion: دستگاه مشخص در آن شبکه را شناسایی میکند.
برای مثال در آدرس زیر:
۱۹۲.۱۶۸.۱.۷۵/۲۴Prefix برابر ۲۴ است. یعنی ۲۴ بیت اول متعلق به شبکه و هشت بیت آخر متعلق به Host هستند:
Network: 192.168.1
Host: 75آدرس شبکه این IP برابر است با:
۱۹۲.۱۶۸.۱.۰اما در شبکهای مانند ۱۹۲.۱۶۸.۱.۷۵/۲۶ نمیتوان صرفاً سه Octet اول را بخش شبکه دانست؛ زیرا دو بیت از Octet چهارم نیز جزو Network Prefix هستند. آدرس شبکه در این مثال برابر است با:
۱۹۲.۱۶۸.۱.۶۴/۲۶Subnet Mask چیست؟
Subnet Mask یک عدد ۳۲ بیتی است که مشخص میکند کدام بیتهای آدرس IP به Network و کدام بیتها به Host اختصاص دارند.
در Subnet Mask:
- بیتهای ۱ نشاندهنده بخش Network هستند.
- بیتهای ۰ نشاندهنده بخش Host هستند.
برای مثال Subnet Mask مربوط به /۲۴ به شکل زیر است:
۲۵۵.۲۵۵.۲۵۵.۰نمایش باینری آن:
۱۱۱۱۱۱۱۱.۱۱۱۱۱۱۱۱.۱۱۱۱۱۱۱۱.۰۰۰۰۰۰۰۰۲۴ بیت اول ۱ هستند؛ بنابراین ۲۴ بیت برای Network و هشت بیت برای Host استفاده میشود.
چند Subnet Mask رایج:
| CIDR | Subnet Mask | تعداد بیت Host |
|---|---|---|
/۸ | ۲۵۵.۰.۰.۰ | ۲۴ |
/۱۶ | ۲۵۵.۲۵۵.۰.۰ | ۱۶ |
/۲۴ | ۲۵۵.۲۵۵.۲۵۵.۰ | ۸ |
/۲۵ | ۲۵۵.۲۵۵.۲۵۵.۱۲۸ | ۷ |
/۲۶ | ۲۵۵.۲۵۵.۲۵۵.۱۹۲ | ۶ |
/۲۷ | ۲۵۵.۲۵۵.۲۵۵.۲۲۴ | ۵ |
/۲۸ | ۲۵۵.۲۵۵.۲۵۵.۲۴۰ | ۴ |
/۲۹ | ۲۵۵.۲۵۵.۲۵۵.۲۴۸ | ۳ |
/۳۰ | ۲۵۵.۲۵۵.۲۵۵.۲۵۲ | ۲ |
CIDR چیست؟
CIDR مخفف Classless Inter-Domain Routing است. در CIDR، تعداد بیتهای Network بعد از علامت Slash نوشته میشود.
مثال:
۱۹۲.۱۶۸.۱.۰/۲۴عدد ۲۴ یعنی ۲۴ بیت اول آدرس مربوط به Network Prefix است. در نتیجه هشت بیت برای Host باقی میماند.
فرمول تعداد کل آدرسهای یک شبکه IPv4:
تعداد کل IP = 2^(32 - Prefix)برای /۲۴:
۲^(۳۲ - ۲۴) = 2^۸ = 256در شبکههای معمول IPv4 از /۰ تا /۳۰، دو آدرس برای Network و Broadcast رزرو میشوند. بنابراین:
تعداد Host قابل استفاده = 2^(۳۲ - Prefix) - 2برای /۲۴:
۲۵۶ - ۲ = 254 Hostهرچه عدد بعد از Slash بزرگتر شود، تعداد بیتهای Network بیشتر و تعداد IPهای موجود در هر Subnet کمتر میشود.
برای مثال:
/۲۴شامل ۲۵۶ IP است./۲۵شامل ۱۲۸ IP است./۲۶شامل ۶۴ IP است./۲۷شامل ۳۲ IP است./۲۸شامل ۱۶ IP است./۲۹شامل ۸ IP است./۳۰شامل ۴ IP است.
جدول CIDR، Subnet Mask و تعداد Host
| CIDR | Subnet Mask | تعداد کل IP | Host قابل استفاده |
|---|---|---|---|
/۸ | ۲۵۵.۰.۰.۰ | ۱۶٬۷۷۷٬۲۱۶ | ۱۶٬۷۷۷٬۲۱۴ |
/۹ | ۲۵۵.۱۲۸.۰.۰ | ۸٬۳۸۸٬۶۰۸ | ۸٬۳۸۸٬۶۰۶ |
/۱۰ | ۲۵۵.۱۹۲.۰.۰ | ۴٬۱۹۴٬۳۰۴ | ۴٬۱۹۴٬۳۰۲ |
/۱۱ | ۲۵۵.۲۲۴.۰.۰ | ۲٬۰۹۷٬۱۵۲ | ۲٬۰۹۷٬۱۵۰ |
/۱۲ | ۲۵۵.۲۴۰.۰.۰ | ۱٬۰۴۸٬۵۷۶ | ۱٬۰۴۸٬۵۷۴ |
/۱۳ | ۲۵۵.۲۴۸.۰.۰ | ۵۲۴٬۲۸۸ | ۵۲۴٬۲۸۶ |
/۱۴ | ۲۵۵.۲۵۲.۰.۰ | ۲۶۲٬۱۴۴ | ۲۶۲٬۱۴۲ |
/۱۵ | ۲۵۵.۲۵۴.۰.۰ | ۱۳۱٬۰۷۲ | ۱۳۱٬۰۷۰ |
/۱۶ | ۲۵۵.۲۵۵.۰.۰ | ۶۵٬۵۳۶ | ۶۵٬۵۳۴ |
/۱۷ | ۲۵۵.۲۵۵.۱۲۸.۰ | ۳۲٬۷۶۸ | ۳۲٬۷۶۶ |
/۱۸ | ۲۵۵.۲۵۵.۱۹۲.۰ | ۱۶٬۳۸۴ | ۱۶٬۳۸۲ |
/۱۹ | ۲۵۵.۲۵۵.۲۲۴.۰ | ۸٬۱۹۲ | ۸٬۱۹۰ |
/۲۰ | ۲۵۵.۲۵۵.۲۴۰.۰ | ۴٬۰۹۶ | ۴٬۰۹۴ |
/۲۱ | ۲۵۵.۲۵۵.۲۴۸.۰ | ۲٬۰۴۸ | ۲٬۰۴۶ |
/۲۲ | ۲۵۵.۲۵۵.۲۵۲.۰ | ۱٬۰۲۴ | ۱٬۰۲۲ |
/۲۳ | ۲۵۵.۲۵۵.۲۵۴.۰ | ۵۱۲ | ۵۱۰ |
/۲۴ | ۲۵۵.۲۵۵.۲۵۵.۰ | ۲۵۶ | ۲۵۴ |
/۲۵ | ۲۵۵.۲۵۵.۲۵۵.۱۲۸ | ۱۲۸ | ۱۲۶ |
/۲۶ | ۲۵۵.۲۵۵.۲۵۵.۱۹۲ | ۶۴ | ۶۲ |
/۲۷ | ۲۵۵.۲۵۵.۲۵۵.۲۲۴ | ۳۲ | ۳۰ |
/۲۸ | ۲۵۵.۲۵۵.۲۵۵.۲۴۰ | ۱۶ | ۱۴ |
/۲۹ | ۲۵۵.۲۵۵.۲۵۵.۲۴۸ | ۸ | ۶ |
/۳۰ | ۲۵۵.۲۵۵.۲۵۵.۲۵۲ | ۴ | ۲ |
/۳۱ | ۲۵۵.۲۵۵.۲۵۵.۲۵۴ | ۲ | ۲ در لینک نقطهبهنقطه |
/۳۲ | ۲۵۵.۲۵۵.۲۵۵.۲۵۵ | ۱ | یک Host Route |
Network Address و Broadcast Address چیست؟
Network Address
اولین آدرس هر Subnet، آدرس شبکه یا Network Address است. در این آدرس، همه بیتهای بخش Host صفر هستند.
برای شبکه زیر:
۱۹۲.۱۶۸.۱.۰/۲۴Network Address برابر است با:
۱۹۲.۱۶۸.۱.۰این آدرس به یک دستگاه عادی اختصاص داده نمیشود؛ بلکه خود شبکه را معرفی میکند.
Broadcast Address
آخرین آدرس هر Subnet، Broadcast Address است. در این آدرس، همه بیتهای Host برابر ۱ هستند.
برای شبکه ۱۹۲.۱۶۸.۱.۰/۲۴، Broadcast برابر است با:
۱۹۲.۱۶۸.۱.۲۵۵بستهای که به Broadcast ارسال شود، برای همه دستگاههای همان Subnet ارسال خواهد شد.
رنج قابل استفاده
در شبکه /۲۴ بالا، رنج قابل استفاده برای دستگاهها برابر است با:
۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۲۵۴نکته: همیشه آدرسهایی که به ۰ یا ۲۵۵ ختم میشوند Network یا Broadcast نیستند. این موضوع به Prefix بستگی دارد.
برای مثال در شبکه زیر:
۱۰.۰.۰.۰/۲۳آدرس ۱۰.۰.۱.۰ یک Host معتبر است و Broadcast شبکه برابر ۱۰.۰.۱.۲۵۵ خواهد بود.
روش محاسبه Subnet و رنج IP
برای محاسبه یک Subnet باید چهار مورد را پیدا کنیم:
- Subnet Mask
- Network Address
- Broadcast Address
- رنج قابل استفاده و تعداد Host
روش اول: محاسبه با تعداد بیتها
فرض کنیم آدرس زیر را داریم:
۱۹۲.۱۶۸.۱۰.۷۰/۲۶تعداد بیتهای Host:
۳۲ - ۲۶ = 6تعداد کل IP:
۲^۶ = 64بنابراین Block Size برابر ۶۴ است. شبکههای /۲۶ در Octet آخر از این نقاط شروع میشوند:
۰
۶۴
۱۲۸
۱۹۲عدد ۷۰ بین ۶۴ و ۱۲۷ قرار دارد؛ پس:
Network: 192.168.10.64
Broadcast: 192.168.10.127
Usable: 192.168.10.65 تا ۱۹۲.۱۶۸.۱۰.۱۲۶
Hosts: 62روش دوم: محاسبه Block Size از روی Subnet Mask
Subnet Mask مربوط به /۲۶ برابر است با:
۲۵۵.۲۵۵.۲۵۵.۱۹۲Block Size:
۲۵۶ - ۱۹۲ = 64بنابراین مرزهای شبکه با فاصله ۶۴ مشخص میشوند:
۰, ۶۴, ۱۲۸, ۱۹۲روش سوم: AND بیتی
برای بهدست آوردن Network Address، بین IP و Subnet Mask عمل AND بیتی انجام میشود:
IP: 192.168.10.70
Mask: 255.255.255.192Octet آخر:
۷۰ = 01000110
۱۹۲ = 11000000
AND = 01000000 = 64پس Network Address برابر است با:
۱۹۲.۱۶۸.۱۰.۶۴مثالهای محاسبه Subnet
مثال اول: شبکه /۲۴
۱۹۲.۱۶۸.۱.۷۵/۲۴- Subnet Mask:
۲۵۵.۲۵۵.۲۵۵.۰ - Network:
۱۹۲.۱۶۸.۱.۰ - Broadcast:
۱۹۲.۱۶۸.۱.۲۵۵ - رنج قابل استفاده:
۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۲۵۴ - تعداد Host: ۲۵۴
مثال دوم: تقسیم /۲۴ به دو شبکه /۲۵
شبکه اصلی:
۱۹۲.۱۶۸.۱.۰/۲۴دو Subnet جدید:
| Subnet | Network | Broadcast | رنج قابل استفاده |
|---|---|---|---|
۱۹۲.۱۶۸.۱.۰/۲۵ | ۱۹۲.۱۶۸.۱.۰ | ۱۹۲.۱۶۸.۱.۱۲۷ | ۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۱۲۶ |
۱۹۲.۱۶۸.۱.۱۲۸/۲۵ | ۱۹۲.۱۶۸.۱.۱۲۸ | ۱۹۲.۱۶۸.۱.۲۵۵ | ۱۹۲.۱۶۸.۱.۱۲۹ تا ۱۹۲.۱۶۸.۱.۲۵۴ |
مثال سوم: تقسیم /۲۴ به چهار شبکه /۲۶
| Network | Broadcast | رنج قابل استفاده |
|---|---|---|
۱۹۲.۱۶۸.۱.۰/۲۶ | ۱۹۲.۱۶۸.۱.۶۳ | ۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۶۲ |
۱۹۲.۱۶۸.۱.۶۴/۲۶ | ۱۹۲.۱۶۸.۱.۱۲۷ | ۱۹۲.۱۶۸.۱.۶۵ تا ۱۹۲.۱۶۸.۱.۱۲۶ |
۱۹۲.۱۶۸.۱.۱۲۸/۲۶ | ۱۹۲.۱۶۸.۱.۱۹۱ | ۱۹۲.۱۶۸.۱.۱۲۹ تا ۱۹۲.۱۶۸.۱.۱۹۰ |
۱۹۲.۱۶۸.۱.۱۹۲/۲۶ | ۱۹۲.۱۶۸.۱.۲۵۵ | ۱۹۲.۱۶۸.۱.۱۹۳ تا ۱۹۲.۱۶۸.۱.۲۵۴ |
مثال چهارم: شبکه /۲۷
۱۰.۲۰.۳۰.۷۷/۲۷Subnet Mask برابر ۲۵۵.۲۵۵.۲۵۵.۲۲۴ است و Block Size برابر ۳۲ خواهد بود:
۰, ۳۲, ۶۴, ۹۶, ۱۲۸, ۱۶۰, ۱۹۲, ۲۲۴عدد ۷۷ در بازه ۶۴ تا ۹۵ قرار دارد:
- Network:
۱۰.۲۰.۳۰.۶۴ - Broadcast:
۱۰.۲۰.۳۰.۹۵ - رنج قابل استفاده:
۱۰.۲۰.۳۰.۶۵ تا ۱۰.۲۰.۳۰.۹۴ - تعداد Host: ۳۰
مثال پنجم: شبکه /۲۸
۱۷۲.۱۶.۵.۴۶/۲۸Block Size برابر ۱۶ است:
۰, ۱۶, ۳۲, ۴۸, ۶۴, ...عدد ۴۶ در بازه ۳۲ تا ۴۷ قرار دارد:
- Network:
۱۷۲.۱۶.۵.۳۲ - Broadcast:
۱۷۲.۱۶.۵.۴۷ - رنج قابل استفاده:
۱۷۲.۱۶.۵.۳۳ تا ۱۷۲.۱۶.۵.۴۶ - تعداد Host: ۱۴
مثال ششم: شبکه /۲۹
۱۹۲.۱۶۸.۱۰۰.۲۱۰/۲۹Block Size برابر ۸ است. مرزهای نزدیک:
۲۰۰, ۲۰۸, ۲۱۶, ۲۲۴عدد ۲۱۰ در بازه ۲۰۸ تا ۲۱۵ قرار دارد:
- Network:
۱۹۲.۱۶۸.۱۰۰.۲۰۸ - Broadcast:
۱۹۲.۱۶۸.۱۰۰.۲۱۵ - رنج قابل استفاده:
۱۹۲.۱۶۸.۱۰۰.۲۰۹ تا ۱۹۲.۱۶۸.۱۰۰.۲۱۴ - تعداد Host: ۶
مثال هفتم: شبکه /۳۰
۱۰.۰.۰.۱۱۴/۳۰Block Size برابر ۴ است. عدد ۱۱۴ در بازه ۱۱۲ تا ۱۱۵ قرار دارد:
- Network:
۱۰.۰.۰.۱۱۲ - Broadcast:
۱۰.۰.۰.۱۱۵ - رنج قابل استفاده:
۱۰.۰.۰.۱۱۳ و ۱۰.۰.۰.۱۱۴ - تعداد Host: ۲
شبکه /۳۰ معمولاً برای لینکهای نقطهبهنقطه بین دو روتر استفاده میشود.
کاربرد /۳۱ و /۳۲ چیست؟
شبکه /۳۱
یک شبکه /۳۱ فقط دو آدرس دارد. در Subnetting سنتی، یکی باید Network و دیگری Broadcast باشد و هیچ Host قابل استفادهای باقی نمیماند.
اما در لینکهای Point-to-Point که فقط دو سمت وجود دارد و Broadcast نیاز نیست، هر دو آدرس /۳۱ میتوانند استفاده شوند.
مثال:
۱۰.۰.۰.۰/۳۱دو آدرس قابل استفاده:
۱۰.۰.۰.۰
۱۰.۰.۰.۱البته تجهیزات و سیستمعاملهای دو طرف باید از /۳۱ پشتیبانی کنند.
شبکه /۳۲
Prefix /32 دقیقاً یک آدرس را مشخص میکند. این حالت معمولاً برای موارد زیر استفاده میشود:
- Host Route
- Loopback Interface روی روتر
- محدود کردن Rule فایروال به یک IP
- Allowed IP در VPNهایی مانند WireGuard
مثال:
۱۹۲.۰.۲.۱۰/۳۲این عبارت فقط همان IP را مشخص میکند و هیچ IP دیگری در رنج قرار ندارد.
VLSM چیست؟
VLSM مخفف Variable Length Subnet Mask است و اجازه میدهد در یک فضای آدرسدهی، Subnetهایی با اندازههای متفاوت ایجاد کنیم.
فرض کنید شبکه زیر را در اختیار داریم:
۱۹۲.۱۶۸.۱۰.۰/۲۴نیازهای ما:
- واحد کاربران: ۱۰۰ دستگاه
- واحد سرورها: ۵۰ دستگاه
- واحد دوربین: ۲۰ دستگاه
- لینک بین دو روتر: ۲ آدرس
بهجای اختصاص یک /۲۶ ثابت به همه بخشها، میتوانیم از VLSM استفاده کنیم:
| بخش | Subnet | Host قابل استفاده |
|---|---|---|
| کاربران | ۱۹۲.۱۶۸.۱۰.۰/۲۵ | ۱۲۶ |
| سرورها | ۱۹۲.۱۶۸.۱۰.۱۲۸/۲۶ | ۶۲ |
| دوربینها | ۱۹۲.۱۶۸.۱۰.۱۹۲/۲۷ | ۳۰ |
| لینک روتر | ۱۹۲.۱۶۸.۱۰.۲۲۴/۳۰ | ۲ |
در این روش، برای هر بخش دقیقاً متناسب با نیاز آن فضا اختصاص داده میشود و آدرسها هدر نمیروند.
تجمیع مسیر یا Route Aggregation چیست؟
CIDR فقط برای کوچک کردن شبکهها استفاده نمیشود. میتوان چند شبکه مجاور را نیز به یک Prefix بزرگتر تجمیع کرد. به این فرایند Route Aggregation یا Supernetting گفته میشود.
برای مثال دو شبکه زیر:
۱۹۲.۱۶۸.۰.۰/۲۴
۱۹۲.۱۶۸.۱.۰/۲۴میتوانند به شکل زیر خلاصه شوند:
۱۹۲.۱۶۸.۰.۰/۲۳شبکه /۲۳ شامل این بازه است:
۱۹۲.۱۶۸.۰.۰ تا ۱۹۲.۱۶۸.۱.۲۵۵تجمیع Route باعث کاهش تعداد رکوردهای جدول مسیریابی و سادهتر شدن مدیریت شبکه میشود. البته شبکهها باید مجاور، هماندازه و روی مرز صحیح CIDR باشند.
CIDR در IPv6 چگونه است؟
IPv6 از آدرسهای ۱۲۸ بیتی استفاده میکند و بهجای نمایش Decimal، با اعداد Hexadecimal نوشته میشود.
نمونه:
۲۰۰۱:db8:1234:5678::10/64علامت /۶۴ یعنی ۶۴ بیت اول Network Prefix و ۶۴ بیت باقیمانده برای Interface Identifier در نظر گرفته شده است.
در IPv6، /۶۴ رایجترین اندازه Subnet برای شبکه کاربران و LAN است. برخلاف IPv4، هدف اصلی معمولاً صرفهجویی در تعداد آدرس نیست؛ بلکه ساختاردهی، Route Aggregation و سازگاری با قابلیتهایی مانند SLAAC اهمیت دارد.
چند Prefix رایج IPv6:
| Prefix | کاربرد معمول |
|---|---|
/۳۲ | اختصاص به اپراتور یا سازمان بزرگ |
/۴۸ | اختصاص رایج به یک سازمان یا Site |
/۵۶ | اختصاص به مشتری یا شبکه کوچکتر |
/۶۴ | Subnet استاندارد LAN |
/۱۲۸ | یک آدرس مشخص |
آدرسهای IPv6 Broadcast ندارند و برای ارسال به گروهی از دستگاهها از Multicast استفاده میشود.
کاربرد Subnet و CIDR در سرور و شبکه
۱. محدودسازی فایروال به یک شبکه
بهجای مجاز کردن یک IP، میتوانید یک Subnet کامل را در فایروال مجاز کنید:
sudo ufw allow from 192.168.10.0/24یا فقط دسترسی آن شبکه به پورت SSH:
sudo ufw allow from 192.168.10.0/24 to any port 22 proto tcpبرای آشنایی بیشتر با Ruleهای فایروال میتوانید مقاله آموزش باز کردن پورت در فایروال اوبونتو را مطالعه کنید.
۲. تعریف شبکه Docker
docker network create \
--driver bridge \
--subnet 172.30.0.0/24 \
app-networkباید مطمئن شوید این رنج با شبکههای موجود، VPN یا سایر شبکههای Docker تداخل ندارد.
۳. تعریف AllowedIPs در WireGuard
فقط یک Host:
AllowedIPs = 10.10.0.2/32کل شبکه VPN:
AllowedIPs = 10.10.0.0/24عبور تمام IPv4:
AllowedIPs = 0.0.0.0/0۴. تعریف Route در لینوکس
sudo ip route add 192.168.50.0/24 via 10.0.0.1این دستور مشخص میکند برای رسیدن به شبکه ۱۹۲.۱۶۸.۵۰.۰/۲۴ بستهها باید به Gateway با IP ۱۰.۰.۰.۱ ارسال شوند.
۵. محدودسازی دسترسی دیتابیس
میتوان فقط Subnet سرورهای اپلیکیشن را به پورت دیتابیس مجاز کرد و دسترسی عمومی را بست:
sudo ufw allow from 10.20.1.0/24 to any port 3306 proto tcp۶. طراحی شبکه خصوصی سرورها
در یک زیرساخت چندلایه میتوان شبکهها را جدا کرد:
۱۰.۱۰.۱.۰/۲۴ Web Servers
۱۰.۱۰.۲.۰/۲۴ Application Servers
۱۰.۱۰.۳.۰/۲۴ Database Servers
۱۰.۱۰.۴.۰/۲۴ Monitoring
۱۰.۱۰.۵.۰/۲۴ Backupبعد میتوان با Firewall یا Router مشخص کرد هر بخش فقط به سرویسهای موردنیاز دسترسی داشته باشد.
۷. شبکههای سرور مجازی
روی یک سرور مجازی یا اختصاصی ممکن است همزمان Public IP، Private IP، شبکه Docker، VPN و Routeهای داخلی داشته باشید. انتخاب رنجهای بدون تداخل در چنین محیطی اهمیت زیادی دارد.
بررسی IP، Subnet و Route در لینوکس
نمایش IPهای سیستم
ip address showفرم کوتاه:
ip aنمونه خروجی:
inet 192.168.1.50/24 brd 192.168.1.255 scope global eth0این خط نشان میدهد:
- IP سیستم:
۱۹۲.۱۶۸.۱.۵۰ - Prefix:
/۲۴ - Broadcast:
۱۹۲.۱۶۸.۱.۲۵۵ - Interface:
eth0
نمایش جدول Route
ip route showفرم کوتاه:
ip rنمونه:
default via 192.168.1.1 dev eth0
۱۹۲.۱۶۸.۱.۰/۲۴ dev eth0 proto kernel scope link src 192.168.1.50خط اول Default Gateway و خط دوم شبکه متصل مستقیم را نشان میدهد.
بررسی اینکه یک IP از کدام Route عبور میکند
ip route get 8.8.8.8این دستور Interface، Gateway و Source IP مورد استفاده برای رسیدن به مقصد را نشان میدهد.
محاسبه Subnet با ipcalc
نصب در Ubuntu و Debian:
sudo apt update
sudo apt install ipcalc -yمحاسبه:
ipcalc 192.168.10.70/26خروجی شامل Network، Netmask، Broadcast، HostMin، HostMax و تعداد Hostها خواهد بود.
بررسی اتصال شبکه
ping 192.168.1.1برای مشاهده مسیر:
traceroute 8.8.8.8در بسیاری از موارد، مشکل ارتباط نه از سرویس مقصد، بلکه از Subnet اشتباه، Gateway نامعتبر یا Route ناقص است.
اشتباهات رایج در IP، Subnet و CIDR
۱. تصور اینکه /۲۴ بخشی از IP است
عبارت /۲۴ بخشی از خود آدرس IP نیست؛ بلکه اندازه Network Prefix را مشخص میکند. دو سیستم با IP یکسان و Prefix متفاوت ممکن است برداشت متفاوتی از شبکه محلی داشته باشند.
۲. اختصاص Network Address به دستگاه
در شبکه معمول IPv4، اولین آدرس معرف خود شبکه است و نباید به Host اختصاص داده شود.
۳. اختصاص Broadcast Address به دستگاه
آخرین آدرس هر Subnet برای Broadcast رزرو است و استفاده از آن برای یک دستگاه باعث اختلال خواهد شد.
۴. فرض اینکه هر IP ختمشده به ۰ Network است
Network Address به Prefix بستگی دارد. در شبکه /۱۶، آدرس ۱۹۲.۱۶۸.۱.۰ میتواند Host معتبر باشد؛ زیرا Network Address شبکه ۱۹۲.۱۶۸.۰.۰/۱۶ است.
۵. فرض اینکه هر IP ختمشده به ۲۵۵ Broadcast است
در شبکه ۱۰.۰.۰.۰/۱۶، آدرس ۱۰.۰.۰.۲۵۵ یک Host معتبر است و Broadcast برابر ۱۰.۰.۲۵۵.۲۵۵ است.
۶. استفاده از Subnetهای همپوشان
اگر دو شبکه VPN یا Docker از رنج مشابه استفاده کنند، Routing مبهم میشود. برای مثال اتصال دو شعبه که هر دو شبکه ۱۹۲.۱۶۸.۱.۰/۲۴ دارند معمولاً نیازمند تغییر رنج یا NAT ویژه است.
۷. باز کردن رنج بزرگ در فایروال
تفاوت زیادی بین این دو Rule وجود دارد:
۱۰.۰.۰.۵/۳۲
۱۰.۰.۰.۰/۸اولی فقط یک IP و دومی بیش از ۱۶ میلیون آدرس را شامل میشود.
۸. کم در نظر گرفتن فضای رشد
اگر اکنون ۵۸ دستگاه دارید، انتخاب /۲۶ با ۶۲ Host ممکن است در آینده محدودکننده باشد. هنگام طراحی شبکه، رشد احتمالی را نیز در نظر بگیرید.
۹. اشتباه گرفتن ۱۷۲.۰.۰.۰/۸ با رنج خصوصی
فقط ۱۷۲.۱۶.۰.۰/۱۲ خصوصی است. آدرسهایی مانند ۱۷۲.۱۰.۱.۱ یا ۱۷۲.۴۰.۱.۱ در رنج خصوصی RFC 1918 قرار ندارند.
چطور Prefix مناسب را بر اساس تعداد دستگاه انتخاب کنیم؟
| تعداد دستگاه موردنیاز | Prefix پیشنهادی | Host قابل استفاده |
|---|---|---|
| ۱ تا ۲ | /۳۰ | ۲ |
| ۳ تا ۶ | /۲۹ | ۶ |
| ۷ تا ۱۴ | /۲۸ | ۱۴ |
| ۱۵ تا ۳۰ | /۲۷ | ۳۰ |
| ۳۱ تا ۶۲ | /۲۶ | ۶۲ |
| ۶۳ تا ۱۲۶ | /۲۵ | ۱۲۶ |
| ۱۲۷ تا ۲۵۴ | /۲۴ | ۲۵۴ |
| ۲۵۵ تا ۵۱۰ | /۲۳ | ۵۱۰ |
| ۵۱۱ تا ۱۰۲۲ | /۲۲ | ۱۰۲۲ |
بهتر است علاوه بر تعداد فعلی، مقداری ظرفیت رشد نیز در نظر بگیرید. البته اختصاص رنج بسیار بزرگ هم میتواند Broadcast Domain و مدیریت شبکه را دشوار کند.
سوالات متداول درباره IP، Subnet و CIDR
آدرس IP چیست؟
آدرس IP یک شناسه عددی برای دستگاه یا رابط شبکه است که امکان شناسایی و مسیریابی دادهها را فراهم میکند.
Subnet چیست؟
Subnet یک بخش کوچکتر و مستقل از یک شبکه بزرگتر است. Subnetting برای مدیریت بهتر IPها، کاهش Broadcast، تفکیک امنیتی و سادهتر شدن Routing استفاده میشود.
Subnet Mask چیست؟
Subnet Mask مشخص میکند کدام بیتهای IP متعلق به Network و کدام بیتها متعلق به Host هستند. برای مثال Mask مربوط به /۲۴ برابر ۲۵۵.۲۵۵.۲۵۵.۰ است.
CIDR چیست؟
CIDR روشی برای نمایش Network Prefix با علامت Slash است. در عبارت ۱۹۲.۱۶۸.۱.۰/۲۴، عدد ۲۴ یعنی ۲۴ بیت اول آدرس مربوط به شبکه است.
/۲۴ چند IP دارد؟
یک شبکه /۲۴ دارای ۲۵۶ آدرس کل است. در شبکه معمول IPv4، ۲۵۴ آدرس برای Hostها قابل استفاده است.
/۲۹ چند IP قابل استفاده دارد؟
یک شبکه /۲۹ دارای هشت آدرس کل است که در حالت معمول شش آدرس آن برای Hostها قابل استفاده است.
/۳۰ چند IP قابل استفاده دارد؟
یک شبکه /۳۰ چهار آدرس کل دارد: یک Network، یک Broadcast و دو Host قابل استفاده.
آیا /۳۱ آدرس قابل استفاده دارد؟
بله، در لینکهای Point-to-Point هر دو آدرس یک شبکه /۳۱ قابل استفاده هستند؛ به شرط آنکه تجهیزات دو طرف از این ساختار پشتیبانی کنند.
/۳۲ چه معنایی دارد؟
Prefix /32 فقط یک آدرس IPv4 را مشخص میکند و معمولاً برای Host Route، Loopback، فایروال و VPN استفاده میشود.
تفاوت IP عمومی و خصوصی چیست؟
IP عمومی در اینترنت قابل Route است و باید یکتا باشد. IP خصوصی فقط در شبکه داخلی استفاده میشود و برای دسترسی به اینترنت معمولاً به NAT نیاز دارد.
رنجهای IP خصوصی کداماند؟
رنجهای خصوصی IPv4 عبارتاند از ۱۰.۰.۰.۰/۸، ۱۷۲.۱۶.۰.۰/۱۲ و ۱۹۲.۱۶۸.۰.۰/۱۶.
چطور Network Address را پیدا کنیم؟
میتوان با AND بیتی بین IP و Subnet Mask یا با محاسبه Block Size، Network Address را به دست آورد. ابزارهایی مانند ipcalc نیز این محاسبه را انجام میدهند.
چرا دو دستگاه با IPهای نزدیک همدیگر را نمیبینند؟
نزدیک بودن عددی IPها کافی نیست. ممکن است بهدلیل Subnet Mask متفاوت در دو شبکه جدا قرار گرفته باشند یا Gateway، VLAN و Firewall ارتباط را مسدود کرده باشد.
آیا Private IP امنیت ایجاد میکند؟
خصوصی بودن IP بهتنهایی یک مکانیزم امنیتی کامل نیست. همچنان باید از Firewall، VLAN، کنترل دسترسی، VPN و تنظیمات امن سرویسها استفاده شود.
جمعبندی
درک IP و Subnet و CIDR پایه بسیاری از فعالیتهای شبکه و مدیریت سرور است. آدرس IP یک دستگاه را شناسایی میکند، Subnet شبکه را به بخشهای کوچکتر تقسیم میکند و CIDR اندازه Network Prefix را بهشکل ساده و استاندارد نمایش میدهد.
برای محاسبه تعداد آدرسهای یک شبکه IPv4، کافی است از فرمول ۲^(۳۲-Prefix) استفاده کنید. در شبکههای معمول /۰ تا /۳۰، دو آدرس Network و Broadcast قابل اختصاص به Host نیستند. همچنین با محاسبه Block Size میتوان Network Address، Broadcast و رنج قابل استفاده را سریع پیدا کرد.
این مفاهیم هنگام تنظیم فایروال، طراحی شبکه خصوصی، پیکربندی VPN، Docker، Route، میکروتیک و زیرساخت چندسروری مستقیماً استفاده میشوند. به همین دلیل، قبل از راهاندازی سرویسهای حساس روی VPS ایران، VPS آلمان یا سرور اختصاصی آلمان، بهتر است ساختار IP و شبکه خود را با دقت طراحی کنید.
