شبکه Anycast، روشی برای آدرسدهی و مسیریابی شبکه است که میتوان یک آدرس آی پی را به چندین سرور در یک شبکه نسبت داد و درخواستهای دریافتی را به مکانهای متفاوتی از جمله “Node” هدایت نمود.
ایده طراحی Anycast از آنجا شکل گرفته که دادهها بر اساس مکانی که کاربر، درخواست را ارسال نموده، به نزدیکترین سرور ارسال گردد. با این کار، کاربر میتواند باعث کاهش تأخیر شبکه شود و مدت زمان لازم برای انتقال داده را کاهش دهد.
Anycast به طور مداوم در برنامههایی مانند DNS و CDN مورد استفاده قرار میگیرد و با تصمیمگیریهای خود در مورد مسیریابی، به بهبود عملکرد شبکه کمک میکند.
Anycast در زمینه CDN، به طور معمول ترافیک ورودی را به نزدیکترین دیتاسنتر جهت پردازش به صورت کارآمد، هدایت میکند. مسیر انتخابی این امکان را برای شبکه Anycast فراهم میکند که در صورت مواجهه با حجم بالای ترافیک، شلوغی شبکه و حملات DDoS انعطافپذیر باشد.
عملکرد Anycast چگونه است؟
برای درک بهتر از چگونگی عملکرد Anycast، ابتدا باید بدانیم اطلاعات از طریق اینترنت چگونه ارسال میشوند. به طور خلاصه میتوان گفت اینترنت از چندین لایهی شبکه متشکل از لینکها، روترها و end host ها تشکیل شده است. وقتی اطلاعات بر روی بستر اینترنت قرار میگیرند، به قطعات کوچکتر به نام packet تبدیل میشوند.
حال وظیفه روتر است که به این پکتها (packet) کمک کند تا به آرامی از طریق شبکه منتقل شوند. قابل ذکر است هر router، دارای یک مسیر انتقال خاص برای هر آدرس IP میباشد.
چندین سرور با کمک Anycast میتوانند آدرس IP عمومی یکسانی را اعلام و به اشتراگ بگذارند. به عنوان مثال، مقصد آدرس آی پی 1.2.3.4 میتواند به طور همزمان هم برای یک Cloud Node در توکیو اعلام شده باشد و هم برای یک Node در لندن، سنگاپور و کشورهای دیگر. این امر منجر به کاهش زمان تاخیر و توزیع ترافیک در Node های مختلف میگردد.
Anycast، پکتها را از نظر جغرافیایی به نزدیکترین سرور و بر اساس مسیرهای Border Gateway Protocol هدایت میکند. زمانی که یک روتر که به مشتری نزدیک است، درخواست مسیری به سمت IP را دارد، مسیرهای اعلام شده مختلفی را دریافت میکند و کوتاهترین مسیر را انتخاب میکند.
سیستمها همواره با استفاده از Anycast، کوتاهترین مسیر را انتخاب میکنند. در صورت بروز مشکل در یک node، کوتاهترین مسیر بعدی مشخص میشود و بدون نیاز به تغییر آدرس IP، ترافیک مجددا هدایت میشود.
مسیریابی شبکه Anycast قادر است درخواستهای ورودی برای کانکشن را از طریق چندین دیتاسنتر، مسیریابی کند. زمانی که درخواستی به یک آدرس IP مرتبط به شبکه Anycast ارسال میشود، کاری که شبکه انجام میدهد این است که دادهها را بر اساس اولویتبندی توزیع کند.
در این فرایند در راستای دستیابی به کاهش زمان تاخیر، به طور معمول نزدیکترین دیتاسنتر به درخواست کننده انتخاب میگردد. Anycast یکی از پنج پروتکل اصلی شبکه که در پروتکلهای اینترنت مورد استفاده قرار میگیرد، میباشد.
چرا بهتر است از شبکه anycast استفاده کنیم؟
در صورتی که تعداد زیادی درخواست به صورت همزمان به یک سرور مبدا (origin server) ارسال شود، ممکن است سرور به این دلیل که در معرض ترافیک زیادی قرار میگیرد، دیگر قادر به پاسخگویی موثر به درخواستهای ورودی مازاد نباشد.
شبکه Anycast این امکان را فراهم میآورد که به جای این که یک سرور Origin در معرض ترافیک زیادی قرار گیرد، میتوان بار را در سایر دیتاسنترهای موجود که قابلیت پردازش و پاسخ به درخواستها را دارند، پخش کرد.
این روش میتواند از اختلال شبکه و همچنین قطعی سرویس برای مشتریانی که برای سرور مبدا (origin server) درخواست ارسال میکنند، جلوگیری به عمل آورد.
مزایای Anycast
- کانکشن سریع: کاربران به نزدیکترین Node هدایت میشوند.
- توازن بار یا load balancing: همه سرورها قادر به پردازش و پاسحگویی به درخواستها میباشند و همچنین بروز شکست و عدم موفقیت به جای DNS از طریق آدرس IP انجام میشود.
- مدیریت و تنظیمات ساده: پیکربندی سرور DNS میتواند بین تمامی Node ها توزیع شود.
- کاهش حملات DDoS: بعد از فیلتر کردن قسمت زیادی از حملات، باقی مانده ترافیک حمله بین چندین دیتاسنتر توزیع میشود و مانع از ایجاد حجم زیاد ترافیک در یک منطقه میشود.
معایب Anycast
- هزینههای زیاد: مدیریت مسیریابی بسیار پر هزینه است.
- محدودیت های مسیریابی IP: انی کست با Load و سایر متریکهای کاربردی سازگار نیست.
- چالش بهکارگیری و پیادهسازی: پیادهسازی Anycast مستلزم داشتن دانش و مهارت فنی جهت مدیریت میباشد.
تفاوت Anycast و Unicast
بیشترین قسمت اینترنت از طریق یک برنامه مسیریابی به نام Unicast کار میکند. در Unicast، هر Nodeی که بر روی شبکه قرار دارد، یک آدرس IP اختصاصی دریافت میکند. میتوان گفت شبکههای خانگی و ادارات از Unicast استفاده میکنند.
زمانی که یک رایانه به شبکۀ وایرلس کانکت میشود، و پیامی تحت عنوان “این آدرس IP در حال استفاده است” را دریافت میکند، به این معنی است که تداخل IP صورت گرفته، زیرا یک کامپیوتر دیگر بر روی همان شبکه Unicast از همان آدرس IP استفاده میکند. این حالت در اکثر مواقع، مجاز نمیباشد.
زمانی که یک CDN از آدرس Unicast استفاده میکند، ترافیک مستقیما به سمت یک Node خاص هدایت میشود. قابل ذکر است این امر به هنگام وقوع ترافیکهای خیلی حجیم مانند حملات DDoS، منجر به ایجاد یک آسیبپذیری میگردد.
از آنجا که ترافیک، مستقیما به سمت یک دیتاسنتر خاص هدایت میگردد، ممکن است در آن لوکیشن و یا اطراف آن، ترافیک بسیار حجیمی رخ دهد، که گفتنی است به طور بالقوه منجر به Denial of Service نسبت به درخواستهای قانونی میگردد.
استفاده از Anycast به این معناست که شبکه میتواند بسیار مقاوم باشد. زیرا همیشه ترافیک، بهترین مسیر را انتخاب میکند و کل دیتاسنتر میتواند به صورت آفلاین درآمده و ترافیک به صورت خودکار به سمت یک دیتاسنتر Proximal هدایت شود.
نقش شبکه Anycast در کاهش حملات دیداس چیست؟
بعد از این که سایر ابزارهای کاهش حملات DDoS، قسمتی از ترافیک را فیلتر نمودند، نوبت به Anycast می رسد. Anycast، باقیمانده ترافیک را در چندین دیتاسنتر توزیع میکند و مانع از این میشود که یک منطقه با حجم بسیار زیادی ترافیک روبرو گردد. در صورتی که ظرفیت شبکه Anycast، بیشتر از ترافیک حمله بیشتر باشد، میتوان به صورت کاملا موثر، حملات را کاهش داد.
در اکثر حملات DDoS، از “bot” یا “zombie” استفاده میشود، تا یک botnet را تشکیل دهند. این رباتها قادر هستند در سرتاسر وب پراکنده شوند و ترافیک زیادی را ایجاد کنند تا دستگاه متصل به Unicast را تحت الشعاع قرار دهند.
یک Anycasted CDN، شبکه دریافت کننده را طوری افزایش میدهد که ترافیک ناشی از Denial Of Service یا همان (dos) که توسط botnet ایجاد شده، به وسیلهی دیتاسنترهای CDN جذب میگردد. در نتیجه با افزایش اندازه و ظرفیت شبکه، استفاده از DDoS در مقابل کسانی که از CDN استفاده میکنند، سختتر و سختتر میگردد.
راهاندازی یک شبکه Anycaste، کار سادهای نیست. پیادهسازی صحیح آن، مستلزم آن است که یک CDN provider، سخت افزار شبکهی خود را داشته باشد و مسیرهای شبکه خود را طوری تنظیم کند که ترافیک بین چندین منطقه قرار نگیرد.