زوایای پنهان عملکرد IPv6؛ مزایا و تصورات اشتباه

در نوشته ها و گفته های متعدد در رابطه با IPv6 با این عبارت روبه رو می شویم که:

‏IPv6‎‏ عملکرد بهتری نسبت به ‏IPv4‎‏ دارد.

و گاهی ‏در پی این عبارت دلایلی نیز آورده می شود. اما چه میزان این مطلب و دلایلی که در پی آن به عنوان مواردی برای ‏بهبود عملکرد ‏IPv6‎‏ مطرح می شوند، صحت دارند؟ ‏بیان بسیاری از این دلایل شاید تنها در وجهه‌ی عمومی و همراه ساختن عموم جامعه در حرکت به سمت استفاده از IPv6 قانع‌کننده و مقبول باشند اما از لحاظ فنی این انتظار وجود دارد که یک کارشناس حوزه‌ی اینترنت، توانایی استدلال در رد یا قبول هر یک از دلایلی که در پی این عبارت مطرح می شوند را داشته باشد. در این مقاله قصد داریم تا نگاهی فنی تر به این دلایل داشته باشیم.

***

در IPv6 انجام تغییراتی در ساختار و قالب این پروتکل سبب ایجاد بهبود کارایی آن در برخی موارد گشته که عبارتند از:

۱-‏ فضای آدرس دهی بسیار بزرگتر
اولین مزیتی که برای ‏IPv6‎‏ ‏ بیان می شود آن است که ‏IPv6‎‏ فضای آدرس دهی بزرگتری نسبت به ‏IPv4‎‏ ‏داشته و به همین دلیل می تواند تعداد آدرس های بیشتری را فراهم آورد. بله این عبارت درست است! ‏IPv6‎‏ ‏به دلیل ۱۲۸ بیتی بودن قادر است تقریبا ‏‎۳٫۴*۱۰^۳۸‎‏ آدرس ممکن را فراهم کند که با گسترش شبکه ها ‏و افزایش دستگاه هایی که توانایی اتصال به اینترنت را دارند، این مقدار آدرس ‏IP‏ تا مدت های زیادی ‏جوابگوی نیازها خواهد بود. اما این موضوع چه ارتباطی با بهبود عملکرد ‏IPv6‎‏ ‏دارد؟

تصور کنید آنقدر آدرس ‏IP‏ وجود دارد که هر دستگاه می تواند Public IP (آدرس عمومی اینترنی) متعلق به خود را داشته ‏باشد. دقت کنید که گفته شد آدرس Public IP‏. بله دقیقا منظور آدرس های ‏IP‏ ای هستند که در دنیای اینترنت ‏قابل مسیریابی می باشند. به نظر شما زمانی که هر دستگاه بتواند یک آدرس ‏Public IP مخصوص به خود ‏داشته باشد و خود به صورت مستقیم به اینترنت متصل گردد، چه مزیتی وجود خواهد داشت؟

برای رسیدن به جواب این سوال، به چندین سال قبل، زمانی که برای اولین بار احساس شد که آدرس های عمومیِ ‏IPv4‏ رو به اتمام هستند، باز می گردیم. در آن زمان اولین راهکاری که برای نجات ‏IPv4‎‏ ‏از این ‏اوضاع مطرح شد، راهکاری به اسم ‏Network Address Translation‏ یا همان ‏NAT‏ بود.

عملی که این ‏راهکار انجام می داد آن بود که دستگاه‌هایی که در داخل یک ساختار (مثلا دستگاه های داخل یک سازمان یا ‏دستگاه های داخل خانه و یا …) قرار داشتند، برای آن که بتوانند با هم ارتباط برقرار نمایند، از آدرس هایی ‏استفاده می کردند معروف به Private IPv4 (‏RFC1918‎‏) که این آدرس ها در اینترنت قابل مسیریابی نبودند و اگر قرار بود این دستگاه ها به اینترنت متصل ‏شوند و با سایر دستگاه ها در دنیای اینترنت ارتباط داشته باشند، Private IP‏ آن ها توسط ‏gateway‏ آن ساختار (مثلا مودم یا روتر) به یک Public IP‏ ترجمه می شد. به این ترتیب دیگر ‏نیازی نبود که همه‌ی دستگاه های درون یک ساختار یک IP آدرس ‏Public‏ مجزا و مخصوص به خود داشته ‏باشند، بلکه کافی بود به کل ساختاری که دستگاه ها در آن قرار داشتند تنها یک آدرس ‏عمومی IPv4 تعلق ‏گیرد و هر دستگاهی که قصد برقراری ارتباط با اینترنت را داشت، آدرس ‏Private‏ آن به آدرس ‏Public‏ ‏اختصاص یافته به ساختار ترجمه می گشت. ‏ ادامه خواندن “زوایای پنهان عملکرد IPv6؛ مزایا و تصورات اشتباه”

هنر در دنیای شبکه (کابل آرایی)

این عبارت رو بارها و بارها شنیدیم که : ” چیزهای کوچیک منجر به تاثیرات بزرگی میشن!” اولین باری که تصویری مثل تصویر زیر رو دیدم، خیلی خوب معنی این جمله رو درک کردم!

networking cable
تصویر: وبسایت fs

ادامه خواندن “هنر در دنیای شبکه (کابل آرایی)”

آیا باید ICMP رو بلاک کرد؟

