021-91014197 call

مروری بر فناوری Anycast

سینا سلطانی
در تاریخ: ۳ آبان، ۱۴۰۰

Anycast روشی برای آدرس‌دهی و مسیریابی شبکه است، که یکی از تکنیک‌های بسیار قدرتمند در CDN برای کاهش تأخیر بارگذاری صفحات وب و حملات هکرها محسوب می‌شود. اگرچه پیاده‌سازی این تکنیک بسیار مشکل و پیچیده است، اما نتیجه نهایی بسیار ارزشمندی، هم برای کاربر و هم ارائه‌دهندگان این سرویس، فراهم می‌کند.

در این مقاله، به مفهوم روش آدرس‌دهی Anycast و مزایای استفاده از آن می‌پردازیم و نحوه عملکرد و کاربرد آن را در زمینه توزیع محتوا شرح می‌دهیم.

Anycast چیست؟

Anycast یک نوع روش آدرس‌دهی و مسیریابی در شبکه‌ است. براساس این فناوری، یک IP می‌تواند به دو یا چند سرور اختصاص داده‌شود، به صورتی که همه سرورها به صورت همزمان در شبکه قابل دسترسی باشند. مزیت این فناوری در انتخاب بهترین مسیر، به‌وسیله مسیریاب‌ها (Routers)  برای دسترسی به سرور مورد نظر است. معیارهایی، مانند میزان فاصله، زمان تأخیر، شلوغی مسیر و Nodeهای بین‌ راه برای این انتخاب تعیین‌کننده هستند.

این تکنیک شبکه‌سازی، به دستگاه‌های متعددی اجازه می‌دهد یک آدرس IP یکسان را با هم به اشتراک بگذارند. براساس مکان درخواست کاربر، مسیریاب‌ها آن را به نزدیک‌ترین دستگاه در شبکه ارسال می‌کنند؛ این کار بسیار سودمند است، زیرا تأخیر (Latency) را کاهش و افزونگی (Redundancy) را افزایش می‌دهد. اگر یک مرکز داده به هر دلیلی آفلاین شود، IP Anycast می‌تواند بهترین مسیر را برای کاربر انتخاب کرده و او را به یکی دیگر از مراکز داده نزدیک به او هدایت کند.

مزایا و معایب IP Anycast چیست؟

آدرس‌دهی به روش IP Anycast مزایای بسیار زیادی دارد، که به همین دلیل CDN اَبر دِراک نیز از معماری Anycast به عنوان یک راهکار موثر در سرویس‌دهی خود بهره می‌برد.

مزایای آدرس‌دهی Anycast

  • سرعت: ترافیک از یک Node (Node) Anycast به نزدیک‌ترین Node موجود مسیریابی می‌شود، که زمان تأخیر بین کاربر و Node موردنظر را بسیار کاهش می‌دهد. این تکنیک، فارغ از اینکه کاربر در کجا قرار دارد، موجب افزایش سرعت دریافت و ارسال اطلاعات می‌شود.
  • افزونگی: Anycast با قراردادن سرورهای متعدد در سراسر جهان و استفاده همه آن‌ها از یک IP یکسان، موجب افزایش افزونگی می‌شود. این کار به ترافیک‌ها اجازه می‌دهد تا در صورتی که یک سرور خاموش یا خراب شد، به نزدیک‌ترین سرور سالم مسیریابی شود.
  • کاهش حملات DDoS: حملات DDoS توسط بات‌نت‌هایی که با ارسال ترافیک زیاد به سمت سرور موجب خرابی آن می‌شود، انجام می‌گیرد. مزیت داشتن یک پیکربندی Anycast در چنین شرایطی این است که هر سرور قادر است بخشی از حمله را جذب کند و باعث کاهش فشار بر روی سرور شود.
  • تعادل بارگذاری: تعادل بار (Load balance) می‌تواند در مواردی که Node‌های متعددی در یک فاصله جغرافیایی یکسان وجود دارد، به کار گرفته شود. این روش نیازمندی‌های منبع را از روی یک Node برداشته و بین Node‌های متعدد پراکنده می‌کند.

