Cisco CCNA · 200-301 v2.0

Prefix و Subnetting در IPv6

در IPv6 هم Prefix مشخص می‌کند کدام بیت‌ها شبکه را معرفی می‌کنند، اما روش طراحی Subnet با IPv4 تفاوت مهمی دارد. در IPv4 معمولاً بخشی از زمان صرف پیدا کردن تعداد Host قابل استفاده، Network Address و Broadcast می‌شود. در IPv6 روی LANهای معمولی بیشتر با /64 کار می‌کنیم و تمرکز اصلی روی تخصیص منظم Prefix به VLANها، شعب، Serverها و Linkهاست. هدف این درس این است که بتوانی یک Prefix بزرگ‌تر را منطقی به Subnetهای /64 تقسیم کنی و از روی Address Plan بفهمی هر بخش شبکه باید چه Prefixی داشته باشد.

در پایان این درس باید بتوانی
  • Prefix Length را از /0 تا /128 درست تفسیر کنی
  • دلیل رایج بودن /64 روی LANهای IPv6 را توضیح بدهی
  • یک /48، /56 یا /60 را به Subnetهای /64 تقسیم کنی
  • Subnet ID را در ساختار معمول IPv6 تشخیص بدهی
  • برای VLANها و Siteهای مختلف یک Address Plan قابل مستندسازی طراحی کنی
  • هم‌Subnet بودن دو IPv6 را بر اساس Prefix بررسی کنی

Prefix Length و مرز Network

بعد از IPv6 Address می‌توان Prefix Length را با / نوشت. مثلاً 2001:DB8:100:20::15/64 یعنی ۶۴ بیت اول برای شناسایی Prefix شبکه استفاده می‌شوند. ۶۴ بیت باقی‌مانده معمولاً Interface ID را تشکیل می‌دهند. Interface ID بخشی است که یک Interface را داخل همان Subnet مشخص می‌کند.

نمونه
2001:DB8:100:20::15/64

Prefix: 2001:DB8:100:20::/64
Interface ID: بخش ۶۴ بیتی بعد از Prefix

در IPv6 نباید از روی شکل ظاهری آدرس حدس بزنی دو دستگاه هم‌شبکه هستند. مثل IPv4، Prefix تعیین‌کننده است. اگر ۶۴ بیت اول دو آدرس با /64 یکسان باشند، آن‌ها داخل همان Subnet قرار دارند. در بسیاری از طراحی‌ها، یک سازمان یک Prefix بزرگ‌تر دریافت می‌کند و از بخشی از بیت‌ها برای ساخت Subnetهای داخلی استفاده می‌کند. مثلاً فرض کن Prefix سازمان 2001:DB8:1200::/48 باشد. سه گروه اول، یعنی ۴۸ بیت، ثابت هستند. گروه چهارم می‌تواند به‌عنوان Subnet ID استفاده شود.

نمونه Address Plan
2001:DB8:1200:10::/64   VLAN 10
2001:DB8:1200:20::/64   VLAN 20
2001:DB8:1200:30::/64   VLAN 30

در این مثال عددهای ۱۰، ۲۰ و ۳۰ فقط شناسه‌های انتخاب‌شده برای Subnet هستند. لازم نیست Subnet ID دقیقاً برابر VLAN ID باشد، ولی هماهنگ کردن آن‌ها می‌تواند مستندسازی را ساده‌تر کند. مهم این است که طراحی ثابت و قابل فهم باشد. Prefix Length دقیقاً تعداد بیت‌های ثابت از سمت چپ را نشان می‌دهد. /48 یعنی ۴۸ بیت اول Prefix هستند و ۸۰ بیت دیگر خارج از آن Prefix پایه قرار می‌گیرند؛ /64 یعنی ۶۴ بیت اول Prefix شبکه هستند؛ /128 هم یک آدرس مشخص را به‌صورت Host Route نشان می‌دهد. بهتر است Prefix را به تعداد رقم Hex هم ربط بدهی: هر رقم Hex چهار بیت است، بنابراین /48 روی مرز ۱۲ رقم Hex و /64 روی مرز ۱۶ رقم Hex قرار می‌گیرد. این تبدیل ذهنی باعث می‌شود بسیاری از محاسبات IPv6 بدون تبدیل کامل به Binary انجام شوند.

