Hootan Alghaspour
Hootan Alghaspour
خواندن ۲۸ دقیقه·۴ سال پیش

آشنایی با IPv6

- این بخشی از مطلب خودم هست ، self-plagiarism و double-spending را در اینجا وارد نمی دانم.
- عمده متن در ایرانداک و اینترنت ثبت شده و اگر کپی/پیست بفرمایید ضایع می شه، مطالعه بفرمایید و پس از تحقیق و یادگیری از خودتون بنویسید.برای من اهمیت ندارد چه استفاده ای کنید، هرطور خودتون صلاح می دانید.
- صمیمانه از تمامی اشخاصی که تصویر ارائه یا تحقیق آن ها بدون ذکر منبع در این مستند استفاده شده است قدردانی و عذرخواهی می شود.
- جزوه IPv6 را می توانید از اینجا دانلود فرمایید که متن ذیل خلاصه شده ای از آن است.

در 1995 IETF اولین بار به این جمع بندی رسید که نسخه چهارم IP که اکنون نیز بصورت گسترده و پیش فرض استفاده می شود تعداد آدرس کافی برای پشتیبانی از نیازهای آینده ندارد و از 1994 طرح IPng با فضای آدرس 128 بیتی پیشنهاد شد که در نهایت به تدوین و انتشار IPv6 انجامید.

بخصوص با باب شدن بحث IoT و نیاز به آدرس دادن شبکه ای به همه ابزارها و همچنین موضوع توان پردازشی و مسیریابی و افزایش سایز جداول BGP روترهای IPv4 نیاز به انتقال به IPv6 بسیار بیشتر احساس شد طوری که بسیاری از کشورها برای انتقال به آن استراتژی ملی تدوین کردند. علاوه بر گزینه ها و قابلیت های بهینه جدید، تعداد آدرس های IPv6 به اندازه ای است که اگر بخواهیم روی سطح زمین IPv6 پخش کنیم ، روی هر متر مربع میلیون ها آدرس می توان اختصاص داد. IPv5 ( ST ) , Internet Stream Protocol بصورت تحقیقاتی و آزمایشی با محوریت QoS , RSVP , SCMP , MultiMedia توسعه داده شد اما هرگز بصورت عملیاتی درنیامد.

از مهمترین مزایای IPv6 نسبت به IPv4 می توان به موارد ذیل اشاره کرد :

  • افزایش فضای آدرس های از 32 به 128 بیت
  • قابلیت Stateless Autoconfiguration ، هاست ها تنها با دریافت prefix شبکه امکان ساخت آدرس برمبنای MAC آدرس کارت شبکه خود را دارند.(EUI64)
  • عدم نیاز به NAT/PAT به دلیل فضای گسترده آدرس ها و مکانیزم مسیریابی
  • عدم استفاده از Broadcast که منجر به ایجاد ترافیک مازاد روی شبکه و برخی مسائل امنیتی می شد
  • عدم استفاده از Hop by Hop Segmentation و MTU Path Discovery
  • سایز header ثابت با قابلیت ها و گزینه های جدید
  • مکانیزم های داخلی برای ارتباطات anycast و multicast
  • مکانیزم داخلی و بهینه برای پشتیبانی از IPSec, VPN, and QoS tagging
  • مشخص بودن سلسله مراتب تخصیص آدرس ها و summarization براساس مکان های جغرافیایی
  • حذف مسیریابی های خطی و درختی و استفاده از مسیریابی درختی (سلسله مراتبی) بهینه
  • امکان Renumbering ، درصورت نیاز به عوض شدن آدرس های شبکه تنها کافیست روتر شبکه prefixجدید را advertise کند و هاست ها با استفاده از آدرس جدید، prefix قدیم را بصورت deprecated نگاه می دارند تا ارتباطات قبلی دچار مشکل نشود.
  • افزایش قابلیت mobility (roaming & remote access) ، استفاده از یک آدرس در نقاط مختلف
  • قابلیت توسعه های آتی بوسیله extension header پیش بینی شده
  • افزایش بهینگی در پردازش بسته ها با وجود حدود 2 برابر شدن اندازه هدر بدلیل :
    * سایز ثابت هدر همه بسته ها (40بیت)
    * بهینه شدن برای پردازش 64بیتی بصورت پیش فرض بجای 32بیتی
    * حذف header checksum که باید برای هر بسته محاسبه می شد
    * حذف fragment کردن بسته های بزرگ توسط روتر و جایگزینی درخواست ارسال بسته های کوچک تر
    * جایگزینی broadcast با multicast

دیگر برای مشخص کردن net ID دقیقاً مفهومی بعنوان subnet mask نیست و با مفهوم prefix جایگزین شده است و دیگر فرم dot decimal برای نمایش آدرس های استفاده نمی شود (255.255.255.0) . علامت / و عدد بعد از آن همانطور که در IPv4 نشان دهنده بیت های net ID بود در IPv6 نیز نشان دهنده Subnet Prefix Lenght است یعنی تعداد بیت های net ID ، در یک رشته 128 بیتی از این طریق می توان تشخیص داد چه میزان از آدرس net ID و چه میزان Host ID است. 64بیت اول آدرس ، آدرس شبکه (Network Prefix) (بصورت درختی و سلسله مراتبی) و 64 بیت دوم آدرس منحصر بفرد کارت های شبکه هستند.

