اگر با شبکه، سرور، فایروال، VPN، میکروتیک، Docker، Kubernetes یا سرویس‌های ابری کار کرده باشید، حتماً با عبارت‌هایی مانند 192.168.1.0/24، 10.0.0.0/8 یا 172.16.0.0/12 روبه‌رو شده‌اید. این عبارت‌ها فقط یک آدرس IP نیستند؛ بلکه یک شبکه، تعداد آدرس‌های موجود، محدوده میزبان‌ها و مرزهای مسیریابی را مشخص می‌کنند.

درک درست IP و Subnet و CIDR برای تنظیم فایروال، طراحی شبکه داخلی، اتصال چند سرور، ساخت VPN، تعریف شبکه Docker، پیکربندی روتر، محدودسازی دسترسی و مدیریت زیرساخت ابری ضروری است. یک اشتباه کوچک در Subnet Mask یا Prefix می‌تواند باعث قطع ارتباط، تداخل IP، باز شدن ناخواسته دسترسی یا مسیریابی اشتباه ترافیک شود.

در این مقاله، از پایه توضیح می‌دهیم آدرس IP چیست، تفاوت IP عمومی و خصوصی کدام است، Subnet چگونه یک شبکه را تقسیم می‌کند، Subnet Mask چه کاری انجام می‌دهد و علامت‌هایی مانند /24 یا /29 در CIDR دقیقاً چه معنایی دارند. سپس با مثال‌های واقعی یاد می‌گیریم Network Address، Broadcast Address، رنج قابل استفاده و تعداد Hostهای یک شبکه را محاسبه کنیم.

سطح مقاله: مقدماتی تا متوسط | مناسب برای: مدیران سرور، کارشناسان شبکه، کاربران VPS، توسعه‌دهندگان، متخصصان DevOps، کاربران میکروتیک و افرادی که می‌خواهند مفاهیم پایه شبکه را اصولی یاد بگیرند.

فهرست مطالب

آدرس IP چیست؟

IP مخفف Internet Protocol است. آدرس IP یک شناسه عددی است که به یک رابط شبکه اختصاص داده می‌شود تا دستگاه‌ها بتوانند یکدیگر را در شبکه پیدا کنند و با هم ارتباط داشته باشند.

می‌توان IP را شبیه آدرس یک ساختمان در نظر گرفت. همان‌طور که برای رساندن یک بسته باید آدرس مقصد مشخص باشد، برای ارسال داده در شبکه نیز باید آدرس IP مقصد مشخص شود.

آدرس IP دو وظیفه اصلی دارد:

  • شناسایی دستگاه یا رابط شبکه: مشخص می‌کند داده باید به کدام سیستم تحویل داده شود.
  • تعیین موقعیت دستگاه در ساختار شبکه: مشخص می‌کند دستگاه متعلق به کدام شبکه است و بسته‌ها از چه مسیری باید به آن برسند.

در حال حاضر دو نسخه اصلی IP استفاده می‌شود:

  • IPv4: آدرس‌های ۳۲ بیتی مانند 192.168.1.10
  • IPv6: آدرس‌های ۱۲۸ بیتی مانند 2001:db8:100::10

بخش عمده مثال‌های این مقاله بر IPv4 متمرکز است؛ زیرا محاسبات Subnet در آن ملموس‌تر است. با این حال، در ادامه CIDR در IPv6 را نیز توضیح می‌دهیم.

ساختار آدرس IPv4 چگونه است؟

هر آدرس IPv4 از ۳۲ بیت تشکیل شده است. برای خوانایی بهتر، این ۳۲ بیت به چهار بخش ۸ بیتی تقسیم می‌شوند که به هر بخش یک Octet گفته می‌شود.

مثال:

192.168.1.10

این آدرس شامل چهار Octet است:

192 | 168 | 1 | 10

هر Octet هشت بیت دارد و مقدار آن می‌تواند از صفر تا ۲۵۵ باشد؛ زیرا با هشت بیت می‌توان ۲۵۶ حالت مختلف از صفر تا ۲۵۵ ایجاد کرد.

نمایش باینری آدرس بالا به این شکل است:

192       168       1         10
11000000  10101000  00000001  00001010

بنابراین آدرس‌های زیر معتبر هستند:

10.0.0.1
172.16.20.50
192.168.100.254
8.8.8.8

