قانون دوم برای فشرده سازی IPV6:
- اگر در یک آدرس سگمت های متوالی از 0 تشکیل شوند میتوانیم همه سگمنت ها را در قالب یک سگمنت 0 نشان دهیم که 0 های پیوسته بصورت :: نشان داده میشوند . به مثال زیر توجه کنید :
توجه داشته باشید که نمیتوانیم از :: در یک آدرس بیشتر از یکبار استفاده نماییم . به عنوان مثال اگر آدرس زیر را داشته باشیم
دو آدرس فشرده زیر به خاطر اینکه یک بار از :: استفاده کرده ایم درست است :
اما اگر بصورت زیر آن را فشرده کنیم یعنی دو با استفاده از :: آدرس ما غیر مجاز خواهد بود
شاید با خودتان سوال کنید چرا این آدرس غیر قانونی است به خاطر اینکه با وجود دو تا :: در آدرس ما میتوانیم از آن آدرسهای زیر را برداشت کنیم و این خود یک دلیل مبهم بودن این نوع آدرس دهی است .
مروری بر آدرسهای Hexadecimal:
به آدرس زیر توجه کنید :
در واقع این آدرس فشرده آدرس زیر می باشد :
همانند IPV4 عبارت '/3 ' به ما میگویید که 3 بیت برای ما قابل توجه هستند .
تبدیل Hexadecimal به binary خیلی راحت انجام میگیرد :
دو رقم در hex ( به عنوان مثال : 20 ) به مقدار یک بایت (8 بیت ) می باشند . و اینکه یک کاراکتر چهار بیت را به خود اختصاص می دهد (که به نام یک nibble شناخته میشود ) که نیاز است به دو قسمت جداگانه تقسیم شوند
در زیر نحوه تیدیل hex به باینری را به شما نشان میدهد :
که با این روش عدد هگزادسیمال 20 به
00100000 تبدیل میشود
IPv6 Hierarchy (سلسله مراتب آدرس) :
سلسله مراتب آدرس دهی در IPV6 تفاوت چندانی با آدرس دهی IPV4 نمیکند اگر از IPV4 یادتون نمیاد به اعداد زیر توجه کنید :
رنگهای قرمز نشان دهنده آدرس های شبکه هر کلاس می باشند . به عنوان مثال '/24' نشان دهنده این است که 24 بیت مورد نظر ما متعلق به آدرس شبکه می باشد و یک اکتت با قیمانده (8 بیت باقیمانده ) متعلق به بیت های هاست می باشند با این روش ما hierarchy را در IPv4 ایجاد میکردیم .
به نظر شما حالا این کار در IPV6 به چه روشی صورت میگیرد ؟
خیلی ساده است
آدرس IPv6 از دو قسمت تشکیل شده است که عبارتست از :
+ subnet prefix : نشان دهنده شبکه ای است که اینترفیس به آن متصل است . طول آن 64 بیت می باشد
+ Interface ID : که بعضی اوقات با نام شناسایی محلی نامیده میشود . معمولا طول آن نیز 64 بیت میباشد
بر خلاف IPv4 که آدرس شبکه و آدرس هاستها توسط subnet mask یا تعداد بیتها مشخص میشد در IPV6 دیگر چیزی به نام subnet mask نداریم در واقع ما در IPv6 از prefix که نشان دهنده تعداد بیتها یا bitcount استفاده میکنیم . که ترکیب کلی آن بصورت زیر می باشد :
ipv6-address/prefix-length
که در این syntax :
+ ipv6-address : آدرس IPV6 128 بیتی است
+ /prefix-length : مقدار دسیمالی است که نشان میدهد چه مقدار آدرس IPV6 به عنوان subnet انتخاب شده است .
. اجازه بدهید این مسئله رو با یک مثال آنالیز کنیم:
در تصویر قبل 64/ طول prefix میباشد .(در واقع همیشه طول prefix بابر با 64 می باشد ) .
که نحوه آدرس دهی به اینترفیس را در ادامه به آن خواهیم پرداخت .
آدرس های unicat در IPV6 :
در این نوع آدرسها 6 بیت اول به شبکه و 64 بیت دوم به هاست اختصاص داد میشود :
که قسمت network ID توسط مدیر شبکه اختصاص داده میشود و قسمت Host ID می تواند به صورت دستی یا بصورت اتومات توسط یکی از روشهای زیر صورت گیرد :
+ با استفاده از یک عدد ایجاد شده تصادفی یا اصطلاحا randomly generated number
+DHCPV6
+ فرمت EUI-64 (Extended Unique Identifier):
با قرار دادن FFFE به اندازه 16 بیت در بین آدرس مک اینترفیس 48 بتی ـ 64 بیت شناسه اینترفیس تکمیل میشود. به مثال زیر توجه کنید :
حوزه آدرس های IPv6
آدرسهای Link Local Unicast :
وقتیکه IPV6 روی یک ند فعال میشود و روترها بالا می آیند هر اینترفیس بصورت پیش فرض با آدرس لایه 3 میتواند با دیگر هاستهای روی یک لینک یکسان ارتباط برقرار کند .که در واقع این آدرسهای لایه 3 همین آدرسهای Link local می باشد این نوع آدرس ها برای ارتباط بین یک زیر شبکه داخلی استفاده میشود (تنظیمات آدرس اتوماتیک ـ کشف همسایه ها ـ کشف روترها ) این نوع آدرس ها در subnet جاری قابل اعتبار میباشند .روترها پکتها را با آدرسهای link-local ارسال نمیکنند .در واقع این آدرسها همانند آدرسهای 169.254.x.x در IPV4 زمانی که DHCP server در دسترس نباشد و هیچ آدرس بصورت استاتیک اختصاص داده نشده باشد. این آدرسها در فرمت زیر ارایه میشوند :
در بعضی کتابها رنج آدرس link local را بصورت زیر می شناسند :
آدرسهای link-local بصورت اتومات از: FE80::/10 link-local prefix و 64 بیت شناسه اینترفیس استفاده می کند .به این معنا که 10 بیت اول برای آدرسهای link-local ثابت می باشد و می تواند با FE80, FE90,FEA0 و FEB0 شروع شود در حقیقت 54 بیت بعدی آن برابر با 0 می باشد . پس فقط شما prefix FE80 را برای آدرسهای link-local میبینید .
مثال زیر نمونه ای از یک آدرس Link Local Unicast می باشد :
بصورت خلاصه بصورت زیر نمایش داده میشود :

