- سه محدوده Private در RFC 1918 را دقیق تشخیص بدهی
- Public و Private را با مفهوم امنیت اشتباه نگیری
- Loopback و IPv4 Link-Local را تفسیر کنی
- 0.0.0.0 را بر اساس Context بفهمی
- نقش کلی NAT در استفاده از Private Address را توضیح بدهی
- در عیبیابی از نوع آدرس بهعنوان سرنخ استفاده کنی
Public و Private IPv4
Public IPv4 Address آدرسی است که میتواند در اینترنت عمومی استفاده شود، به شرط اینکه از طرف مرجع یا Provider مربوط به سازمان تخصیص داده شده باشد و در Routing اینترنت اعلام شود. تعداد IPv4 عمومی محدود است و به همین دلیل معمولاً هر دستگاه داخل شرکت یک Public IP جدا ندارد. وقتی یک سازمان از اینترنت استفاده میکند، معمولاً تعداد زیادی دستگاه Private در داخل دارد و یک یا چند Public IP در مرز شبکه استفاده میشوند. تبدیل بین Private و Public را NAT انجام میدهد که در مرحله مربوط به خودش کامل بررسی میشود. RFC 1918 سه محدوده را برای شبکههای خصوصی رزرو کرده است. این آدرسها در شبکه داخلی شرکت، خانه، Lab و محیطهای مشابه استفاده میشوند و Routerهای اینترنت عمومی نباید آنها را مثل Public Prefixهای عادی Route کنند.
محدودههای Private10.0.0.0/8
172.16.0.0/12
192.168.0.0/16محدوده 172.16.0.0/12 از 172.16.0.0 تا 172.31.255.255 را پوشش میدهد. آدرس 172.15.1.10 Private نیست و 172.32.1.10 هم Private نیست. فقط نگاه کردن به عدد ۱۷۲ کافی نیست. Public IPv4 آدرسی است که برای استفاده در اینترنت عمومی از فضای قابل مسیریابی جهانی تخصیص داده میشود و باید در سطح اینترنت یکتا باشد. Private IPv4 برای شبکههای داخلی رزرو شده و یک سازمان میتواند بدون هماهنگی با IANA از آن استفاده کند. RFC 1918 سه محدوده اصلی Private را مشخص کرده: 10.0.0.0/8، 172.16.0.0/12 و ۱۹۲.۱۶۸.۰.۰/۱۶. این محدودهها در شرکتهای مختلف میتوانند تکرار شوند، چون قرار نیست بهصورت مستقیم روی اینترنت عمومی Route شوند.
Private IPv4 طبق RFC 191810.0.0.0/8
172.16.0.0/12
192.168.0.0/16یک اشتباه رایج این است که تمام 172.x.x.x را Private فرض کنیم. فقط 172.16.0.0 تا 172.31.255.255 داخل 172.16.0.0/12 قرار دارد. مثلاً 172.15.10.20 Private نیست و 172.32.1.1 هم خارج از محدوده RFC 1918 است. در عیبیابی باید محدوده را دقیق بشناسی، نه فقط Octet اول را.
Loopback، Link-Local و 0.0.0.0
محدوده 127.0.0.0/8 برای Loopback رزرو شده است. معروفترین آدرس 127.0.0.1 است. وقتی یک سیستم به 127.0.0.1 ترافیک میفرستد، بسته از کارت شبکه فیزیکی خارج نمیشود و داخل همان سیستم برمیگردد. Loopback برای تست Stack شبکه خود سیستم یا سرویسهایی که فقط Local هستند کاربرد دارد. اگر ping 127.0.0.1 موفق باشد، این نتیجه ثابت نمیکند کابل یا Switch سالم است؛ چون این تست اصلاً از سیستم خارج نشده.
نمونهping 127.0.0.1محدوده 169.254.0.0/16 برای IPv4 Link-Local استفاده میشود. در Windows ممکن است آن را با نام APIPA هم ببینی. وقتی سیستم برای گرفتن IP از DHCP تلاش میکند ولی پاسخ مناسب دریافت نمیکند، ممکن است یک آدرس 169.254.x.x برای خودش انتخاب کند. دیدن ۱۶۹.۲۵۴ معمولاً یک سرنخ مهم است: سیستم احتمالاً IP مورد انتظار شبکه را از DHCP نگرفته. پس قبل از DNS و اینترنت باید DHCP، کابل، VLAN و مسیر رسیدن Client به DHCP را بررسی کنی. RFC 3927 رفتار Link-Local IPv4 را تعریف میکند.
0.0.0.0 یک آدرس عادی Host نیست. بسته به محل استفاده، میتواند معنی «آدرس مشخص نشده» یا در Routing بخشی از Default Route یعنی 0.0.0.0/0 باشد. Default Route در مرحله Routing کامل بررسی میشود. اگر در خروجی DHCP Client یا هنگام Boot آدرس 0.0.0.0 دیدی، آن را مثل یک IPv4 عادی سازمانی تفسیر نکن. Context تعیین میکند این مقدار چه معنی دارد. Loopback برای ارتباط داخل خود Host استفاده میشود. معروفترین آدرس آن 127.0.0.1 است و کل 127.0.0.0/8 برای Loopback رزرو شده است. Packet مربوط به Loopback نباید وارد شبکه فیزیکی شود. اگر سرویسی روی localhost پاسخ میدهد ولی از IP شبکه پاسخ نمیدهد، این تست فقط ثابت میکند بخشی از Stack یا سرویس داخل سیستم فعال است؛ هنوز NIC، Firewall و مسیر شبکه باید جدا بررسی شوند. محدوده 169.254.0.0/16 برای IPv4 Link-Local است. سیستم ممکن است وقتی Configuration قابل مسیریابی مثل DHCP در دسترس نیست، آدرسی از این محدوده انتخاب کند. چنین آدرسی فقط برای همان Link طراحی شده و Router نباید آن را به شبکههای دیگر Forward کند. پس دیدن 169.254.x.x روی PC سازمانی معمولاً سرنخ مهمی است که DHCP یا مسیر رسیدن به DHCP را بررسی کنی.
0.0.0.0 هم بسته به Context معنی خاص دارد. روی یک Host ممکن است مفهوم «آدرس هنوز مشخص نشده» داشته باشد و در Routing، 0.0.0.0/0 به Default Route اشاره میکند. بنابراین فقط دیدن عدد کافی نیست؛ باید ببینی در کدام خروجی و چه فیلدی ظاهر شده است.
Network، Broadcast و آدرسهای مستندسازی
داخل هر Subnet معمول، Network Address و Broadcast Address هم کاربرد ویژه دارند و به Host عادی داده نمیشوند. این دو آدرس به Prefix وابستهاند و ثابت نیستند. مثلاً 192.168.1.0 در /24 Network Address است، ولی همان عدد میتواند داخل یک شبکه بزرگتر مثل /16 یک Host Address معمول باشد. پس Special بودن بعضی آدرسها مثل Network و Broadcast را همیشه باید همراه Prefix بررسی کنی. IANA تعدادی Prefix را برای کاربردهای خاص ثبت کرده است. بعضی برای Documentation و مثالهای آموزشی رزرو شدهاند تا در کتاب، مستند یا Lab از آدرسی استفاده شود که با شبکه واقعی کسی تداخل نکند. لازم نیست همه Registry را حفظ کنی، ولی باید بدانی هر IPv4 خارج از RFC1918 لزوماً Public قابل استفاده نیست. وقتی با آدرس ناآشنا روبهرو شدی، IANA IPv4 Special-Purpose Address Registry مرجع مناسبی است. این روش بهتر از حدس زدن بر اساس ظاهر IP است. Prefixهایی مثل 192.0.2.0/24، 198.51.100.0/24 و 203.0.113.0/24 برای Documentation رزرو شدهاند. استفاده از آنها در مثال و آموزش مناسب است، چون قرار نیست مثل Public Address واقعی سازمان Route شوند. در طراحی واقعی بهتر است برای شبکه داخلی از Private Rangeهای مشخص RFC1918 استفاده شود و برای Public Address فقط مقداری را به کار ببری که واقعاً به سازمان تخصیص داده شده است.
Network Address و Broadcast Address هم از آدرسهای خاص داخل هر Subnet هستند و برای Host عادی استفاده نمیشوند. این دو مقدار از Prefix همان Subnet به دست میآیند و ثابت سراسری نیستند. مثلاً 192.168.10.63 در یک /26 ممکن است Broadcast باشد، اما همان عدد با Prefix دیگری میتواند Host معتبر باشد. پس «خاص بودن» بعضی آدرسها وابسته به Prefix است. برای مثالها و مستندات عمومی هم محدودههایی رزرو شدهاند تا نویسنده مجبور نباشد از Public IP واقعی کسی استفاده کند. این نکته برای محتوای آموزشی مهم است، چون اگر در Diagram یا راهنما از آدرس عمومی واقعی استفاده کنی ممکن است خواننده تصور کند باید به همان مقصد متصل شود. در Labها بهتر است از Rangeهای مستندسازی یا Private متناسب با سناریو استفاده شود.
NAT، Shared Address Space و محدودیت IPv4
Private IP فقط درباره نحوه استفاده و مسیریابی آدرس صحبت میکند؛ بهخودیخود Security ایجاد نمیکند. اگر دو شبکه Private به هم Route شوند، دستگاههایشان میتوانند بسته به Firewall و ACL با هم ارتباط داشته باشند. پس 10.x یا 192.168.x بودن یک Server به معنی محافظتشده بودن آن نیست. Security با کنترل دسترسی، Firewall، Authentication و طراحی مناسب ساخته میشود. Private Addressing فقط یکی از بخشهای طرح IP است. یکی از دلایل رایج استفاده گسترده از Private Address، محدود بودن فضای IPv4 عمومی است. در یک شرکت ممکن است صدها Client آدرس Private داشته باشند و هنگام دسترسی به اینترنت، Router یا Firewall آدرس آنها را به Public Address ترجمه کند. این ترجمه NAT نام دارد. فعلاً لازم نیست Table و نوعهای NAT را یاد بگیری؛ فقط رابطه را بفهم: Private Address داخل شبکه استفاده میشود و برای عبور در اینترنت عمومی معمولاً نیاز به Translation یا طراحی دیگری دارد. محدوده 100.64.0.0/10 برای Shared Address Space تعریف شده و معمولاً در شبکه Providerها و Carrier-Grade NAT دیده میشود. این محدوده RFC1918 Private نیست، ولی Public عادی قابل استفاده در اینترنت هم محسوب نمیشود. لازم نیست همه جزئیات Carrier-Grade NAT را حفظ کنی. نکته مهم این است که دستهبندی IPv4 فقط دو حالت Private و Public ندارد و برای آدرسهای ناآشنا باید Registry رسمی را بررسی کنی.
Private بودن به معنی امن بودن نیست. یک سیستم با 10.10.10.20 همچنان میتواند در شبکه داخلی هدف حمله، Malware یا دسترسی غیرمجاز باشد. RFC 1918 فقط درباره فضای آدرس صحبت میکند، نه Security Policy. Firewall، Segmentation، Authentication و Hardening موضوعات جدا هستند و نباید برچسب Private را جایگزین امنیت در نظر گرفت. برای دسترسی کاربران Private به اینترنت معمولاً NAT یا PAT در مرز شبکه استفاده میشود. این فناوریها آدرس داخلی را هنگام خروج به یک Public Address یا مجموعهای از Public Addressها ترجمه میکنند. جزئیات NAT در فصل خودش آموزش داده میشود؛ فعلاً فقط باید بفهمی چرا PC با 192.168.10.20 میتواند اینترنت داشته باشد بدون اینکه این آدرس روی اینترنت عمومی Route شود. در شبکه اپراتورها ممکن است با Shared Address Space مثل 100.64.0.0/10 هم روبهرو شوی. این محدوده RFC1918 نیست و برای سناریوهایی مثل Carrier-Grade NAT رزرو شده است. اگر چنین IPای روی سمت WAN یک Router دیدی، قبل از نتیجهگیری درباره Public بودن آن باید Context سرویسدهنده را بررسی کنی.
تشخیص نوع آدرس در عیبیابی
اگر کاربری IP برابر 169.254.23.10 دارد و انتظار داری از DHCP شبکه 192.168.20.0/24 آدرس بگیرد، مشکل اصلی فعلاً Name Resolution نیست. اگر Server با 127.0.0.1 به سرویس خودش وصل میشود ولی Clientها نمیتوانند وصل شوند، Loopback فقط نشان داده سرویس محلی قابل دسترس است و چیزی درباره مسیر شبکه Clientها ثابت نمیکند. شناخت نوع Address باعث میشود هر Test را در محدوده درست خودش تفسیر کنی و سریعتر به مرحله بعدی عیبیابی برسی. خود عدد IP همیشه تمام داستان را نمیگوید. مثلاً 192.168.1.10 معمولاً در شبکه داخلی دیده میشود، ولی اینکه این دستگاه از کجا قابل دسترس است به Routing و Security بستگی دارد. از طرف دیگر، یک Public IP ممکن است روی Interface مرزی باشد ولی دسترسی ورودی به آن توسط Firewall بسته شده باشد. پس نوع Address را از کاربرد عملی شبکه جدا نکن. Private، Public یا Special بودن درباره محدوده و نحوه استفاده پایه آدرس است؛ دسترسی واقعی را مسیرها و سیاستهای شبکه تعیین میکنند. در عیبیابی نوع آدرس را همراه با محل استفاده بررسی کن. 127.0.0.1 روی Loopback طبیعی است ولی روی Interface فیزیکی طراحی عادی نیست. 169.254.30.40 روی Laptopی که باید از DHCP شرکت IP بگیرد سرنخ خرابی است. 192.168.1.1 روی LAN ممکن است کاملاً طبیعی باشد ولی روی اینترنت عمومی نباید بهعنوان مقصد یکتای جهانی انتظار Route داشته باشی.
این دستهبندی کمک میکند قبل از اجرای Pingهای تصادفی بفهمی با چه نوع آدرسی روبهرو هستی. اولین سؤال نباید فقط «Ping میشود یا نه» باشد؛ اول بررسی کن آدرس از نظر نقش و محدوده با طراحی شبکه سازگار است یا نه، بعد تست ارتباط را ادامه بده.
یک Laptop در شرکت IP برابر 169.254.88.15 دارد. کاربر میگوید اینترنت قطع است. این آدرس داخل IPv4 Link-Local است، پس اولین بررسی باید این باشد که چرا Client از DHCP آدرس نگرفته. کابل، Wi-Fi Association، VLAN و DHCP Service منطقیتر از تغییر DNS هستند.
اشتباههای رایج در نوع آدرس
- همه 172.x.x.xها را Private ندان
- موفق بودن 127.0.0.1 را نشانه سلامت کابل و Switch حساب نکن
- ۱۶۹.۲۵۴ را یک IP عادی سازمانی فرض نکن
- هر آدرس خارج از RFC1918 را بهطور خودکار Public قابل استفاده ندان
تمرین تشخیص نوع IPv4
- مشخص کن 10.20.30.40، 172.20.1.1 و 192.168.100.5 چه نوعی هستند
- بررسی کن 172.15.1.1 و 172.32.1.1 Private هستند یا نه
- روی Windows آدرس فعلی را با ipconfig ببین و نوع آن را مشخص کن
- IANA Special-Purpose Registry را باز کن و چند Prefix رزروشده را بررسی کن
نکتههایی که باید با خودت ببری
- RFC1918 سه محدوده Private اصلی را تعریف میکند
- 127.0.0.0/8 برای Loopback است
- 169.254.0.0/16 IPv4 Link-Local است
- Public و Special را نباید فقط از ظاهر IP حدس زد
- نوع آدرس یک سرنخ مهم برای Troubleshooting است
نوع آدرس را تشخیص بده
آیا 172.40.1.1 Private است؟
نه. محدوده Private مربوط به 172.16.0.0 تا 172.31.255.255 است.
169.254.x.x چه سرنخی میدهد؟
Client احتمالاً آدرس معمول شبکه را از DHCP نگرفته و Link-Local انتخاب کرده است.
ping 127.0.0.1 چه چیزی را تست میکند؟
ارتباط داخل Stack شبکه همان سیستم، نه مسیر فیزیکی شبکه.
منابع مرجع این درس
برای ذخیره پیشرفت وارد حساب شو
حساب کاربری برای آزمون و ثبت مرحلهها استفاده میشود