مرزهای رایج
/48 = 12 hexadecimal digits
/56 = 14 hexadecimal digits
/60 = 15 hexadecimal digits
/64 = 16 hexadecimal digits
/128 = یک آدرس مشخص

/64 و ساختار Subnet در IPv6

بسیاری از شبکه‌های IPv6 در LAN از /64 استفاده می‌کنند. بخشی از دلیل به معماری IPv6 و مکانیزم‌هایی مثل Stateless Address Autoconfiguration برمی‌گردد که با Interface ID 64 بیتی طراحی شده‌اند. در CCNA باید /64 را به‌عنوان اندازه رایج Subnetهای LAN بشناسی. این به معنی آن نیست که هیچ Prefix دیگری در IPv6 وجود ندارد. لینک‌های خاص، Loopbackها یا طراحی‌های پیشرفته ممکن است Prefix متفاوت داشته باشند. اما برای یادگیری و طراحی عمومی LAN، /64 نقطه شروع استاندارد و قابل پیش‌بینی است. در IPv4 معمولاً Subnetting را با تعداد Host شروع می‌کردیم؛ مثلاً برای ۵۰ دستگاه دنبال Prefix مناسب می‌گشتیم. در IPv6 فضای آدرس آن‌قدر بزرگ است که در LAN عادی معمولاً برای ۲۰ یا ۲۰۰ دستگاه اندازه Prefix را تغییر نمی‌دهیم و هر دو می‌توانند /64 باشند. تمرکز بیشتر روی تعداد Subnetها و نظم Address Plan است.

پس سؤال طراحی به‌جای «چند Host جا می‌شود؟» بیشتر می‌شود «برای چند بخش شبکه Prefix جدا لازم دارم و چطور آن‌ها را منظم شماره‌گذاری کنم؟». این تغییر نگاه یکی از تفاوت‌های مهم IPv6 با IPv4 است. روی شبکه‌های LAN که از SLAAC استفاده می‌کنند، Prefix advertised باید /64 باشد. در این ساختار معمول، ۶۴ بیت اول Prefix و ۶۴ بیت دوم برای Interface Identifier هستند. این موضوع به معنی آن نیست که باید مثل IPv4 تعداد میلیاردها Host قابل استفاده را بشماری یا Broadcast Address پیدا کنی؛ IPv6 Broadcast ندارد و طراحی ظرفیت Host معمولاً عامل تعیین‌کننده Prefix LAN نیست. تمرکز باید روی ساختار، قابلیت خلاصه‌سازی Routeها، جداسازی VLANها و خوانا بودن Address Plan باشد.

ممکن است در سناریوهای خاص Prefixهای دیگری مثل /127 روی Link نقطه‌به‌نقطه یا /128 برای یک Route دقیق ببینی. وجود این موارد نباید باعث شود /64 را یک قانون مطلق برای همه Interfaceهای دنیا بدانی. برای CCNA و طراحی LAN سازمانی، /64 مرجع اصلی است؛ Prefixهای خاص را زمانی استفاده می‌کنیم که سناریو و استاندارد مربوطه دلیل روشنی داشته باشد.

تقسیم Prefixهای بزرگ‌تر به /64

اگر Prefix سازمان /48 باشد و Subnetها /64 باشند، ۱۶ بیت بین آن‌ها برای Subnet ID باقی می‌ماند. ۱۶ بیت می‌تواند ۶۵۵۳۶ مقدار مختلف بسازد. یعنی یک /48 فضای بسیار بزرگی برای ساخت Subnetهای /64 دارد.

مرز بیت‌ها
/48        ۱۶ بیت Subnet ID       64 بیت Interface ID
|------------|----------------------|------------------------|
2001:DB8:1200:0000:0000:0000:0000:0000

