همانطور که در بخش قبلی گفته شد، آدرس های IPV4 بدلیل 32 بیتی بودن آن از محدودیت تعداد آدرس رنج می برند. و بنابراین برای رفع مشکل موقتا از شیوه NAT و به عنوان راه حل دائمی از آدرس دهی IPV6 استفاده می شود. آدرس های IPV6، 128 بیتی هستند و بنابراین محدوده بسیار بسیار گسترده تری را نسبت به IPV4 پوشش می دهند

و به نظر می آید که با محدودیت تعداد آدرس IPV6 در آینده نزدیک مواجه نخواهیم شد. در ادامه ابتدا به شکل و فرمت آدرس های IPV6 می پردازیم و روش نوشتن آدرس IPV6 را مورد بررسی قرار می دهیم. سپس به انواع آدرس IPV6 و محل استفاده آنها خواهیم پرداخت. بعد از آن جزئیات هر یک از انواع آدرس دهی بحث خواهد شد و به چگونگی اختصاص آدرس به نود ها می پردازیم. آیا مانند آدرس دهی در IPV4 از دو شیوه Static و DHCP برای اختصاص آدرس IPV6 به نودها استفاده می شود و یا اینکه روش های دیگری نیز اضافه شده است؟ در ادامه به یکی از مهمترین پروتکل های پایه ای IPV6 به نام Neighbor Discovery که اساس ارتباطات در IPV6 را تشکیل می دهد، خواهیم پرداخت و در پایان نیز به مقایسه IPV4 با IPV6 می پردازیم که عمدتا به تفاوت Encapsulation آنها خواهیم پرداخت. این سوال پیش می آید دیگر ابزارهای شبکه در IPV4 با IPV6 چه تفاوتی دارند. به عنوان مثال Routing در IPV4 با IPV6 چه تفاوتهایی دارند. و یا اینکه ابزارهایی مانند Access-List، QoS، Multicast در بستر IPV6 چگونه اجرا می شوند. در این کتاب که اساس آن IPV4 است، در انتهای هر فصل بخشی را در نظر گرفتیم که در خصوص مباحث آن فصل در بستر IPV6 نیز می پردازیم. لذا IPV6 در این کتاب از چشم ها به دور نخواهد ماند. ضمنا فصل انتهایی این فصل به صورت خاص به چگونگی انواع روش های مهاجرت از بستر IPV4 به بستر IPV6 می پردازد.

شیوه نوشتن آدرس IPV6

آدرس IPV6، 128 بیتی است و به صورت XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX/n نوشته می شود. همانطور که ملاحضه می کنید، آدرس IPV6 از 8 بخش تشکیل شده است که هر بخش آن را 4 رقم هگزا دسیمال از 0000 تا ffff تشکیل می دهد و هر دو بخش با علامت : از هم جدا می شوند. در پایان نیز مقدار Subnet Mask با /n در انتهای آدرس قرار داده می شود تا بخش Prefix (معادل Network در IPV4) را از بخش Interface-Id (معادل Host در IPV4) جدا نماید. آدرس های زیر مثالهایی از آدرس های IPV6 هستند

1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0:1234/64

2001:00AA:0001:0001:0000:0000:0000:0001/64

عمدتا آدرس های IPV6 که در شبکه طراحی می شوند دارای تعداد زیادی 0 هستند که دلیل آن زیاد بودن تعداد آدرس در IPV6 است. بنابراین آدرس کاربران در بستر IPV6 بیشتر شبیه به مثال دوم است.

از دو مثال فوق پیداست که نوشتن آدرس IPV6 در مقایسه با IPV4 بسیار مشکل تر است و باید تدابیری اندیشیده شود تا نوشتن آن ساده تر گردد. اگر فرض کنیم آدرس های IPV6 تعدا زیادی 0 دارند، می توان از دو قانون زیر که در آدرس IPV6 با هدف نگارش ساده آن ابداع شده اند، استفاده نمود

