آشنایی با Anycast، کاربردها، مزایا و معایب
تا چه اندازه با معماری Anycast و تأثیر آن در جستجو و مرورهای اینترنتی آشنایی دارید؟ اگر در زمان جستجو در وب متوجه شدهاید که وبسایتهای موردنظر شما چقدر سریع و یکپارچه بارگذاری میشوند، احتمالاً فکر میکنید که بهخاطر سرعت اینترنت خودتان بوده است. آنچه باید بدانید، این است که خیلی عوامل دیگر، ازجمله شبکه Anycast میتواند به سریع و کارآمدتر بودن جستجوها و گشتوگذار در اینترنت کمک کند. Anycast یک تکنیک مسیریابی است که باعث میشود ترافیک در شبکه اینترنت به سرورهای یکسان هدایت شود. در ادامه این مطلب از ابر زَس بیشتر با طراحی Anycast آشنا شده و میبینیم که چطور کار میکند.
Anycast چیست؟
برای درک معماری Anycast بهتر است در ابتدا ببینیم که Anycast چیست و چه کاری انجام میدهد. در پروتکل اینترنت یا همان IP، سه نوع روش آدرسدهی شامل Unicast، Multicast و Anycast استفاده میشود. Anycast را تحت عنوان IP Anycast و مسیریابی Anycast (یا Anycast Routing) هم معرفی میکنند. طراحی Anycast به این صورت است که چندین سرور، مجوز بهاشتراکگذاری یک آدرس IP یکسان را دریافت کرده و همه این سرورها میتوانند با یک آدرس IP شناسایی شوند.
بهعبارتدیگر، Anycast نوعی روش آدرسدهی و مسیریابی است که درخواستهای دریافتی در آن به مکانهای مختلف که تحت عنوان گرهها (Nodes) شناخته میشوند، هدایت خواهند شد. Anycast در شبکه توزیع محتوا (یا سرویس CDN) ترافیک ورودی را به نزدیکترین دیتاسنتر که ظرفیت پردازش کارآمدی داشته باشد، ارسال میکند. ازآنجاییکه مسیریابی به شکل انتخابی صورت میگیرد، شبکه Anycast میتواند از نظر حجم بالای ترافیک، ازدحام شبکه و مقابله با حملات DDoS عملکرد منعطفی داشته باشد.
معماری Anycast چگونه کار میکند؟
همانطور که گفتیم، معماری Anycast به این صورت است که درخواستهای کاربران به سرور را به نزدیکترین گرهها هدایت میکند. کاری که این شبکه انجام میدهد، آن است که تأخیر اجرای درخواستها را به حداقل میزان آن کاهش دهد. روند انجام این کار در شبکه Anycast در دو مرحله اجرا میشود که عبارت است از:
- اعلام چندین سرویس برای بهاشتراکگذاری یک آدرس IP یکسان
- دریافت درخواست مرورگر کاربران توسط روتر و انتخاب نزدیکترین مسیر برای رسیدن به سرور
مسیریابی در Anycast به این صورت است که میتواند مسیرهای متنوعی را برای درخواستهای ورودی پیدا کند. با ورود درخواستها به یک آدرس IP مشخص که با Anycast مرتبط است، شبکه، دادهها را بر اساس روشهایی اولویتبندی میکند. مهمترین عامل هدایت درخواستها، مسافت است که نزدیکترین گرهها برای دریافت آنها انتخاب شود. اما علاوه بر زمان، عوامل دیگری هم در طراحی و معماری Anycast برای هدایت درخواستها نقش دارند که عبارت است از:
- در دسترس بودن سرور
- تعداد اتصالات
- زمان پاسخگویی
Anycast چه کاربردی دارد؟
از معماری Anycast میتوانید در موارد متعددی استفاده کنید. برای مثال، برنامههای مختلف ازجمله ارائهدهندگان سرویس CDN یا سرورهای DNS ابری ممکن است از Anycast استفاده کنند. مهمترین کاربردهای شبکه Anycast را میتوان در موارد زیر بررسی کرد.
کاربرد در شبکههای توزیع محتوا یا CDN
در شبکههای CDN از anycast برای توزیع محتوا در سرورهای مختلف در مکانهای متفاوت استفاده میشود. با ارسال درخواست محتوا توسط یک کاربر به CDN، درخواست بر اساس توپولوژی شبکه به نزدیکترین سرور ممکن هدایت و ارسال خواهد شد. این روند باعث میشود تا اجرای درخواست با کمترین تأخیر همراه شود و عملکرد کلی بهبود پیدا کند. علاوه بر این در سرویسهای دیگر که به صورت موازی در چندین دیتاسنتر پیادهسازی شده باشند، از معماری Anycast استفاده میشود.
سرورهای DNS
برای ارائه نتایج سریع و قابلاعتماد در سرورهای DNS از anycast استفاده میشود. با ارسال درخواست DNS توسط کلاینت، درخواست به کمک شبکه Anycast و بر اساس موقعیت، به نزدیکترین سرور DNS ارسال میشود. با این روش، کلاینت میتواند مطمئن باشد که نتایج سریع و دقیق DNS را دریافت میکند. این مسئله در مرور وب و سایر برنامههای اینترنتی، اهمیت قابلتوجهی دارد.
محافظت در برابر حملات DDoS
یکی دیگر از مهمترین کاربردهای Anycast آن است که میتوان از آن برای محافظت در برابر حملات DDoS استفاده کرد. این کار با توزیع ترافیک در چندین سرور امکانپذیر میشود. در زمان بروز یک حمله DDoS، ترافیک به طور خودکار به نزدیکترین سرور در دسترس هدایت شده و با کاهش تأثیر حمله، از اختلال در سرویس جلوگیری میشود.
تفاوت معماری Anycast با Broadcast ،Unicast و Multicast چیست؟
Anycast تنها روش آدرسدهی در اینترنت نیست؛ بلکه روشهای مختلف دیگری هم برای مسیریابی ترافیک وجود دارد. مهمترین روشها، Broadcast و Unicast هستند. پیشازاین، معماری Anycast و جزئیات نحوه کار کردن آن را بررسی کردیم. روش کار سایر روشهای مسیریابی را در ادامه میبینیم.
در روش Unicast از ارتباط یکبهیک استفاده میشود. روند انجام این کار به این صورت است که هر آدرس مقصد، بهعنوان یک نقطه پایانی و گیرنده منحصربهفرد در نظر گرفته میشود. معمولاً استقرار DNSهای سنتی بر اساس روش آدرسدهی unicast پیکربندی شده است.
در روش Multicast یک ارتباط یک به چند برقرار میشود. به عبارت دیگر در این روش یک فرستنده اقدام به برقراری ارتباط با گروه مشخصی از دستگاهها میکند که در گروه Multicast عضو شدهاند.
میتوان گفت که روش Broadcast تا حدودی در نقطه مقابل Unicast قرار میگیرد. در آدرسدهی Broadcast، یک ارتباط یک به همه برقرار میشود. در این روش، دیتاگرامها با استفاده از آدرس Broadcast از یک فرستنده واحد به تمام نقاط پایانی دیگر که در یک انتقال به هم متصل هستند، هدایت و ارسال میشوند. در این شبکه، درصورتیکه نیاز باشد، دیتاگرامها به شکل خودکار برای تمام بخشهای شبکه که گیرندههای مناسب داشته باشند، تکرار میشود.
همانطور که اشاره کردیم در روش Anycast ارتباط یک به نزدیکترین گره برقرار میشود و البته به طور دقیقتر باید گفت که در مسیر ارتباط، موارد دیگری از جمله در دسترس بودن سرور، تعداد اتصالات تا دستیابی به سرور و زمان پاسخگویی هم دخیل هستند.
مزایای Anycast
میدانیم که معماری Anycast شامل یک تکنیک شبکهای است که اجازه میدهد تا چندین ماشین یک آدرس IP یکسان را به اشتراک بگذارند. کاری که در شبکه Anycast انجام میشود میتواند بسیار مفید باشد؛ زیرا به کاهش تأخیر در هدایت درخواستها کمک کرده و منجر به بهبود عملکرد میشود. اما این شبکه مزایای متنوع دیگری هم دارد که عبارتاند از:
بهبود سرعت
زمانی که از Anycast در مسیریابی استفاده میشود، ترافیکی که به گره ارسال میشود به نزدیکترین گره هدایت شده و درنتیجه تأخیر بین درخواست کلاینت و خود گره، کاهش پیدا میکند. این روش تضمین میکند که بدون توجه به آن که کلاینت اطلاعات موردنظر خود را از کجا درخواست کرده، سرعت کلی بهبود پیدا کند.
ارتقای عملکرد
ازآنجاییکه در طراحی Anycast چندین سرور در سراسر جهان با استفاده از IP یکسان قرار میگیرند، عملکرد کلی سیستم هدایت درخواستها در اینترنت بهبود پیدا میکند. با استفاده از این روند، درصورتیکه یک سرور خراب شده یا آفلاین شود، ترافیک به نزدیکترین سرور بعدی هدایت میشود.
کاهش و جلوگیری از حملات DDoS
یکی از پرکاربردترین حملات مخرب در دنیای اینترنت که میتواند روند کار سرورها یا کامپیوترها را با اختلال مواجه کند، حملات DDoS است. این دسته از حملات توسط باتنتها و با ایجاد ترافیک زیاد و غیرقابلپیشبینی، دستگاههای هدف را مورد حمله قرار میدهند. استفاده از Anycast در این شرایط، باعث میشود تا هر سرور بتواند بخشی از حمله را جذب کرده و درنتیجه فشار وارد شده به سرور هدف را کاهش دهد.
لود بالانسینگ
مزیت لود بالانسینگ یا تعادل بار در معماری Anycast زمانی مشخص میشود که چندین گره (Node) در فاصله جغرافیایی یکسانی از درخواست کاربران وجود دارند. این ویژگی موجب میشود درخواستهای ارسال شده به سمت یک سرورها، بر اساس سیاستهای تعریف شده برای لود بالانسینگ بین گرههای مختلف توزیع شوند.
مقیاسپذیری
مزیت دیگر Anycast آن است که بدون آن که آدرسهای IP یا تنظیمات شبکه تغییر پیدا کند، اجازه میدهد تا در مواقع لزوم سرورها را اضافه کنند. این کار باعث میشود تا اضافهکردن ظرفیت برای مدیریت بارهای ترافیکی فزاینده یا گسترش خدمات به مناطق جغرافیایی جدید، آسانتر شود.
معایب Anycast
در کنار مزایای متعدد و نکات مثبتی که درباره معماری Anycast وجود دارد، برخی نقاط ضعف را هم میتوان نام برد. مهمترین معایب یا نکات منفی که درباره Anycast میتوان به آنها اشاره کرد، شامل موارد زیر است:
دشوار بودن اجرا
پیادهسازی IP anycast میتواند کار سخت و پیچیدهای باشد، چراکه به سیستم سختافزار اضافی، ارائهدهندگان بسیار قابلاعتماد و مسیریابی مناسب ترافیک، نیاز خواهید داشت.
کنترل محدود
احتمالاً یکی از مهمترین نکات منفی که در کار با مسیریابی Anycast با آن مواجه میشوید، کنترل محدود روی آن است. کار با Anycast نیازمند توپولوژی شبکه و جداول مسیریابی BGP است که توسط ISPها و اپراتورهای شبکه کنترل میشوند. این نیازمندیها به این معنی است که احتمالاً سرویسها گاه نمیتوانند نحوه هدایت ترافیک به سرورهای خود را کنترل کنند.
انعطافپذیری محدود
ازآنجاییکه شبکه Anycast به سرورهای یکسان و با آدرسهای IP یکسان نیاز دارد، احتمالاً انعطافپذیری هنگام استقرار و مدیریت سرورها محدود میشود. سرویسها باید از یکسان بودن سرورها و پیکربندی مشابه آنها اطمینان حاصل کنند که این مسئله در محیطهای پیچیده، چالشبرانگیز خواهد بود.
معماری Anycast چگونه به غلبه بر حملات DDoS کمک میکند؟
همانطور که قبلاً گفتیم، یکی از مزایا و کاربردهای معماری Anycast آن است که میتواند از حملات DDoS جلوگیری کند. کار Anycast برای غلبه بر حملات DDoS زمانی آغاز میشود که سایر ابزارهای مقابله با این حملات، برخی از ترافیک حمله را فیلتر کرده باشند. پس از فیلتر کردن حملات، Anycast ترافیک باقیمانده را در چندین مرکز داده توزیع کرده و از تجمع درخواستها در یک نقطه، جلوگیری میکند. درصورتیکه ظرفیت شبکه Anycast از ترافیک حمله بالاتر باشد، به شکل مؤثری میتواند حملات را کاهش دهد.
در اغلب حملات DDoS، از کامپیوترهای «زامبی» یا «ربات» آسیبدیده برای تشکیل باتنت استفاده میشود. این ماشینها با پراکنده شدن در سراسر وب، میتوانند ترافیک زیادی ایجاد کرده و روند کار یک دستگاه معمولی متصل به Unicast را تحتتأثیر قرار دهند. یک CDN مبتنی بر Anycast مناسب، سطح شبکه دریافتکننده را افزایش میدهد. به این صورت که ترافیک ناشی از حملات DDoS از یک بات نت توزیع شده توسط مراکز داده مختلف CDN جذب میشود. در نتیجه این کار، اجرای کامل حملات DDoS مؤثر علیه هر دستگاهی که از CDN استفاده کند، سختتر خواهد شد.
سخن پایانی
در این مطلب هرآنچه را که درباره معماری Anycast و نحوه کار آن لازم است بدانید، بررسی کردیم. البته باید اشاره کرد که ایجاد یک شبکه Anycast واقعی کار سادهای نیست. سرویس کلود گارد ابر زَس از معماری Anycast برای توزیع درخواستها بین پاپسایتهای CDN بهره میبرد. علاوه بر این، اسکرابینگسنترهای ابر زَس ترافیک آلوده وارد شده به هر پاپسایت را پاکسازی کرده و تنها ترافیک سالم را به سمت سرور مقصد هدایت میکنند.