اما این آدرس معتبر نیست:

192.168.1.300

چون مقدار هر 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تعداد کل آدرسکاربرد رایج
10.0.0.0 تا 10.255.255.25510.0.0.0/8۱۶٬۷۷۷٬۲۱۶شبکه‌های بزرگ، دیتاسنتر و Cloud
172.16.0.0 تا 172.31.255.255172.16.0.0/12۱٬۰۴۸٬۵۷۶شبکه سازمانی، Docker و زیرساخت داخلی
192.168.0.0 تا 192.168.255.255192.168.0.0/16۶۵٬۵۳۶شبکه خانگی و اداری کوچک

نکته مهم: همه آدرس‌های 172.x.x.x خصوصی نیستند. فقط بازه 172.16.0.0 تا 172.31.255.255 خصوصی است.

همچنین رنج 127.0.0.0/8 برای Loopback رزرو شده است. معروف‌ترین آدرس این رنج 127.0.0.1 یا localhost است که هر سیستم برای ارتباط با خودش از آن استفاده می‌کند.

Subnet چیست؟

Subnet یا Subnetwork به معنای یک بخش منطقی کوچک‌تر از یک شبکه بزرگ‌تر است. با Subnetting می‌توان یک رنج IP بزرگ را به چند شبکه مستقل و کوچک‌تر تقسیم کرد.

فرض کنید یک شرکت یک شبکه 192.168.1.0/24 با ۲۵۶ آدرس دارد. به‌جای اینکه همه دستگاه‌ها در یک شبکه باشند، می‌توان آن را به چند Subnet تقسیم کرد:

  • شبکه کاربران اداری
  • شبکه سرورها
  • شبکه دوربین‌ها
  • شبکه مهمان

این تقسیم‌بندی چند مزیت مهم دارد:

  • کاهش Broadcast و بهبود کارایی شبکه
  • تفکیک امنیتی بخش‌های مختلف
  • امکان تعریف Firewall Rule بین شبکه‌ها
  • مدیریت بهتر IPها
  • جلوگیری از دسترسی مستقیم کاربران به سرورها
  • ساده‌تر شدن Route و عیب‌یابی شبکه

برای مثال می‌توان شبکه 192.168.1.0/24 را به چهار شبکه /۲۶ تقسیم کرد:

192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26

هر کدام از این Subnetها ۶۴ آدرس کل و ۶۲ آدرس قابل استفاده برای Host دارند.

بخش Network و Host در آدرس IP

هر آدرس IP در یک شبکه از دو بخش منطقی تشکیل می‌شود:

  • Network Portion: شبکه‌ای را مشخص می‌کند که دستگاه به آن تعلق دارد.
  • Host Portion: دستگاه مشخص در آن شبکه را شناسایی می‌کند.

برای مثال در آدرس زیر:

192.168.1.75/24

Prefix برابر ۲۴ است. یعنی ۲۴ بیت اول متعلق به شبکه و هشت بیت آخر متعلق به Host هستند:

Network: 192.168.1
Host:    75

آدرس شبکه این IP برابر است با:

192.168.1.0

اما در شبکه‌ای مانند 192.168.1.75/26 نمی‌توان صرفاً سه Octet اول را بخش شبکه دانست؛ زیرا دو بیت از Octet چهارم نیز جزو Network Prefix هستند. آدرس شبکه در این مثال برابر است با:

192.168.1.64/26

Subnet Mask چیست؟

Subnet Mask یک عدد ۳۲ بیتی است که مشخص می‌کند کدام بیت‌های آدرس IP به Network و کدام بیت‌ها به Host اختصاص دارند.

در Subnet Mask:

  • بیت‌های ۱ نشان‌دهنده بخش Network هستند.
  • بیت‌های ۰ نشان‌دهنده بخش Host هستند.

برای مثال Subnet Mask مربوط به /۲۴ به شکل زیر است:

255.255.255.0

نمایش باینری آن:

11111111.11111111.11111111.00000000

۲۴ بیت اول ۱ هستند؛ بنابراین ۲۴ بیت برای Network و هشت بیت برای Host استفاده می‌شود.

چند Subnet Mask رایج:

