آدرس IP نسخه 6
آدرس IP نسخه 6 ،برای حل مشکل تعداد محدود آدرس IPها به وجود آمد. زمانی که IP نسخه 4 ارائه شد، هیچ کس تصور نمیکرد که این 4 میلیون آدرس یک روزی به پایان برسد.
در نتیجه در IP نسخه 6، تعداد بایت ها از ۳۲ به ۱۲۸ بایت و امکان آدرس دهی تا ۲ به توان ۱۲۸ آدرس افزایش یافت.
1- اهداف آدرس IP نسخه 6
- پشتیبانی از میلیاردها ماشین میزبان حتی درصورتیکه تخصیص فضای آدرس ناکارآمد و با اسراف انجام شود.
- کاهش اندازه جداول مسیریابی
- سادهسازی پروتکل بهمنظور افزایش سرعت پردازش مسیریابها
- ارائه امنیت بهتر در مقایسه با نسخه فعلی IP (شامل احراز هویت و سری ماندن دادهها).
- توجه بیشتر به نوع خدمات و QoS، بهویژه برای دادههای بیدرنگ
- کمک به فرایند ارسال چندبخشی از طریق توصیف حوزهها
- فراهمآوردن امکان جابجایی ماشینهای میزبان بدون تغییر در آدرس (Scopes)
- امکان ایجاد تغییر و پیشرفت در آینده
- امکان همزیستی پروتکلهای جدید و قدیم در طی سالها
آدرس IP نسخه 6 ، ویژگیهای خوب IP را نگهداشته، ویژگیهای بد را کنار گذاشته یا کمرنگ کرده و ویژگیهای جدیدی به آن افزوده است.
بهطورکلی IPV6 با IPV4 سازگار نیست ولی با تمام پروتکلهای جانبی اینترنت مثل DNS،BGP،OSPF ،IGMP، ICMP، UDP ، TCPسازگار است.
البته ممکن است به دلیل آنکه آدرسها طولانیتر شدهاند نیاز به اندکی تغییر داشته باشند.
2- ویژگی های اصلی آدرس IP نسخه 6
2.1- آدرس های طولانی
اولین و مهمترین ویژگی که IPV6 آدرسها بسیار طولانیتری نسبت به IPV4 دارد.
بدین ترتیب، تقریباً فضای نامحدودی از آدرسهای IP را فراهم آورده است. دراینخصوص بیشتر صحبت خواهیم کرد.
2.2- ساده سازی سرآیند در آدرس
دومین پیشرفت عمده IPV6 سادهسازی سرآیند آن است که جمعاً هفت فیلد دارد (در مقابل سیزده فیلد در IPV4).
این تغییر، امکان آن را فراهم آورده که مسیریاب بستهها را سریعتر پردازش نماید و ظرفیت مفید مسیریاب را افزایش و تأخیر را کاهش دهد. در ادامه مختصراً به سرآیند خواهیم پرداخت.
2.3- پشتیبانی از گزینههای اختیاری در سرآیند
این تغییر برای سرآیند جدید حیاتی بود چرا که برخی از فیلدهایی که در نسخه قبلی وجودشان الزامی است در نسخه فعلی اختیاریاند.
مضاف بر این، روش درج گزینهها در این فیلد متفاوت از قبل است و اجازه میدهد مسیریابها بتوانند بهسادگی از گزینههایی که برایشان مهم نیست رد شوند.
یعنی در نسخه جدید، دسترسی تصادفی و مستقیم به گزینهها ممکن شده است. این ویژگی سرعت پردازش بسته را افزایش میدهد.
2.4- امنیت بالا
در آدرس IP نسخه 6 ،احراز هویت (Authentication) و «حفظ امنیت اطلاعات» (Privacy) جزو ویژگیهای کلیدی به شمار میرود.
البته این ویژگیها بعداً به IPV4 نیز افزوده شد (با عنوان IPSec) و لذا در حال حاضر این دو در زمینه امنیت تفاوت چندانی با یکدیگر ندارند.
2.5- کیفیت خدمات یا QOS
در نسخه جدید به کیفیت خدمات (QoS) دقت بیشتری شده است.
قبل از آن نیز تلاشهای جستهوگریختهای دراینرابطه انجام شده بود، ولیکن با رشد کاربردهای چندرسانهای در اینترنت، این موضوع جدیتر و حساستر به نظر میرسد.
3- سرآیند اصلی در آدرس IP نسخه 6
3.1- سرآیند ورژن
سرآیند اصلی IPV6 در شکل زیر نشان داده شده است. فیلد Version (شماره نسخه پروتکل) برای IPv6 همیشه ۶ است؛ کمااینکه برای IPv4 همیشه ۴ است.
از آنجا که ممکن است جایگزین نمودن IPv4 به IPV6 ممکن است یک دهه طول بکشد، مسیریابها قادرند با بررسی این فیلد تشخیص بدهند که با چه نوع بستهای روبرو هستند.
اما بررسی این فیلد به چندین دستورالعمل اجرایی CPU نیاز دارد و این کار زمان مفید پردازش هر بسته را هدر میدهد.
لذا در بسیاری از پیادهسازیهای عملی برای اجتناب از این زمان تلفاتی، تشخیص آنکه یک بسته از نوع IPV4 است یا IPV6، با استفاده از فیلد خاصی در سرآیند لایه پیوند دادهها بر عهده سختافزار گذاشته شده است.
3.2- فیلد Traffic Class
فیلد Traffic Class (کلاس ترافیک) برای تشخیص تفاوت بستهها از لحاظ نیازمندیهای تحویل بیدرنگ و QoS درخواستی، بکار میآید.
فیلدی با همین منظور از ابتدا در IP وجود داشت ولیکن استفاده از آن بهصورت پراکنده و سلیقهای بر روی مسیریابها پیادهسازی شد و اغلب مسیریابها آن را نادیده میگرفتند.
اما اکنون، از آن برای بالا بردن کیفیت تحویل بستههای اطلاعات چندرسانهای استفاده می شود.
3.3- فیلد Flow Label
فیلد برچسب جریان همچنان آزمایشی است ولی کاربرد موردنظر آن، این بوده که بتوان یک «شبه اتصال» (Pseudoconnection) بین مبدأ و مقصد، با ویژگیها و نیازمندیهای خاص ایجاد کرد.
به عنوان مثال، جریانی از بستهها که از یک پروسه در مبدأ باند لازم را رزرو کرد.
در چنین مواردی میتوان پیشاپیش یک «جریان» (Flow) با مشخصات درخواستی تنظیم کرد و به آن یک شناسه اختصاص داد.
هرگاه مسیریاب بستهای دریافت کند و فیلد Flow Label آن غیر صفر باشد، با مراجعه به جداول درونی خود تشخیص میدهد که با این بسته چگونه رفتار کند.
در حقیقت استفاده از مفهوم «جریان» در IPV6، تلاشی است برای رسیدن به قابلیت انعطاف در زیر شبکههای دیتاگرام و تضمین کیفیت خدمات در زیر شبکههای مدار مجازی.
هویت هر «جریان»، بر حسب آدرس مبدأ، آدرس مقصد و شماره جریان (برچسب جریان) مشخص میشود.
لذا بین دو مبدأ و مقصد در شبکه میتوان به طور همزمان چندین «جریان» فعال تنظیم کرد.
همچنین در این روش حتی اگر دو جریان متفاوت با شماره جریان یکسان از دو ماشین میزبان مختلف تولید و از مسیریابها مشابهی عبور کنند، مسیریابها به کمک آدرس مبدأ و مقصد قادر به تشخیص آنها خواهند بود.
انتظار آن است که «برچسبهای جریان» بهجای آنکه بهصورت ترتیبی و از ۱ شروع بهصورت کاملاً تصادفی انتخاب گردند تا مسیریاب بتواند آنها را در Hash Table خود درج کند.
3.4- فیلد Payload Length
فیلد Payload Lengh (طول قسمت حمل داده) مشخص میکند که پس از سرآیند ۴۰ بایتی در شکل ۱ چند بایت داده قرار گرفته است.
3.4- فیلد Next Header
فیلد Next Header ساختار بسته را سبک بار کرده است.
دلیل آنکه سرآیند بسته ساده شده آن است که میتوان در صورت لزوم سرآیند اضافی و انتخابی داشت.
این فیلد مشخص میکند که پس از سرآیند ۴۰ بایتی کدامیک از سرآیندهای ششگانه اضافی قرار گرفته است (در صورت وجود).
اگر سرآیند اخیر، آخرین سرآیند بسته IP باشد، این فیلد مشخص میکند که کدام پروسه در لایه انتقال محتوای بسته را تحویل خواهد گرفت (مثلاً UDP ،TCP و نظایر آن).
3.5- فیلد Hop Limit در IPV6
کاربرد فیلد Hop Limit آن است که بستهها عمر محدودی داشته باشند.
این فیلد در عمل مشابه با فیلد Time to Live (زمان حیات بسته) در IPV4 است یعنی بهازای عبور بسته از یک مسیریاب، یک واحد از مقدار آن کاسته میشود.
در تئوری، مبنایی که IPV4 برای این فیلد در نظر داشت، «زمان بر مبنای ثانیه» بود درحالیکه هیچ مسیریابی از چنین مبنایی استفاده نمیکند (بلکه بهازای هر گام یک واحد از آن میکاهد).
لذا نام این فیلد را بهگونهای عوض کردند که عملکرد واقعی آن را نشان بدهد.
هرگاه مقدار این فیلد در یک بسته به صفر برسد آن بسته حذف خواهد شد.
3.6- فیلدهای آدرس
باتوجهبه طول زیاد آدرسهای IP زیاد آدرسهای IP، نماد جدیدی برای نوشتن آنها پیشنهاد شد. این آدرسها بهصورت هشت گروه که با علامت: از هم جدا شده، نوشته میشوند. هر گروه نیز بهصورت چهار رقم هگزادسیمال نمایش داده میشود:
8000:0000:0000:0000:0123:4567:89AB:CDEF
ازآنجاییکه در آدرسها تعداد ارقام صفر زیاد است، سه نوع بهینهسازی مجاز شمرده شده: صفرهای سمت چپ در هر گروه نوشته نمیشوند.
یعنی ۱۲۳. بهصورت ۱۲۳ نشان داده میشود؛ دوم آنکه اگر یک یا چند گروه شانزده بایتی تماماً صفر باشد، با یک زوج علامت:: نشان داده میشود. بنابراین آدرس مثال بالا بهصورت زیر نوشته خواهد شد:
8000::123:4567:89AB:CDEF
4- سرآیندهای اضافی در آدرس IP نسخه 6
این سرآیندهای در آدرس IP نسخه 6 ، اختیاری برای افزودن اطلاعات به هر بسته بکار میآیند.
اما روش کدینگ (و جاسازی) آنها کارآمد و سریع است. شش نوع مختلف سرآیند توسیع که تاکنون معرفی شده در شکل2، فهرست گردیده است.
هر کدام از این سرآیندها اختیاریاند ولیکن اگر به بیش از یک سرآیند نیاز باشد باید به طور پیاپی، پس از سرآیند ثابت و ترجیحاً به ترتیب فهرست قرار بگیرند.
برخی از سرآیندها، دارای قالب ثابتی هستند درحالیکه برخی دیگر تعداد متغیری فیلد با طول متفاوت دارند.
به همین دلیل هر آیتم در قالب سهتایی (نوع، طول، مقدار) سازماندهی و کد میشود.
فیلد Type مشخص میکند که نوع گزینه چیست. مقدار فیلد نوع Type به نحوی انتخاب شده است که دو بایت ابتدایی آن به مسیریابهایی که نمیدانند آن گزینه را چگونه پردازش کنند، راه و چگونگی کار را نشان میدهند.
این راهکارها عبارتاند از: (1) گزینه مربوط را نادیده بگیر (۲) بسته را حذف کن (3) بسته را حذف و یک بسته ICMP برگردان (۴) بسته را حذف کن و یک بسته ICMP برگردان. اما بسته ICMP را برای آدرسهای «چندبخشی» ( Multicast) نفرست(تا یک بسته چندبخشی اشتباه، منجر به تولید میلیونها گزارش ICMP نشود).
فیلد یک بایتی طول (Length) مشخص میکند که فیلد مقدار (Value) چند بایتی است. (صفر تا ۲۵۵ بایت). فیلد مقدار (Value) دربرگیرنده اطلاعات موردنیاز است و حداکثر میتواند ۲۵۵ بایت باشد.
4.1 – سرآیند مازاد Hop-By-Hop
«سرآیند توسیع Hop-by-Hop» (گامبهگام) برای حمل اطلاعاتی کاربرد دارد که مسیریابهای واقع بر مسیر باید آنها را بررسی نمایند.
قبلاً یکی از گزینهها را معرفی کردیم: پشتیبانی از دیتاگرامهایی با طول بیش از ۶۴ کیلوبایت.
قالب این سرآیند در شکل 3 نشان داده شده است. وقتی از این سرآیند استفاده نمیشود باید فیلد Payload Length (در آیند اصلی) به صفر مقداردهی شود.
همانند تمام سرآیندهای اختیاری دیگر، این سرآیند نیز با فیلدی یک بایتی به نام Next header شروع میشود و مشخص میکند که سرآیند بعدی از چه نوع است.
پس از بایت، بایت دیگری قرار گرفته که طول سرآیند Hop-by-Hop را بر مبنای بایت تعیین میکند ولیکن در مقدار آن، ۸ بایت ابتدایی (که وجود آن الزامی است) لحاظ نمیشود. تمام سرآیندهای توسیع دیگر نیز به همین نحو شروع میشوند.
در ادامه فیلدی دو بایتی آمده که بایت اول مشخص میکند که این گزینه Option قرار است اندازه دیتاگرام را تعریف کند (کد ۱۹۴) و بایت بعدی مشخص میکند که اندازه دیتاگرام یک شماره چهار بایتی است.
چهار بایت آخر این سرآیند، طول دیتاگرام را مشخص میکند. اندازه زیر ۶۵۵۳۶ مجاز نیست و منجر به حذف بسته در اولین مسیریاب بازگشت پیام خطای ICMP خواهد شد.
دیتاگرامهایی که از این سرآیند اختیاری (یعنی Hop-by-Hop Header)استفاده کردهاند اصطلاحاً Jumbogram (دیتاگرام عظیم) نامیده میشوند، (بدین ترتیب در آدرس IP نسخه 6 ،میتوان قطعات داده بسیار بزرگ را به کمک سرآیند فوق بهصورت یکجا ارسال کرد).
کاربرد جامبوگرامها در سوپر کامپیوترها که باید چندین گیگابایت اطلاعات را از طریق اینترنت منتقل کنند، بسیار حیاتی است.
4.2 – سرآیند مازاد Destination Options در IPV6
سرآیند توسیع Destination options برای درج فیلدهایی در نظر گرفته شده که صرفاً توسط ماشین مقصد پردازش و تفسیر میشوند.
در آدرس IP نسخه 6 اولیه ،مقدار این گزینه پوچ در نظر گرفته شده و کاربردی نداشته است.
وجود چنین فیلدی برای آن بوده که نرمافزار ماشینهای میزبان و مسیریابها چنین سرآیندی را به رسمیت بشناسند تا اگر روزگاری به آن نیاز شد، شرایط مهیا باشد و گرنه باید پروتکل عوض شد.
4.3 – سرآیند مازاد Routing
«سرآیند توسیع Routing» فهرست مسیریابهایی را مشخص مینماید که بسته باید در راه رسیدن به مقصد از آنها عبور کند.
این گزینه شباهت زیادی به گزینه Loose Source Routing در IPV4 دارد.
فهرست آدرسهایی که در این سرآیند مشخص شده باید در طول مسیر و به ترتیب ملاقات شوند ولی این امکان وجود دارد که مسیریابهایی هم که آدرس آنها در فهرست نیست ما بین مسیر باشند.
قالب سرآیند Routing در شکل 4 مشخص شده است.
چهار بایت اول از این سرآیند، شامل چهار فیلد یک بایتی است: دو فیلد Next Header و Header Extension length را قبلاً تعریف کردیم.
فیلد Routing Type، ساختار مابقی سرآیند را مشخص مینماید: مقدار صفر مشخصکننده میگیرد.
بهغیراز این ساختار، فعلاً ساختار دیگری تعریف نشده مگر آنکه در آینده چیز جدیدی ابداع شود.
فیلد آخر یعنی Segment Left تعداد آدرسهایی را مشخص میکند که هنوز ملاقات نشدهاند.
مقدار اولیه این فیلد معادل با تعداد مسیریابهایی است که آدرس آنها در فهرست موردنظر درج شده است و بهازای ملاقات در هر مسیریاب که آدرس آن در فهرست آمده که یک واحد از این فیلد کاسته میشود.
وقتی مقدار این فیلد در بسته به صفر برسد بسته روال طبیعی مسیر خود را از سر میگیرد بدون آنکه اجبار به عبور از مسیر خاصی داشته باشد. معمولاً در چنین لحظهای بسته به مقصد خود نزدیک شده است.
4.4 – سرآیند مازاد Framentation در IPV6
سرآیند Framentation مشابه با IPV4، با مسئله قطعهقطعه سازی بستهها سروکار دارد.
در این سرآیند نیز فیلدهای «شماره شناسایی دیتاگرام» «شماره قطعه» و یک بایت MF تعریف شدهاند که بیت MF مشخص میکند که آیا قطعه جاری آخرین قطعه دیتاگرام است یا آنکه قطعات دیگری در ادامه وجود دارند.
البته در آدرس IP نسخه 6، فقط ماشین مبدأ میتواند بستهای را قطعهقطعه کند و مسیریابها را سادهتر کرده و فرایند مسیریابی سریعتر خواهد شد.
همان گونه که قبلاً اشاره کردیم هرگاه یک مسیریاب با بستهای بیش از حد بزرگ مواجه گردد آن را حذف کرده و بسته ICMP (حامل پیغام خطا و اطلاعات مفید دیگر) به مبدأ آن بر میگرداند.
اطلاعات ارسالی به مبدأ بسته، امکان آن را میدهد که به کمک این سرآیند، بسته را به قطعات کوچکتر تقسیم و آنها را از نو ارسال کند.
4.5 – سرآیند مازاد امنیتی
سرآیند Authentication (سرآیند احراز هویت) مکانیزمی را فراهم آورده تا گیرنده بتواند از هویت فرستنده بسته مطمئن شود.
سرآیند Encrypted Security payload اجازه میدهد تا محتوای بسته رمزنگاری شود و بدین ترتیب فقط گیرنده موردنظر قادر به خواندن آن است.
اینگونه سرآیندها برای انجام مأموریت خود از تکنیکهای رمزنگاری بهره میگیرند.