لازم نیست همه 65536 Subnet را استفاده کنی. مزیت این فضا این است که می‌توانی طراحی را بر اساس ساختمان، واحد، VLAN یا سایت سازمان مرتب کنی و برای رشد آینده جا داشته باشی. فرض کن سازمان Prefix مستندی 2001:db8:1200::/48 دارد. فاصله /48 تا /64 برابر ۱۶ بیت است؛ یعنی ۶۵۵۳۶ مقدار مختلف برای Subnet ID در اختیار داریم. می‌توانیم VLAN 10 را 2001:db8:1200:10::/64، VLAN 20 را 2001:db8:1200:20::/64 و Server VLAN را 2001:db8:1200:100::/64 در نظر بگیریم. عددهای ۱۰، ۲۰ و ۱۰۰ در این مثال Hexadecimal هستند؛ مزیت این روش این است که شماره منطقی VLAN یا نقش شبکه در Prefix قابل مشاهده می‌ماند.

تعداد Subnetها
از /48 تا /64: ۶۴ - ۴۸ = 16 bits
۲^۱۶ = 65536 subnet /64

از /56 تا /64: 8 bits256 subnet /64
از /60 تا /64: 4 bits16 subnet /64

طراحی Address Plan برای شبکه سازمانی

یک Address Plan خوب فقط لیست آدرس نیست. باید مشخص کند هر Prefix متعلق به کدام بخش است، Gateway یا Router Interface چه آدرسی دارد، آیا Prefix از Provider گرفته شده یا داخلی است و چه استانداردی برای شماره‌گذاری Subnetها استفاده می‌شود.

نمونه ساده
Prefix سازمان: 2001:DB8:5000::/48

2001:DB8:5000:10::/64   Users
2001:DB8:5000:20::/64   Servers
2001:DB8:5000:30::/64   Voice
2001:DB8:5000:40::/64   Management

همین نظم بعداً در Routing، ACL و Troubleshooting کمک زیادی می‌کند. اگر Prefixها تصادفی و بدون مستندات ساخته شوند، پیدا کردن مسیر و محدوده مشکل سخت‌تر می‌شود. محدوده 2001:DB8::/32 برای مستندات و مثال‌ها رزرو شده است. به همین دلیل در کتاب‌ها و Labها زیاد آن را می‌بینی. این Prefix برای استفاده واقعی روی اینترنت نیست. استفاده از آن در تمرین باعث می‌شود مثال‌ها با آدرس واقعی سازمان یا Provider اشتباه نشوند.

Address Plan خوب فقط مجموعه‌ای از Prefixها نیست. باید مشخص کند هر Prefix متعلق به کدام Site، VLAN یا سرویس است، چه Gatewayی دارد، از چه روشی آدرس‌ها تخصیص می‌یابند و چه محدوده‌ای برای رشد آینده رزرو شده است. اگر Prefixها را تصادفی انتخاب کنی، بعدها ACL، Routing و Troubleshooting دشوار می‌شود. مثلاً می‌توانی یک /48 برای هر Site و داخل آن یک بخش مشخص از Subnet ID را برای نوع شبکه نگه داری؛ مهم این است که الگو قبل از گسترش شبکه تعریف و مستند شود.

نمونه Address Plan
Site-A prefix: 2001:db8:1200::/48
VLAN 10 Users:  2001:db8:1200:10::/64
VLAN 20 Voice:  2001:db8:1200:20::/64
VLAN 30 Server: 2001:db8:1200:30::/64
VLAN 99 Mgmt:   2001:db8:1200:99::/64

تشخیص هم‌Subnet بودن و خطاهای Prefix

دو دستگاه 2001:DB8:1:10::20/64 و 2001:DB8:1:10::90/64 در یک Subnet هستند چون ۶۴ بیت Prefix آن‌ها یکسان است. اما 2001:DB8:1:11::90/64 در Subnet دیگری قرار دارد. تفاوت فقط یک گروه Hexadecimal است، ولی همان گروه داخل بخش Prefix قرار گرفته و نتیجه را عوض می‌کند. این مهارت در عیب‌یابی مهم است. اگر Client و Gateway Prefix متفاوت داشته باشند، ارتباط مستقیم محلی درست شکل نمی‌گیرد. قبل از سراغ رفتن به DNS یا سرویس‌های بالاتر، Address و Prefix را با هم بررسی کن. برای تشخیص هم‌Subnet بودن، فقط بخش‌هایی را مقایسه کن که Prefix مشخص کرده است. دو آدرس 2001:db8:1200:10::15/64 و 2001:db8:1200:10:abcd::20/64 در یک /64 نیستند، چون در آدرس دوم بعد از چهار گروه اول هنوز یک گروه اضافی قبل از Interface ID آمده و ۶۴ بیت اول آن با آدرس اول یکسان نیست. از ظاهر کوتاه‌شده نتیجه نگیر؛ در صورت ابهام :: را باز کن و دقیقاً ۶۴ بیت اول را مقایسه کن.