CIDRSubnet Maskتعداد بیت Host
/8255.0.0.0۲۴
/16255.255.0.0۱۶
/24255.255.255.0۸
/25255.255.255.128۷
/26255.255.255.192۶
/27255.255.255.224۵
/28255.255.255.240۴
/29255.255.255.248۳
/30255.255.255.252۲

CIDR چیست؟

CIDR مخفف Classless Inter-Domain Routing است. در CIDR، تعداد بیت‌های Network بعد از علامت Slash نوشته می‌شود.

مثال:

192.168.1.0/24

عدد ۲۴ یعنی ۲۴ بیت اول آدرس مربوط به Network Prefix است. در نتیجه هشت بیت برای Host باقی می‌ماند.

فرمول تعداد کل آدرس‌های یک شبکه IPv4:

تعداد کل IP = 2^(32 - Prefix)

برای /۲۴:

2^(32 - 24) = 2^8 = 256

در شبکه‌های معمول IPv4 از /۰ تا /۳۰، دو آدرس برای Network و Broadcast رزرو می‌شوند. بنابراین:

تعداد Host قابل استفاده = 2^(32 - Prefix) - 2

برای /۲۴:

256 - 2 = 254 Host

هرچه عدد بعد از Slash بزرگ‌تر شود، تعداد بیت‌های Network بیشتر و تعداد IPهای موجود در هر Subnet کمتر می‌شود.

برای مثال:

  • /24 شامل ۲۵۶ IP است.
  • /25 شامل ۱۲۸ IP است.
  • /26 شامل ۶۴ IP است.
  • /27 شامل ۳۲ IP است.
  • /28 شامل ۱۶ IP است.
  • /29 شامل ۸ IP است.
  • /30 شامل ۴ IP است.

جدول CIDR، Subnet Mask و تعداد Host

CIDRSubnet Maskتعداد کل IPHost قابل استفاده
/8255.0.0.0۱۶٬۷۷۷٬۲۱۶۱۶٬۷۷۷٬۲۱۴
/9255.128.0.0۸٬۳۸۸٬۶۰۸۸٬۳۸۸٬۶۰۶
/10255.192.0.0۴٬۱۹۴٬۳۰۴۴٬۱۹۴٬۳۰۲
/11255.224.0.0۲٬۰۹۷٬۱۵۲۲٬۰۹۷٬۱۵۰
/12255.240.0.0۱٬۰۴۸٬۵۷۶۱٬۰۴۸٬۵۷۴
/13255.248.0.0۵۲۴٬۲۸۸۵۲۴٬۲۸۶
/14255.252.0.0۲۶۲٬۱۴۴۲۶۲٬۱۴۲
/15255.254.0.0۱۳۱٬۰۷۲۱۳۱٬۰۷۰
/16255.255.0.0۶۵٬۵۳۶۶۵٬۵۳۴
/17255.255.128.0۳۲٬۷۶۸۳۲٬۷۶۶
/18255.255.192.0۱۶٬۳۸۴۱۶٬۳۸۲
/19255.255.224.0۸٬۱۹۲۸٬۱۹۰
/20255.255.240.0۴٬۰۹۶۴٬۰۹۴
/21255.255.248.0۲٬۰۴۸۲٬۰۴۶
/22255.255.252.0۱٬۰۲۴۱٬۰۲۲
/23255.255.254.0۵۱۲۵۱۰
/24255.255.255.0۲۵۶۲۵۴
/25255.255.255.128۱۲۸۱۲۶
/26255.255.255.192۶۴۶۲
/27255.255.255.224۳۲۳۰
/28255.255.255.240۱۶۱۴
/29255.255.255.248۸۶
/30255.255.255.252۴۲
/31255.255.255.254۲۲ در لینک نقطه‌به‌نقطه
/32255.255.255.255۱یک Host Route

Network Address و Broadcast Address چیست؟

Network Address

اولین آدرس هر Subnet، آدرس شبکه یا Network Address است. در این آدرس، همه بیت‌های بخش Host صفر هستند.

برای شبکه زیر:

192.168.1.0/24

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

192.168.1.0

این آدرس به یک دستگاه عادی اختصاص داده نمی‌شود؛ بلکه خود شبکه را معرفی می‌کند.

Broadcast Address

آخرین آدرس هر Subnet، Broadcast Address است. در این آدرس، همه بیت‌های Host برابر ۱ هستند.

برای شبکه 192.168.1.0/24، Broadcast برابر است با:

192.168.1.255

