اگر با شبکه، سرور، فایروال، 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 چیست؟
- ساختار آدرس 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: آدرسهای ۳۲ بیتی مانند
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.255 | 10.0.0.0/8 | ۱۶٬۷۷۷٬۲۱۶ | شبکههای بزرگ، دیتاسنتر و Cloud |
172.16.0.0 تا 172.31.255.255 | 172.16.0.0/12 | ۱٬۰۴۸٬۵۷۶ | شبکه سازمانی، Docker و زیرساخت داخلی |
192.168.0.0 تا 192.168.255.255 | 192.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/24Prefix برابر ۲۴ است. یعنی ۲۴ بیت اول متعلق به شبکه و هشت بیت آخر متعلق به 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/26Subnet Mask چیست؟
Subnet Mask یک عدد ۳۲ بیتی است که مشخص میکند کدام بیتهای آدرس IP به Network و کدام بیتها به Host اختصاص دارند.
در Subnet Mask:
- بیتهای ۱ نشاندهنده بخش Network هستند.
- بیتهای ۰ نشاندهنده بخش Host هستند.
برای مثال Subnet Mask مربوط به /۲۴ به شکل زیر است:
255.255.255.0نمایش باینری آن:
11111111.11111111.11111111.00000000۲۴ بیت اول ۱ هستند؛ بنابراین ۲۴ بیت برای Network و هشت بیت برای Host استفاده میشود.
چند Subnet Mask رایج:
| CIDR | Subnet Mask | تعداد بیت Host |
|---|---|---|
/8 | 255.0.0.0 | ۲۴ |
/16 | 255.255.0.0 | ۱۶ |
/24 | 255.255.255.0 | ۸ |
/25 | 255.255.255.128 | ۷ |
/26 | 255.255.255.192 | ۶ |
/27 | 255.255.255.224 | ۵ |
/28 | 255.255.255.240 | ۴ |
/29 | 255.255.255.248 | ۳ |
/30 | 255.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
| CIDR | Subnet Mask | تعداد کل IP | Host قابل استفاده |
|---|---|---|---|
/8 | 255.0.0.0 | ۱۶٬۷۷۷٬۲۱۶ | ۱۶٬۷۷۷٬۲۱۴ |
/9 | 255.128.0.0 | ۸٬۳۸۸٬۶۰۸ | ۸٬۳۸۸٬۶۰۶ |
/10 | 255.192.0.0 | ۴٬۱۹۴٬۳۰۴ | ۴٬۱۹۴٬۳۰۲ |
/11 | 255.224.0.0 | ۲٬۰۹۷٬۱۵۲ | ۲٬۰۹۷٬۱۵۰ |
/12 | 255.240.0.0 | ۱٬۰۴۸٬۵۷۶ | ۱٬۰۴۸٬۵۷۴ |
/13 | 255.248.0.0 | ۵۲۴٬۲۸۸ | ۵۲۴٬۲۸۶ |
/14 | 255.252.0.0 | ۲۶۲٬۱۴۴ | ۲۶۲٬۱۴۲ |
/15 | 255.254.0.0 | ۱۳۱٬۰۷۲ | ۱۳۱٬۰۷۰ |
/16 | 255.255.0.0 | ۶۵٬۵۳۶ | ۶۵٬۵۳۴ |
/17 | 255.255.128.0 | ۳۲٬۷۶۸ | ۳۲٬۷۶۶ |
/18 | 255.255.192.0 | ۱۶٬۳۸۴ | ۱۶٬۳۸۲ |
/19 | 255.255.224.0 | ۸٬۱۹۲ | ۸٬۱۹۰ |
/20 | 255.255.240.0 | ۴٬۰۹۶ | ۴٬۰۹۴ |
/21 | 255.255.248.0 | ۲٬۰۴۸ | ۲٬۰۴۶ |
/22 | 255.255.252.0 | ۱٬۰۲۴ | ۱٬۰۲۲ |
/23 | 255.255.254.0 | ۵۱۲ | ۵۱۰ |
/24 | 255.255.255.0 | ۲۵۶ | ۲۵۴ |
/25 | 255.255.255.128 | ۱۲۸ | ۱۲۶ |
/26 | 255.255.255.192 | ۶۴ | ۶۲ |
/27 | 255.255.255.224 | ۳۲ | ۳۰ |
/28 | 255.255.255.240 | ۱۶ | ۱۴ |
/29 | 255.255.255.248 | ۸ | ۶ |
/30 | 255.255.255.252 | ۴ | ۲ |
/31 | 255.255.255.254 | ۲ | ۲ در لینک نقطهبهنقطه |
/32 | 255.255.255.255 | ۱ | یک Host Route |
Network Address و Broadcast Address چیست؟
Network Address
اولین آدرس هر Subnet، آدرس شبکه یا Network Address است. در این آدرس، همه بیتهای بخش Host صفر هستند.
برای شبکه زیر:
192.168.1.0/24Network 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 باید چهار مورد را پیدا کنیم:
- Subnet Mask
- Network Address
- Broadcast Address
- رنج قابل استفاده و تعداد 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.192Block Size:
256 - 192 = 64بنابراین مرزهای شبکه با فاصله ۶۴ مشخص میشوند:
0, 64, 128, 192روش سوم: AND بیتی
برای بهدست آوردن Network Address، بین IP و Subnet Mask عمل AND بیتی انجام میشود:
IP: 192.168.10.70
Mask: 255.255.255.192Octet آخر:
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 جدید:
| Subnet | Network | Broadcast | رنج قابل استفاده |
|---|---|---|---|
192.168.1.0/25 | 192.168.1.0 | 192.168.1.127 | 192.168.1.1 تا 192.168.1.126 |
192.168.1.128/25 | 192.168.1.128 | 192.168.1.255 | 192.168.1.129 تا 192.168.1.254 |
مثال سوم: تقسیم /۲۴ به چهار شبکه /۲۶
| Network | Broadcast | رنج قابل استفاده |
|---|---|---|
192.168.1.0/26 | 192.168.1.63 | 192.168.1.1 تا 192.168.1.62 |
192.168.1.64/26 | 192.168.1.127 | 192.168.1.65 تا 192.168.1.126 |
192.168.1.128/26 | 192.168.1.191 | 192.168.1.129 تا 192.168.1.190 |
192.168.1.192/26 | 192.168.1.255 | 192.168.1.193 تا 192.168.1.254 |
مثال چهارم: شبکه /۲۷
10.20.30.77/27Subnet 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/28Block 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/29Block 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/30Block 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 استفاده کنیم:
| بخش | Subnet | Host قابل استفاده |
|---|---|---|
| کاربران | 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 | اختصاص به مشتری یا شبکه کوچکتر |
/64 | Subnet استاندارد 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 و شبکه خود را با دقت طراحی کنید.
