
مقدمه
آدرس IP یک دستگاه را در یک شبکه شناسایی میکند. سابنت (Subnet) یک زیرمجموعه منطقی از آن شبکه است. نمادگذاری CIDR طول پیشوند شبکه را با یک اسلش (/) بیان میکند، برای مثال 192.168.1.0/24. درک نحوه تعامل این سه مفهوم، پایه و اساس پیکربندی سرورها، زیرساختهای ابری و سیاستهای امنیتی شبکه است. مشخصات رسمی این مفاهیم در RFC 4632 برای مسیریابی بین دامنهای بدون کلاس (Classless Inter-Domain Routing) و RFC 1918 برای محدودههای آدرس خصوصی آورده شده است.
در این مقاله به آدرسدهی شبکه در لایه IP میپردازیم: نحوه ساختار و طبقهبندی آدرسهای IPv4، نحوه تقسیم فضای آدرس توسط ماسکهای سابنت، نحوه نمایش هر طول پیشوند توسط نمادگذاری CIDR، نحوه تخصیص کارآمد توسط ماسک سابنت با طول متغیر (VLSM) و نحوه اعمال نمادگذاری اسلش در IPv6 برای فضای ۱۲۸ بیتی.
نکات کلیدی
- یک آدرس IPv4 یک عدد ۳۲ بیتی است که به صورت چهار اکتت (Octet) دهدهی نمایش داده میشود (مثلا
192.168.0.5). آدرس IPv6 یک عدد ۱۲۸ بیتی است که به صورت هشت گروه چهار رقمی در مبنای شانزده نمایش داده میشود. - ماسک سابنت مشخص میکند کدام بیتهای یک آدرس IP متعلق به بخش شبکه و کدام متعلق به بخش میزبان (Host) است. ماسک
255.255.255.0(پیشوند/24) یعنی ۲۴ بیت اول مربوط به شبکه است. - در اکثر سابنتهای IPv4 (از
/0تا/30)، اولین آدرس، آدرس شبکه (Network Address) و آخرین آدرس، آدرس برودکست (Broadcast Address) است و هیچکدام نمیتوانند به یک میزبان اختصاص یابند. - نمادگذاری CIDR یک طول پیشوند را به آدرس IP اضافه میکند (مثلا
10.0.0.0/8) تا شبکه را بدون نیاز به مرزهای کلاسیک نشان دهد. - RFC 1918 سه محدوده آدرس خصوصی را تعریف میکند:
10.0.0.0/8،172.16.0.0/12و192.168.0.0/16. این محدودهها در اینترنت عمومی مسیریابی نمیشوند. - VLSM اجازه میدهد طول پیشوندهای متفاوتی در یک فضای آدرسدهی وجود داشته باشد تا سابنتها بر اساس نیاز واقعی تخصیص داده شوند.
- IPv6 از همان نمادگذاری اسلش IPv4 استفاده میکند، با پیشوند استاندارد
/64برای هر سابنت.
آدرس IP چیست؟
یک آدرس IP یک برچسب عددی است که به هر دستگاهی در شبکهای که از پروتکل اینترنت (IP) استفاده میکند، اختصاص مییابد. این آدرس دو وظیفه دارد: شناسایی میزبان و تعیین مکان آن در توپولوژی شبکه.
ساختار آدرس IPv4 و نمادگذاری نقطه-اعشاری
یک آدرس IPv4 یک عدد ۳۲ بیتی است که به صورت چهار بخش ۸ بیتی که با نقطه از هم جدا شدهاند نوشته میشود و هر بخش در مبنای دهدهی از ۰ تا ۲۵۵ است. با اینکه این بخشها برای خوانایی به صورت دهدهی نوشته میشوند، به هر کدام «اکتت» (Octet) میگویند تا نشان دهند که ۸ بیت را نمایندگی میکند.
یک آدرس IPv4 معمولی شبیه این است:192.168.0.5
همین آدرس در مبنای باینری به این شکل است:1100 0000 - 1010 1000 - 0000 0000 - 0000 0101
درک اینکه این دو فرمت مقدار یکسانی را نشان میدهند، پایه درک ماسکهای سابنت و CIDR است.
سیستمی به نام ترجمه آدرس شبکه (NAT) اجازه میدهد آدرسها هنگام عبور بستهها از مرزهای شبکه بازنویسی شوند. این امکان را میدهد که از یک آدرس IP خصوصی در چندین شبکه ایزوله استفاده شود.
کلاسهای آدرس IPv4 (A, B, C, D, E)
آدرسهای IPv4 از یک بخش شبکه و یک بخش میزبان تشکیل شدهاند. در گذشته آدرسها به ۵ کلاس تقسیم میشدند:
| کلاس | بیتهای ابتدایی | محدوده آدرس | ماسک پیشفرض | کاربرد |
|---|---|---|---|---|
| A | 0 | 0.0.0.0 تا 127.255.255.255 | 255.0.0.0 | شبکههای بزرگ |
| B | 10 | 128.0.0.0 تا 191.255.255.255 | 255.255.0.0 | شبکههای متوسط |
| C | 110 | 192.0.0.0 تا 223.255.255.255 | 255.255.255.0 | شبکههای کوچک |
| D | 1110 | 224.0.0.0 تا 239.255.255.255 | ندارد | مولتیکست (Multicast) |
| E | 1111 | 240.0.0.0 تا 255.255.255.255 | ندارد | آزمایشی/رزرو شده |
محدوده 127.0.0.0/8 (لوپبک) برای تست استک شبکه هر دستگاه رزرو شده است (معمولا 127.0.0.1). آدرسدهی کلاسیک (Classful) در مسیریابی مدرن منسوخ شده و CIDR جایگزین آن شده است.
آدرسهای IP عمومی در برابر خصوصی
آدرسهای عمومی در اینترنت قابل مسیریابی هستند. آدرسهای خصوصی توسط RFC 1918 تعریف شدهاند و فقط در شبکههای داخلی استفاده میشوند. روترهای اینترنت عمومی بستههای دارای آدرس خصوصی را دور میریزند، به همین دلیل برای ارتباط با دنیای خارج به NAT نیاز است.
سابنت (Subnet) چیست؟
سابنت یک زیرمجموعه منطقی از یک شبکه IP بزرگتر است. سابنتبندی یک بلوک آدرس را به چندین بلوک کوچکتر تقسیم میکند.
چرا از سابنتها استفاده میشود؟
- کاهش ترافیک برودکست: در یک شبکه مسطح، فریمهای برودکست (مثل درخواستهای ARP) به تمام میزبانها میرسند. تقسیم شبکه، این ترافیک را محدود به سابنت مربوطه میکند.
- ایزولهسازی امنیتی: قوانین فایروال و مسیریابی بر اساس محدوده آدرس اعمال میشوند.
- تخصیص دقیق فضای آدرس: به جای استفاده از بلوکهای ثابت، میتوانید سایز سابنت را بر اساس تعداد میزبانهای واقعی تعیین کنید.
آدرس شبکه و آدرس میزبان
هر آدرس IP دارای دو بخش است: شبکه و میزبان. برای آدرس 192.168.0.15 در یک شبکه /24، بخش شبکه 192.168.0 و بخش میزبان 15 است. با اعمال عملگر AND بیتی بین آدرس و ماسک سابنت، آدرس شبکه استخراج میشود:
1100 0000 - 1010 1000 - 0000 0000 - 0000 1111 (192.168.0.15)
AND
1111 1111 - 1111 1111 - 1111 1111 - 0000 0000 (255.255.255.0)
=
1100 0000 - 1010 1000 - 0000 0000 - 0000 0000 (192.168.0.0)
آدرس شبکه 192.168.0.0 است.
آدرس برودکست
آخرین آدرس در هر سابنت، آدرس برودکست است (جایی که تمام بیتهای میزبان ۱ هستند). بستهای که به این آدرس ارسال شود، به تمام میزبانهای آن سابنت تحویل داده میشود و نمیتوان آن را به یک دستگاه اختصاص داد.
ماسک سابنت (Subnet Mask) چیست؟
ماسک سابنت یک مقدار ۳۲ بیتی است که مشخص میکند کدام بیتهای آدرس IP مربوط به شبکه و کدام مربوط به میزبان است. بیتهای ۱ در ماسک نشاندهنده بیتهای شبکه و بیتهای ۰ نشاندهنده بیتهای میزبان هستند.
برای تقسیم یک شبکه /24 به دو سابنت مساوی، یک بیت به پیشوند اضافه میشود (ماسک 255.255.255.128 یا /25). این کار شبکه را به دو بلوک مجزا تقسیم میکند:
- سابنت ۱: آدرس شبکه
192.168.0.0، برودکست192.168.0.127 - سابنت ۲: آدرس شبکه
192.168.0.128، برودکست192.168.0.255
محاسبه میزبانهای قابل استفاده
تعداد کل آدرسها در یک سابنت برابر است با 2^(32 - طول پیشوند). میزبانهای قابل استفاده، دو عدد کمتر از این مقدار است (یکی برای شبکه، یکی برای برودکست).
- شبکه
/24:2^8 = 256کل آدرس. ۲۵۴ میزبان قابل استفاده. - شبکه
/26:2^6 = 64کل آدرس. ۶۲ میزبان قابل استفاده.
نمادگذاری CIDR چیست؟
CIDR (Classless Inter-Domain Routing) آدرس شبکه و طول پیشوند آن را در یک رشته واحد بیان میکند. مثلا 192.168.0.15/24 یعنی ۲۴ بیت اول مشخصکننده شبکه هستند.
نحوه جایگزینی CIDR به جای آدرسدهی کلاسیک
قبل از CIDR، تخصیص آدرسها بر اساس مرزهای کلاسها بود که هدر دادن زیادی داشت. CIDR اجازه میدهد بلوکهای آدرس در هر طول پیشوندی تخصیص یابند و همچنین مسیرها را تجمیع (Route Aggregation) کند تا اندازه جداول مسیریابی کاهش یابد.
جدول مرجع CIDR (طول پیشوند، ماسک و تعداد میزبان)
| پیشوند | ماسک سابنت | کل IPها | میزبانهای قابل استفاده |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /31 | 255.255.255.254 | 2 | 2 (فقط لینکهای نقطهبهنقطه) |
| /32 | 255.255.255.255 | 1 | 1 (مسیر تک میزبان) |
محاسبه سابنتها و محدودههای میزبان
مثال گامبهگام: سابنتبندی یک شبکه /24
شبکه 192.168.1.0/24:
- طول پیشوند: ۲۴ بیت
- ماسک:
255.255.255.0 - کل آدرسها: ۲۵۶
- آدرس شبکه:
192.168.1.0 - آدرس برودکست:
192.168.1.255 - محدوده قابل استفاده:
192.168.1.1تا192.168.1.254
تأیید محاسبات سابنت با ipcalc
ابزار خط فرمان ipcalc محاسبات سابنت را انجام داده و تفکیک باینری آدرس را نشان میدهد. در اوبونتو نصب میشود:
sudo apt install ipcalc
برای بررسی شبکه بالا:
ipcalc 192.168.1.0/24
خروجی شامل آدرس شبکه، اولین و آخرین میزبان قابل استفاده و آدرس برودکست خواهد بود.
مشاهده CIDR یک رابط شبکه در لینوکس
با دستور ip addr show میتوانید تخصیص CIDR را مستقیماً ببینید:
ip addr show eth0
خروجی شامل خطی شبیه به inet 10.10.1.5/24 brd 10.10.1.255 scope global eth0 خواهد بود که نشاندهنده آدرس IP، پیشوند و آدرس برودکست است.
محدودههای آدرس IP خصوصی و RFC 1918
RFC 1918 سه محدوده خصوصی را تعریف میکند:
| محدوده | بلوک CIDR | تعداد آدرسها | کاربرد معمول |
|---|---|---|---|
| 10.0.0.0 تا 10.255.255.255 | 10.0.0.0/8 | 16,777,216 | شبکههای سازمانی، VPCهای ابری |
| 172.16.0.0 تا 172.31.255.255 | 172.16.0.0/12 | 1,048,576 | شبکههای خصوصی متوسط |
| 192.168.0.0 تا 192.168.255.255 | 192.168.0.0/16 | 65,536 | شبکههای خانگی و اداری کوچک |
زیرساخت ابری پارمین کلود (Parmin Cloud) فضای آدرسدهی VPC خود را از این محدودههای RFC 1918 تخصیص میدهد. وقتی شما یک VPC با بلوک 10.10.0.0/16 ایجاد میکنید، تمام منابع درون آن آدرسهای خصوصی را از این محدوده دریافت میکنند.
ماسک سابنت با طول متغیر (VLSM)
VLSM روشی است که در آن طول پیشوندهای متفاوتی برای سابنتهای مختلف در یک فضای آدرسدهی اعمال میشود. این کار به مدیران شبکه اجازه میدهد به جای استفاده از یک سایز ثابت برای کل شبکه، هر سابنت را متناسب با تعداد میزبانهای واقعی آن طراحی کنند.
مثال عملی VLSM
تقسیم شبکه 10.0.0.0/24 به سابنتهایی با اندازههای متفاوت:
| بخش | میزبان مورد نیاز | سابنت اختصاص یافته | محدوده قابل استفاده | میزبانهای قابل استفاده |
|---|---|---|---|---|
| مهندسی | 50 | 10.0.0.0/26 | 10.0.0.1 تا 10.0.0.62 | 62 |
| بازاریابی | 20 | 10.0.0.64/27 | 10.0.0.65 تا 10.0.0.94 | 30 |
| مدیریت | 10 | 10.0.0.96/28 | 10.0.0.97 تا 10.0.0.110 | 14 |
| لینک WAN | 2 | 10.0.0.112/30 | 10.0.0.113 تا 10.0.0.114 | 2 |
پس از این چهار سابنت، آدرسهای 10.0.0.116 تا 10.0.0.255 همچنان آزاد و برای آینده در دسترس هستند.
IPv6 و نمادگذاری CIDR
IPv6 از همان نمادگذاری اسلش استفاده میکند اما برای آدرسهای ۱۲۸ بیتی. آدرسهای IPv6 به صورت هشت گروه چهار رقمی در مبنای شانزده (Hexadecimal) که با دو نقطه (:) جدا شدهاند نوشته میشوند.
پیشوند استاندارد برای هر سابنت در IPv6 برابر /64 است. این یعنی ۶۴ بیت برای شبکه و ۶۴ بیت برای آدرسدهی میزبان باقی میماند که فضای بسیار عظیمی را فراهم میکند.
تفاوتهای کلیدی IPv4 و IPv6 در سابنتبندی:
- طول آدرس: ۳۲ بیت در برابر ۱۲۸ بیت
- برودکست: در IPv6 حذف شده و از مولتیکست استفاده میشود.
- آدرسهای خصوصی: در IPv6 با نام ULA (
fc00::/7) شناخته میشوند.
کاربردهای عملی سابنتبندی و CIDR
سابنتبندی یک VPC ابری
در پارمین کلود (Parmin Cloud)، یک VPC یک شبکه خصوصی واحد است که توسط یک بلوک CIDR در زمان ایجاد تعریف میشود. شما میتوانید با استفاده از خط فرمان (CLI) آن را ایجاد کنید:
doctl vpcs create --name prod-vpc --region nyc1 --ip-range 10.10.0.0/16
هر سرور مجازی (Droplet) یا متعادلکننده بار (Load Balancer) در این VPC قرار گیرد، آدرس خصوصی خود را از این محدوده دریافت میکند.
شما میتوانید با استفاده از قوانین فایروال ابری، دسترسی لایهها را کنترل کنید. مثلا برای اینکه فقط لایه وب (محدوده 10.10.1.0/24) بتواند به لایه دیتابیس روی پورت ۵۴۳۲ دسترسی داشته باشد:
doctl compute firewall create \
--name data-tier \
--inbound-rules "protocol:tcp,ports:5432,address:10.10.1.0/24" \
--tag-names data
این کار دسترسی به دیتابیس را فقط از سابنت لایه وب مجاز میکند.
سوالات متداول (FAQ)
تفاوت ماسک سابنت و پیشوند CIDR چیست؟
ماسک سابنت (مثل 255.255.255.0) و پیشوند CIDR (مثل /24) هر دو یک اطلاعات را نشان میدهند. پیشوند CIDR تعداد بیتهای ۱ در ماسک سابنت را شمارش میکند.
یک سابنت /24 چند میزبان قابل استفاده دارد؟
۲۵۶ آدرس کل دارد. دو تا برای شبکه و برودکست رزرو میشود. ۲۵۴ میزبان قابل استفاده باقی میماند.
چرا CIDR معرفی شد؟
برای حل مشکل هدر رفتن آدرسها در سیستم کلاسیک و همچنین کاهش اندازه جداول مسیریابی در سراسر اینترنت از طریق تجمیع مسیرها (Route Aggregation).
نتیجهگیری
در این مقاله، آدرسدهی IP را از پایه بررسی کردیم. آدرسهای IPv4، نحوه استفاده از ماسکها برای تعریب بخش شبکه و میزبان، و نحوه استفاده از نمادگذاری CIDR برای حذف محدودیتهای کلاسیک را آموختید. با این پایه، اکنون میتوانید تخصیص سابنتها را برای هر اندازه شبکه طراحی کرده و قوانین فایروال و مسیریابی را به درستی پیکربندی کنید.