بسته‌ای که به Broadcast ارسال شود، برای همه دستگاه‌های همان Subnet ارسال خواهد شد.

رنج قابل استفاده

در شبکه /۲۴ بالا، رنج قابل استفاده برای دستگاه‌ها برابر است با:

192.168.1.1 تا 192.168.1.254

نکته: همیشه آدرس‌هایی که به ۰ یا ۲۵۵ ختم می‌شوند Network یا Broadcast نیستند. این موضوع به Prefix بستگی دارد.

برای مثال در شبکه زیر:

10.0.0.0/23

آدرس 10.0.1.0 یک Host معتبر است و Broadcast شبکه برابر 10.0.1.255 خواهد بود.

روش محاسبه Subnet و رنج IP

برای محاسبه یک Subnet باید چهار مورد را پیدا کنیم:

  1. Subnet Mask
  2. Network Address
  3. Broadcast Address
  4. رنج قابل استفاده و تعداد Host

روش اول: محاسبه با تعداد بیت‌ها

فرض کنیم آدرس زیر را داریم:

192.168.10.70/26

تعداد بیت‌های Host:

32 - 26 = 6

تعداد کل IP:

2^6 = 64

بنابراین Block Size برابر ۶۴ است. شبکه‌های /۲۶ در Octet آخر از این نقاط شروع می‌شوند:

0
64
128
192

عدد ۷۰ بین ۶۴ و ۱۲۷ قرار دارد؛ پس:

Network:   192.168.10.64
Broadcast: 192.168.10.127
Usable:    192.168.10.65 تا 192.168.10.126
Hosts:     62

روش دوم: محاسبه Block Size از روی Subnet Mask

Subnet Mask مربوط به /۲۶ برابر است با:

255.255.255.192

Block Size:

256 - 192 = 64

بنابراین مرزهای شبکه با فاصله ۶۴ مشخص می‌شوند:

0, 64, 128, 192

روش سوم: AND بیتی

برای به‌دست آوردن Network Address، بین IP و Subnet Mask عمل AND بیتی انجام می‌شود:

IP:   192.168.10.70
Mask: 255.255.255.192

Octet آخر:

70  = 01000110
192 = 11000000
AND = 01000000 = 64

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

192.168.10.64

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

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

192.168.1.75/24
  • Subnet Mask: 255.255.255.0
  • Network: 192.168.1.0
  • Broadcast: 192.168.1.255
  • رنج قابل استفاده: 192.168.1.1 تا 192.168.1.254
  • تعداد Host: ۲۵۴

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

شبکه اصلی:

192.168.1.0/24

دو Subnet جدید:

SubnetNetworkBroadcastرنج قابل استفاده
192.168.1.0/25192.168.1.0192.168.1.127192.168.1.1 تا 192.168.1.126
192.168.1.128/25192.168.1.128192.168.1.255192.168.1.129 تا 192.168.1.254

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

NetworkBroadcastرنج قابل استفاده
192.168.1.0/26192.168.1.63192.168.1.1 تا 192.168.1.62
192.168.1.64/26192.168.1.127192.168.1.65 تا 192.168.1.126
192.168.1.128/26192.168.1.191192.168.1.129 تا 192.168.1.190
192.168.1.192/26192.168.1.255192.168.1.193 تا 192.168.1.254

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

10.20.30.77/27

Subnet Mask برابر 255.255.255.224 است و Block Size برابر ۳۲ خواهد بود:

0, 32, 64, 96, 128, 160, 192, 224

عدد ۷۷ در بازه ۶۴ تا ۹۵ قرار دارد:

  • Network: 10.20.30.64
  • Broadcast: 10.20.30.95
  • رنج قابل استفاده: 10.20.30.65 تا 10.20.30.94
  • تعداد Host: ۳۰

مثال پنجم: شبکه /۲۸

172.16.5.46/28

Block Size برابر ۱۶ است:

0, 16, 32, 48, 64, ...

عدد ۴۶ در بازه ۳۲ تا ۴۷ قرار دارد:

  • Network: 172.16.5.32
  • Broadcast: 172.16.5.47
  • رنج قابل استفاده: 172.16.5.33 تا 172.16.5.46
  • تعداد Host: ۱۴

مثال ششم: شبکه /۲۹

192.168.100.210/29

Block Size برابر ۸ است. مرزهای نزدیک:

