پیرو حملات DDoS در ایران و رویداد #سوارابرها، بارها دیدهشده افرادی که خیلی هم در حوزهی خودشون متخصص هستن، در تفاوت خدمت DDoS Protection برای سرویسهای IaaS که از منظر شبکه بصورت Unicast ارائه میشه، با نحوهی DDoS Protection برای سرویسهای CDN که معمولن از منظر شبکه بطور Anycast پیادهسازی میشن، براشون سوء تفاهم شدهبود.
//این مطلب خیلی یهویی و کوتاه نوشته شده :)) و سعی کردم خیلی از جزئیات فنی که ممکنه حوصلهسربر باشه رو ساده بیان کنم. ضمنن مطلب بر اساس درک و تجربه شخصی بنده بر اساس اطلاعاتی که منشتر شده هست.
در پیادهسازی های Unicast، حملات DDoS بسیار موفق هستند چون میتونن تمامی منابع حمله رو، متمرکز کنن روی یک یا چند نقطه [فیزیکی] (مثلن کل IPهایی که با BGP در دنیای اینترنت از یک محل اعلان میشن) و خیلی عامیانهش اینکه لولههای اینترنت اون نقاط رو پر کنن.
حالا هرچقدر هم که تکنولوژی DDoS Protection/Mitigation و scrubbing پیشرفته باشه، اما بخاطر طبیعت سرویس IaaS، میشه گفت راهی جز افزایش دائمی پهنای باند وجود نداره و گاهی ممکنه پهنای باند زیرساختهای بزرگ پر بشه و مجبور به blackhole کردن بشن. اتفاقی که بارها در دنیا برای سرویسدهندههای بزرگ IaaS هم بطور روزانه رخ میده و بعنوان یکی از مخاطرات اینترنت شناخته شده.
در این شرایط، نه تنها پهنای باند سرویسدهنده مهم هست، بلکه گنجایش سرویسدهندههای بالادستِ اون (upstream) هم خیلی مهمه؛ اتفاقن گاهی حملات گسترده روی upstreamها هست که باعث اختلال برای مشترکین اون سرویسدهنده (downstreamها) میشه و اون upstream ممکنه مجبور به blackhole کردن ترافیک بشه و خسارت موقتی رو ترجیح بده به خسارت سنگینتر تا بتونه راهی پیدا کنه.
اما در پیادهسازیهای Anycast، مثلن سرویسهای CDN، بخاطر اینکه اون IPها از نقاط متعددی در دنیا بصورت یکسان اعلان میشن، باعث میشه که ترافیک پخش بشه و حتا امکان scrubbing در نقاط مختلف دنیا براحتی وجود داشته باشه و حمله در نزدیکترین نقطه دفع بشه. برای همین هست که خیلی پیشنهاد میشه حتا قبل اینکه A record های سرویس در DNS ثبت بشه، در صورت امکان سرویس رو پشت یک Anycast CDN آورد.
خوندن این مطلب دربارهی Anycast خالی از لطف نیست.
یکسری مطلب دربارهی DDoS قبلن نوشته شده که در قسمت نوشتههای مرتبط لیست شدن.
آشنایی بیشتر با زیرساخت شبکه، کمک میکنه که موقع معماری یک سیستم (نه فقط یک Application) اون شخص بدونه که از شبکه چه توقعاتی داشته باشه و در توسعهی محصول، مسیر راحتتری رو داشته باشه؛ اگر اینطور نباشه، قضیه معماری که خشت اول رو کج نهاد میشه و در درازمدت دردسرهای بیشتری بوجود میاد. همینطور موقع رفع خطاها هم این دانش خیلی مفید خاهد بود
بنظرم خیلی خوب میشه مبانی اولیه شبکه، بخشی از مسیرِ برنامهنویس شدن (و تخصصهای مرتبط) باشه و در DevOps (و شاخههای مرتبط با اون) حتا خیلی فراتر از مبانیِ اولیه درک بشه. شایدم اینطوره و گاهی جدی گرفته نشده. (اینکه یکی Network programming یا Sockets programming بلد باشه لزومن به این معنی نیست که به اندازهای که باید از مفاهیم زیرساخت شبکه بدونه، میدونه!)
ممنون بابت توضیحات
بک سوال بود که ذهن من رو درباره اتفاق دیروز حمله به زیرساخت آروان درگیر کرده بود اونم این هست که آیا روی دامنه و سرویس های خود ابرآروان سرویس CDN و DDOS Mitigation فعال نبوده؟
اگر بوده پس چطور این حجم درخواست تونسته سرویس رو مورد تاثیر جدی قرار بده و از دسترس خارج کنه که باعث شده بود تقریبا از اکثر ISP ها سرویس استریم دردسترس نبوده
آیا لینک ورودی به استریم و پنل کاربری ابرآروان کامل saturate شده بوده یا CDN و ddos mitigation توانایی هندل کردن این حجم pps رو نداشته؟
البته اگر هم سیستم توانایی هندل کردن رو نداشته باشه میتونه از دید بنده طبیعی باشه هیچ شرکتی در دنیا نیست که ادعا کنه روی هر rate ای میتونه جلوی این حمله رو بگیره.
امیدوارم یکی از بچههای فنی تیم آروان پاسخ بدن؛ بنده صرفن بر اساس برداشت و تجربه خودم این مطلب رو نوشتم و اطلاعی از جزئیات پیادهسازی فنی این شرکت ندارم.
سلام
چند تا نکته رو در نظر بگیرید:
1. سرویس CDN و DDoS Protection به صورت یک لایه جلوی سرویس هایی مثل وب و استریمینگ عمل میکنه. در صورتی که Origin server از دسترس خارج بشه عملن برای محتوای کش نشده کارایی نداره.
2. کلاستر لایو استریمینگ آروان تو دیتاسنتر مبین نت قرار داره که دیروز بخاطر اتکهای شدید از دسترس خارج شد.
3. همونطور که توی متن توضیح داده شده سرویس DDoS Protection آروان روی محصول CDN هست و به شکل توزیع شده (Anycast) طراحی شده و سرویسی مثل IaaS عملن امکان استفاده از اون رو نداره.
4. ما یه سری راهکار برای حل مشکل DDoS روی سرویس IaaS پیاده سازی کردیم و به زودی پروداکشنش میکنیم.