نمونه یک آدرس معتبر IPv6 و اجرای آن
نمونه یک آدرس معتبر IPv6 و اجرای آن
بصورت خلاصه اون 64 بیت سمت چپ برای شبکه و 64 بیت سمت راست برای هاست ها است.
بصورت خلاصه اون 64 بیت سمت چپ برای شبکه و 64 بیت سمت راست برای هاست ها است.

آدرس های IPv6 بصورت هگزادسیمال (0تا9 و aتاf) ، و 128 بیت هستند و مانند IPv4 قوانین مشخصی نیز برای استفاده از آدرس ها وجود دارد و آدرس هایی نیز برای مقاصد خاص مشخص و رزرو شده اند. توزیع جهانی آدرس های معتبر IPv6 نیز بسیار سازمان یافته تر و سلسله مراتبی است و براساس موقعیت جغرافیایی ترتیب و نظام مشخصی دارد. با توجه به فضای بسیار بزرگ IPv6 می توان به همه هاست های یک کشور آدرس معتبر اینترنتی اختصاص داد و دیگر نیازی به NAT نیست.

با توجه به طولانی بودن رشته آدرس IPv6 قوانینی برای خلاصه کردن آن برمبنای صفرهای داخل آدرس وجود دارد. Leading Zero به فاکتورگیری از صفرهای از سمت چپ هر کدام از بلاک های 16بیتی اطلاق می گردد. Comperession Zero به استفاده از :: بجای بلوکهای 16بیتی متوالی حاوی صفر اشاره می کند که تنها یکبار برای بلوک های متوالی می توان استفاده کرد زیرا باید از تعداد بلوک های موجود در رشته آدرس و کم کردن آن از 8 (کل بلوک ها) تشخیص داد جای :: چند بلوک حاوی صفر باید قرار بگیرند.

در IPv6 سه نوع ارتباط Unicast, Multicast, Anycastدارد و دیگر بدلیل ایجاد ترافیک زیاد و افزایش بار پردازشی و مشکلات امنیتی نوع ارتباط و آدرس broadcast (ارسال عمومی به همه) در IPv6 وجود ندارد و موارد مورد نیاز مثل قضیه شناسایی همسایگان (Neighbor Discovery) که جایگزین ARP در IPv4 شده است از طریق Multicast انجام می شود.

نوع آدرس و ارتباط Unicast همان ارتباط یک به یک متداول است که خود به 3 محدوده اصلی که Scope (محدوده اعتبار) نامیده می شوند تقسیم می شود. Scope های در تمام کلاس آدرس های 3 نوع ارتباط اصلی وجود دارند.

آدرس های یونیکست Local : همیشه هر کارت شبکه IPv6 یک آدرس Link Local با فعال بودن مکانیزم Autoconfiguration می گیرد. هاست های روی یک شبکه با داشتن آدرس Link Local می توانند با همسایگان خود که در همان لینک هستند ارتباط برقرار نمایند و از فرآیند Neighbor Discovery استفاده کند. روش تشخیص آن توجه به بلاک اول آدرس است که اگر معادل fe80 باشد و 3 بلاک بعدی 0 باشند نشان دهنده آدرس link local است. آدرس های link local ممکن است به فرمت Address%zone_ID نوشته شوند مثل fe80::1dc2:f958:e3c7:124d%36 که عدد بعد از % نمایش دهنده لینک کارت شبکه است. در ویندوزها ممکن است بصورت عددی و در لینوکس ها بصورت %ethX نمایش داده شود.

آدرس های یونیکست Unique Local : مانند آدرس Private در IPv4 است و برای استفاده داخل یک شبکه سازمانی استفاده می شود. هر آدرسی که با fc00::/7 (یا fd00::/8) شروع می شود آدرس Unique Local است (7 بیت اول آن با 1111110 شروع می شود). این آدرس ها در همان subnet سازمانی قابل مسیریابی هستند.

آدرس های یونیکست Global یا Universal : مانند آدرس های public در IPv4 ، برای تشخیص آدرس های گلوبال می توان به 3 بیت اول رقم اول بلاک اول توجه کرد که اگر 001 بود آدرس گلوبال است. دقت کنید مثلاً 001 در مبنای باینری معادل 2 در هگزادسیمال می شود و به همین ترتیب 0011 معادل 3 است و بنابراین آدرس های هگزا دسیمال IPv6 که با 2 و 3 شروع می شوند Global و قابل مسیریابی و دسترسی عمومی در اینترنت IPv6 هستند. 45بیت بعدی با عنوان Global Routing Prefix آدرسی است که به یک شبکه یا سازمان مثل ASN در IPv4 تعلق می گیرد تا با 16 بیت ادامه Subnet ID بتواند شبکه خود را subnet بندی کند (با 16 بیت 65536 ساب نت می توان تعریف کرد.) و 64 بیت آخر نیز که آدرس هاست و کارت های شبکه است. این آدرس ها در رنج 2000::/3 و 3000::/3 هستند و از طریق اینترنت قابلی مسیریابی و دسترسی می باشند.

آدرس های ارتباطات Multicast دسته بندی متفاوتی دارند و با ff0S:: شروع می شوند (S متغییر است). برای مثال link-local در ارتباط مولتی کست با آدرس ff02:: شروع می شود و مانند link-local در ارتباط unicast برای ارتباط همان محدوده توپولوژی سیستم های متصل به همان سوییچ کاربرد دارد و مثلاً برای شناسایی گره های مجاور در پروتکل های دینامیک مسیریابی استفاده می شود. یا مثلاً همانطورکه در ادامه توضیح داده خواهد شد برای شناسایی سیستم های همسایه و انجام عملیات Neighbor Discovery یا Duplicate Address Detection (DAD) از آدرس های ff02::1:ff00:0/104 که Solicited-node multicast address نامیده می شود استفاده می گردد.

