استانداردهای فناوری: درک IPv6
از IPv4 تا IPv6
دنیای اینترنت چند سال پیش به پایان آدرسهای IPv4 رسید. حتی اگر آسمان به زمین نیاید به منظور تامین آینده سازمان خود نیازمند پذیرش IPv6 میباشید. هیچ عذر و بهانهای هم پذیرفته نیست.
امروزه پروتکل اصلی شبکه اینترنت و دیگر شبکهها، IP میباشد. بیشتر اینترنت از آدرسهای IP نسخه ۴ استفاده میکنند، تاریخ پیدایش آن به سال ۱۹۸۱ بازمیگردد. IPv4 کار خود را با افتخار انجام داده است اما رشد اینترنت بیش از توان پاسخگویی IPv4 بوده است.
IP نسخه ۶ (IPv6) نیز تقریبا به همان دوره تعلق دارد اما با چشم اندازی بلند از ابعاد اینترنت و استفاده از درسها و تجربههای به دست آمده در طول رشد اینترنت بر مبنای IPv4 طراحی گردید.
به پایان رسیدن فضا
زمانی که IPv4 در دهه ۱۹۸۰ و در اصل به عنوان یک پروژه تحقیقاتی در آژانس پروژههای تحقیقاتی پیشرفته وزارت دفاع (دارپا – DARPA) طراحی شد، اینترنت هنوز در اختیار مهندسین کامپیوتر، دانشمندان و دیگر گروههای کوچک مرتبط قرار داشت.
بنابراین زمانی که DARPA یک مقدار ۳۲ بیتی را برای بیشینه تعداد دستگاهها با سقف بیش از ۴ میلیارد انتخاب کرد، دانشمندان کامپیوتری آن را آینده نگرانه تصور کردند با این فرض که در صورت لزوم آنرا تغییر خواهند داد.
طراحان اینترنت در هر دو مورد در اشتباه بودند
در اوایل دهه 1990 مشخص بود که در آینده نه چندان دور بواسطه رشد استفاده از اینترنت، ذخیره آدرس های اینترنتی به انتها میرسد. لذا کار بر روی ارتقاء پروتکل شروع شد و همزمان با هدف صرفه جویی در مصرف IP Address، ترفندهایی مانند مترجم آدرس شبکه (NAT) ابداع شد تا استفاده همزمان چند کاربر اینترنت از یک IP Address امکان پذیر شود.
نخستین بازتولید این پروتکل جدید
به عنوان آدرس انترنتی نسل بعدی (IPng – IP Next Generation) شناخته و در RFC 2460 تعریف شد. در طول سالها و به منظور حل مشکلات مرتبط با پروتکل ابتدایی تعاریف اولیه با ۹ نسخه RFC متعاقب آن، بروزرسانی و نسخه فعلی IPv6 در RFC 8200 تعریف شده است که در ماه ژوپیه ۲۰۱۷ رسما ساخته شد.
طول آدرسهای IPv4، چهار بایت (Octet) و با نقاطی از هم مجزا میشوند مانند 12.34.56.78
هر بایت میتواند از 0 تا 255 باشد
محدوده مشخص از آدرسها به نهادهای خاص اختصاص داده میشود. فهرست محدوده های تخصیص یافته را در اینجا ببینید. هر یک از این تخصیصها برای تمامی آدرسهایی است که بایت اول آن با مقدار خاصی بین 0 تا 255 شروع میشوند، بنابراین هر یک معادل 1/256 از کل آدرس های اینترنت در IPv4 که بخش بسیار بزرگی از فضای مجازی است.
وزارت دفاع آمریکا مالک چند محدوده آدرس بزرگ است. تعداد دیگری متعلق به سرویس دهندگانی از قبیل Level 3، Cogent و AT&T و دو محدوده متعلق به اپل و کمپانی فورد میباشد.
کمبود آدرسهای
پیش از اینکه کمبود آدرسهای اینترنتی احساس شود، رزرو نمودن آدرسهای IP به شکل عمده و کلان بسیار آسان بود. در سالهای اخیر تا حدودی بیشتر این تخصیصهای عظیم به سازمانهای خصوصی برای ثبت نامهای اینترنتی واگذار شدهاند.
اگر از اواخر سال ۲۰۱۳ به لیست تخصیص نگاهی داشته باشید بلوکهایی که به General Electric، IBM، DuPont، MIT و حتی Hewlett-Packard اختصاص داده شده را مشاهده خواهید نمود.
یک بلوک این چنینی اکنون به عنوان یک شبکه 8/ شناخته میشود و شامل تمام آدرسهایی است که اولین بایت 8 بیتی آنها دارای مقدار خاص میباشد. شبکه 24/A تنها یک بایت متغیر دارد و بنابراین ۲۵۶ آدرس در آن است.
این نشانه گذاری Inter-Domain Routing بدون کلاس نامیده و به خوبی در IPv6 استفاده میشود. CIDR در اوایل دهه ۱۹۹۰ به منظور کارآمدتر شدن جداول مسیریابی معرفی گردید.
آدرس دهی توسعه یافته IPv6
آدرسهای IPv6 دارای ۱۲۸ بیت (۱۶ بایت) هستند که عمق سلسله مراتبی آدرس و تعداد کلی آدرسها را نیز به خوبی افزایش میدهد. این یک فضای آدرس بسیار بزرگ است که حتی میتوانیم آن را برای رفتن به نخستین سیارهای که در آن ساکن میشویم همراه خود داشته باشیم. معماری آدرس دهی IPv6 در RFC 4291 تعریف شده است.
نوشتن یک آدرس IPv6
برای نوشتن یک آدرس IPv6 در متن، جفتهای بایت (یک فیلد) را با استفاده از هگزادسیمال گروه بندی میکنیم و آنها را با کولون جدا میکنیم. به عنوان مثال : ABCD:EF01:2345:6789:8765:4321:0FED:CBA9
تعدادی میانبر وجود دارد که معمولا میتواند تعدادی کاراکتر را ذخیره کند. به عنوان مثال شما میتوانید صفرهای نخست را در هر فیلد نادیده بگیرید : بنابراین 2001:DB8:0:0:8:800:200C:417A با 2001:0DB8:0000:0000:0008:0800:200C:417A همسان است.
متداول است در آدرسهایی مانند آدرس قبلی هرگاه فیلدهایی متوالی با بایت صفر در آنها وجود دارد این توالی را با کولونهای خالی جایگزین کنید و بنابراین آدرس مقابل نیز معادل دو آدرس قبلی است : 2001:DB8::8:800:200C:417A
این شیوه اغلب میتواند آدرسها را بسیار کوتاه کرده و بنابراین آدرس 0:0:0:0:0:0:0:1 را میتوان به ::1 تبدیل کند.
آدرس دهی Unicast, anycast, multicast
آدرسهای IPv6 از نوع Unicast, anycast, multicast هستند. یک آدرس Unicast دقیقا با یک رابط در ارتباط است، که معمولا به معنی یک رابط شبکه بر روی یک کامپیوتر است. این رابط ممکن است چند آدرس Unicast چندگانه مرتبط با آن داشته باشد.
آدرس anycast
یک آدرس anycast مجموعهای از رابط هاست؛ داده ارسال شده به یک آدرس anycast بر اساس پروتکل مسیریابی به یکی از رابطها که نزدیکتر است تحویل داده میشود.
آدرسهای داده پراکنی
IPv4 آدرسهای داده پراکنی یا broadcast دارد. داده ارسال شده، توسط تمامی آدرسهای موجود بر روی زیر شبکه دریافت میشود. در IPv6 این تابع با آدرسدهی multicast جایگزین گردیده است.
یک بسته ارسال شده به یک آدرس multicast توسط تمامی رابط های مرتبط با ان آدرس دریافت میشود.
آدرسهای ویژه نیز وجود دارند.
برای مثال آدرس نامشخص 0:0:0:0:0:0:0:0 – که به صورت :: هم نوشته میشود – در مواردی خاص از قبیل آدرس منبع برای یک رابط که هنوز آدرس خود را دریافت نکرده، مورد استفاده قرار گرفته است. روترها بستهها را با آدرس نامشخص (منبع یا مقصد) ارسال نمی کنند
همچنین آدرس loopback یعنی 0:0:0:0:0:0:0:1 وجود دارد که میتواند به عنوان ::1 نوشته شود که همانند 127.0.0.1 در IPv4 میباشد. در این حالت بستهای که ارسال میشود توسط فرستنده آن دریافت میشود.
از v4 به v6
به منظور آسان نمودن فرآیند گذار از IPv4 به IPv6 تلاشهای زیادی صورت گرفت اما هیچگاه این فرآیند به میزان مورد انتظار آسان نبود.
بهترین حالت ممکن مکانیزم پیاده سازی دو حالته است، به این معنی که یک دستگاه یا رابط به منظور پشتیبانی از هر دو نسخه IP پیکربندی گردد. اگر IPv6 به عنوان پروتکل ارجح در پیکربندی تعریف شود، باید IPv6 به طور فزایندهای مورد استفاده قرار گیرد.
ممکن است روزی فرا رسد که IPv4 غیر مرسوم باشد که تا آن روز مدت زیادی طول خواهد کشید.
هم اکنون تمام پروتکلهای مهم اینترنت و تقریبا تمامی نرم افزارهای کاربردی مهم از IPv6 پشتیبانی میکنند برای مثال، DNS آدرسهای IPv4 را به صورت رکورد A و آدرسهای IPv6 را به صورت AAAA ذخیره میکند.
هنگامی که تمام پروتکلهای شبکه، سازگار با IPv6 باشند – که بر روی سیستم عاملهای مدرن به طور پیشفرض فعال است – میتوانید لایه کاربردی را نیز انتقال دهید.
از مزایای فضای آدرس کلان
یکی از مزایای فضای آدرس کلان IPv6 این است که نیاز به NAT را به شدت کاهش میدهد. NAT اجازه استفاده از محدودههای IP خصوصی بر روی LAN (به عنوان مثال، 10.0.0.0/8, 192.168.0.0/16) و اشتراک گذاری یک آدرس اینترنتی خارجی را میدهد.
این شیوه مرسوم پیکربندی در بیشتر شبکههای IPv4 میباشد. اما NAT با بعضی از برنامههای کاربردی مشکل ساز است، چرا که مستلزم تغییر آدرس و پورت در سربرگهای بسته (Packet headers) توسط روتر میباشد.
اگر تعداد کافی از آدرسهای منحصر بفرد جهانی برای یک سازمان وجود داشته باشد، نیازی به NAT نیست هر چند در حال حاضر نیز میتواند در IPv6 کماکان مورد استفاده قرار گیرد.
مدتها پیش از اینکه تصوری از اتصال به شبکه از طریق IPv6 وجود داشته باشد، پروتکل های tunneling متعددی توسعه یافت و از آن زمانها خیلی گذشته است. اگر سیستمهای فعلی شما قادر به اجرای IPv6 نیستند، احتمالا خیلی قدیمی هستند و بروزرسانی آنها باید اولویتی بالاتر از IPv6 داشته باشند.
IPsec
یک پروتکل لایه شبکه (OSI Layer 3) است که اجازه میدهد دو میزبان احراز هویت شده و با استفاده از رمزنگاری قوی، رمزگذاری شوند. IPsec پروتکل غالب برای شبکههای خصوصی مجازی (VPN) میباشد.
اصل این پروتوکل برای IPv6 توسعه یافت اما گروههای قابل توجهی اصرار به امکان الحاق این پروتکل و پروتکل های مرتبط با مبادله کلید اینترنت (IKE) به IPv4 را داشتند که منجر به گنجاندن آن در IPv4 شد.
در اصل، این پروتوکل یک ویژگی اجباری برای تمامی توسعههای IPv6 بود اما IETF تصمیم (منطقی) گرفت IPsec را به جای یک الزام به یک پیشنهاد (Recommendation) تبدیل کند تا اجازه دهد IPv6 سادهتر پیاده سازی شود.
تغییرات قالب بسته/سربرگ
طراحان IPv6، بر اساس درسهایی که از IPv4 آموختند، فرصت را برای ساده سازی و منطقی نمودن قالب Header/Packet، مغتنم شمردند. تعداد زیادی فیلد که در IPv4 الزامی به حساب میآیند در IPv6 افزونههایی انتخابی هستند. تغییرات به این معنی است که روترها در موارد عادی، وظایفی بسیار سادهتر دارند.
fragmentation/ reassembly
یکی دیگر از ساده سازیهای عمده برای روترها از این حقیقت حاصل میشود که گشودن و بازچینش fragmentation/ reassembly بستهها، به نودهای مبدا و مقصد سپرده میشود و نه روترها. همچنین ممکن است این کار در لایه پایینتر و بطور مشخص Ethernet نجام پذیرد.
همانطور که در پایین اشاره شده است در بخش بهبودهای امنیتی، قواعد دیگری در رابطه با packet fragmentation برای پیشگیری از خطاهای امنیتی وجود دارد.
پشتیبانی بهبود یافته برای افزونهها و گزینهها
افزونههای پروتکل IPv6 میتوانند به عنوان سربرگهایی header اختیاری بدون اثرگذاری بر ساختار بسته هسته پیاده سازی شوند. IPv6 RFC خود چندین افزونه را شامل میگردد :
سربرگ گزینههای Hop-by-Hop
به منظور انتقال اطلاعات اختیاری که ممکن است توسط هر گره در طول مسیر تحویل بسته، بررسی و پردازش گردد، مورد استفاده قرار میگیرد.
سربرگ مسیریابی : توسط منبع (source) به منظور فهرست کردن یک یا چند گره در مسیر بسته به سمت مقصد که از آنها عبور میکند، مورد استفاده قرار میگیرد.
سربرگ پراکندگی
به منظور ارسال بستهای بزرگتر از سقف تعریف شده در MTU توسط یک منبع (source) مورد استفاده قرار میگیرد.
ظرفیت برچسب گذاری جریان
یک منبع میتواند یک برچسب 20 بیتی به سربرگ سلسله بستههایی که احتمالا بخاطر برخی اپلیکیشنهای بلادرنگ و در جریان، تمایل دارد تا مقصد را به عنوان یک رشته، یا جریانی از بستهها ببینند اضافه کند.
برچسب به عنوان یک علامت برای روترها و سوئیچها عمل میکند تا بستهها را در مسیر خروجی یکسانی قرار دهند تا از مرتب سازی مجدد آنها جلوگیری کند.
بهبود امنیت و قابلیت اطمینان
ویژگیهای متعددی در IPv6 امنیت را بهبود میبخشد یا دست کم توسعه امنیتی را تسهیل مینماید.
نوع رفتار میزبانها و روترها به منظور جلوگیری از رفتارهای مخرب به روشهای مختلفی صورت میگیرد. لیست کامل آن طولانی بوده اما در اینجا به نمونههایی اشاره میکنیم:
ایجاد آدرس
همانطور که در بالا اشاره شد فضای آدرس گسترده از IPv6 به این معنی است که تمام میزبانها میتوانند آدرسهای واقعی خود را در اینترنت دریافت کنند. این امکان از جهات مختلف خوب است، اما منجر به نگرانیهای امنیتی شده است.
یک آدرس IP جهانی منحصر به فرد، ترکیب شده با رابط جاسازی شده (IID که به طور کلی یک آدرس MAC کارت شبکه است)، میتواند برای ردیابی حرکت یک دستگاه خاص و کاربر هر جا که میرود استفاده شود.
راه حل
این است که میزبان یک مقدار IID تصادفی بزرگ و مبهم ایجاد کند، تا روتر به عنوان IID به میزبانهای خارجی ارائه دهد.
هر دو آدرس IP و IID بدون از دست دادن اتصال میتوانند در طول زمان برای کاربر و دستگاه تغییر کنند.
چندین پروتکل برای ایجاد و مدیریت اینگونه از IID ها وجود دارد.
IPv6 شامل یک بخش، به عنوان بخشی از پیکربندی خودکار آدرس فاقد وضعیت (SLAAC) است.
که این خود سیستم تخصیص آدرس IP مشابه DHCP (و در IPv6 مشابه DHCPv6) میباشد.
پراکندگی سربرگ بسته
سربرگهای بسته پراکنده، برای مدتی طولانی مشکلاتی را برای دیوارههای آتش (Firewalls) و دیگر نرم افزارهای شبکه پدید آوردند.
یک دیواره آتش بدون وضعیت (Stateless) با بسته پراکنده، در جایی که زنجیره سربرگها چندین قطعه را شامل میشود ممکن است عدم اطلاعات کافی، در تشخیص اینکه آیا باید بسته را منتقل کند و سپس آن را حذف کند یا آن و بستههای پراکندهای که دنبال میکند را انتقال دهد،
احتمالا بر خلاف سیاستهای تعیین شده عمل کند. در نتیجه چنین پراکندگیهایی گاهی برای فرار از کنترلهای امنیتی مورد استفاده قرار گرفته است.
برای جلوگیی از آن، RFC 7112 نیازمند آن است که وقتی یک میزبان، یک بسته IPv6 را جدا کند، باید کل زنجیره سربرگ در بسته اول را شامل شود.
آیا وقت آن نیست تا IPv6 را بپذیرید ؟
سال های زیادی است که از معرفی IPv6 میگذرد. این زمان تا اندازهای صحیح و منطقی است زیرا رشد IPv6 تصاعدی بوده است. گوگل یک نمودار عمومی از درصد کاربرانی که با IPv6 متصل شدهاند را گردآوری کرده است. این عدد اخیرا 25 درصد بوده است که میزان درصد بالایی است.

نمودار عمومی گوگل از درصد کاربرانی که با IPv6 متصل شدهاند
ما در نقطهای هستیم که همچنان میتوانید IPv6 را نادیده بگیرید.
اما تجربه به ما ثابت کرده است که چنین رفتاری در این موقعیت از یک تصمیم خوب فاصله دارد.
واقعیت این است که مخازن آدرسهای عمومی IPv4 سالها پیش به آخر رسیده است.
هر تلاش منطقی به منظور برنامه ریزی برای آینده، انتخاب IPv6 را شامل میشود.
IPv6ممکن است درنگاه شما جدیدباشد، اما سابقهای 20 ساله را در پس خود دارد و یک فناوری کاملابالغ محسوب میگردد.
نادیده گرفتن آن نادیده گرفتن آینده است.