آدرس های Unique Local Unicast:
+استانداردRFC 4193 unique local جایگزین استاندارد قدیمی RFC 3513 site local شده است .
+ این آدرسها اجازه میدهند که همه دستگاههای یک سازمان یا یک سایت با همدیگر تبادل اطلاعلا داشته باشند
+ شبیه به آدرسهای private در IPV4 میباشند (مثل 10.1.1.254 )
+ مسیریابی در اینترنت نمیباشند (برای مسیریابی باید از IPv6 NAT استفاده کنید )
در این نوع آدرس دهی قسمت Global IDs همانطور که در شکل می بینید توسط مدیر دامین ایجاد نمی شود اما قسمت Subnet ID توسط مدیر دامین مشخص میشود قسمت Subnet ID معمولا توسط آدرس دهی hierarchical برای اجازه دادن خلاطه نویسی Route طراحی میشود . قسمت Interface Id هم برای همه آدرس های unicast یک معنی را میدهد . که طول آنها 64 بیت است که معمولا به روش EUI-64 که قبلا توضیح داده شد ایجاد میشود .
این آدرسها در فرمت زیر ارایه میشوند :
مثال زیر یک نمونه آدرس از unique local ادرس می باشد .
آدرس های Global unicast یا ( Global aggregatable ) :
+ این آدرس ها در اینترنت قابل مسیر یابی و در دسترس می باشند
+ یک آدرس global unicast شامل یک global routing prefix و شناسه subnet و همچنن شناسه اینترفیس می باشد
این آدرسها در فرمت زیر ارایه میشوند :
+ در این نوع آدرس ها Global Routing Prefix شامل 32 بیت می شود که شامل 001 + 29 بیت پیشوند مسیریابی global یا همان global routing prefix میشود که توسط IANA به یک service provider اختصاص می دهد .
+قسمت SLA یا Site Level Aggregator که شامل 16 بیت میشود توسط service provider به مشتری اختصاص داده میشود