24 بیت آخر آدرس multicast در ff02::1:ff00:0/104 برای استفاده هاست ها است تا هر هاست یک آدرس Solicited-node multicast address یکتا داشته باشد. 6 رقم آخر هگزادسمیال از روی آدرس unicast روی آن interface اقتباس می گردند. به این ترتیب با توجه به اینکه هاست جدول همسایگان خود را دارد در هنگام ارسال پیام می داند به چه آدرس هایی باید multicast کند.

در ارتباطات Anycast ارتباط با نزدیک ترین نود برقرار می شود، در این نوع چند نود می توانند یک آدرس داشته باشند و ارتباط معمولاً براساس ویژگی distance با نزدیک ترین نود برقرار می گردد. این نوع از ارتباطات کاربرد زیادی در سناریوهای Load Balancing و Content Delivery Network دارد.


هدر header بسته IPv6 یکی از مهمترین تفاوت های ایجاد شده نسبت به IPv4 است. معماری هدر ساده تر شده است و با وجود افزایش سایز، پردازش آن ساده تر است. باید توجه کرد که بخش عمده سایز هدر بدلیل آدرس های مبدا و مقصد 128بیتی است. و هدرهای بسته های IPv6 همیشه طول ثابت 40بایتی دارند. تعداد فیلدهای هدر نسبت به IPv4 از 12 به 8 مورد تغییر کرده اند ، فیلدهایی که در روترهای میانی باید پردازش شوند از 6 به 4 تغییر نموده اند ، فیلدهایی مثل fragmentation و option دیگر در اصل هدر نیستند و در Extension header تعریف می شوند.

آپشن optionهای IPv4 بدلیل کاربردی نبودن و کاهش سرعت مسیریابی بصورت متداول استفاده نمی شوند و بسیاری از روترها و فایروال ها نیز آن ها را بلاک می کنند. با توجه به ثابت بودن اندازه هدر در بسته IPv6 مفهوم جدید و بهینه ای برای تعیین ویژگی های خاص در این پروتکل اضافه شده است که بین هدر اصلی و محتوی بسته IPقرار می گیرد و extension headers نام گرفته است. استفاده از extension header اختیاری است و می توان در یک بسته چند extension header داشت و نوع آن در فیلد next header هدر اصلی درج می شود. گزینه ها و اطلاعات اضافه در خصوص بسته IP در این فیلد درج می شوند. استفاده از extension header همچنین قابلیت توسعه و اضافه کردن امکانات IPv6 را در آینده بدون تغییر در ساختار کلی و در نتیجه تغییر در همه استفاده کننده ها فراهم می کند.

مکانیزم fragmentation نیز در IPv6 متفاوت است و در حقیقت در نودها و روترهای میانی انجام نمی شود و با استفاده از Path MTU در عملیاتی که به Path MTU Discovery (PMTUD) موسوم است و از مجرای ICMPv6 انجام می شود ، حداکثر MTU مسیر توسط ارسال کننده شناسایی شده و بسته ها براساس آن مقدار ابتدا در ارسال کننده fragment شده و fragment extension header در هدر بسته درج می شود و بعد ارسال می گردند.روترها در IPv6 عملیات fragmentation را انجام نمی دهند و درصورت بزرگ بودن یک بسته IP این عملیات بصورت End-to-End انجام می شود. بسته های خیلی بزرگ نیز مانند بیت don’t fragment (df) در IPv4 در روترها drop شده و پیام ICMPv6 Type2 که به معنی Packet too Big است برای ارسال کننده ارسال می شود.

و- ICMPv6 نیز یکی از مفاهیم کلیدی و مهم افزوه شده در شبکه IPv6 است. در حقیقت زیربنای عملکرد IPv6 بستگی کامل به عملکرد درست ICMPv6 دارد. بجز اعمال دستی مدیریتی متداول مانند ping وTrace ، موارد پایه ای شبکه مبتنی بر IPv6 مانند Neighbor Discovery (ND), stateless address configuration (including duplicate address detection), Path Maximum Transmission Unit (PMTU) discovery و Multicast Listener Discovery مفاهیم پایه ای کارکرد IPv6 هستند که بر مبنای ICMPv6 بنا شده اند.

و- Neighbor Discovery Protocol (NDP, ND) که از ICMPv6 استفاده می کند و برمبنای آن بنا شده و خود زیربنای مفهومی برای شبکه IPv6 است مثل ARP در IPv4 برای حل آدرس IP به آدرس MAC است و مسئول تنظیمات ارتباط کارت شبکه مثل آدرس گیری خودکار ، شناسایی روترها و DNS ، شناخت prefix استفاده شده در شبکه ، شناسایی آدرس تکراری ، شناسایی همسایگان و تنظیمات Gateway است.

و- در مقایسه ای میتوان این پروتکل در IPv6 را جایگزین ARP, ICMP Router Discovery, and ICMP Redirect در IPv4 دانست. همانطورکه اشاره شد در IPv6 ارتباط broadcast وجود ندارد و خبری از ARP و موار مشابه نیست و بجای آن از عملیاتی بنام Neighbor Discovery(ND) استفاده می گردد. ND Message به آدرس solicited-node multicast که قبلاً توضیح داده شد ارسال می شود.


