اگر با شبکه، سرور، فایروال، 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 چیست؟

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 رایج:

CIDRSubnet 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

CIDRSubnet Maskتعداد کل IPHost قابل استفاده
۲۵۵.۰.۰.۰۱۶٬۷۷۷٬۲۱۶۱۶٬۷۷۷٬۲۱۴
۲۵۵.۱۲۸.۰.۰۸٬۳۸۸٬۶۰۸۸٬۳۸۸٬۶۰۶
/۱۰۲۵۵.۱۹۲.۰.۰۴٬۱۹۴٬۳۰۴۴٬۱۹۴٬۳۰۲
/۱۱۲۵۵.۲۲۴.۰.۰۲٬۰۹۷٬۱۵۲۲٬۰۹۷٬۱۵۰
/۱۲۲۵۵.۲۴۰.۰.۰۱٬۰۴۸٬۵۷۶۱٬۰۴۸٬۵۷۴
/۱۳۲۵۵.۲۴۸.۰.۰۵۲۴٬۲۸۸۵۲۴٬۲۸۶
/۱۴۲۵۵.۲۵۲.۰.۰۲۶۲٬۱۴۴۲۶۲٬۱۴۲
/۱۵۲۵۵.۲۵۴.۰.۰۱۳۱٬۰۷۲۱۳۱٬۰۷۰
/۱۶۲۵۵.۲۵۵.۰.۰۶۵٬۵۳۶۶۵٬۵۳۴
/۱۷۲۵۵.۲۵۵.۱۲۸.۰۳۲٬۷۶۸۳۲٬۷۶۶
/۱۸۲۵۵.۲۵۵.۱۹۲.۰۱۶٬۳۸۴۱۶٬۳۸۲
/۱۹۲۵۵.۲۵۵.۲۲۴.۰۸٬۱۹۲۸٬۱۹۰
/۲۰۲۵۵.۲۵۵.۲۴۰.۰۴٬۰۹۶۴٬۰۹۴
/۲۱۲۵۵.۲۵۵.۲۴۸.۰۲٬۰۴۸۲٬۰۴۶
/۲۲۲۵۵.۲۵۵.۲۵۲.۰۱٬۰۲۴۱٬۰۲۲
/۲۳۲۵۵.۲۵۵.۲۵۴.۰۵۱۲۵۱۰
/۲۴۲۵۵.۲۵۵.۲۵۵.۰۲۵۶۲۵۴
/۲۵۲۵۵.۲۵۵.۲۵۵.۱۲۸۱۲۸۱۲۶
/۲۶۲۵۵.۲۵۵.۲۵۵.۱۹۲۶۴۶۲
/۲۷۲۵۵.۲۵۵.۲۵۵.۲۲۴۳۲۳۰
/۲۸۲۵۵.۲۵۵.۲۵۵.۲۴۰۱۶۱۴
/۲۹۲۵۵.۲۵۵.۲۵۵.۲۴۸۸۶
/۳۰۲۵۵.۲۵۵.۲۵۵.۲۵۲۴۲
/۳۱۲۵۵.۲۵۵.۲۵۵.۲۵۴۲۲ در لینک نقطه‌به‌نقطه
/۳۲۲۵۵.۲۵۵.۲۵۵.۲۵۵۱یک 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 باید چهار مورد را پیدا کنیم:

  1. Subnet Mask
  2. Network Address
  3. Broadcast Address
  4. رنج قابل استفاده و تعداد 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.192

Octet آخر:

۷۰  = 01000110
۱۹۲ = 11000000
AND = 01000000 = 64

پس Network Address برابر است با:

۱۹۲.۱۶۸.۱۰.۶۴

مثال‌های محاسبه Subnet

مثال اول: شبکه /۲۴

۱۹۲.۱۶۸.۱.۷۵/۲۴
  • Subnet Mask: ۲۵۵.۲۵۵.۲۵۵.۰
  • Network: ۱۹۲.۱۶۸.۱.۰
  • Broadcast: ۱۹۲.۱۶۸.۱.۲۵۵
  • رنج قابل استفاده: ۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۲۵۴
  • تعداد Host: ۲۵۴

مثال دوم: تقسیم /۲۴ به دو شبکه /۲۵

شبکه اصلی:

۱۹۲.۱۶۸.۱.۰/۲۴

دو Subnet جدید:

SubnetNetworkBroadcastرنج قابل استفاده
۱۹۲.۱۶۸.۱.۰/۲۵۱۹۲.۱۶۸.۱.۰۱۹۲.۱۶۸.۱.۱۲۷۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۱۲۶
۱۹۲.۱۶۸.۱.۱۲۸/۲۵۱۹۲.۱۶۸.۱.۱۲۸۱۹۲.۱۶۸.۱.۲۵۵۱۹۲.۱۶۸.۱.۱۲۹ تا ۱۹۲.۱۶۸.۱.۲۵۴

مثال سوم: تقسیم /۲۴ به چهار شبکه /۲۶

NetworkBroadcastرنج قابل استفاده
۱۹۲.۱۶۸.۱.۰/۲۶۱۹۲.۱۶۸.۱.۶۳۱۹۲.۱۶۸.۱.۱ تا ۱۹۲.۱۶۸.۱.۶۲
۱۹۲.۱۶۸.۱.۶۴/۲۶۱۹۲.۱۶۸.۱.۱۲۷۱۹۲.۱۶۸.۱.۶۵ تا ۱۹۲.۱۶۸.۱.۱۲۶
۱۹۲.۱۶۸.۱.۱۲۸/۲۶۱۹۲.۱۶۸.۱.۱۹۱۱۹۲.۱۶۸.۱.۱۲۹ تا ۱۹۲.۱۶۸.۱.۱۹۰
۱۹۲.۱۶۸.۱.۱۹۲/۲۶۱۹۲.۱۶۸.۱.۲۵۵۱۹۲.۱۶۸.۱.۱۹۳ تا ۱۹۲.۱۶۸.۱.۲۵۴

مثال چهارم: شبکه /۲۷

۱۰.۲۰.۳۰.۷۷/۲۷

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 استفاده کنیم:

بخشSubnetHost قابل استفاده
کاربران۱۹۲.۱۶۸.۱۰.۰/۲۵۱۲۶
سرورها۱۹۲.۱۶۸.۱۰.۱۲۸/۲۶۶۲
دوربین‌ها۱۹۲.۱۶۸.۱۰.۱۹۲/۲۷۳۰
لینک روتر۱۹۲.۱۶۸.۱۰.۲۲۴/۳۰۲

در این روش، برای هر بخش دقیقاً متناسب با نیاز آن فضا اختصاص داده می‌شود و آدرس‌ها هدر نمی‌روند.

تجمیع مسیر یا 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 و شبکه خود را با دقت طراحی کنید.

منابع پیشنهادی برای مطالعه بیشتر