معایب آدرس‌دهی Anycast

  • پیاده سازی دشوار: پیاده سازی شبکه به روش IP Anycast بسیار پیچیده و دشوار است و به سخت‌افزارهای اضافی، ارائه‌دهندگان معتبر و مسیریابی مناسب ترافیک نیاز دارد.

پروتکل BGP و AS چیست؟

پروتکل Gateway مرزی (BGP – Border Gateway Protocol) و سیستم‌های مستقل (Autonomous Systems – AS) دو جزء کامل در عملکرد IP Anycast هستند. پروتکل BGP مسیریابی و دستیابی اطلاعات بین ASها را تبادل می‌کند. این روش باعث می‌شود تصمیم‌گیری‌های مسیریابی براساس مسیرها، سیاست‌ها و مجموعه قوانینی که جزء کلیدی IP Anycast هستند، گرفته شوند. در بین مسیریابی BGP، مسیرهای متعددی برای یک آدرس IP یکسان، که به مکان‌های مختلف اشاره می‌کند، وجود دارد.

AS، یک شبکه یا مجموعه‌ای از شبکه‌هاست که همگی توسط مدیر سیستم مدیریت می‌شوند. ASها هر کدام یک ASN (Autonomous System Number) منحصربه‌فرد دارند، که هر ASN امکان تشخیص هر شبکه روی اینترنت را دارد و از آن در مسیریابی BGP استفاده می‌کند. ابزارهایی مانند ExaBGP می‌توانند برای تبدیل پیام‌های BGP به متن یا JSON مورد استفاده قرار بگیرند، که بعدا می‌توان با اسکریپت‌های ساده نیز به آن‌ها رسیدگی کرد.

anycast lab
مثالی از Anycast

Anycast چگونه کار می‌کند؟

همان‌طور که قبلا اشاره شد، Anycast درخواست کاربران را به نزدیک‌ترین Node موجود هدایت می‌کند تا موجب کاهش زمان تأخیر صفحات شود. این روش با دنبال کردن مراحل زیر انجام می‌شود:

  1. نمونه سرورهای متعدد خودشان اعلام می‌کنند که از یک IP یکسان استفاده می‌کنند.
  2. وقتی مرورگر کاربر یک درخواست ایجاد می‌کند، روتر (مسیریاب) آن درخواست را دریافت کرده و براساس مسیر AS، مسیری با فاصله کوتاه‌تر را انتخاب می‌کند.

در Anycast، مسیریابی براساس بهترین و کوتاه ترین مسیر انتخاب می‌شود. این یعنی اگر یک سرور دچار مشکل شود، BGP می‌تواند مسیر بهتر دیگری را انتخاب کند و درخواست را به آن‌جا هدایت کند.

این نکته قابل ذکر است که Anycast تنها براساس فاصله، بهترین مسیر را انتخاب نمی‌کند، بلکه عوامل زیر را نیز در نظر می‌گیرد:

  • در دسترس بودن سرور
  • تعداد اتصالات
  • زمان پاسخگویی
  • و غیره

Anycast و IPv4 در مقابل IPv6

Anycast به طور رسمی در IPv4 پشتیبانی نمی‌شود، اما می‌تواند با استفاده از BGP در آن کار کند. ولی، IPv6 کاملا از Anycast پشتیبانی می‌کند. روترهای IPv6 معمولا تفاوتی بین Anycast و Unicast قائل نیستند، هر چند که باید مسیرهای نزدیک را در آن‌ها به‌طور دستی تعریف کرد.

علاوه بر این، روش‌های مشابهی که در IPv4 استفاده می‌شود را می‌توان در IPv6 نیز مورد استفاده قرار داد. این روش به روترهای آگاه به Anycast وابسته نیست، اما با این وجود ممکن است با مشکلاتی که در بالا اشاره شد، مواجه شود.

Anycast چه کاربردی دارد؟

برای بررسی کاربردهای Anycast چند مثال را با یکدیگر بررسی می‌کنیم:

مثال اول از کاربرد Anycast

جهت دسترسی به یک وب‌سایت پر بازدید مانند Google از کشورهای ایران، آلمان و آمریکا با پیش‌فرض‌های زیر، شرایط زیر اتفاق می‌افتد.

Google در کشور آلمان مالک یک مرکز داده است و در آمریکا چندین مرکز داده دارد. ولی، در ایران مرکز داده‌ای ندارد و نزدیک‌ترین مرکز داده این شرکت به ایران واقع در کشور کویت است.

با این شرایط، کاربران در کشور آلمان به سرورهای مرکز داده گوگل در آلمان و در آمریکا به نزدیک‌ترین مرکز داده متصل خواهند شد. کاربران ایرانی هم به نزدیک‌ترین کشور که کویت است، مسیریابی می‌شوند. لازم به ذکر است که موارد گفته شده برای حالتی است که شبکه‌ی گوگل با اختلالی روبه‌رو نباشد. برای مثال، در صورتی که سرورهای مرکز داده گوگل در کویت به هر دلیلی از دسترس خارج شوند، ترافیک درخواست‌های کاربران ایرانی می‌بایست به مسیر کشور آلمان منتقل شوند.

مثال دوم از کاربرد Anycast

در یک مثال دیگر فرض می‌کنیم که یک کاربر می‌خواهد به محتوای Update-Serverهای مایکروسافت در سه کشور ایران، فرانسه و کانادا وصل شده و از طریق وب‌سایت به این محتوا دسترسی پیدا کند. مجموعه Update-Serverهای مایکروسافت از شبکه توزیع محتوای Azure بهره می‌برد، که مالک شبکه Anycast در سطح 5 قاره دنیاست. این شبکه،Prefix  مربوطه را در تمامی مراکز داده و به شبکه‌های متصل به خود،Advertise  می‌کند. حال، فرض کنیم کاربری از فرانسه به Update-Serverهای مایکروسافت یک درخواست ارسال می‌کند. پس از اتمام پروسه‌ی lookup در DNS، آدرس سرور مربوطه مشخص شده و این آدرس برای کاربر فرانسوی در سطح شبکه مسیریابی می‌شود. سپس، نزدیک‌ترین مرکز داده‌ی مایکروسافت که در فرانسه است، برای کاربر به عنوان بهترین مسیر برگزیده می‌شود. مثال فوق به صورت توزیع جغرافیایی و در لایه شبکه برای کاربران دیگر کشورها نیز صادق خواهد بود.

CDN چیست و چگونه در توزیع سریع محتوا به کاربر کمک می‌کند؟

CDN (Content Delivery Network یا شبکه توزیع محتوا) شبکه و راهکاری خاص برای ارائه خدمات محتوای وب‌سایت از نزدیک‌ترین نقطه‌ی جغرافیایی به کاربران است. طراحی شبکه‌های CDN با توجه به مدل درآمدی آن‌ها کاملا متفاوت است. با توجه به سیاست‌های فنی و تجاری، معمولا نقاط دسترسی نهایی یا همان PoP از نزدیک‌ترین نقاط درISPها تا مرکز داده توزیع شده در سطح قاره‌های دنیا در این فناوری استقرار یافته‌اند. CDNها داری مزایایی برای کاربران خود هستند که از مهم‌ترین آن‌ها می‌توان موارد زیر را نام برد:

  1. دسترسی با تأخیر کم‌تر که موجب ایجاد امکان دستیابی به پهنای باند بیشتر به کاربران نهایی می‌گردد.
  2. نزدیک‌کردن محتوا با استفاده از راهکارهایی مانند Cache کردن محتوا، باعث کاهش هزینه‌های نهایی پهنای باند برای مشتریان و مراکز داده می‌شوند.
  3. اطمینان حاصل می‌کنند که محتوا در سریع‌ترین زمان و از کوتاه‌ترین مسیر به درخواست دهنده ارسال می‌شود و بدین‌وسیله با کم‌ترین وابستگی به شبکه‌های واسط و یا BackBoneهای بین‌المللی به ارائه خدمات می‌پردازند.
  4. اطمینان حاصل می‌کنند که در زمان‌های اوج (Peak) بار محتوایی، بهترین راهکار از لحاظ قابلیت اطمینان و Quality of Service در اختیار کاربران قرار بگیرد.

CDN چگونه از معماری Anycast استفاده می‌کند؟

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

یکی از راهکارهای CDN برای این موضوع استفاده از معماری Anycast در شبکه‌ی مدرن اینترنت است. این راهکار مزایا و معایب خاص خود را دارد و هر کدام از ارائه‌دهندگان CDN راهکارهای خاص خود را برای پیاده‌سازی آن به کار می‌گیرد.

به بیان ساده، در معماری Anycast تعداد زیادی سرور داریم که همگی آن‌ها از یک IP استفاده می‌کنند. این سرورها در مکان‌های مختلف جغرافیایی پراکنده شده‌اند و با یکدیگر در ارتباط هستند. چالش اصلی در تکنولوژی Anycast  همین ارتباط بین سرورهاست، چرا که همگی آن‌ها از یک IP استفاده می‌کنند.

این سرورها قرار است خدمات DNS را ارائه دهند. به این معنی که درخواست‌های مختلف برای Resolve یک رکورد DNS، به نزدیک‌ترین سرور ارسال می‌شوند و پاسخ را از نزدیک‌ترین سرور به خود می‌گیرند.

Anycast در CDN ایرانی اَبر دِراک

زیرساخت Anycast اَبر دِراک علاوه بر اتصال کاربر درخواست‌دهنده به نزدیک‌ترین سرور DNS، از میان بسته‌های آدرسی که به نشانی‌های مقصد موجود در این دامنه آدرس‌دهی شده‌اند، نزدیک‌ترین نقطه مسیریابی شده در شبکه را پیدا می‌کند. سپس IP آدرس آن را اعلام می‌کند. این کار با استفاده از الگوریتم BGP انجام می‌شود.

به صورت کلی شبکه‌های Anycast به مدلی از Advertising در مورد Prefixهای شبکه‌ای اطلاق می‌شود که با استفاده از پروتکل BGP که راهکار اصلیBackbone  شبکه‌ی اینترنت است، عمل می‌کنند.

در راهکار Anycast کاربران همیشه به نزدیک‌ترین سرویس در دسترس متصل خواهند شد؛ که آن را به طور واضح در ساختار DNS مشاهده می‌کنید. این کار باعث کاهش زمان دسترسی به اطلاعات و همچنین، باعث ایجاد شدن Load Balancing در شبکه می‌شود. راهکارهای CDN مانند Cloudflare از راهکار Anycast به صورت بسیار گسترده استفاده می‌کنند.

مدل Anycast

مزایای اصلی استفاده از Anycast

به طور خلاصه می‌توان موارد زیر را به عنوان مزایای اصلی استفاده از Anycast جهت افزایش سرعت وب‌سایت و جلوگیری از حملات مخرب به آن نام برد:

  1. بهینه‌سازی مسیریابی براساس پروتکل BGP صورت می‌پذیرد و وابستگی به دیگر راهکارها مانند Load Balancerها Url Rewriting  از بین می‌روند.
  2. مالکیت IPها و دسترسی به منابع IPها برای CDNها و هزینه‌های نگهداری CDN کاهش می‌یابد، که در کل موجب کاهش هزینه‌های کاربران نهایی خواهد شد.
  3. عدم وابستگی به زیرساخت‌هایی مانند DNS، باعث می‌شود مشتریان CDN بدون تجربه‌ی مشکل در زیرساخت‌های DNS جهانی از مزایای توزیع جغرافیایی بهره‌مند شوند.
  4. سادگی در پیاده‌سازی؛ بدین معنی که شما بدون داشتن دغدغه‌ی محل قرارگرفتن سرور DNS خود، با استفاده از فقط یک آدرسIP، می‌توانید به چندین سرویس DNS دسترسی پیدا کنید.

همان‌طور که قبلا گفته شد، با وجود مزایای طراحی، مالکیت و نگهداری چنین شبکه‌هایی توسط شرکت‌هایی که در اینترنت به کاربران خدمات‌رسانی می‌کنند، چنین شبکه‌هایی از لحاظ فنی دارای پیچیدگی‌های بسیاری هستند. در حال حاضر کمتر از ۴۰ شرکت در کل دنیا چنین شبکه‌هایی را در مالکیت دارند. این شرکت‌ها از آن‌ها برای اهداف توزیع محتوا،Redundancy  وHigh-availability  بهره می‌برند، که درصد قابل توجهی از آن‌ها، خدمات‌دهندگان CDN هستند.

منابع