برای تخصیص آدرس های IPv6 می توان از 3 روش تنظیم دستی آدرس ، Stateless address autoconfiguration (SLAAC) ، و DHCPv6 استفاده کرد. آدرس دهی autoconfiguration (غیردستی) در شبکه IPv6 3 حالت stateless (خودش براساس prefix آدرس بسازد و در دیتابیسی هم ذخیره نشود و آپشن ها نیز استفاده نشوند.) ، stateful (از یک dhcp آدرس و آپشن ها را بگیرد و وضعیت آدرس هم در دیتابیس dhcp ذخیره شود) و both (stateless آدرس بگیرد و فقط prefix و آپشن ها را از dhcp بگیرد) دارد.

با توجه به ساخته شدن آدرس SLAAC از روی MAC آدرس که یکتا است ، امکان رهگیری موقعیت های مختلف اتصال یک کارت شبکه به اینترنت فراهم می شود. اگر در هر شبکه IPv6 که آن کارت شبکه فعال می شود بخش اول prefix آن شبکه و بخش دوم آدرس ساخته شده از روی MAC آدرس باشد ، بخش دوم آدرس در شبکه های مختلف یکسان خواهد بود (آدرس سخت افزاری ثابت است.) و مثلاً ناظر ترافیک بالادستی یا مثلاً گوگل می توانند تشخیص دهند این همان کارت شبکه (شخص/لپ تاپ/گجت های هوشمند و ...) است که اکنون از شبکه دیگری به اینترنت متصل شده و به این ترتیب زمان ها و موقعیت جغرافیایی و سایر موارد مثل محتوی و ... را رهگیری کرد. IPv6 Privacy Extension با استفاده از randomize interface identifier (RFC4941) یا stable privacy address (RFC7217) بجای استفاده از MAC آدرس یکتای همیشه ثابت و قابل محاسبه و پیش بینی ، برای رفع این مشکل تعریف شده است.

در DHCPv6 2 حالت Stateless و Stateful وجود دارد. در حالت Stateless (DHCPv6 Lite) دیتابیسی وجود ندارد و چیزی ثبت نمی شود اما می توان آدرس ها و گزینه های آن را به سرعت با استفاده از یک سرویس سبک اختصاص داد. همچنین در این روش بخش host آدرس در DHCP تخصیص داده نمی شود و تنها یک scope تنظیم می شود و می توان بوسیله آن اطلاعات و تنظیماتی را که در فرآیند SLAAC به هاست ها داده نشده تنظیم نمود. در حالت Stateful (دارای رکود ثبت شده و قابل مدیریت) سرویس DHCP کامل است و دارای دیتابیس و tracking و قابل اتصال به بقیه سرویس ها می باشد.

همچنین از روشی بنام DHCPv6 prefix delegation که به DHCPv6 PD معروف است برای تخصیص prefix بجای آدرس استفاده می شود. مثلاً یک ارگان تخصیص دهنده IPv6 می تواند به این وسیله به یک مشتری prefix تخصیص دهد و مشتری آن را در شبکه خود پخش کند. با توجه به فضای بزرگ آدرس IPv6 و اینکه قرار شد همه آدرس معتبر global بگیرند و دیگر از NAT و امثالهم استفاده نشود و ارتباطات مستقیم باشد ، مثلاً ISP به شرکت/سازمان خدمات گیرنده یک IPv6 Prefix معتبر و گزینه های مرتبط با آن را اختصاص می دهد و آن شرکت/سازمان براساس مکانیزم خود آدرس ها را بین کاربرانش تقسیم می کند.

از مهمترین تفاوت های DHCPv6 و DHCP(v4) می توان به موارد ذیل اشاره کرد :

  • هاست بجای 0.0.0.0 از آدرس link-local خود بعنوان مبداء استفاده می کند.
  • استفاده از آدرس های اختصاصی multicast بجای broadcast و آدرس مقصد 255.255.255.255
  • در DHCPv6 می توان با یک درخواست چند آدرس گرفت و چند کارت شبکه را تنظیم کرد.
  • در DHCPv6 آپشن های آدرس کمتری از DHCPv4 دارد و فرآیند آن نیز ساده تر شده است.
  • در DHCPv6 (و IPv6) از BOOTP (Bootstrap Protocol) پشتیبانی نمی کنند.
  • در DHCPv6 گزینه reconfigure دارد.


امنیت در IPv6

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

در برخی موارد مثل اسکن شبکه و ping sweep و پورت اسکن های متداولی که نفوذگران معمولاً در یک شبکه IPv4 انجام می دهند ، در IPv6 بدلیل بسیار بیشتر شدن تعداد آدرس های محتمل که باید همه تست شوند کار نفوذگران سخت تر شده است. در یک شبکه با prefix /64 تعداد 264 هاست معادل 18,446,744,073,709,551,616 وجود دارد که روش های sweep قدیمی برای این تعداد پاسخ گو نیست. باید یادآوری کرد که بسیاری از بدافزارهای و wormها از همین روش برای شناسایی و انتقال خود در شبکه استفاده می کنند. rfc5157(IPv6 Implications for Network Scanning) و بصورت کاملتر rfc7707 (Network Reconnaissance in IPv6 Networks) اختصاصاً به همین موضوع پرداخته اند. روش های متنوعی برای رفع این مشکل نفوذگران! پیشنهاد شده، مثلاً در شبکه هایی که اصطلاحاً dual stack هستند و IPv4 نیز در آن ها فعال است راه های متعددی برای شناسایی سیستم ها و MAC های فعال و سپس شناسایی IPv6 آن ها وجود دارد یا روش های خلاقانه ای مثل استفاده از DNS ، استراق سمع غیرفعال ، استفاده از آدرس ها و ارتباطات multicast (pinging the all-nodes multicast address ff02::1) و ... برای شناسایی شبکه IPv6 وجود دارند.