قانون اول: در هر بخش از آدرس IPV6 که با علامت : از دیگر بخش های جدا می شوند، می توان 0 های پیشین را اضافه نمود. در مثال فوق در صورت استفاده از قانون اول آدرس به صورت زیر تغییر می کند.

2001:00AA:0001:0001:0000:0000:0000:0001/64 à 2001:AA:1:1:0:0:0:1/64

قانون دوم: چنانچه بخش های متوالی دارای مقدار 0 باشند، می توان همه 0 های متوالی را حذف نمود و به جای آن از دو بار علامت : یعنی :: استفاده نمود. البته فقط یکبار می توانید از این قانون در یک آدرس استفاده کنید. اگر این قانون را در مثال فوق اجرا نماییم، آدرس به صورت زیر تغییر می کند

2001:00AA:0001:0001:0000:0000:0000:0001/64 à 2001:AA:1:1::1/64

فقط یک بار می توان از این قانون استفاده نمود. در غیر این صورت نمی توان تعداد 0 های حذف شده را محاسبه نمود. به روش صحیح و غلط خلاصه سازی نوشتاری آدرس IPV6 در مثال زیر دقت کنید

2001:0000:0000:0001:0000:0000:0000:0001/64

2001::1::1/64 غلط

2001:0:0:1::1/64 صحیح

در روش اولی که غلط است نمی توان تعداد 0 هایی که جایگزین هر :: می شود را محاسبه نمود. بنابراین فقط یک بار می توانید 0 های متوالی را حذف نموده و با :: جایگزین نمایید

همانطور که گفته شد به دلیل بالا بودن تعداد آدرس IPV6، عمدتا این آدرس ها از تعداد زیادی 0 تشکیل شده اند و بنابراین با دو قانون فوق اکثر آدرس ها در نوشتن قابل خلاصه سازی هستند.


انواع آدرس IPV6

همانند آدرس  های IPV4 آدرس های IPV6 نیز انواع مختلف دارند و به سه دسته اصلی Unicast، Multicast و Anycast تقسیم می شوند. از جمله قبل حتما متوجه شدید در IPV6 عنوان جدیدی تحت عنوان Anycast اضافه شده است که ممکن در نگاه اول به اشتباه تصور کنید که این آدرس جایگزین Broadcast شده است. اما در آدرس دهی IPV6، آدرس Broadcast حذف شده است و آدرس های Multicast خاصی برای ارسال ترافیک Broadcast به نودهای شبکه در نظر گرفته شده است و لذا ارسال broadcast به شیوه جدیدی صورت می پذیرد. در عین حال نوع جدیدی از آدرس با نام Anycast به این مجموعه اضافه شده است که در مباحث پیش رو تشریح خواهد شد.

ذکر این نکته خالی از لطف نیست که اولا ارسال Broadcast با شیوه Multicast روش جدیدی نیست و در آدرس IPV4 نیز وجود داشته است (آدرس 224.0.0.1 برای این منظور در نظر گرفته شده بود)، اما علاوه بر آن آدرس اختصاصی نیز برای ارسال Broadcast وجود دارد اما در آدرس دهی IPV6 فقط از روش Multicast برای ارسال broadcast استفاده می شود. دوم اینکه آدرس Anycast در IPV4 نیز استفاده می شود (مثلا در پروتکل MSDP) اما به صورت رسمی در تعاریف اولیه IPV4 وجود تدارد. در IPV6 آدرس Anycast نقش مهمی را بازی می کند و با این ویژگی سعی نموده است Redundancy و Load Sharing را به مجموعه IPV6 اضافه نماید. بعدا در مورد این نوع آدرس بیشتر صحبت خواهیم نمود.

آدرس Unicast