200, 208, 216, 224

عدد ۲۱۰ در بازه ۲۰۸ تا ۲۱۵ قرار دارد:

  • Network: 192.168.100.208
  • Broadcast: 192.168.100.215
  • رنج قابل استفاده: 192.168.100.209 تا 192.168.100.214
  • تعداد Host: ۶

مثال هفتم: شبکه /۳۰

10.0.0.114/30

Block Size برابر ۴ است. عدد ۱۱۴ در بازه ۱۱۲ تا ۱۱۵ قرار دارد:

  • Network: 10.0.0.112
  • Broadcast: 10.0.0.115
  • رنج قابل استفاده: 10.0.0.113 و 10.0.0.114
  • تعداد Host: ۲

شبکه /۳۰ معمولاً برای لینک‌های نقطه‌به‌نقطه بین دو روتر استفاده می‌شود.

کاربرد /۳۱ و /۳۲ چیست؟

شبکه /۳۱

یک شبکه /۳۱ فقط دو آدرس دارد. در Subnetting سنتی، یکی باید Network و دیگری Broadcast باشد و هیچ Host قابل استفاده‌ای باقی نمی‌ماند.

اما در لینک‌های Point-to-Point که فقط دو سمت وجود دارد و Broadcast نیاز نیست، هر دو آدرس /۳۱ می‌توانند استفاده شوند.

مثال:

10.0.0.0/31

دو آدرس قابل استفاده:

10.0.0.0
10.0.0.1

البته تجهیزات و سیستم‌عامل‌های دو طرف باید از /۳۱ پشتیبانی کنند.

شبکه /۳۲

Prefix /۳۲ دقیقاً یک آدرس را مشخص می‌کند. این حالت معمولاً برای موارد زیر استفاده می‌شود:

  • Host Route
  • Loopback Interface روی روتر
  • محدود کردن Rule فایروال به یک IP
  • Allowed IP در VPNهایی مانند WireGuard

مثال:

192.0.2.10/32

این عبارت فقط همان IP را مشخص می‌کند و هیچ IP دیگری در رنج قرار ندارد.

VLSM چیست؟

VLSM مخفف Variable Length Subnet Mask است و اجازه می‌دهد در یک فضای آدرس‌دهی، Subnetهایی با اندازه‌های متفاوت ایجاد کنیم.

فرض کنید شبکه زیر را در اختیار داریم:

192.168.10.0/24

نیازهای ما:

  • واحد کاربران: ۱۰۰ دستگاه
  • واحد سرورها: ۵۰ دستگاه
  • واحد دوربین: ۲۰ دستگاه
  • لینک بین دو روتر: ۲ آدرس

به‌جای اختصاص یک /۲۶ ثابت به همه بخش‌ها، می‌توانیم از VLSM استفاده کنیم:

بخشSubnetHost قابل استفاده
کاربران192.168.10.0/25۱۲۶
سرورها192.168.10.128/26۶۲
دوربین‌ها192.168.10.192/27۳۰
لینک روتر192.168.10.224/30۲

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

تجمیع مسیر یا Route Aggregation چیست؟

CIDR فقط برای کوچک کردن شبکه‌ها استفاده نمی‌شود. می‌توان چند شبکه مجاور را نیز به یک Prefix بزرگ‌تر تجمیع کرد. به این فرایند Route Aggregation یا Supernetting گفته می‌شود.

برای مثال دو شبکه زیر:

192.168.0.0/24
192.168.1.0/24

می‌توانند به شکل زیر خلاصه شوند:

192.168.0.0/23

شبکه /۲۳ شامل این بازه است:

192.168.0.0 تا 192.168.1.255

تجمیع Route باعث کاهش تعداد رکوردهای جدول مسیریابی و ساده‌تر شدن مدیریت شبکه می‌شود. البته شبکه‌ها باید مجاور، هم‌اندازه و روی مرز صحیح CIDR باشند.

CIDR در IPv6 چگونه است؟

IPv6 از آدرس‌های ۱۲۸ بیتی استفاده می‌کند و به‌جای نمایش Decimal، با اعداد Hexadecimal نوشته می‌شود.

نمونه:

2001:db8:1234:5678::10/64

علامت /۶۴ یعنی ۶۴ بیت اول Network Prefix و ۶۴ بیت باقی‌مانده برای Interface Identifier در نظر گرفته شده است.