درخصوص IPSec و پشتیبانی و مسائل آن در IPv6 ، استفاده از ارتباطات IPSec که در IPv4 انتخابی بود در تعریف پروتکل IPv6 الزامی شده (بصورت پیش فرض فعال نیست.) . در IPv6 استفاده از IPSec و هدرهایAuthentication Header (AH) و Encapsulating Security Payload (ESP) بوسیله Extension Headerها انجام می شود. هر 2 حالت فعالیت Transport (رمزنگاری تنهای payload بسته IP) و tunnel (رمزنگاری و تایید مبداء بسته های IP + رمزنگاری payload و محتوی) در IPv6 بخوبی و کامل پشتیبانی می شوند. تعاریف IPSec برای هر 2 نسخه IP4,6 در RFCs 4301, 4302, 4303 تشریح شده اند و اکنون در اکثر سیستم ها برای هر 2 نسخه پیاده سازی شده و در دسترس هستند.

درخصوص مکانیزم Automaticly Address Asignments و فرآیند Neighbor Discovery کلاس کاملی از انواع حملات و دغدغه های امنیتی و راه حل ها تا کنون پیشنهاد و پیاده سازی شده است. مثلاً در پیام های RS و RA که ممکن است هر مهاجمی اقدام به ارسال RA و معرفی خود بعنوان روتر و معرفی prefix در شبکه کند. یا در فرآیند چک کردن تکراری نبودن آدرس DAD امکان پاسخ مثبت به همه درخواست ها از طرف یک مهاجم و جلوگیری از آدرس گیری سایرین وجود دارد.

برای ایمن سازی فرآیند Neighbor Discovery و پیام های NS,NA و RS,RA ، پروتکلSecure Neighbor Discovery (SEND) پیشنهاد شده است. همانطور که قبلاً ذکر شد NDP مسئول پیدا کردن آدرس های link-layer برای ارتباط ، پیدا کردن روترهای فعال ، پیدا کردن همسایگان در یک لینک ، چک کردن تکراری نبودن ادرس ، چک کردن فعال بودن هاست ها در شبکه IPv6 است و بصورت پیش فرض نیز غیرایمن و آسیب پذیر است. می توان آن را مشابه وضعیت ARP در شبکه IPv4 دانست. SeND با ساخت Cryptographically Generated Address (CGA) و استفاده از استاندارد X.509 certificates و رمزنگاری آن با یک کلید عمومی مربوط به ارسال کننده و امضای آن با کلید خصوصی وی کار می کند و نیازی به public key infrastructure ندارد. البته پیاده سازی آن در ویندوز (حداقل تا 2012) قابل قبول نبوده و بیشتر توسط سیسکو و لینوکس ها پشتیبانی شده است.

حملات مربوط به فرآیند ND کلاس کاملی از حملات در IPv6 هستند. امکان و ابزارهای سواستفاده و جعل پیام هایی NS و NA و RA و مکانیزم های DaD و NUD در تنظیمات و پیاده سازی های پیش فرض و اختصاصاً ایمن نشده IPv6 بسادگی وجود دارد و مثلاً ممکن است مهاجم با ارسال RA جعلی و معرفی خود بعنوان روتر gateway شبکه، ترافیک را استراق سمع نماید. در بسیاری از سیستم ها انتخاب استفاده از شبکه IPv4 یا IPv6 درصورت فعال بودن هر دو براساس لایه کاربردی و برنامه است. مثلاً DNS معمولا هم رکورد AAA (IPv4) و هم AAAA (IPv6) را درصورت وجود باز می گرداند (در بسیاری از پیاده سازی های DNS در صورت عدم وجود AAAA رکورد AAA اعلام می شود.) یا مرورگرها درصورت فعال بودن IPv6 به استفاده از شبکه آن ترجیح دارند.

باید یادآوری کرد که در IPv6 بستن ICMPv6 بصورت کامل بدلیل نیاز شبکه IPv6 به آن برای کارکرد گزینه قابل انتخابی نیست و بستن آن براساس نوع بسته و کد پیام و هدرها و ... نیز جزئی تر بوده و نیاز به مهارت بیشتری دارد.

حملات مربوط به پر کردن Neighbor Cache یا گذاشتن بار حافظه و پردازش روی سیستم قربانی بوسیله flood کردن آن نیز معمولاً در همین کلاس دسته بندی می شوند.

و- MLD (Multicast Listener Discovery) که مکانیزم عضو شدن سیستم های شبکه در multicast group آن شبکه است نیز هم برای پایش و شناسایی سیستم ها و هم برای حملات ردسرویس و هم برای حملات استراق سمع مورد استفاده مهاجمین قرار می گیرد.

و- DHCPv6 نیز مانند DHCP در IPv4 در معرض Rogue clients and servers و Rogue DHCPv6 server attack قرار دارد. یک مهاجم با راه اندازی DHCPv6 می تواند به سیستم ها اعلام آدرس و مشخصات کند. باید دقت کرد استفاده از DHCP معمولاً در RA تعریف می شود اما برخی سیستم ها مثل برخی نسخه های ویندوز حتی بدون دریافت فلگ استفاده از DHCPv6 نیز سیستم اقدام به ارسال درخواست برای گرفتن اطلاعات از DHCPv6 می کند. DHCPv6 message tampering attack نیز به تغییر محتوی درخواست ها و پاسخ های DHCPv6 اشاره دارد که نتیجه ای مانند حمله قبل را در پی خواهد داشت.