منظور از آدرس Unicast این است که این نوع آدرس صرفا به یک نود اختصاص دارد و وقتی می خواهیم ترافیکی را به نود خاصی ارسال نمائیم، آدرس مقصد را Unicast قرار می دهیم. اگر به خاطر داشته باشید آدرس Unicast در IPV4 به سه دسته اصلی APIPA، Private و Public تقسیم می شود. در IPV6، آدرس Unicast به سه دسته اصلی Link Local، Unique Local و Unique Global تقسیم می شود که با اغماض می توان آدرس Link Local را معادل APIPA، آدرس Unique Local را معادل Private و آدرس Unique Global را معادل آدرس Public دانست. در ادامه به حزئیات هر یک از آنها پرداخته می شود. قبل از پرداختن به جزئیات می توانید در جدول زیر انواع و کاربرد هر یک از آدرس ها را مشاهده نمایید

کاربرد محدوده آدرس نوع آدرس
ارتباطات داخل لینک FE80::/10 Link Local Unicast
ارتباطات داخل سازمانی FD00::/8 Unique Local
ارتباطات اینترنتی 2000::/3 Unique Global
ارتباطات یک نفر به چند نفر (one-to-many) و یا چند نفر به چند نفر (many-to-many) FF00::/8 Multicast Multicast
در پروتکل Neighbor Discovery کاربرد دارد FF02::1:FF00:0/104 Solicited-Node
Redundancy و Load Sharing همانند Unicast Anycast

انواع آدرس های IPV6

آدرس Link Local

در شبکه های IPV6، هر اینترفیسی که فعال می گردد به صورت اتوماتیک آدرسی از نوع Link Local ایجاد می کند که این آدرس فقط در سطح همان لینک Unique است و برای ارتباطات داخل لینک از این آدرس استفاده می شود. این روش آدرس دهی این مزیت را دارد که هر اینترفیس IPV6 همواره دارای آدرس است و بنابراین همیشه و حتی بدون آدرس دهی دستی و یا DHCP باز نیز  قابلیت ارتباط با دیگر نودهای شبکه را دارد. خواهیم دید که اکثر مکانیزم های پروتکل Neighbor Discovery و همچنین پروتکل های مسیریابی IGP از این نوع آدرس برای ارتباطات داخل لینک بهره می برند. با توجه به اینکه محدوده Unique بودن این نوع آدرس در داخل لینک لایه 2 ای است، لذا نمی توان از این آدرس برای ارتباط با نودهایی که در داخل دیگر لینک ها هستند، استفاده نمود.

حال این سوال پیش می آید که محدوده آدرس های Link Local چند است و چگونه این آدرس ها به صورت اتوماتیک تخصیص می یابند؟ همانطور که در جدول بالا ذکر شده است، محدوده آدرس Link Local، FE80::/10 است. بدین معنی که این آدرس ها در محدوده FE8-FEB قرار می گیرند. 64 بیت ابتدایی آدرس های Link Local همواره ثابت و FE80::/64 هستند و بخش prefix آدرس را تشکیل می دهند و 64 بیت بعدی این آدرس که بخش Interface-Id آدرس را تشکیل می دهد به صورت اتوماتیک و با مکانیزم EUI-64 محاسبه می گردد که Unique بودن آدرس را در همان لینک تضمین می کند.

مکانیزم EUI-64: برای استخراج اتوماتیک 64 بیت انتهایی آدرس IPV6، از 48 بیت آدرس MAC که در سطح لینک Unique است، استفاده می گردد. بدین صورت که آدرس 48 بیتی MAC نود مربوطه را به دو بخش مساوی 24 بیتی جدا می کنیم و مابین آن مقدار FFFE قرار می گیرد تا 64 بیتی Unique در آن لینک ایجاد گردد. البته بیت هفتم پرارزش که به بیت Universal/Local مشهور است نیز به یک تغییر می کند. مثلا اگر آدرس MAC مقدار 0024.BEE9.F789 داشته باشد، مقدار Interface-Id به صورت 0224:BEFF:FEE9:F789 خواهد بود. در میانه آدرس MAC مقدار FFFE قرار داده شده است و بیت هفتم پرارزش نیز از مقدار 0 به مقدار 1 تغییر داده شده است که در نتیجه رقم دوم پرارزش هگزادسیمال از 0 به 2 تغییر کرده است. مقدار آدرس Link Local در این نود FE80:: 0224:BEFF:FEE9:F789 است