در IPv6، /۶۴ رایج‌ترین اندازه Subnet برای شبکه کاربران و LAN است. برخلاف IPv4، هدف اصلی معمولاً صرفه‌جویی در تعداد آدرس نیست؛ بلکه ساختاردهی، Route Aggregation و سازگاری با قابلیت‌هایی مانند SLAAC اهمیت دارد.

چند Prefix رایج IPv6:

Prefixکاربرد معمول
/32اختصاص به اپراتور یا سازمان بزرگ
/48اختصاص رایج به یک سازمان یا Site
/56اختصاص به مشتری یا شبکه کوچک‌تر
/64Subnet استاندارد LAN
/128یک آدرس مشخص

آدرس‌های 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

این دستور مشخص می‌کند برای رسیدن به شبکه 192.168.50.0/24 بسته‌ها باید به Gateway با IP 10.0.0.1 ارسال شوند.

۵. محدودسازی دسترسی دیتابیس

می‌توان فقط Subnet سرورهای اپلیکیشن را به پورت دیتابیس مجاز کرد و دسترسی عمومی را بست:

sudo ufw allow from 10.20.1.0/24 to any port 3306 proto tcp

۶. طراحی شبکه خصوصی سرورها

در یک زیرساخت چندلایه می‌توان شبکه‌ها را جدا کرد:

10.10.1.0/24  Web Servers
10.10.2.0/24  Application Servers
10.10.3.0/24  Database Servers
10.10.4.0/24  Monitoring
10.10.5.0/24  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 سیستم: 192.168.1.50
  • Prefix: /24
  • Broadcast: 192.168.1.255
  • Interface: eth0

نمایش جدول Route

ip route show

فرم کوتاه:

ip r

نمونه:

default via 192.168.1.1 dev eth0
192.168.1.0/24 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 است

عبارت /24 بخشی از خود آدرس IP نیست؛ بلکه اندازه Network Prefix را مشخص می‌کند. دو سیستم با IP یکسان و Prefix متفاوت ممکن است برداشت متفاوتی از شبکه محلی داشته باشند.

۲. اختصاص Network Address به دستگاه

در شبکه معمول IPv4، اولین آدرس معرف خود شبکه است و نباید به Host اختصاص داده شود.

۳. اختصاص Broadcast Address به دستگاه

آخرین آدرس هر Subnet برای Broadcast رزرو است و استفاده از آن برای یک دستگاه باعث اختلال خواهد شد.

۴. فرض اینکه هر IP ختم‌شده به ۰ Network است

Network Address به Prefix بستگی دارد. در شبکه /۱۶، آدرس 192.168.1.0 می‌تواند Host معتبر باشد؛ زیرا Network Address شبکه 192.168.0.0/16 است.

۵. فرض اینکه هر IP ختم‌شده به ۲۵۵ Broadcast است

در شبکه 10.0.0.0/16، آدرس 10.0.0.255 یک Host معتبر است و Broadcast برابر 10.0.255.255 است.

۶. استفاده از Subnetهای هم‌پوشان

اگر دو شبکه VPN یا Docker از رنج مشابه استفاده کنند، Routing مبهم می‌شود. برای مثال اتصال دو شعبه که هر دو شبکه 192.168.1.0/24 دارند معمولاً نیازمند تغییر رنج یا NAT ویژه است.

۷. باز کردن رنج بزرگ در فایروال

تفاوت زیادی بین این دو Rule وجود دارد:

10.0.0.5/32
10.0.0.0/8

اولی فقط یک IP و دومی بیش از ۱۶ میلیون آدرس را شامل می‌شود.

۸. کم در نظر گرفتن فضای رشد

اگر اکنون ۵۸ دستگاه دارید، انتخاب /۲۶ با ۶۲ Host ممکن است در آینده محدودکننده باشد. هنگام طراحی شبکه، رشد احتمالی را نیز در نظر بگیرید.

۹. اشتباه گرفتن ۱۷۲.۰.۰.۰/۸ با رنج خصوصی

فقط 172.16.0.0/12 خصوصی است. آدرس‌هایی مانند 172.10.1.1 یا 172.40.1.1 در رنج خصوصی RFC ۱۹۱۸ قرار ندارند.