موضوع Address Space Exhaustion با توجه به فضا و تعداد بسیار زیاد IPv6 تاکنون به حمله خیلی موثری برنخورده است اما با توجه به اینکه DHCPv6 باید برای هر کدام از آدرس های اختصاص داده شده و درخواست ها جداول خود را بروزرسانی و تکمیل کند و DUIDها را با اطلاعات مرتبط ذخیره نماید ممکن است بتوان با ارسال درخواست های بسیار زیاد حافظه و پردازش آن را مورد تاثیر قرار داد.

و- Privacy issues analysis نیز از دیگر سرفصل های امنیت DHCPv6 هستند که برای طولانی نشدن نوشتار از پرداختن با جزئیات به آن خودداری می کنیم.

برای مقابله با حملات DHCPv6 روش هایی مثل مکانیزم های secure DHCPv6 ، DHCPv6 Guard ، DHCPv6Sec ، اعمال محدودیت ها و ACL ها در پورت های شبکه و سوئیچ ها و ... پیشنهاد شده و استفاده می شوند.

به حملات در محدوده همان link محلی شبکه مثل حملات ND و DHCPv6 سرفصل IPv6 First-Hop Security Concerns نیز می گویند.

در مورد شبکه های Dual Stack که همزمان IPv4 و IPv6 روی آن ها فعال هستند نیز می توان به تهدیداتی مثل عدم اعمال قوانین و تنظیمات امنیتی برای IPv6 بطور اختصاصی اشاره نمود. امروزه اکثر سیستم هایی که به شبکه متصل می شوند علاوه بر IPv4 قابلیت IPv6 نیز دارند و به دریافت پیام های IPv6 مثل RA و NS و پیام های آدرس های multicast پاسخ می دهند. یک مهاجم که پشت دیوارهای امنیتی تنظیم شده برای IPv4 مانده است می تواند با استفاده از این قابلیت بوسیله IPv6 به اهداف دسترسی پیدا کند و حتی برای گریز از مکانیزم های کنترل ترافیکی که برای IPv4 تعریف شده اند از انواع تونل های IPv6 در بستر IPv4 استفاده نماید.

همچنین لازم بذکر است بسته ها و پیام های IPv6 بصورت پیش فرض رمزنگاری شده نیستند و الزام استفاده از IPSec در حقیقت تنها روی کاغذ است و بصورت پیش فرض فعال نیست و با سو استفاده از فرآیند ND استراق سمع و حتی تغییر ترافیک توسط یک مهاجم به سادگی میسر است.

دغدغه هایی که در خصوص Tunneling به روش های مختلف و حتی استفاده از IPSec یا هر کانال ارتباطی رمزنگاری شده دیگری که در گذشته وجود داشت هم اکنون نیز پابرجاست. امکان بررسی و اعمال قوانین روی ترافیک داخل تونل در شرایط عادی مهیا نیست. از طرفی ممکن است قواعد و قوانین نظارتی شبکه را بتوان با استفاده از تونل های IPv6 روی بستر IPv4 دور زد.

طرح جدید هدر و Extension Headerهای IPv6 نیز بعنوان یک مفهوم جدید در معرض حملات اختصاصی که قبلاً مشابه آن را در IPv4 نداشتیم یا به این صورت نبوده قرار دارند. برای مثال مهاحمین امکان ایجاد Covert Channels و انتقال مخفیانه اطلاعات را از طریق مخفی کردن آن ها در options data فیلد options هدرهای تکمیلی یک بسته دارد. Destination Options header در IPv6 در مسیریابی و انتقال توسط نودهای میانی پردازش نمی شوند و فقط توسط مقصد مورد پردازش قرار خواهند گرفت و می توان 2 بار آن را تکرار کرد و دارای options data است که می توان در آن اطلاعات بارگذاری نمود. ابزاری مثل covert_send6 از این خاصیت برای انتقال فایل با مخفی سازی آن در این نوع هدر می کند و حتی قابلیت رمزنگاری blowfish را روی داده های جاگذاری شده در Destination Options header دارد. طبیعتاً تشخیص این کانال مخفی انتقال اطلاعات از طریق extension header های بسیار مشکل است.

حملات fragmentation attack دسته دیگری از حملات مرتبط با extension headerها در IPv6 هستند که در RFC8021 تحت عنوان Generation of IPv6 Atomic Fragments Considered Harmful به آن ها پرداخته شده است. برای مثال مهاجمین با ارسال بسته های fragment شده می توانند برخی از مکانیزم های امنیتی را رد کنند. اینکار تکنیک های متعددی دارد. بسیاری از مکانیزم های امنیتی و نظارتی برای نظارت بر بسته ها نیاز به همه fragment ها دارند که اولاً خود موضوع برخی روش های حملات رد سرویس است و ثانیاً برای مثال یک RA-Guard نیاز به همه fragmentها دارد که براساس روش و الگوریتم پیاده سازی آن ، مهاجم ممکن است با عدم اعلام اینکه کدام بسته fragment آخر است یا دستکاری های مشابه در بیت M و Fragment Offset های هدر fragment، از یکپارچه شده آن پیام و اعمال بررسی توسط مکانیزم امنیتی بگریزد. یا مثلاً قضیهatomic fragment) IPv6 که در RFC 8021 بدین صورت شرح داده شده است :