شکل زیر مثال دیگری را نشان می دهد. قسمت بالایی آدرس MAC و در قسمت پایینی معادل Interface-Id آن آمده است

EUI 64

مکانیزم EUI-64

آدرس Unique Local

آدرس Unique Local معادل آدرس private در IPV4 است. به عبارت دیگر این نوع آدرس فقط در داخل سازمان منحصربفرد است. این پرسش مطرح می شود که در آدرس IPV4 جهت رفع موقتی مشکل محدودیت تعداد آدرس، از آدرس Private و یا NAT استفاده می شود اما در IPV6 که چنین مشکلی وجود ندارد و همه نود ها می توانند به تعداد مورد نیاز آدرس IPV6 در اختیار داشته باشند چرا از محدوده آدرس Private و یا Unique Local استفاده می شود؟ سوال کاملا منطقی است و انتظار می رود در شبکه IPV6 نیاز به این نوع آدرس وجود نداشته باشد اما با این حال محدوده ای مجزا برای آن در نظر گرفته شده است. شاید بتوان گفت برای آدرس دهی نودهایی که هیچگاه نیاز به ارتباط اینترنتی ندارند و همواره به صورت داخلی استفاده می شوند، می توان از این نوع آدرس استفاده نمود. مثلا سوییچ های شبکه، Access Point های بیسیم، UPS ها و دیگر تجهیزات مشابه می توانند از این نوع آدرس استفاده کنند. زیرا اگر آدرس Unique Local به آنها داده شود هیچگاه در معرض حملات اینترنتی قرار نمی گیرند

محدوده آدرس Unique Local، FD00::/8 است به عبارت دیگر آدرس های Unique Local با FD شروع می شود. به عنوان مثال اگر بخواهیم سه Subnet مختلف از یک سازمان را با این روش آدرس دهی کنیم، محدوده آدرس های FD00:1:1:1::/64، FD00:1:1:2::/64 و FD00:1:1:3::/64 نمونه ای قابل قبول است.

آدرس Unique Global

آدرس های Unique Global همان آدرس های اینترنتی هستند و به ازاء هر نود، حداقل یک آدرس منحصربفرد در اینترنت وجود دارد. آدرسی که از طرف ISP به سازمان ها داده می شود دارای 48 بیت ابتدایی ثابت است و سازمان از بیت 49 تا 64 را به عنوان Subnet و 64 بیت کم ارزش آن را به عنوان Interface-Id در نظر می گیرد.

unique global

 فرمت آدرس های Unique Global

مثلا ISPx، قصد دارد به دو سازمان آدرس IPV6 اختصاص دهد. به اولی، مقدار Prefix 2001:AA:1001::/48 و به دومی، Prefix 2001:AA:1002::/48 را اختصاص می دهد.

سازمان 1: 2001:AA:1001::/48

سازمان 2: 2001:AA:1002::/48

سازمان شماره 1، بخش چهارم آدرس را که شامل 16 بیت است به عنوان شماره Subnet در نظر می گیرد و به هر Subnet شماره ای منحصربفرد اختصاص می دهد.

سازمان 1، شبکه 1: 2001:AA:1001:1::/64

سازمان 1، شبکه 2: 2001:AA:1001:2::/64

سازمان 1، شبکه 3: 2001:AA:1001:3::/64

بدیهی است که هر سازمانی در دنیا Prefix منحصربفرد خود را داراست و بنابراین همه آدرس های دنیا منحصربفرد خواهند بود.

آدرس Multicast