سناریوی عملی

یک شرکت Prefix مستندی 2001:db8:5000::/48 دارد و چهار VLAN کاربران، تلفن، سرورها و مدیریت می‌خواهد. به‌جای انتخاب تصادفی، Subnet ID را خوانا نگه می‌داریم: 2001:db8:5000:10::/64، 2001:db8:5000:20::/64، 2001:db8:5000:30::/64 و 2001:db8:5000:99::/64. حالا اگر روی یک Server آدرس 2001:db8:5000:20::50/64 دیده شود در حالی که باید در VLAN 30 باشد، از روی Prefix می‌توانیم خطای Addressing یا VLAN را سریع تشخیص دهیم.

اشتباهات رایج

اشتباه‌های رایج در Prefix و Subnetting IPv6

  • تعداد Hostهای IPv6 را با همان منطق Network/Broadcast در IPv4 محاسبه نکن
  • /64 را با /64 در IPv4 مقایسه نکن؛ طول کل آدرس‌ها متفاوت است
  • عددهای Subnet ID را بدون مشخص کردن اینکه Hexadecimal هستند مستند نکن
  • دو آدرس کوتاه‌شده را بدون باز کردن :: از روی ظاهر هم‌Subnet فرض نکن
  • برای هر VLAN یا Broadcast Domain لایه ۲ یک Prefix مستقل در نظر بگیر
تمرین عملی

تمرین Prefix و طراحی Subnet

  1. Prefix 2001:db8:abcd::/48 را به حداقل شش /64 خوانا برای VLANهای مختلف تقسیم کن
  2. حساب کن یک /56 چند /64 و یک /60 چند /64 می‌سازد و دلیل محاسبه را بنویس
  3. برای 2001:db8:1:20::15/64 بخش Prefix و بخش Interface را جدا کن
  4. دو آدرس کوتاه‌شده بساز که ظاهر شبیه داشته باشند ولی در /64 متفاوت باشند
  5. یک جدول Address Plan شامل VLAN، Prefix، Gateway و روش تخصیص آدرس طراحی کن

نکته‌هایی که باید با خودت ببری

  • Prefix Length تعداد بیت‌های ثابت سمت چپ را مشخص می‌کند
  • /64 Prefix رایج LAN و مبنای SLAAC است
  • بین /48 و /64 شانزده بیت برای Subnet ID وجود دارد
  • IPv6 Broadcast Address ندارد و طراحی Subnet معمولاً بر اساس تعداد Host انجام نمی‌شود
  • Address Plan منظم عیب‌یابی و Routing را ساده‌تر می‌کند
  • برای تشخیص هم‌Subnet بودن باید فقط بیت‌های Prefix را مقایسه کرد
خودسنجی

Prefix IPv6 را تحلیل کن

بین /56 و /64 چند بیت برای ساخت Subnet باقی می‌ماند؟

۸ بیت؛ بنابراین ۲۵۶ Subnet از نوع /64 می‌توان ساخت.

چرا /64 روی LANهای SLAAC مهم است؟

Router Advertisement برای Stateless Address Autoconfiguration Prefix /64 را advertise می‌کند و Host بخش دیگر آدرس را می‌سازد.

آیا در IPv6 برای هر Subnet یک Broadcast Address رزرو می‌شود؟

نه. IPv6 Broadcast ندارد و برای بسیاری از کاربردهای گروهی از Multicast استفاده می‌کند.

اگر Prefix یک Host اشتباه باشد چه اثر عملی ممکن است داشته باشد؟

Host ممکن است مقصد Remote را Local یا برعکس تشخیص دهد و Packet را به مسیر اشتباه بفرستد.

منابع رسمی

منابع مرجع این درس

مطالعه همیشه آزاد است

برای ذخیره پیشرفت وارد حساب شو

حساب کاربری برای آزمون و ثبت مرحله‌ها استفاده می‌شود

ورود یا ثبت‌نام