From RFC 8021: “If an attacker sends a forged ICMPv6 PTB [packet too big] error message to Host B, reporting an MTU smaller than 1280, this will trigger the generation of IPv6 atomic fragments from that moment on (as required by [RFC2460]). When Host B starts sending IPv6 atomic fragments (in response to the received ICMPv6 PTB error message), these packets will be dropped, since we previously noted that IPv6 packets with extension headers were being dropped between Host B and Host A. Thus, this situation will result in a DoS scenario.”

باید توجه داشت هرچند در RFC ها قوانین و قواعدی مشخص شده است و مثلاً تکرار هدر ها (بجز مقصد) منع شده و برای extension header ها ترتیبی معیین شده است اما الزاماً همه پیاده سازی ها عین RFC را رعایت نمی کنند و مثلاً در بسیاری از سیستم ها می توان extension header های تکراری ارسال و دریافت کرد. همچنین توجه به این امر که IPv6 در حال توسعه است و بسیاری از قوانین و پیاده سازی های آن در سال های گذشته بروزرسانی شده اند و این روند با سرعت بیشتری ادامه دارد ، موفقیت بسیاری از حملات وابستگی به سیستم عامل هدف و نسخه آن و پیاده سازی پشته IPv6 روی آن دارد.

حملات ردسرویس نیز در IPv6 مانند IPv4 وجود دارند و برخی حملات مثل Duplicate Address Detection و Neighbour unreachability detection (NUD که قبلاً نیز درخصوص آن ها توضیح داده شد ، منحصراً براساس تعاریف جدید در IPv6 روی این پروتکل وجود دارند. حتی خود مکانیزم SeND که قبلاً برای محافظت فرآیند Neighbor Discovery به آن اشاره شد قابلیت استفاده برای حملات ردسرویس را دارد. حملات ردسرویس IPv6 تنها محدود به سطح شبکه و فرآیند ND نیست و حملات سطوح بالاتر مثل application level ها تقریباً بدون تغییر خاصی نسبت به قبل روی بستر IPv6 نیز وجود دارند.

و- ICMPv6 نیز هدف سواستفاده برای حملات ردسرویس است که با تعاریف و مکانیزم های IPv6 منطبق می شوند. برای مثال در حمله کلاس amplification (که قبلاً هم در بستر IPv4 وجود داشت) smurf، مهاجم از یک آدرس مبداء جعل شده (هدف) اقدام به ارسال ECHO request packet به گروه multicast آن لینک می کند و سیستم های عضو آن شبکه و گروه multicast نیز با ECHO reply به آدرس آن مبداء جعلی (هدف) پاسخ می دهند. به یاد داریم سیستم های روی یک لینک و سوییچ شبکه IPv6 عضو یک گروه های مولتی کست روی همان لینک می شوند و این روش جای broadcast در IPv4 را گرفته است. یا در روشی جدیدتر بنام rSmurf مهاجم اقدام به ارسال ECHO request از آدرس های مبداء جعل شده multicast مثل FF02::1 all nodes, FF02::2 all routersبه آدرس مقصد یک سیستم در شبکه IPv6 می کند. اگر آن سیستم فعال باشد اقدام به ECHO reply به آدرس جعل شده multicast گروه سیستم های عضو آن شبکه می نماید که در نتیجه توسط همه سیستم های عضو در آن لینک دریافت خواهد شد و مهاجم با اجرای همزمان و موازی تعدادی از این درخواست ها می تواند ترافیک غیرمعتبر سنگینی را روی شبکه ایجاد نماید.


حملات و راه حل ها در شبکه IPv6

ابزارهای تست امنیتی شبکه IPv6


موضوع استفاده همزمان 4 و 6 و IPv6 Transition & Co-existance Sterategies

برای بهره برداری و استفاده از IPv6 در شبکه های جاری IPv4 سه استراتژی اصلی وجود دارد :

روش Dual stack : استفاده همزمان از IPv4 و IPv6 روی تجهیزات و سیستم های متصل به شبکه

روش Tunneling : انتقال ترافیک IPv6 روی زیرساخت IPv4 موجود بوسیله تونل های اتوماتیک یا دستی

روش Translation : برقراری ارتباط زیرساخت IPv6 Only با IPv4 Only


مسیریابی در شبکه IPv6

مسیریابی در شبکه IPv6 مفاهیم و تعاریف مشترک با شبکه IPv4 دارد. جداول مسیریابی در هاست های IPv6 در ابتدای آدرس گرفتن و عضویت در شبکه براساس ورودی های دستی و Routing Adveritsement دریافت شده از روتر شبکه تشکیل می شوند و از آن ها برای تعیین و تشخیص next-hop address و next-hop interface استفاده می شود. بازدهی عملیات مسیریابی یک روتر در مقایسه IPv6 و IPv4 بیشتر به پیاده سازی نرم افزاری آن روی سیستم عامل آن برند باز می گردد، بطور کلی با توجه به فضای عظیم IPv6 و ارتباطات مستقیم و مسیریابی درختی آن استفاده از IPv6 در مقیاس گسترده با نودهای زیاد و/یا در اینترنت بازدهی بهتری برای کاربر نهایی دارد. تعریف مسیرها در جداول مسیریابی معمولاً در 2 نوع اصلی استاتیک (دستی) و دینامیک (اتوماتیک) دسته بندی می شود ، همچنین مسیریابی می تواند بجای توجه به مقصد بصورت policy-based باشد یعنی براساس شرایط و قواعد تریف شده مسیر تعیین شده ای به بسته IP معرفی شود.


روند انتقال و مهاجرت IPv6 adoption & deployment

از سال ها پیش انتقال به زیرساخت IPv6 بصورت استراتژی ملی بسیاری از کشورهای توسعه یافته و درحال توسعه در حوزه ICT در آمده است. برای مثال ایالات متحده در سال 2005 برنامه ای برای انتقال و اتصال کل زیرساخت آژانس های فدرال به backbone شبکهIPv6 تهیه و اجرایی کرد که تا سال 2008 انجام شد. برنامه های مشابه این هم در ایالات متحده هم در سایر کشورها به جدیت دنبال می شوند. حتی Department of Defense (DoD) (وزارت دفاع) آمریکا دوره و مدرک تخصصی DoD IPv6 product certification ارایه می دهد.

تقریباً تمام سیستم عامل ها و تجهیزات شبکه برای پشتیبانی کامل از IPv6 تجهیز و بروزرسانی شده اند و هرکدام از ارایه دهندگان برندهای مطرح در این حوزه نیز دوره ها و مدارک تخصصی IPv6 را در آموزش های تخصصی خود اضافه کرده اند. کلیه regional Internet registry (RIR)ها و سازمان های مشابه بصورت فعال در حال توسعه و ترویج زیرساخت IPv6 هستند.

اما چرا انتقال به IPv6 در ابعاد ملی مهم است؟

تمام شدن آدرس های IPv4 و فضای آدرس بسیار بزرگتر امکان تخصیص آدرس معتبر global unicast به همه نودها را بدون نیاز به NAT و پروکسی و روش های اینچنینی فراهم می آورد. هر نود اعم از کامپیوترها ، موبایل ها ، دستگاه های هوشمند و ... در کل زیرساخت شبکه یک کشور یک آدرس معتبر می گیرد و بصورت مستقیم قابل دسترس و داشتن دسترسی است. بخصوص با رشد حوزه IoT و میل به سمت هوشمند و متصل شدن همه چیز و مفاهیمی مثل شهرهای هوشمند و کارخانه های هوشمند و ... این موضوع اهمیت خود را بیشتر نمایان می کند. IPv6 همانطور که قبلاً اشاره شد امکانات خاصی برای mobility و تغییر مکان روی شبکه های مختلف دارد که برای این تعاریف و دنیای جدید سایبری بسیار با اهمیت است.IPv6 بازمهندسی شده است و بجز مسئله تعداد آدرس ها طبیعتاً در این فرآیند مزایایی نسبت به نسخه قبل خود قبلی خود پیدا کرده است. برای مثال ساده و منطقی تر بودن هدر و بسته IPv6 و قابلیت توسعه امکانات تکمیلی روی هدر و همچنین حذف فرآیندهایی مثل NAT و CGN پروکسی با توجه به اختصاص آدرس معتبر قابل مسیریابی به هر نود سبب بهینه تر شدن و کاهش تاخیر ارتباطات هم برای مصرف کننده نهایی و هم برای خدمات دهنده شده است.

برای مدیران شبکه نیز Stateless Auto Configuration و مسیریابی درختی آدرس های معتبر و ثابت و عدم نیاز به NAT و ... مزایایی دارد اما باید توجه کرد که در تمام بررسی ها و تحلیل ها عامل انسانی از بعد عدم اطلاع ، آگاهی و آموزش نگرانی ها از ریسک این تغییر از دلایل کندی مهاجرت به IPv6 عنوان شده اند ، علاوه بر این با وجود تقریباً ثابت بودن فرآیند و روش های مسیریابی و ارائه خدمات در لایه های بالاتر روی IPv6 ، تجربه و تخصص روی IPv4 و مسایل امنیتی و جزئیات پروتکل آن هنوز بیشتر بوده و هنوز انگیزه جدی برای نیروی انسانی متخصص و سازمان ها و خدمات دهندگان برای این مهاجرت ایجاد نشده است.

گوگل براساس کاربران و Ripe براساس ASها میزان انتقال به IPv6 را بصورت زنده و با نمودار اعلام می کنند. درحقیقت آماری که گوگل اعلام می کند نمایانگر وضعیت و میزان استفاده و آماری که Ripe (و موسسات مشابه) اعلام می کند براساس میزان پشتیبانی زیرساخت هستند.

آدرس های مرتبط در Ripe :

- https://labs.ripe.net/tools

- http://v6asns.ripe.net/v/6

- https://ipv6ripeness.ripe.net/

در نمودار بالا به نقل از ripe ، دقت شود نمودار برمبنای درصد است و درصد ASهایی که IPv6 را پشتیبانی می کنند نسبت به درصد کل AS های آن کشور است. به همین دلیل در برخی موارد مثل ایران یا عربستان سعودی با توسعه زیرساخت اینترنت درصد IPv6ها نسبت به کل کمتر شده که موجب نزول نمودار آن شده است، وگرنه تعداد ASهایی که از IPv6 استفاده می کنند بیشتر شده اند.برای دسترسی به آمار گوگل که براساس میزان کاربران و سرویس های متصل با IPv6 است نیز می توان از آدرس ذیل استفاده نمود :

- https://www.google.com/intl/en/ipv6/statistics.html

و اینجا هم آمار بسیار خوبی هست : https://ipv6-test.com/stats


جزوه IPv6 را می توانید از اینجا دانلود فرمایید که متن بالا خلاصه شده ای از آن است.


IPv6شبکهامنیتمسیریابیnetworking
هوتن القاس پور
شاید از این پست‌ها خوشتان بیاید