شما اینجا هستید
پروتکل IPv6
- مقدمه
- نحوه نمایش آدرسهای IPv6
- فشردهسازی صفرها
- پیشوندهای IPv6
- انواع آدرسهای IPv6
- انواع آدرسهای Unicast
- آدرسهای سازگار با بستر IPv4
- آدرسهای Multicast
- آدرسهای Anycast
- آدرسهای IPv6 مربوط به میزبان
- آدرسهای IPv6 مربوط به مسیریابها
- شناسه واسط در IPv6
- شناسه مبتنی بر EUI-64
- آدرس IEEE 802
- آدرس IEEE EUI-64
- نگاشت آدرس MAC به آدرس EUI-64
- نگاشت آدرس EUI-64 به بخش شناسه واسط در IPv6
- آدرس شناسه واسط موقتی
- نگاشت آدرسهای IPv6 multicast به آدرسهای اترنت
- معادلهای IPv4 در IPv6
رشد روزافزون اینترنت و پایان یافتن قریبالوقوع آدرسهای IPv4 ، لزوم ایجاد یک پروتکل آدرسدهی جدید را برای حل این معضل نشان میدهد چراکه راهحلهایی که بهصورت موقتی برای حل معضل آدرسدهی IPv4 پیشنهادشده بودند، نظیر CIDR و NAT موجب حل کامل این مشکل نشدهاند و بعضاً خود نیز مشکلاتی جدید به وجود آوردهاند. در اواخر دهه ۷۰ هنگامیکه آدرسهای IPv4 طراحی شد هرگز به ذهن طراحان آن خطور نمیکرد که روزی این آدرسها به پایان برسد. اما رشد روزافزون اینترنت و انفجار یکباره مشترکین اینترنت پایانی بر آدرسدهی IPv4 پیشبینی نمود و در سال ۱۹۹۲ ایجاد یک پروتکل جدید آدرسدهی را اجتنابناپذیر مینمود. ازاینرو پروتکل آدرسدهی نسل جدید بانام IPv6 به وجود آمد. این تغییرات تنها در سطح لایه شبکه پروتکل TCP/IP اعمال خواهد شد.
در حقیقت مهمترین تفاوت بین پروتکل اینترنت نسخه ۴ یا IPv4 و پروتکل اینترنت نسخه ۶ یا IPv6 را میتوان در پیکربندی و آدرسدهی آنها دانست. IPv6 با بسط فضای آدرس مهمترین مشکل IPv4 که همانا پایان یافتن آدرسهای معتبر آن بود را حل نمود. درحالیکه IPv4 با تخصیص ۳۲ بیت برای آدرسدهی بهاندازه ۴.۲۹۴.۹۶۷.۲۹۶ آدرس را پشتیبانی مینماید که مقدار زیادی از آن به دلایل گوناگون به هدر میرود، IPv6 با اختصاص فضای ۴ برابری یعنی ۱۲۸ بیت برای آدرسدهی ۲ به توان ۱۲۸ آدرس را پشتیبانی مینماید که به نظر نمیرسد هیچگاه به پایان برسد.
همانطور که میدانید IPv4 بهصورت اعداد دهدهی که با استفاده از نقطه از هم جدا میشوند نمایش داده میشوند. بهطور مثال ۱۹۲.۱۶۸.۱.۱ یک نمونه از آدرسدهی IPv4 میباشد. در این نمایش تعداد ۳۲ بیت آدرس به ۴ قسمت ۸ بیتی که توسط نقطه از هم جدا میشوند تقسیم و هر بخش بهصورت اعداد دهدهی که بین صفر و ۲۵۵ قرار دارند نمایش داده میشوند.
در IPv6 برای نمایش آدرسها بیتها به هشت بخش ۱۶ بیتی تقسیمبندی میشود و هر بخش با استفاده از : از بخش دیگر جدا میشود. بخشهای ۱۶ بیتی را نیز بهصورت اعداد مبنای ۱۶ که بین ۰۰۰۰ و FFFF واقع میشوند نشان داده میشود . عدد دودویی ۱۲۸ بیتی زیر را در نظر بگیرید .
۰۰۱۰۰۰۰۱:۱۱۰۱۱۰۱۰:۰۰۰۰۰۰۰۰:۱۱۰۱۰۰۱۱:۰۰۰۰۰۰۰۰:۰۰۰۰۰۰۰۰:۰۰۱۰۱۱۱۱:۰۰۱۱۱۰۱۱
۰۰۰۰۰۰۱۰:۱۰۱۰۱۰۱۰:۰۰۰۰۰۰۰۰:۱۱۱۱۱۱۱۱:۱۱۱۱۱۱۱۰:۰۰۱۰۱۰۰۰:۱۰۰۱۱۱۰۰:۰۱۰۱۱۰۱۰
این اعداد نمایانگر یک آدرس IPv6 هستند. برای نمایش آدرسهای معادل ابتدا آنها به ۸ بخش ۱۶ بیتی تقسیم میشوند:
۰۰۱۰۱۱۱۱۰۰۱۱۱۰۱۱ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۱۱۰۱۰۰۱۱ ۰۰۱۰۰۰۰۱۱۱۰۱۱۰۱۰
۱۰۰۱۱۱۰۰۰۱۰۱۱۰۱۰ ۰ ۱۱۱۱۱۱۱۰۰۰۱۰۱۰۰ ۰۰۰۰۰۰۰۰۱۱۱۱۱۱۱۱ ۰۰۰۰۰۰۱۰۱۰۱۰۱۰۱۰
حال با نمایش این بخشها در مبنای ۱۶ و جداسازی آنها بهوسیله : به آدرس زیر میرسید:
۲۱DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
با صرفنظر از صفرهای بیارزش دارید:
۲۱DA: D3:0:2F3B: 2AA: FF:FE28:9C5A
همانطور که مشاهده میشود نمایش آدرسهای IPv6 بسیار طولانی و به خاطر سپردن آن دشوار است از طرفی در اکثر آدرسهای IPv6 که استفاده میشود تعداد زیادی از بخشهای ۱۶ بیتی صفر هستند. ازاینرو جهت سادهسازی آدرس مقرر شد بتوان بهجای صفرهای پشت سر هم از علامت : استفاده کرد. به این روش نمایش فشردهسازی صفر گفته میشود. ازآنجاییکه تعداد بخشهای ۱۶ بیتی یک آدرس IPv6 مشخص و به تعداد ۸ تا میباشد بهراحتی میتوان تعداد بخشهای که معادل صفر بوده و با علامت :: نشان دادهشده است را مشخص نمود. بهطور مثال آدرس FE80:0:0:0:2AA:FF:FE9A:4CA2 را میتوان بهصورت FE80::2AA:FF:FE9A:4CA2 نمایش داد یا ۰:۰:۰:۰:۰:۰:۰:۱آدرس را میتوان بهصورت ::۱ نمایش داد. بدیهی است که استفاده از این علامت در یک نمایش آدرس تنها یکبار مجاز است و بنابراین آدرسهایIPv6 را تنها یکبار میتوان فشردهسازی کرد لذا آدرس مثالی FFFE:0:0:30:0:0:803 بهصورت FFFE::30::803 نامعتبر است تنها صورتهای درست نمایش آدرس بهصورت FFFE::30:0:0:0:803یا FFFE:0:0:30::803 میباشد .در صورت اول با توجه به اینکه ۶ بخش ۱۶ بیتی در آدرس وجود دارد نشاندهنده آن است که تعداد دو بخش معادل صفر فشردهسازی شده است و در صورت دوم با توجه به وجود ۵ بخش ۱۶ بیتی یقیناً ۳ بخش معادل صفر فشردهسازی شدهاند اما در صورتهای نامعتبر نشان دادهشده نمیتوان مشخص کرد که چه تعداد از صفرها مربوط به :: اول و چه تعداد مربوط به :: دوم میباشند.
همانطور که میدانید در IPv4 از ماسک زیر شبکه[۱] برای مشخص نمودن بخش شبکه آدرس و بخش مربوط به میزبان[۲] آدرس استفاده میشود. با معرفی CIDR در IPv4 استفاده از طول بیتهای مساوی یک در ماسک شبکه نیز بهعنوان پسوند جداسازی بخش شبکه و میزبان یک آدرس موردپذیرش قرار گرفت . بهطور مثال میتوان آدرس شبکه ۱۹۲.۱۶۸.۱.۰ با ماسک ۲۵۵.۲۵۵.۲۵۵.۰ را بهصورت پیشوندی ۲۴/۱۹۲.۱۶۸.۱.۰ نشان داد.
در IPv6 برای نشان دادن بخش شبکهای آدرس تنها میتوان از پیشوندها استفاده نمود. پیشوند نشاندهنده تعداد بیتی از آدرس است که همواره در شبکه اختصاص دادهشده ثابت است . بهطور مثال آدرس ۲۰۰۱:۴۱۸۸::/۳۲یعنی ۳۲ بیت اول این آدرس برای مصرفکننده غیرقابل تغییر بوده و تنها میتوان ۹۶ بیت باقیمانده را بین شبکههای مختلف و میزبانهای گوناگون تغییر داد. توجه فرمایید که در IPv6 استفاده از ماسکهای زیر شبکه مفهومی نخواهد داشت.
آدرسهای IPv6 را بهصورت کلی میتوان به سه دسته تقسیمبندی نمود بهعبارتدیگر IPv6 از سه نوع آدرسدهی پشتیبانی میکند.
آدرسهای Unicast
آدرسهای unicast تنها به یک واسطه شبکه اختصاص داده میشوند و بهعبارتدیگر آدرسهای unicast در یک محدوده تنها نمایانگر یک واسط شبکهای میباشند. درخواستهایی که به آدرسهای unicast ارسال میشوند بعد از مسیریابی موفق، تنها بهوسیله یک آدرس مشخص دریافت میشوند.
آدرسهای Multicast
آدرسهای multicast در آن واحد نمایانگر چند واسط شبکهای میباشند که به آدرس multicast ارسال میشوند بعد از طی مسیرهای مسیریابی شده توسط تمامی واسطهای شبکهای که آدرس multicast موردنظر به آنها اختصاصیافته است دریافت میشوند و آدرسهای multicast برای ارتباطات یک به چند استفاده میشوند.
آدرسهای Anycast
آدرسهای anycast همانند آدرسهای multicast به چند واسط شبکه بهصورت همزمان اختصاص داده میشوند اما بستههایی که به اینگونه آدرسها ارسال میشوند تنها توسط یک واسط شبکه دریافت میشوند که این واسط نزدیکترین واسط شبکه نسبت به فرستنده میباشد نزدیکترین واسط نیز با توجه به الگوریتمهای مسیریابی تعیین میشود . در حقیقت آدرسهای anycast جهت دسترسی یکبهیکی از چند واسط استفاده میشوند.
در تمامی حالتهای آدرسدهی باید توجه داشت که آدرسها به واسطهای شبکه اختصاص داده میشوند نه به نقاط شبکه .بهعبارتدیگر هر نقطه شبکه ممکن است چند واسط شبکه داشته باشد که هر یک آدرس مجزای خود را داشته باشند.
در IPv6 آدرسهای موسوم به broadcast که در IPv4 تعریف میشوند وجود ندارند. بجای آدرسهای broadcast در IPv6 از آدرسهای Unicast استفاده میشود. مثلاً میتوان از multicast بجای broadcast استفاده نمود.
آدرسهای unicast خود به ۴ دسته کلی تقسیمبندی میشوند که عبارتند از :
- آدرسهای global unicast یا آدرسهای unicast عمومی
- آدرسهای link-local یا آدرسهای اتصال محلی
- آدرسهای site-local یا آدرسهای سایت محلی
- آدرسهای مخصوص
آدرسهای unicast عمومی
آدرسهای unicast عمومی که به آدرسهای unicast عمومی aggregatable نیز موسومند در حقیقت همان معادل آدرسهای معتبر در IPv4 میباشند. این آدرسها در شبکه اینترنت مسیریابی میشوند و معادل یک واسط شبکه معتبر و یکتا در جهان هستند. همانطور که میدانید هرچند آدرسهای IPv4 از یک ساختار سلسله مراتبی پیروی میکنند اما اختصاص این آدرسها به نقاط جغرافیایی دارای نظم مشخصی نیست. ازاینرو ممکن است مثلاً بخشی از آدرس ۸/۸۰.۰.۰.۰ که به زیر شبکههای مختلف تقسیمشده است به یک قاره جهان و بخش دیگر به قارهای دیگر اختصاص یابد. این امر موجب به وجود آمدن جدولهای مسیریابی بسیار بزرگی در مسیریابی هسته اصلی اینترنت میشود که به یکی از معضلات پیچیده و بسیار بزرگ IPv4 در دنیای امروز تبدیلشده است. ازاینرو کارشناسان تقسیم آدرس در اینترنت تصمیم گرفتهاند که در مورد IPv6 اختصاص آدرسها به مناطق جغرافیایی نیز از یک ساختار سلسله مراتبی پیروی نماید. لذا بخشی از پیشوندهای مربوط به آدرس IPv6 به مناطق جغرافیایی برای تعیین درست مسیر اختصاصیافته است . شکل زیر نمایی از ساختاربندی اینگونه آدرسها را نشان میدهد.
همانطور که در شکل دیده میشود این ساختار از چند بخش تشکیلشده است.
FP: شکل پیشوند که تعیینکننده نوع آدرس میباشد. بهعنوانمثال اگر پیشوند ۰۰۱ باشد حتماً این آدرس از نوع Unicast عمومی میباشد. طول این قسمت سه بیت میباشد. بنابراین آدرسهای Unicast عمومی، حتماً با عدد ۲ یا ۳ در مبنای ۱۶ آغاز میشوند.
TLA-ID: شناسه مربوط به Aggregation در بالاترین سطح این قسمت توسط سازمان بینالمللی تخصیص آدرسهای اینترنتی (IANA) به حوزههای ثبت آدرسهای اینترنتی اختصاص داده میشود. ازاینرو از روی یک آدرس میتوان مکان جغرافیایی یک آدرس را در سطح قارهها پیدا کرد.
Res: این قسمت برای استفادههای بعدی کنار گذاشتهشده است و میتوان با کم کردن بیتهای اختصاص دادهشده آن به بخشهای قبل و بعدازآن فضای قسمتهای دیگر را افزایش داد.
NLA-ID: شناسه مربوط به Aggregation سطح بعدی. از این شناسه برای مشخص نمودن کشورها، حوزههای ثبت محلی و بخشهای جغرافیایی کوچکتر استفاده میشود. در حال حاضر حوزههای ثبت آدرسهای اینترنتی بخشی از این قسمت را به مشخص کردن حوزههای ثبت محلی اختصاص میدهند و بخش دیگر را جهت تقسیم به نواحی کوچکتر در اختیار حوزههای ثبت محلی میگذارند. در حال حاضر آدرسهایی با طول پیشوند ۳۲ بیت به درخواستکنندهها اختصاص مییابند.
SLA-ID: شناسه مربوط به Aggregation سطح سایت. از این شناسه برای مشخص نمودن ادارات و سازمانهای وابسته به یک حوزه ثبت محلی استفاده میشود.
Interface ID: از این شناسه برای مشخص نمودن آدرسهای منحصربهفرد هر شبکه واسط استفاده میشود. طول اختصاص دادهشده به این بخش ثابت و ۶۴ بیت میباشد.
بهطورکلی در صورت خلاصهشده میتوان آدرس IPv6 عمومی را بهصورت شکل زیر در نظر گرفت.
این ساختار از سه سطح کلی تشکیلشده است که نشان میدهد بیتهای سمت چپ از اهمیت بیشتری برخوردارند. ۴۸ بیت اول بهعنوان توپولوژی عمومی اینترنت، ۱۶ بیت بعدی بهعنوان شناسهای برای مناطق ناحیهای و ۶۴ بیت آخر نیز مشخصکننده واسط شبکه میباشد.
استفادههای محلی از آدرسهای Unicast
دو نوع استفاده محلی برای آدرسهای Unicast محلی وجود دارد. آدرسهای محلی مربوط به اتصال و آدرسهای محلی مربوط به ناحیه که به ترتیب آدرسهای Link Local و آدرسهای Site-Local نامیده میشوند.
آدرسهای Link-Local
این آدرسها برای برقراری ارتباط بین نقاطی که در اتصال موجودند استفاده میشوند. این آدرسها عموماً برای تعیین وضعیت شبکه توسط پروتکل Neighbor Discovery مورداستفاده قرار میگیرند. همچنین میتوان از این آدرسها برای ارتباطات محلی در یک شبکه هنگامیکه هیچ مسیریابی در شبکه موجود نیست استفاده نمود. معادل این آدرسها در IPv4 همان آدرسهای APIPA یا آدرسهای خودکار خصوصی میباشند که از نوع آدرسهای کلاس B بوده ، معادل آدرس ۱۶/۱۶۹.۲۵۴.۰.۰ در IPv4 میباشند. این آدرسها هنگامیکه هیچ آدرسی برای پروتکل IPv4 قابلدستیابی نباشد بهصورت خودکار تنظیم میشوند. در IPv6 نیز چنین آدرسهایی موجودند که به آنها آدرسهای Link-Local گفته میشود. شکل زیر نمایی از ساختار آدرسدهی Link-Local را نشان میدهد.
همانطور که مشاهده میشود آدرسهای Link-Locl دارای ۱۰ بیت ثابت و ۵۴ بیت صفر هستند. بنابراین میتوان آنها را بهصورت FE80::/64 نشان داد. تنها ۶۴ بیت آخر این آدرسها به Interface ID اختصاص دارد .
آدرسهای Site-Local
آدرسهای Site-Local در IPv6 معادل آدرسهای خصوصی در IPv4 هستند. این آدرسها برای استفادههای درون ناحیهای و داخل شرکتها و سازمانها در نظر گرفتهشدهاند و تنها مسیریابهای داخلی امکان مسیریابی آنها را خواهند داشت. این آدرسها در مسیریابهای اینترنت بههیچوجه مسیریابی نخواهند شد. برعکس آدرسهای Link-Local این آدرسها بهصورت خودکار تخصیص داده نمیشوند و باید بهصورت دستی آنها را تنظیم نمود. شکل زیر نمایی از آدرسدهی Site-Local را نشان میدهد.
همانطور که در شکل زیر دیده میشود این آدرسها نیز ۱۰ بیت ثابت به همراه ۵۴ بیت که مربوط به شناسه زیر شبکه میباشند، تشکیلشده است. بنابراین آدرسهای Site-Local را میتوان بهصورت FEC0::/10 نشان داد. از ۵۴ بیت مربوط به شناسه زیر شبکه میتوان جهت ایجاد یک ساختار سلسله مراتبی در سازمانها بهره جست. ۶۴ بیت انتهایی نیز همانند گذشته به آدرسهای شبکه تعلق دارد.
آدرسهای IPv6 مخصوص
بعضی از آدرسهای IPv6 برای استفاده خاص استفاده میشوند و نباید جهت تنظیم آدرس مورداستفاده قرار گیرند. این آدرسها عبارتند از:
- آدرسهای نامعین: آدرس IPv6 معادل ۰:۰:۰:۰:۰:۰:۰:۰ با به عبارت سادهتر :: نمایانگر عدم وجود آدرس برای یک واسط شبکه بوده و بههیچعنوان استفاده خارجی ندارد. معادل این آدرس در IPv4 آدرس ۰.۰.۰.۰ میباشد که برای شروع کار TCP/IP و تعیین آدرس مورداستفاده قرار میگیرد.
- آدرس Loopback: این آدرس برای مشخص کردن آدرس شبکهای loopback مورداستفاده قرار میگیرد.معادل این آدرس در IPv4 همان آدرس ۱۲۷.۰.۰.۱ میباشد که برای آزمایش کارکرد داخلی TCP/IP استفاده میشود. در IPv6 این آدرس را بهصورت ۰:۰:۰:۰:۰:۰:۰:۱ یا بهاختصار ۱:: نشان میدهند. این آدرس نباید برای هیچ واسط شبکهای تنظیم شود و یا برای ارتباط بین چند واسط مورداستفاده قرار گیرد.
برای راحتی گذر از بستر IPv4 به بستر IPv6 چند نوع آدرس سازگار با IPv4 برای IPv6 تعریفشده است که این لزوم وجود این آدرسها برای این مرحله گذر و استفاده همزمان از هر دو نوع آدرسدهی اجتنابناپذیر میباشند. این آدرسها را در کل میتوان به سه دسته تقسیم نمود:
- آدرسهای سازگار با IPv4 : این آدرسهای بهصورت ۰:۰:۰:۰:۰:۰.w.x.y.z یا بهصورت خلاصه آن آدرسهای ::w.x.y.z آدرسهای سازگار با IPv4 نامیده میشوند که در آنها w.x.y.z نمایانگر صورت نسخه ۴ آدرسهای اینترنتی میباشد. این آدرسها توسط نقطههای IPv4/IPv6 که میخواهند از بستر IPv6 برای برقراری ارتباط با IPv4 بهره ببرند، استفاده میشوند. نقطههای IPv4/IPv6 نقاطی هستند که بهصورت همزمان هر دو پروتکل IPv6 و IPv4 را پشتیبانی میکنند. هنگامیکه یک آدرس IPv6 سازگار با IPv4 بهعنوان گیرنده در یک بسته استفاده میشود بهصورت خودکار این بسته به سرآیندهای نسخه ۴ بستهبندیشده و با ساختار IPv4 به مقصد فرستاده میشوند.
- آدرسهای نگاشت به IPv4 : این آدرسها که بهصورت ۰:۰:۰:۰:۰:FFFF:W.X.Y.Z یا ::FFFF:W.X.Y.Z نمایش داده میشوند بیانگر یک نقطه تنها IPv4 را پشتیبانی میکند میباشند. این آدرسها فقط برای استفاده داخلی TCP/IP استفاده میشوند و بههیچعنوان بهعنوان آدرسهای مبدأ یا مقصد IPv6 تنظیم نمیشوند.
- آدرسهای۶to4 : این آدرسها برای برقراری ارتباط بین دونقطه که هر دو هم IPV4 و IPv6 را پشتیبانی میکنند و میخواهند از یک بستر مسیریابی IPV4 برای برقراری ارتباط استفاده میکنند مورداستفاده قرار میگیرند. آدرسهای ۶to4 از پیشوند ۲۰۰۲::/۱۶ و اضافه کردن ۳۲ بیت مربوط به IPv4 به ادامه آن برای ساخت یک آدرس با پیشوند ۴۸ تایی بهره میگیرند. ۶to4 در حقیقت یک راهکار تونل زنی میباشد که برای برقراری ارتباط بین نقاط IPv6 موجود در سرتاسر جهان روی بستر موجود IPv4 مورداستفاده قرار میگیرد.
عملکرد multicast در ipv6 همانند عملکرد multicast در ارتباطات IPv4 میباشد. همانطور که میدانید از آدرسهای Multicast برای ارتباطات یک به چند استفاده میشود. هر نقطه شبکه میتواند بهصورت همزمان به چندین آدرس Multicast گوش دهد. آدرسهای Multicast مربوط به IPv6 دارای ۸ بیت ۱ در ابتدا میباشند. بنابراین تشخیص اینکه یک آدرس از نوع Multicast میباشد یا نه بسیار آسان است زیرا آدرسهای Multicast با FFشروع میشوند. از آدرسهای Multicast نمیتوان بهعنوان آدرس مبدأ و یا آدرس مقصد مسیریابیها استفاده نمود. بعد از ۸ بیت اول آدرسهای multicast از بیتهای بعدی آدرس برای ساختاربندی نواحی و گروههای Multicast استفاده میشوند. شکل زیر نمایی از ساختاربندی آدرسهای Multicast را نشان میدهد.
بخشهای تشکیلدهنده آدرسهای multicast علاوه بر ۸ بیت اول عبارتند از :
بخش پرچم[۳]: اندازه این بخش ۴ بیت میباشد. طبق تعریف RFC3513 تنها پرچم تعریفشده تاکنون پرچم "گذرا[۴]" میباشد. برای تنظیم این پرچم از کمارزشترین بیت این بخش استفاده میشود. درصورتیکه این بیت صفر باشد، نشاندهنده آن است که آدرس Multicast اختصاص دادهشده دائمی بوده و بهوسیله IANA [۵]اختصاص دادهشده است . اگر این پرچم یک باشد یعنی اینکه آدرس مذکور گذرا بوده و دائمی نمیباشد.
بخش ناحیه[۶]: این بخش نشاندهنده ناحیهای است که آدرس Multicast در ارتباطات بین شبکهای IPv6 مورداستفاده قرار میگیرد. اندازه این بخش ۴ بیت میباشد. مسیریابها علاوه بر استفاده از پروتکلهای مسیریابی مربوط به multicast از اطلاعات این بخش برای تعیین اینکه آیا این بسته Multicast بایستی بهقصد بعدی فرستاده شود یا خیر مورداستفاده قرار میگیرد. رایجترین مقادیر این بخش ۲و۳و۵ میباشند که نشاندهنده ناحیه واسط شبکه محلی[۷] ، ناحیه اتصال شبکه محلی[۸] و ناحیه سایت[۹] شبکه محلی میباشند. بهطور مثال آدرس multicast برابر FF02::2 مربوط به اتصال محلی میباشد و توسط مسیریابها به بیرون از اتصال هدایت نخواهد شد.
بخش شناسه گروه:
این بخش مشخصکننده گروه multicast بوده، در هر ناحیه نیز منحصربهفرد میباشد. اندازه این بخش ۱۱۲ بیت میباشد. آدرسهایی که از نوع دائمی میباشند شناسه گروهی آنها با شناسه ناحیهشان مرتبط نخواهد بود. برای آدرسهای غیردائمی نیز شناسه گروهی تنها در ناحیه خودشان معتبر است. آدرسهای multicast بین FF0F:: و FF01:: برای آدرسهای مشهور کنار گذاشتهشده است و بهجایی اختصاص داده نمیشود.
برای مشخص کردن تمامی نقاط در یک واسط شبکه یا در اتصال شبکه از آدرسهای Multicast زیر میشود:
FF01::1: این آدرس نمایانگر تمامی نقاط در یک واسط محلی میباشد.
FF02::1: این آدرس نمایانگر تمامی نقاط در یک اتصال محلی میباشد.
برای مشخص نمودن تمامی مسیریابها در یک واسط یا یک اتصال و یا یک سایت از آدرسهای زیر استفاده میشود:
FF01::2: نشاندهنده تمامی مسیریابهایی است که در یک واسط محلی قرار دارند.
FF02::2: نشاندهنده تمامی مسیریابهایی است که در یک اتصال محلی قرار دارند.
FF05::2: نشاندهنده تمامی مسیریابهایی است که در یک سایت قرار دارند.
با استفاده از ۱۱۲ بیت اختصاص دادهشده به شناسه گروه امکان تعریف ۲ به توان ۱۱۲ گروه مختلف تعریف کرد. با توجه به نحوه نگاشت آدرسهای Multicast به آدرسهای Multicast اترنت MAC در RFC3513 پیشنهادشده است که از ۳۲ بیت کمارزش بهعنوان شناسه گروه استفاده و بقیه بیتها صفر در نظر گرفته شوند. در شکل زیر این ساختار پیشنهادی را نشان میدهد.
آدرس نقطه درخواستی
استفاده از آدرس نقطه درخواستی به دست آوردن آدرسهای سختافزاری سیستم و مشخصات موردنیاز را آسانتر میکند. در IPV4 درخواستهای APR چنین کاری را انجام میدهند. درخواستهای ARP بهصورت Broadcast به همه نقطهها ارسال میشوند و تمامی نقاط آن را دریافت کنند. این نکته باعث شلوغی شبکه خواهد شد. در IPv6 بهجای استفاده از APR از پیغام تقاضای اطلاعات همسایه استفاده میشود. در این پیغام بهجای اینکه پیغام به آدرس Multicast تمامی نقاط اتصال شبکه محلی ارسال شود پیغام به آدرس نقطه درخواستی که یک آدرس Multicast است ارسال میشود. آدرس Multicast نقطه درخواستی از پیشوند ۱۰۴ تایی FF02::1:FF00:0/104 و ۲۴ بیت آخر آدرس IPv6 درخواستی تشکیل میشود. شکل زیر نمایی از ساختار چنین آدرسی را نشان میدهد.
آدرسهای Anycast بهصورت همزمان به چند واسط شبکه اختصاص داده میشوند. بستههایی که به مقصد آدرسهای Anycast ارسال میشوند از طریق ساختارهای مسیریابی مربوط به anycast به نزدیکترین مقصد فرستاده میشوند. برای بهبود ساختار مسیریابی مسیریابها بایستی از مکان آدرسهای Anycast و فاصله آنها برحسب معیارهای مسیریابی[۱۰] مطلع باشند. در حال حاضر آدرسهای Anycast تنها بهعنوان آدرسهای مقصد آنهم برای مسیریابها مورداستفاده قرار میگیرند. آدرسهای Anycast از روی آدرسهای Multicast به دست میآیند و محدوده کاری آنها نیز بستگی به محدوده کاری آدرسهای Unicast مرجع دارد.
آدرسهای Anycast مربوط به مسیریاب زیر شبکه یک آدرس از قبل تعیینشده است. این آدرس از روی پیشوند زیر شبکه موجود ساخته میشود. برای ساختن این آدرس بخش شبکهای آدرس را ثابت در نظر گرفته و بقیه بیتها را صفر میکنند، بنابراین تمامی مسیریابهای موجود در یک زیر شبکه دارای آدرس Anycast یکسانی خواهند بود.
یک میزبان IPv4 در حالت عادی معمولاً یک آدرس IPv4 به خود اختصاص میدهد، ولی در مورد IPv6 قضیه فرق میکند. یک میزبان IPv6 معمولاً چند آدرس IPv6 دارد. به یک میزبان IPv6 آدرسهای زیر اختصاص مییابد:
- یک آدرس اتصال محلی برای هر واسط شبکه
- آدرس unicast برای هر واسط شبکه که میتواند از یک آدرس سایت محلی و یک یا چند آدرس unicast عمومی تشکیل شود
- آدرسهای loopback که ::۱ میباشد
در حقیقت میزبانهای IPv6 از نوع چند شبکهای میباشند، زیرا هم یک آدرس از نوع محلی برای ارتباطات داخل شبکهای دارند و هم یک یا چند آدرس مسیریابی شونده برای ارتباطات بین شبکهای را دارا هستند.
علاوه بر آدرسهای مذکور میزبانهای IPv6 بایستی به آدرسهای multicast زیر نیز گوش دهند:
- آدرس multicast تمام نقاط موجود در ناحیه واسط محلی (FF01::1)
- آدرس multicast تمام نقاط موجود در ناحیه اتصال محلی (FF02::1)
- آدرس نقطه درخواستی برای هر آدرس unicast روی هر واسط شبکه
- آدرسهای multicast گروههای multicast که آن میزبان عضو آن باشد.
آدرسهای IPv6 مربوط به مسیریابها
آدرسهای زیر را میتوان برای یک مسیریاب IPv6 در نظر گرفت:
- یک آدرس اتصال محلی برای هر واسط شبکه
- آدرس unicast برای هر واسط شبکه که میتواند از یک آدرس سایت محلی و یک یا چند آدرس unicast عمومی تشکیل شود
- آدرس anycast عمومی تشکیل شود
- آدرسهای دیگر anycast که در مواقع لزوم تنظیم میشوند
- آدرسهای loopback که ::۱ میباشند
همچنین یک مسیریاب IPv6 بایستی به آدرسهای multicast زیر گوش دهد:
- آدرس multicast تمام نقاط موجود در ناحیه واسط محلی (FF01::1)
- آدرس multicast تمام مسیریابهای موجود در ناحیه واسط محلی (FF01::2)
- آدرس multicast تمام نقاط موجود در ناحیه اتصال محلی (FF02::1)
- آدرس multicast تمام مسیریابهای موجود در ناحیه اتصال محلی (FF02::2)
- آدرسهای multicast تمام مسیریابهای موجود در ناحیه سایت محلی (FF05::2)
- آدرس نقطه درخواستی برای هر آدرس unicast روی هر واسط شبکه
- آدرسهای multicast گروههای multicast که آن مسیریاب عضو آن باشد.
۶۴ بیت آخر آدرسهای IPv6 مربوط به شناسه واسط شبکه میباشد که باید در یک زیر شبکه IPv6 منحصربهفرد باشد. راههایی که برای ایجاد این شناسه ۶۴ بیتی وجود دارد تا یکتایی آن تضمین شود به شرح زیر است:
- یک آدرس واسط شبکه که از روی شناسه منحصربهفرد توسعهیافته[۱۲] معروف به EUI-64 بهدستآمده باشد.
- یک شناسه واسط که بهصورت تصادفی ایجاد میشود و در بسترهای گوناگون تغییر میکند.
- یک شناسه منحصربهفرد که بهصورت اتوماتیک توسط ابزارهایی نظیر DHCPv6 اختصاص داده میشود. در حال حاضر DHCPv6 معرفی و اجراشده است.
در RFC3513 خاطرنشان شده است که تمامی آدرسهای unicast عمومی که سه بیت اول آنها ۰۰۱ میباشد بایستی حتماً از یک شناسه واسط ۶۴ بیتی مبتنی بر EUI-64 استفاده نمایند. آدرسهای EUI-64 یا از ابتدا بر روی واسطهای شبکه تنظیمشدهاند و یا از روی آدرسهای سختافزاری موجود معروف به آدرسهای IEEE802 که طول آنها ۴۸ بیت است ساخته میشوند.
شناسههای سنتی واسطهای کارت شبکه از یک آدرس ۴۸ بیتی برای شناساندن خود استفاده میکنند. این آدرس از دو بخش ۴ بیتی تشکیلشده است که ۲۴ بیت نخست آن مربوط به شرکت سازنده بوده و ۲۴ بیت سمت راست آن مربوط به شناسه محصول بخصوص میباشد. به ۲۴ بیت اول در اصلاح Company ID یا Manufacture ID و به ۲۴ بیت دوم در اصطلاح Extension ID یا Board ID گفته میشود. آدرس تولیدشده به آدرس فیزیکی یا آدرس سختافزاری و یا آدرس MAC موسوم است .
دو بیت از ۴۸ بیت مربوط به آدرس MAC از پیش تعریفشده میباشند که عبارتند از :
- بیت عمومی محلی ( بیت U/L) : هفتمین بیت از سمت چپ آدرسهای MAC مربوط به مشخص نمودن نوع آدرس ازنظر محلی یا عمومی بودن آن است. این بیت که U/L نام دارد اگر صفر باشد نشاندهنده آن است که آدرس تولیدشده توسط IEEE کنترل میشود و یک آدرس عمومی است و اگر یک باشد آدرس تولیدشده بهصورت محلی مدیریت میشود.
- بیت فردی/گروهی ( بیت I/G): هشتمین بیت از سمت چپ در ۴۸ بیت آدرس MAC بیت فردی/گروهی نام دارد که مشخصکننده نوع آدرس ازنظر فردی (unicast) و یا گروهی بودن (multicast) میباشد. اگر این بیت صفر باشد آدرس مذکور یک آدرس Unicast میباشد و در غیر این صورت آدرس مذکور متعلق به گروه multicast است.
در حالت عادی هر دو بیت مذکور در آدرسهای MAC صفر میباشند که مشخصکننده یک آدرس عمومی و Unicast میباشند.
IEEE EUI-64 یک ساختار جدید برای آدرسدهی واسطهای شبکه معرفی میکند. در این ساختار جدید بخش Company ID همچنان ۲۴ بیت باقی میماند اما بخش Extension ID به ۴۰ بیت افزایش مییابد که باعث به وجود آمدن آدرسهای بیشتر برای محصولات کارخانهها میشود. ساختار بیتهای U/L و I/G همچنان همانند ساختار این بیتها در MAC میباشد. شکل زیر چگونگی ساختار آدرس IEEE EUI-64 را نشان میدهد.
برای ساختن آدرس EUI-64 از روی آدرس MAC مطابق شکل شانزده بیت ۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۰(۰XFFFE) بین بخشهای Company ID و Board ID اضافه میشود.
نگاشت آدرس EUI-64 به بخش شناسه واسط در IPv6
برای اینکه شناسه واسط IPv6 را به دست آوریم بیت مربوط به U/L را در EUI-64 معکوس میکنیم بهگونهای که بیت صفر به یک و بیت یک به صفر تبدیل شود.
برای تبدیل یک آدرس IEEE802 یا همان MAC به یک شناسه واسط شبکه IPv6 ابتدا این آدرس را بهصورت EUI-64 تبدیل کرده و سپس آن را به شناسه واسط شبکه نگاشت میدهیم.
مثالی برای تبدیل آدرس
فرض کنید میزبان A دارای آدرس فیزیکی یا همان MAC معادل ۰۰-AA-00-3F-2A-1C میباشد. برای ساخت شناسه واسط IPv6 ابتدا آن را بهصورت EUI-64 درمیآوریم. یعنی FFFF را بین بایتهای سوم و چهارم آن اضافه میکنیم تا آدرس ۰۰-AA-00-FF-FE-3F-2A-1C به دست آید. حال بیت U/L را که هفتمین بیت سمت چپ میباشد را معکوس میکنیم . بنابراین نتیجه نهایی تبدیل آدرس بهصورت ۰۲-AA-00-FF-FE-3F-2A-1C خواهد بود .
در دنیای امروز کاربران اینترنت عموماً از طریق پروتکلهای مختلف به ISPمتصل میشوند . هر زمان که کاربری به یک ISP متصل میشود ممکن است آدرس IPv4 جدیدی دریافت کند. ازاینرو پیگیری ارتباطات کاربران از طریق آدرسهای مبدأ کاری دشوار خواهد بود.
در IPv6 هنگامیکه یک کاربر به ISP متصل میشود یک پیشوند ۶۴ تایی شبکه از مسیریاب با مکانیزمهایی نظیر DHCPv6 دریافت میکند. حال اگر شناسه واسط شبکه همواره از EUI-64 و آدرس فیزیکی شبکه به دست آید در این صورت امکان پیگیری ارتباط کاربران با توجه به منحصربهفرد بودن آدرس EUI-64 فراهم میشود. برای رفع مشکل و برای اینکه همانند گذشته کاربران بهصورت نامشخص از ارتباطات بهره بگیرند مطابق RFC3041 یک آدرس جایگزین شناسه واسط IPv6 بهصورت تصادفی که همواره در طول زمان تغییر میکند ایجاد میشود و مورداستفاده قرار میگیرد.
آدرس شناسه اولیه بهصورت تصادفی ایجاد میشود . برای دستگاههایی که امکان نگهداری آدرسهای قبلی تولیدشده را ندارند این آدرس در هر شروع مجدد IPv6 دوباره بهصورت تصادفی ایجاد میشود. برای دستگاههایی که امکان ذخیره و نگهداری این آدرس را دارا باشند در هر شروع مجدد IPv6 مراحل زیر برای ساخت آدرس جدید اعمال میشود:
- ابتدا آدرسهای قبلی موجود در حافظه فراخوانی شده، آدرس EUI-64 آن مشخص میشود.
- ۶۴ بیت انتهایی عدد بهدستآمده برای ذخیره در حافظه برای ساخت آدرسهای بعدی در نظر گرفته میشود.
- ۴۶ بیت ابتدایی نیز بهعنوان آدرس EUI-64 جدید استفاده میشود و هفتمین بیت سمت چپ آن صفر میشود تا بهعنوان یک آدرس عمومی Unicast مورداستفاده قرار میگیرد.
آدرسهای EUI-64 بهدستآمده ازاینروش ، آدرسهای شناسه واسط موقتی نامیده میشوند. اینگونه آدرسها برای پیشوندهای عمومی IPv6 که توسط مسیریابها یا ابزار دیگر بهصورت stateless به شبکه معرفی میشوند مورداستفاده قرار میگیرند. زمان اعتبار این آدرس نیز از روی کمترین مقدار بین دو مورد زیر به دست میآید:
- زمان تنظیمشده در معرفی کننده شبکه که پیشوند عمومی آدرس را معرفی نموده است.
- زمان پیشفرض یک هفته برای Valid Lifetime و یک روز برای Preferred Lifetime
درصورتیکه هریک از زمانهای مذکور به پایان برسد آدرس IPv6 جدید از نوساخته میشود.
نگاشت آدرسهای IPv6 multicast به آدرسهای اترنت
هنگامیکه یک بسته به آدرس Multicast فرستاده میشود آدرس MAC مقصد بهصورت ۳۳-۳۳-mm-mm-mm-mm تنظیم میشود که در آن mm-mm-mm-mm مطابق شکل نشاندهنده ۳۲ بیت انتهایی آدرس multicast میباشد.
برای اینکه کارت شبکههای موجود در یک اتصال یا همان واسطهای موجود در یک اتصال بتوانند بستههای multicast را دریافت نمایند میتوان آدرسهای MAC موردنظر را در جدول MAC مربوط به کارت شبکه ذخیره نمود . هنگامیکه یک بسته اترنت توسط کارت شبکه دریافت شود در صورت وجود همخوانی بین آدرس MAC مقصد و آدرس MAC موجود در جدول این بسته به لایههای بالاتر ارسال خواهد شد.
بهطور مثال یک میزبان با آدرس فیزیکی ۰۰-AA-00-3F-2A-1C که دارای آدرس اتصال محلی FE80::2AA:FF:FE:FE3F:2A1C است. آدرسهای زیر را در جدول MAC خود ذخیره میکند:
- آدرس ۳۳-۳۳-۰۰-۰۰-۰۰-۰۱ که معادل آدرس تمامی نقطهها در اتصال محلی میباشد (یعنی همان آدرس FF02::1).
- آدرس ۳۳-۳۳-FF-3F-2A-1C که منطبق بر آدرس Multicast نقطه درخواستی یا همان FF02::1:FF3F:2A1C میباشد.
آدرسهای Multicast دیگر نیز بسته به مورد در جدول اضافه یا کم میشوند.
جدول زیر معادلهای IPv4 در IPv6 را نشان میدهد.
IPv4 Address |
IPv6 Address |
Internet address classes |
Not applicable in IPv6 |
Multicast addresses (224.0.0.0/4) |
IPv6 multicast addresses (FF00::/8) |
Broadcast addresses |
Not applicable in IPv6 |
Unspecified address is 0.0.0.0 |
Unspecified address is :: |
Loopback address is 127.0.0.1 |
Loopback address is ::1 |
Public IP addresses |
Global unicast addresses |
Private IP addresses (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16) |
Site-local addresses (FEC0::/10) |
Auto configured addresses (169.254.0.0/16) |
Link-local addresses (FE80::/64) |
Text representation: Dotted decimal notation |
Text representation: Colon hexadecimal format with suppression of leading zeros and zero compression. IPv4-compatible addresses are expressed in dotted decimal notation. |
Network bits representation: Subnet mask in dotted decimal notation or prefix length |
Network bits representation: Prefix length notation only |