هدف از آدرس Multicast ارسال همزمان ترافیک به چندین نفر است و به همین دلیل به آدرس Multicast آدرس گروه و یا   (Group Address) نیز گفته می شود. به عنوان مثال فیلمی در حال پخش روی آدرس Multicast مشخصی است و همه افرادی که درخواست دریافت فیلم را از طریق نرم افزاری ارائه می دهند، در واقع عضو آدرس Multicast مورد نظر می شوند و دقیق تر اینکه عضو گروه مالتی کست با آدرس مشخصی می شوند و همه ترافیک های ارسالی به گروه توسط تمامی افراد گروه دریافت می شود. در IPV6 همانند IPV4 محدوده آدرس مشخصی برای Multicast در نظر گرفته شده است.

محدوده آدرس Multicast در شبکه IPV6، FF00::/8 است بدین معنی که آدرس های Multicast در IPV6 همواره با FF شروع می شوند. فرمت آدرس Multicast در IPV6 به صورت زیر است

Multicast IPV6

فرمت آدرس Multicast در IPV6

در شکل فوق پیداست که آدرس Multicast همواره با FF شروع می شود. رقم هگزادسیمال سوم موقتی بودن و یا دائمی بودن آدرس را نشان می دهد. رقم چهارم محدوده عملکرد آدرس Multicast را نشان می دهد که اگر مقدار 2 داشته باشد، بدین معنی است که اعضاء آدرس Multicast صرفا در همان لینک هستند و اگر مقدار 8 داشته باشد، محدوده آدرس کل سازمان است. در صورتی که اعضاء یک آدرس Multicast کاربران اینترنت باشند، رقم چهارم با E مقداردهی می شود.

در IPV4، آدرس های Multicast که با 224.0.0.X شروع می شوند، رزرو شده هستند و البته دائمی نیز هستند. محدوده عملکرد آنها نیز داخل لینک است. به عنوان مثال آدرس 224.0.0.5 آدرس Multicast رزرو شده برای ارسال ترافیک های OSPF است. معادل آدرس های رزرو شده در IPV6، FF02::/16 است. که 0 دائمی بودن آدرس و 2 محدوده عملکردی لینک را نشان می دهد. جدول زیر معادل آدرس های رزرو شده IPV4 را در IPV6 نشان می دهد.

 

کاربرد آدرس معادل آدرس Multicast در IPV6 آدرس Multicast در IPV4
همه نودها FF02::1 224.0.0.1
همه روترها FF02::2 224.0.0.2
همه روترهای OSPF FF02::5 224.0.0.5
روتر های DR و BDR در OSPF FF02::6 224.0.0.6
همه روترهای RIP FF02::9 224.0.0.9
همه روترهای EIGRP FF02::A 224.0.0.10
همه روترهای PIM FF02::D 224.0.0.13
همه روترهای IGMPV3 FF02::16 224.0.0.22

آدرس های Multicast رزرو شده در شبکه IPV6

Solicited Node Multicast Address

در IPV6 هر نودی یک آدرس اختصاصی Multicast با نام Solicited Node Multicast Address در اختیار دارد که از آدرس Unicast و یا Anycast خود استخراج می کند. این آدرس در مکانیزم های Neighbor Discovery، که در مباحث پیش رو تشریح می شود، بسیار پرکاربرد است. در اینجا تنها به این نکته اشاره کنیم  که این آدرس Multicast از ارسال Broadcast های غیر ضروری در IPV6 (برخلاف IPV4) جلوگیری می کند. به عنوان مثال در IPV6 بسته ARP، Broadcast نمی شود که دلیل آن استفاده از همین نوع آدرس دهی است و در ادامه و در همین فصل چگونگی انجام آن را تشریح خواهیم نمود.

104 بیت ابتدایی آدرس Solicited Node Multicast همواره مقدار ثابت FF02::1:FF00:0000/104 را دارد و 24 بیت کم ارزش آن (6 رقم سمت راست آدرس) از روی 24 بیت کم ارزش آدرس Unicast و یا Anycast استخراج می شود. به عنوان مثال اگر آدرس نودی 2001:1:1::ABCD:EF01 باشد، معادل آدرس Solicited Node Multicast آن FF02::1:FFCD:EF01 خواهد بود. 24 بیت کم ارزش آن یعنی CD:EF01 از روی آدرس Unicast استخراج شده است.