خیلی اوقات فکر می‌کنیم هرچی بیشتر محدودیت بذاریم در شبکه و همه‌چی رو ببندیم امنیت بیشتری خواهیم داشت. حتی به ICMP در شبکه‌ی داخلی هم رحم نمی‌کنیم و فکر می‌کنیم با بستنش شبکه رو امن کردیم؛ البته که در برخی نقاط شبکه (PIN) باید اینطور باشه، اما نه همه جا و نه همه‌ی Typeهای ICMP!

در خیلی از مواقع ICMP در رفع مشکل ها کمک شایانی می‌کنه؛ همینطور برخی از ICMP Type ها برای شبکه خیلی حیاتی هستن.

نصفه شب کارشناس پشتیبانی می‌پرسه آیا فلان IP پینگ میشه؟ می‌گیم نمیدونم چون Ping بسته اس….  و اونجا است که اون پشتیبان بیچاره سرش رو میکوبه به میز!

مطالب پیچیدگی در امنیت شبکه و پیچیدگی شبکه کشنده است رو که خاطرتون هست؟

اگر شما هم در همه جای شبکه ICMP رو می‌بندین پیشنهاد می‌کنم این مطلب رو بخونین:
http://shouldiblockicmp.com/

تصویر: این کد رو فقط خدا میدونه!

این کد رو فقط خدا میدونه!

وقتی این کد رو زدم، فقط خودم و خدا میدونستیم که چیه و چیکار میکنه.

الان فقط خدا میدونه 🙂

پیچیدگی شبکه کشنده است!

Ray Ozzie گفته:

پیچدگی کشنده است:

  • چون زندگیِ Developer ها را مشقت بار می‌کند
  • و برنامه‌ریزی، تولید و تست محصول را سخت!

صحبت بالا فقط برای دنیای نرم‌افزار نیست، بلکه به طراحی و پیاده‌سازی شبکه و الِمان‌های شبکه هم مربوط می‌شود. به زبان شبکه می‌توان گفت:
پیچیدگی شبکه کشنده است:
– چون زندگی Network Engineer ها را مشقت بار می‌کند.
– و طراحی، پیاده‌سازی، نگهداری و توسعه شبکه را سخت!

پیچیدگی شبکه

پیچیدگی شبکه چیست؟
یک شبکه‌ی پیچیده چگونه است؟

این سوال جواب دقیقی ندارد اما حاصل تحقیقات NCRG از موارد زیر نام می‌بَرد:

  • خودمختاری: در یک شبکه، پروتکل‌ها و روال‌ها بدون کنترلی خارجی (انسانی) درحال فعالیت هستند؛ مثل یک پروسه‌ی روتینگ، یا مکانیزم‌های خودکار Failover. فعل و انفعالات بین این مکانیزم‌ها ممکن است منجر به یک رفتار و نتیجه‌ی پیچیده در شبکه شود.
  • غیرقابل پیش‌بینی بودن: امکان بروز پیامدی وسیع حتی در اثر یک تغییر کوچک. مثلاً، در یک شبکه‌ی پیچیده، دست و دلِ Engineer در تغییرات می‌لرزد چون یک تغییر خیلی کوچک در یک روتر محلی، ممکن است منجر به لوپ، قطعی طولانی و خسارت‌های فراوان شود.
  • شکنندگی: مشابه مورد قبل؛ یک تغییر یا ورودی خاص می‌تواند منجر به ریزش کل یا بخش عظیمی از سیستم شود.
  • مشهود بودن: رفتار هر جزء شبکه، به نحوی متفاوت با چیزی است که شبکه بعنوان یک سیستم بزرگ عمل می‌کند. مثلاً تفاوت پروتکل مسیریابی در نقاط مختلف شبکه، و عدم consistency در سیاست‌های شبکه در نقاط مختلف با کاربرد مشابه مانند شعب کاملاً مشابه در یک شبکه‌ی بانکی
  • غیر خطی بودن: به معنی اینکه خروجیِ یک ورودی/تغییر در شبکه، خطی نخواهد بود.

اینترنت را می‌شود شبکه‌ای پیچیده، اما بزرگ و تنومند دانست، از این لحاظ که، مثلاً اگر برای یک روتر Edge در یک ISP محلی (Tier 4) مشکلی پیش آید، احتمالاً هیچ اثری در کلیت اینترنت نخواهد داشت، اما ماهیت اینترنت در برابر حملات اینترنتی مثل DDoS های پیشرفته شکننده است. حتی در رابطه با شبکه‌ای به وسعت اینترنت، واقعیت این است که نمی‌توان همه‌ی نکات مثبت را بدون هیچ زیانی بدست آورد (سبک/سنگین کردن بین توسعه‌پذیری و ثبات (Stability) یا شکننده بودن)

چگونه پیچیدگی شبکه را بررسی کنیم؟

برای بررسی و اندازه‌گیری پیچیدگی، راهکارها و حتی فرمول‌های متعددی پیشنهاد شده، مثل NetComplex اما هیچ مدل و فرمولی نیست که قادر به ارائه‌ی یک Index صحیح از پیچیدگی شبکه باشد، چرا که عوامل متعددی درگیر این پیچیدگی هستند که قابل اندازه‌گیری نمی‌باشند، مثل عوامل انسانی. و از جنبه‌ی دیگر، خیلی از مواقع ریاضیات در درک واقعیات یک شبکه قاصر است چراکه مبناگذاری محاسبات بر اساس هدفِ کابردیِ یک شبکه، به احتمال زیاد شدنی نیست.

به هر حال، برای بررسی بهتر پیچیدگی در شبکه معمولا دو مدل ۳ و ۴ ضلعی پیشنهاد شده، که مدل ۳ ضلعی آن معمول‌تر می باشد: ادامه خواندن “پیچیدگی شبکه کشنده است!”