چطور Prefix مناسب را بر اساس تعداد دستگاه انتخاب کنیم؟

تعداد دستگاه موردنیازPrefix پیشنهادیHost قابل استفاده
۱ تا ۲/30۲
۳ تا ۶/29۶
۷ تا ۱۴/28۱۴
۱۵ تا ۳۰/27۳۰
۳۱ تا ۶۲/26۶۲
۶۳ تا ۱۲۶/25۱۲۶
۱۲۷ تا ۲۵۴/24۲۵۴
۲۵۵ تا ۵۱۰/23۵۱۰
۵۱۱ تا ۱۰۲۲/22۱۰۲۲

بهتر است علاوه بر تعداد فعلی، مقداری ظرفیت رشد نیز در نظر بگیرید. البته اختصاص رنج بسیار بزرگ هم می‌تواند Broadcast Domain و مدیریت شبکه را دشوار کند.

سوالات متداول درباره IP، Subnet و CIDR

آدرس IP چیست؟

آدرس IP یک شناسه عددی برای دستگاه یا رابط شبکه است که امکان شناسایی و مسیریابی داده‌ها را فراهم می‌کند.

Subnet چیست؟

Subnet یک بخش کوچک‌تر و مستقل از یک شبکه بزرگ‌تر است. Subnetting برای مدیریت بهتر IPها، کاهش Broadcast، تفکیک امنیتی و ساده‌تر شدن Routing استفاده می‌شود.

Subnet Mask چیست؟

Subnet Mask مشخص می‌کند کدام بیت‌های IP متعلق به Network و کدام بیت‌ها متعلق به Host هستند. برای مثال Mask مربوط به /۲۴ برابر 255.255.255.0 است.

CIDR چیست؟

CIDR روشی برای نمایش Network Prefix با علامت Slash است. در عبارت 192.168.1.0/24، عدد ۲۴ یعنی ۲۴ بیت اول آدرس مربوط به شبکه است.

/۲۴ چند IP دارد؟

یک شبکه /۲۴ دارای ۲۵۶ آدرس کل است. در شبکه معمول IPv4، ۲۵۴ آدرس برای Hostها قابل استفاده است.

/۲۹ چند IP قابل استفاده دارد؟

یک شبکه /۲۹ دارای هشت آدرس کل است که در حالت معمول شش آدرس آن برای Hostها قابل استفاده است.

/۳۰ چند IP قابل استفاده دارد؟

یک شبکه /۳۰ چهار آدرس کل دارد: یک Network، یک Broadcast و دو Host قابل استفاده.

آیا /۳۱ آدرس قابل استفاده دارد؟

بله، در لینک‌های Point-to-Point هر دو آدرس یک شبکه /۳۱ قابل استفاده هستند؛ به شرط آنکه تجهیزات دو طرف از این ساختار پشتیبانی کنند.

/۳۲ چه معنایی دارد؟

Prefix /۳۲ فقط یک آدرس IPv4 را مشخص می‌کند و معمولاً برای Host Route، Loopback، فایروال و VPN استفاده می‌شود.

تفاوت IP عمومی و خصوصی چیست؟

IP عمومی در اینترنت قابل Route است و باید یکتا باشد. IP خصوصی فقط در شبکه داخلی استفاده می‌شود و برای دسترسی به اینترنت معمولاً به NAT نیاز دارد.

رنج‌های IP خصوصی کدام‌اند؟

رنج‌های خصوصی IPv4 عبارت‌اند از 10.0.0.0/8، 172.16.0.0/12 و 192.168.0.0/16.

چطور 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، کافی است از فرمول 2^(32-Prefix) استفاده کنید. در شبکه‌های معمول /۰ تا /۳۰، دو آدرس Network و Broadcast قابل اختصاص به Host نیستند. همچنین با محاسبه Block Size می‌توان Network Address، Broadcast و رنج قابل استفاده را سریع پیدا کرد.

این مفاهیم هنگام تنظیم فایروال، طراحی شبکه خصوصی، پیکربندی VPN، Docker، Route، میکروتیک و زیرساخت چندسروری مستقیماً استفاده می‌شوند. به همین دلیل، قبل از راه‌اندازی سرویس‌های حساس روی VPS ایران، VPS آلمان یا سرور اختصاصی آلمان، بهتر است ساختار IP و شبکه خود را با دقت طراحی کنید.

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