IPV6 Solicited Node Multicast Address IPV6 Unicast Address
FF02::1:FFCD:EF01 2001:1:1::ABCD:EF01

استخراج آدرس Solicited Node Multicast Address از روی آدرس Unicast

router(config-if)# ipv6 address 2001:1:1:1::1/64 anycast

تخصیص آدرس Anycast در شبکه IPV6

انواع روش های آدرس دهی در IPV6

از دو روش Static و DHCP (Stateful Auto Configuration) برای آدرس دهی نود IPV4 استفاده می شود. در IPV6 روش دیگری نیز به روش های فوق اضافه شده است که Stateless Auto Configuration نامیده  می شود. این نام گذاری بدین دلیل انجام شده است که در DHCP، سرور از وضعیت IP همه نودهای شبکه آگاهی دارد اما در روش Stateless Auto Configuration، هیچ سروری به صورت متمرکز وجود ندارد که از وضعیت آدرس همه نودهای شبکه آگاهی داشته باشد.

روش کار بدین صورت است که روتر به صورت دوره ای Prefix خود را به همراه آدرس IP و دیگر پارامترهای شبکه به همه نودهای شبکه ارسال می کند (با بکارگیری مکانیزم Neighbor Discovery که جلوتر تشریح خواهد شد) و هر نود شبکه با یادگرفتن Prefix شبکه و همچنین مکانیزم EUI-64 که قبلا تشریح شد، آدرس IPV6 خود را تکمیل و محاسبه می کند (Prefix، 64 بیت پرارزش آدرس و مکانیزم EUI-64، 64 بیت  کم ارزش آدرس IPV6 را، که همان Interface-Id است، تشکیل می دهد). بنابراین هر نود شبکه با بکارگیری دو مکانیزم Neighbor Discovery و EUI-64 آدرس IP خود را به صورت اتوماتیک ایجاد می نماید و بعد از اطمینان از منحصربفرد بودن آن در شبکه، که خود این نیز از با مکانیزم Neighbor Discovery انجام می شود، آدرس مورد نظر را روی اینترفیس خودش تخصیص می دهد. هر نود با این شیوه نه تنها آدرس IPV6 خود را به صورت اتوماتیک محاسبه می کند بلکه آدرس روتر (Default Gateway) و دیگر پارامترهای شبکه از جمله MTU را هم از طریق مکانیزم Neighbor Discovery یاد می گیرد.

stateless

مکانیزم Stateless Auto Configuration

در مورد جزئیات بسته Router Advertisement که به صورت دوره ای ارسال می گردد در بخش بعد صحبت خواهد شد.

مکانیزم EUI-64 نیز پیشتر تشریح شد و می دانیم که با این مکانیزم بخش Interface-Id آدرس IPV6 به صورت اتوماتیک از روی MAC تولید می شود. اما اکنون آموختیم که این مکانیزم فقط در تعیین آدرس Link Local کاربرد ندارد، بلکه بخش Interface-Id هر نوع آدرسی با این شیوه قابل محاسبه است. به عنوان مثال اگر بخواهید بخش Interface-Id آدرس اینترفیسی از روتر را با EUI-64 محاسبه کنید، کافی است تا از دستور زیر استفاده شود 

router(config-if)# ipv6 address 2001:1:1:1::/64 eui-64

تخصیص بخش Interface-Id آدرس IPV6 با مکانیزم EUI-64

اگر دقت کنید در دستور فوق در بخش Interface-Id، هیچ آدرسی تخصیص داده نشده است و در انتهای دستور از کلمه eui-64 استفاده شده است که Interface-Id را به صورت اتوماتیک و از روی آدرس mac تولید می کند.

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید