از پیچیدگیهای شبکه توزیع محتوا، تشخیص دقیق موقعیت جغرافیایی کاربر است. اگرچه روشهای سنتی تشخیص موقعیت جغرافیایی بهکمک DNS سرور در سالهای اخیر رشد چشمگیری داشته، اما همچنان از دقت کافی برخوردار نیست و پیادهسازی یک ساختار پایدار یکپارچه را با مشکلاتی همراه میسازد. بنابراین ابر آروان از فناوری Anycast برای رفع این مشکل استفاده میکند.
Anycast روشی برای آدرسدهی و مسیریابی است، بهگونهای که در آن به مجموعهای از دستگاهها (نودها) که از دیدگاه CDN این نودها مجموعهای از سرورها در دیتاسنترهایی در نقاط مختلف دنیا هستند، یک آدرس IP یکسان اختصاص داده میشود. ترافیک ارسالی به این آدرس IP را نزدیکترین سرور از نظر توپولوژی به مبدا ارسالکنندهی درخواست، پاسخ میدهد. در نتیجه با این روش، آدرسهای IP ابر آروان بهشکل همزمان در نقاط مختلف و سراسر جهان تبلیغ (Advertise) میشود و هر کاربر حتا در نخستین اتصال، به نزدیکترین سرور لبه (Edge Server) متصل میشود و از آن نقطه سرویس دریافت میکند.
ابر آروان جزو معدود شبکههای توزیع محتوا در جهان است که نهتنها در لایهی تفسیر نام (DNS Anycast) بلکه حتا در لایهی ارایهی سرویس نیز بهشکل یکپارچه بر پایهی مسیریابی (BGP Anycast) Anycast عمل میکند. در این مطلب نخست نگاهی به روشهای مسیریابی متداول داریم و پس از آن به بررسی روش مسیریابی Anycast و مزایای آن میپردازیم.
تا سالها معماری اینترنت بهگونهای بود که اطلاعات (دادهها) تنها در یک سرور قرار میگرفت و این تک سرور مسوول پاسخدهی به تمام درخواستهای دسترسی به اطلاعات بود. به این طرح مسیریابی، ساختار Unicast گفته میشود. این معماری دو مشکل بزرگ دارد:
این مشکلات سبب شد تا از راهکاری با نام Anycasting استفاده شود.
Anycast Structure
Unicast Structure
سه روش متداول در آدرسدهی و مسیریابی ترافیک در ادامه توضیح داده میشوند.
در این حالت هر سیستم در ساختار شبکه دارای آدرس IP منحصربهفرد خود است و پیام ارسالی از یک سیستم به مقصد یک سیستم با آدرس IP مشخص و ویژهی همان سیستم ارسال میشود. در ساختار Unicast، هیچ دو دستگاهی نمیتوانند دارای آدرس IP یکسان باشند. بخش بزرگی از ارتباطات در دنیای اینترنت بر پایهی Unicasting است.
در این روش پیام ارسالی به یک آدرس Broadcast ارسال میشود و هر دستگاهی که روی ساختار قرار داشته باشد، این پیام را دریافت میکند، حتا اگر نیازی به دریافت آن نداشته باشد. در این روش روترهای IP پکتها به مقاصد Broadcast را Forward نمیکنند.
در این روش مجموعهای از دستگاهها به عضویت یک گروه درمیآیند و به این گروه آدرسی Multicast (بازهای از آدرسهای رزرو شده تنها برای همین منظور) اختصاص مییابد. حال ترافیک ارسالی از یک دستگاه به آدرس این گروه مالتیکست را تمام دستگاههایی که عضو آن گروه باشند، دریافت میکنند. یک نمونهی پرکاربرد از این روش، شبکههای پخش صوتی و تصویری در اینترنت هستند.
مسیریابی Anycast یک پروتکل مسیریابی متفاوت نیست و نیازی به وجود قابلیت خاصی در سرورها، سیستم کاربران یا حتا سایر تجهیزات شبکه ندارد. Anycast درواقع یک سازوکار پیکربندی است و همانند Unicasting، در آن ارتباطی one-to-one برقرار است؛ به این معنا که پیام از سوی فرستنده به یک آدرس IP مشخص فرستاده میشود. این آدرس یک آدرس رزرو شده برای مقاصد Broadcasting یا Multicasting نیست، بلکه یک آدرس Public معمولی است. اما تفاوت آن با Unicasting در این است که در اینجا این تک IP بهجای یک دستگاه به مجموعهای از دستگاهها اختصاص دارد. پس در این ساختار وجود یک آدرس IP یکسان برای دو یا چند دستگاه مشکلی ایجاد نمیکند. به این ترتیب میتوان در نقاط مختلف دنیا، سرورهایی با آدرس IP یکسان داشت که هرکدام مسوول پاسخدهی به کاربرانی خواهند بود که در محدودهی آنها قرار دارند.
برای نمونه، فرض کنید یک سرویس وب خاص با استفاده از سه سرور در نقاط مختلف دنیا (یا شبکه) مطابق شکل زیر ارایه شده باشد:
همانگونهکه در شکل میبینید، روتر سمت کاربر، تمام مسیرهای دسترسی به سرورها با آدرس 10.10.5.1 را به همراه فاصلهی آن محاسبه و در جدول مسیریابی خود ذخیره میکند. هرگاه کاربر بستهای به مقصد 10.10.5.1 بفرستد روتر آن بسته را از کوتاهترین راه مسیریابی خواهد کرد.
مسیریابی Anycast را با استفاده از تمام پروتکلهای مسیریابی میتوان پیادهسازی کرد، در شبکه توزیع محتوا (CDN) با استفاده از پروتکل مسیریابی BGP پیادهسازی میشود. به این ترتیب، آدرس سرورهای ما با استفاده از پیامهای BGP برای روترهای اینترنتی تبلیغ میشود و هر روتر فاصلهی خود تا آن آدرس را محاسبه میکند. در نتیجه هنگامیکه یک کاربر در اینترنت قصد استفاده از این سرویس وب را داشته باشد با توجه به محل جغرافیایی خود به نزدیکترین سرور متصل میشود و اطلاعات مورد نظر را دریافت میکند.
با استفاده از مسیریابی Anycast مسیله دسترسی کاربران به سرویسهای وب از نزدیکترین مسیر ممکن، بهعهدهی روترهای اینترنت خواهد افتاد و ما دیگر با مشکلات کاربردی موجود در استفاده از روشهایی همچون پروتکل DNS (مانند Cache شدن بستههای DNS در سیستم کاربران و…) مواجه نخواهیم بود.
با استفاده از Anycast میتوان حجم بزرگی از ترافیک ارسالی از جانب دستگاههای آلوده به Botnet را میان نودهای Aanycast توزیع کرد و با این شیوه از، از دسترس خارج شدن یک سرور بهدلیل ناتوانی در پاسخدهی به این حجم عظیم از درخواستها، جلوگیری کرد.
با استفاده از Anycast میتوان در یک محدودهی جغرافیایی چند سرور قرار داد و ترافیکهای کاربران قرار گرفته در این محدوده را میان این سرورها، Load Balance کرد.
با Anycast بهجای یک تکسرور، چند سرور توزیعشده در نقاط مختلف جهان وجود دارد که با Fail شدن یک سرور، سرور نزدیکتر بعدی بهشکل خودکار به درخواست کاربران پاسخ خواهد داد.
پاسخدهی به درخواست کاربران از نزدیکترین سرور به آنها، سبب کاهش تاخیر در دسترسی به دادهها میشود.
حال که با روش مسیریابی Anycast آشنا شدید، میخواهیم به یکی از پرسشهای متداول کاربران CDN پاسخ دهیم: «نشانی IP سرویسهای وب که از CDN ابر آروان استفاده میکنند در داخل ایران است، آیا این امر به منزلهی آن است که ترافیک تمام کاربران این سرویسها (حتا کاربران ایرانی) بهسمت خارج از کشور میرود و از آن جا پاسخ داده میشود؟»
پاسخ منفی است. برای روشن شدن مسیله یک نمونهی فنی را بررسی میکنیم. همانطور که گفته شد، در پیکربندی مسیریابی Anycast، ما یک آدرس مشخص را به چند سرور در نقاط مختلف اختصاص میدهیم. از این پس این سرورها را سرورهای لبه ابر آروان مینامیم. بازهی آدرس 185.143.233.0/24 را که یکی از محدودههای آدرس Anycast ابر آروان است را در نظر بگیرید؛ این بازهی آدرس از کشور آلمان خریداری و به نام آن کشور نیز ثبت شده است، اما باید توجه داشت که خریداری یک بازهی IP بهنام یک کشور خاص، الزامی به استفاده از آن آدرسهای IP در همان کشور بههمراه ندارد. برای نمونه فرض کنید مطابق شکل زیر قرار است دسترسی به وبسایت شرکت ابر آروان (arvancloud.ir) با استفاده از سرورهای لبه CDN ابر آروان و آدرس 185.143.233.2 بهشکل Anycast ممکن باشد.
همانگونه که در شکل نیز نمایش داده شده است، آدرس 185.143.233.2 در تمام سرورهای لبه تنظیم و به روترهای مجاور تبلیغ خواهد شد. هنگامیکه یک کاربر از هر نقطهی دنیا دامنهی سرویس مورد نظر خود را در اینجا یا در مرورگر بهشکل arvancloud بنویسد، سرورهای DNS، آن دامنه را به آدرس 185.143.233.2 ترجمه میکنند و همانگونه که در بخشهای قبل گفته شد، روترهای اینترنتی، کاربر را بهسمت نزدیکترین سرور هدایت خواهند کرد. پس مطابق شکل اگر کاربری در شهر دماوند قصد بازدید از وبسایت www.arvancloud.ir را داشته باشد، دادههای مربوطه را از سرور لبه ابر آروان در تهران دریافت خواهد کرد. بهشکل مشابه، اگر کاربر در شهر منچستر انگلستان باشد طبیعتن بهسمت سرور لبه ابر آروان در شهر لندن هدایت خواهد شد. به این ترتیب سرور لبه میتواند در هر نقطه از جهان از جمله ایران قرار بگیرد و به درخواستهایی با مقصد 185.143.233.2 پاسخ دهد.
در پایان نتیجه میگیریم که ترجمه شدن یک دامنه به یک آدرس IP خارجی (در این نمونه کشور آلمان) بهکمک سرورهای DNS، به این معنا نیست که سرور مربوطه حتمن در همان کشور قرار میگیرد و ترافیک بهسمت خارج از کشور مسیریابی میشود.