Anycast (هرپخشی) روشی برای آدرسدهی و مسیریابی شبکه است که یکی از تکنیکهای بسیار قدرتمند در CDN برای کاهش تاخیر بارگذاری صفحات وب و حملات هکرها محسوب میشود. اگرچه پیادهسازی تکنیک Anycast بسیار مشکل و پیچیده است، اما نتیجه نهایی بسیار ارزشمندی، هم برای کاربر و هم ارائهدهندگان این سرویس فراهم میکند.
در این مقاله به مفهوم روش آدرسدهی Anycast و مزایای استفاده از آن میپردازیم و نحوه عملکرد و کاربرد آن را در زمینه توزیع محتوا شرح میدهیم.
شبکه Anycast چیست؟
Anycast (هرپخشی) یک نوع روش آدرسدهی و مسیریابی در شبکه است. براساس این فناوری، یک IP میتواند به دو یا چند سرور اختصاص داده شود؛ بهطوریکه همه سرورها بهصورت همزمان در شبکه قابل دسترس باشند. مزیت شبکه anycast در انتخاب بهترین مسیر بهوسیله مسیریابها (Routers) برای دسترسی به سرور موردنظر است. معیارهایی مانند میزان فاصله، زمان تأخیر، شلوغی مسیر و گرههای (Node) بین راه برای این انتخاب تعیینکننده هستند.
تکنیک شبکهسازی هرپخشی به دستگاههای متعددی اجازه میدهد یک آدرس IP یکسان را با هم به اشتراک بگذارند. بر اساس مکان درخواست کاربر، مسیریابها آن را به نزدیکترین دستگاه در شبکه ارسال میکنند که باعث کاهش تأخیر (Latency) و افزایش افزونگی (Redundancy) میشود. در این حالت، اگر یک مرکز داده به هر دلیلی آفلاین شود، IP Anycast میتواند بهترین مسیر را برای کاربر انتخاب کرده و او را به یکی دیگر از مراکز داده نزدیک به او هدایت کند. ازهمینرو توصیه میشود هنگام خرید CDN (شبکه توزیع محتوا) حتما به پشتیبانی آن از مسیریابی Anycast توجه کنید.
معرفی سایر روشهای آدرسدهی در شبکه
علاوهبر Anycast، روشهای آدرسدهی دیگری نیز برای مسیریابی درخواستهای کاربر به یک نقطه پایانی (Endpoint) خاص در شبکه وجود دارد. در ادامه ابتدا به بررسی تفاوت Unicast و Anycast میپردازیم، سپس سایر روشهای آدرسدهی را معرفی میکنیم.
Unicast (تکپخشی)؛ آدرسدهی با مقصد یک میزبان
در بیشتر موارد، اینترنت از طریق یک طرح مسیریابی با نام Unicast یا تکپخشی کار میکند؛ بهطوری که در این روش، هر گره در شبکه یک آدرس IP منحصربهفرد میگیرد. شبکههای خانگی و اداری از تکپخشی استفاده میکنند؛ در چنین شرایطی، هنگامی که یک کامپیوتر به یک شبکه بیسیم متصل میشود، ممکن است پیامی مبنی بر اینکه آدرس IP از قبل در حال استفاده است، دریافت کند. این مشکل بهدلیل تداخل آدرس IP رخ میدهد؛ زیرا رایانه دیگری در همان شبکه Unicast در حال استفاده از همان IP است که در بیشتر موارد، این کار مجاز نیست.
هنگامی که یک CDN از آدرس Unicast استفاده میکند، ترافیک بهطور مستقیم به یک گره خاص هدایت میشود. زمانی که شبکه ترافیک بسیار بالایی مانند حمله DDoS را تجربه میکند، این موضوع باعث ایجاد آسیبپذیری به علت افزایش ترافیک میشود. ازآنجاییکه مسیریابی ترافیک مستقیماً به سمت یک مرکز داده خاص است، این مکان به همراه زیرساخت اطراف آن ممکن است با ترافیک شدیدی مواجه شوند و این امر بهطور بالقوه انکار سرویس (Denial of Service – DoS) را برای درخواستهای قانونی به همراه دارد.
استفاده از هرپخشی یا انیکست به این معنی است که شبکه میتواند در مقابل خرابیها یا از کار افتادگی سرویسدهندهها بسیار مقاوم (Resilient) باشد؛ زیرا در این روش ترافیک بهترین مسیر را پیدا کرده و حتی درصورت از کار افتادن کامل یک مرکز داده (Data center) ترافیک بهطور خودکار به سمت یک مرکز داده نزدیک هدایت میشود.
Multicast (چندپخشی)؛ مسیریابی با مقصد گروهی
Multicast (چندپخشی) از ارتباط یک یا چند دستگاه به چند دستگاه بهصورت One-to-many یا Many-to-many استفاده میکند. چندپخشی این امکان را فراهم میکند که درخواست از یک فرستنده بهطور همزمان به نقاط پایانی (Endpoints) مختلف انتخابشده ارسال شود. این قابلیت به مشتری اجازه میدهد تا یک فایل را بهصورت تکههای مختلف از چندین میزبان بهطور همزمان دانلود کند. به همین خاطر مولتیکست برای پخش صدا یا ویدئو مفید و کاربردی است. چندپخشی اغلب با هرپخشی اشتباه گرفته میشود؛ بااینحال اصلیترین تفاوت Multicast و Anycast این است که انیکست فرستنده را فقط به یک گره خاص هدایت میکند، حتی اگر چندین گره برای استفاده در دسترس باشد.
Broadcast (همهپخشی)؛ مسیریابی به همه دستگاههای شبکه
Broadcast (همهپخشی یا پخش همگانی) از ارتباط یک به همه (One-to-all) استفاده میکند. یک دیتاگرام از یک فرستنده واحد به تمام نقاط پایانی مرتبط با آدرس broadcast ارسال میشود. شبکه بهطور خودکار دیتاگرامها را تکرار میکند تا بتواند به همه گیرندگان درون همهپخشی که معمولا از یک زیرشبکه کامل شبکه تشکیل شده است، دسترسی پیدا کند.
Geocast (زمینپخشی)؛ مسیریابی بر اساس موقعیت جغرافیایی
Geocast (زمینپخشی) تا حدودی شبیه Multicast است؛ زیرا درخواستهای یک فرستنده بهطور همزمان به چندین نقطه پایانی هدایت میشوند؛ با این تفاوت که در زمینپخشی شبکه بر اساس موقعیت جغرافیایی آنها تعریف میشود.
چرا باید از شبکه Anycast استفاده کنیم؟
اگر درخواستهای زیادی بهطور همزمان به یک سرور مبدا یکسان ارسال شود، سرور ممکن است با حجم بالایی از ترافیک مواجه شود و نتواند به درخواستهای دریافتی اضافی بهطور کارآمد پاسخ دهد. با استفاده از یک شبکه Anycast، بهجای اینکه یک سرور مبدأ بار ترافیک را بهتنهایی برعهده بگیرد، بار میتواند در سایر مراکز داده موجود نیز پخش شود که هر کدام از آنها دارای سرورهایی با قدرت پردازش و پاسخگویی به درخواست ورودی هستند. این روش مسیریابی میتواند از افزایش ظرفیت سرور مبدا و ایجاد وقفه در سرویسدهی به مشتریانی که محتوا را از سرور مبدا درخواست میکنند، جلوگیری کند.
مزایا و معایب IP Anycast چیست؟
آدرسدهی به روش IP Anycast مزایای بسیاری دارد که به همین دلیل CDN ابر دراک نیز از معماری Anycast بهعنوان یک راهکار موثر در سرویسدهی خود بهره میبرد. از مهمترین مزایای استفاده از شبکه anycast میتوانیم به موارد زیر اشاره کنیم:
- سرعت: ترافیک از یک گره هرپخشی به نزدیکترین گره موجود مسیریابی میشود که زمان تأخیر بین کاربر و گره موردنظر را بسیار کاهش میدهد. این تکنیک فارغ از اینکه کاربر در کجا قرار دارد، موجب افزایش سرعت دریافت و ارسال اطلاعات میشود.
- افزونگی: هرپخشی با قرار دادن سرورهای متعدد در سراسر جهان و استفاده همه آنها از یک IP یکسان موجب افزایش افزونگی میشود. این کار به ترافیکها اجازه میدهد تا درصورتیکه یک سرور خاموش یا خراب شد، به نزدیکترین سرور سالم مسیریابی شوند.
- تعادل بار: تعادل بار (Load balancing) میتواند در مواردی که گرههای متعددی در یک فاصله جغرافیایی یکسان وجود دارند، به کار گرفته شود. این روش نیازمندیهای منبع را از روی یک گره برداشته و بین گرههای متعدد پراکنده میکند.
علیرغم مزایایی که استفاده از شبکه anycast به همراه دارد، این شبکه با معایبی نیز همراه است که در ادامه به توضیح آنها میپردازیم:
- پیادهسازی دشوار: پیادهسازی شبکه به روش IP Anycast بسیار پیچیده و دشوار است و به سختافزارهای اضافی، ارائهدهندگان معتبر و مسیریابی مناسب ترافیک نیاز دارد.
- کنترل محدود: مسیریابی Anycast به توپولوژی شبکه و جداول مسیریابی BGP وابسته است که توسط ISPها و اپراتورهای شبکه کنترل میشوند. این بدان معناست که سرویسها ممکن است همیشه نتوانند نحوه هدایت ترافیک به سرورهای خود را کنترل کنند.
- انعطافپذیری محدود: مسیریابی Anycast به سرورهای همسان با آدرس IP یکسان نیاز دارد که میتواند انعطافپذیری را هنگام استقرار و مدیریت سرورها محدود کند. سرویسها باید اطمینان حاصل کنند که همه سرورها همسان هستند و به روشی یکسان پیکربندی شدهاند. این امر میتواند در محیطهای پیچیده چالشبرانگیز باشد.
شبکه هرپخشی چگونه کار میکند؟
شبکه Anycast درخواستهای کاربران را به نزدیکترین گره موجود هدایت میکند تا زمان تأخیر بارگذاری صفحات را کاهش دهد. مسیریابی انیکست با دنبال کردن مراحل زیر انجام میشود:
- نمونه سرورهای متعدد خودشان اعلام میکنند که از یک IP یکسان استفاده میکنند.
- وقتی مرورگر کاربر یک درخواست ایجاد میکند، مسیریاب (Router) آن درخواست را دریافت کرده و براساس مسیر سیستم مستقل (Autonomous System)، مسیری با فاصله کوتاهتر را انتخاب میکند.
در شبکه هرپخشی مسیریابی بر اساس بهترین و کوتاهترین مسیر انتخاب میشود؛ یعنی اگر یک سرور دچار مشکل شود، پروتکل دروازه مرزی (Border Gateway Protocol – BGP) میتواند مسیر بهتر دیگری را انتخاب و درخواست را به آنجا هدایت کند. در ادامه مقاله به بررسی BGP خواهیم پرداخت.
این نکته قابل ذکر است که هرپخشی فقط براساس فاصله، بهترین مسیر را انتخاب نمیکند، بلکه عوامل دیگری از جمله موارد زیر را نیز در نظر میگیرد:
- در دسترس بودن سرور
- تعداد اتصالات
- زمان پاسخگویی
پروتکل BGP و AS چیست؟
پروتکل دروازه مرزی (Border Gateway Protocol – BGP) و سیستمهای مستقل (Autonomous Systems – AS) دو جزء اصلی در عملکرد IP Anycast هستند. پروتکل دروازه مرزی مسیریابی و دستیابی اطلاعات بین سیستمهای مستقل را تبادل میکند. این پروتکل تصمیمهای مسیریابی را بر اساس مسیرها، سیاستها و مجموعه قوانینی میگیرد که یکی از اجزای کلیدی IP Anycast است. در مسیریابی BGP، مسیرهای متعددی برای یک آدرس IP یکسان، که به مکانهای مختلف اشاره میکند، وجود دارد.
سیستم مستقل یک شبکه یا مجموعهای از شبکههاست که همگی توسط یک مدیر سیستم مدیریت میشوند. ASها هر کدام یک شماره سیستم مستقل (Autonomous System Number – ASN) منحصربهفرد دارند که هر ASN امکان تشخیص هر شبکه روی اینترنت را دارد و از آن در مسیریابی BGP استفاده میکند.
ابزارهایی مانند ExaBGP میتوانند برای تبدیل پیامهای BGP به متن یا JSON استفاده شوند که بعدا میتوان با اسکریپتهای ساده نیز به آنها رسیدگی کرد. این امر به مدیران شبکه اجازه میدهد تا بهراحتی مشکلات و خرابیهای شبکه یا سرویس را تشخیص دهند و به حل آنها بپردازند.
Anycast و IPv4 در مقابل IPv6
Anycast بهطور رسمی در IPv4 پشتیبانی نمیشود، اما میتواند با استفاده از BGP در آن کار کند. بااینحال IPv6 کاملا از هرپخشی پشتیبانی میکند. روترهای IPv6 معمولا تفاوتی بین Anycast و Unicast قائل نیستند؛ هر چند که باید مسیرهای نزدیک را در آنها بهطور دستی تعریف کرد.
علاوهبر این، روشهای مشابه مورد استفاده در IPv4 را میتوان در IPv6 نیز به کار برد. این روش به روترهای آگاه به Anycast وابسته نیست؛ با این وجود ممکن است با مشکلاتی که در بالا اشاره شد، مواجه شود.
برای درک بهتر عملکرد پروتکلهای ورژن 4 و 6 اینترنت مقاله تفاوت IPv4 و IPv6 را مطالعه کنید.
بررسی کاربردهای Anycast با مثال
برای آشنایی با کاربردهای Anycast چند مثال را با یکدیگر بررسی میکنیم:
مثال اول از کاربرد anycast؛ توزیع بار ترافیک بین مراکز داده
توزیع کردن بار ترافیک بین مراکز داده متعدد از مهمترین کاربردهای شبکه anycast است که به اتصال سریعتر کاربران کمک میکند. بهعنوان مثال، وبسایت پربازدید گوگل را در نظر بگیرید. گوگل یک مرکز داده در آلمان و چندین مرکز داده در آمریکا دارد؛ بااینحال هیچ مرکز دادهای از گوگل در ایران قرار ندارد و نزدیکترین دیتاسنتر این کمپانی به ایران در کشور کویت است.
با این شرایط، کاربران در کشور آلمان به سرورهای مرکز داده گوگل در آلمان و در آمریکا به نزدیکترین مرکز داده متصل خواهند شد. کاربران ایرانی هم به نزدیکترین کشور که کویت است، مسیریابی میشوند. البته موارد گفتهشده برای حالتی است که شبکه گوگل با اختلالی روبهرو نباشد. برای مثال، درصورتیکه سرورهای مرکز داده گوگل در کویت به هر دلیلی از دسترس خارج شوند، ترافیک درخواستهای کاربران ایرانی باید به مسیر کشور آلمان منتقل شوند.
مثال دوم از کاربرد Anycast؛ اتصال کاربر به نزدیکترین مرکز داده
در یک مثال دیگر فرض میکنیم که یک کاربر میخواهد به محتوای سرویسدهندههای بهروزرسانی Update-Serverهای مایکروسافت در سه کشور ایران، فرانسه و کانادا وصل شود و از طریق وبسایت به این محتوا دسترسی پیدا کند. مجموعه Update-Serverهای مایکروسافت از شبکه توزیع محتوای Azure بهره میبرد که مالک شبکه انی کست در سطح پنج قاره دنیا است. این شبکه Prefix مربوطه را در همه مراکز داده و به شبکههای متصل به خود اعلام (Advertise) میکند.
حال فرض کنیم کاربری از فرانسه به Update-Serverهای مایکروسافت یک درخواست ارسال میکند. پس از اتمام پروسه lookup در DNS، آدرس سرور مربوطه مشخص شده و این آدرس برای کاربر فرانسوی در سطح شبکه مسیریابی میشود. سپس نزدیکترین مرکز داده مایکروسافت که در فرانسه است، برای کاربر بهعنوان بهترین مسیر انتخاب میشود. مثال فوق بهصورت توزیع جغرافیایی و در لایه شبکه برای کاربران سایر کشورها نیز صادق خواهد بود.
مثال سوم از کاربرد هرپخشی؛ نقش شبکه anycast در کاهش حملات DDoS
حملات DDoS توسط باتنتهایی که با ارسال ترافیک زیاد به سمت سرور موجب از دسترس خارج شدن آن میشود، انجام میگیرد. این ماشینها میتوانند در سراسر وب پراکنده شوند و ترافیک زیادی ایجاد کنند. ترافیک بالا یک ماشین معمولی متصل به تکپخشی را بهراحتی تحتتاثیر قرار میدهد.
بعد از اینکه سایر ابزارهای کاهش DDoS برخی از ترافیک حمله را فیلتر کردند، شبکه هرپخشی ترافیک حمله باقیمانده را در چندین مرکز داده توزیع میکند و همین امر موجب کاهش فشار روی سرور میشود. اگر ظرفیت شبکه انیکست بیشتر از ترافیک حمله باشد، حمله DDoS بهطور موثری کاهش مییابد.
کاربرد شبکه انیکست در سرورهای DNS
سرورهای DNS از هرپخشی برای پاسخدهی سریع و قابل اعتماد به درخواستهای DNS استفاده میکنند. هنگامی که یک مشتری (Client) یک درخواست DNS ارسال میکند، درخواست بر اساس توپولوژی شبکه به نزدیکترین سرور DNS ارسال میشود. این امر تضمین میکند که مشتریان پاسخهای سریع و دقیق DNS دریافت میکنند که برای مرور وب و سایر برنامههای اینترنتی حیاتی است.
CDN چیست و چگونه در توزیع سریع محتوا به کاربر کمک میکند؟
شبکه توزیع محتوا (Content Delivery Network – CDN) شبکه و راهکاری خاص برای ارائه خدمات محتوای وبسایت از نزدیکترین نقطه جغرافیایی به کاربران است. طراحی شبکههای CDN با توجه به مدل درآمدی آنها کاملا متفاوت است. با توجه به سیاستهای فنی و تجاری، معمولا نقاط دسترسی نهایی یا همان PoP از نزدیکترین نقاط درISPها تا مرکز داده توزیعشده در سطح قارههای دنیا در این فناوری استقرار یافتهاند. CDNها مزایای متعددی برای کاربران خود دارند که از مهمترین آنها میتوان موارد زیر را نام برد:
- دسترسی با تأخیر کمتر که موجب ایجاد امکان دستیابی به پهنای باند بیشتر به کاربران نهایی میشود.
- نزدیک کردن محتوا با استفاده از راهکارهایی مانند Cache کردن محتوا، باعث کاهش هزینههای نهایی پهنای باند برای مشتریان و مراکز داده میشود.
- CDNها اطمینان حاصل میکنند که محتوا در سریعترین زمان و از کوتاهترین مسیر به درخواستدهنده ارسال میشود و بدین وسیله با کمترین وابستگی به شبکههای واسط یا BackBoneهای بینالمللی به ارائه خدمات میپردازند.
- CDNها اطمینان حاصل میکنند که در زمانهای اوج (Peak) بار محتوایی، بهترین راهکار از لحاظ قابلیت اطمینان و کیفیت سرویس (Quality of Service) در اختیار کاربران قرار بگیرد.
برای کسب اطلاعات بیشتر درباره شبکههای توزیع محتوا مقاله CDN چیست نوشته شده است که مطالعه آن به درک کامل CDN کمک میکند.
CDN چگونه از معماری Anycast استفاده میکند؟
برای مهندسی، پیادهسازی و نگهداری از شبکههای توزیع محتوا راهکارهای گوناگونی وجود دارد؛ ولی بهطورکلی همه آنها میخواهند اطمینان حاصل کنند که محتوا از نزدیکترین مرکز داده و سرورها به کاربران برسد و همچنین در صورت بروز مشکل فنی، بهترین مسیر فعلی یا مسیر بهتر جدید جایگزین شود.
یکی از راهکارهای CDN برای این موضوع استفاده از معماری Anycast در شبکه مدرن اینترنت است. این راهکار مزایا و معایب خاص خود را دارد و هر کدام از ارائهدهندگان CDN راهکارهای خاصی برای پیادهسازی آن به کار میگیرند.
به بیان ساده، در معماری شبکه هرپخشی سرورهای متعددی داریم که همگی آنها از یک IP استفاده میکنند. این سرورها در مکانهای مختلف جغرافیایی پراکنده شدهاند و با یکدیگر در ارتباط هستند. چالش اصلی در تکنولوژی Anycast همین ارتباط بین سرورهاست؛ چرا که همگی آنها از یک IP استفاده میکنند.
این سرورها قرار است خدمات DNS ارائه دهند؛ به این معنی که درخواستهای مختلف برای Resolve یک رکورد DNS، به نزدیکترین سرور ارسال میشوند و پاسخ را از نزدیکترین سرور به خود میگیرند.
شبکه Anycast در CDN ایرانی ابر دراک
زیرساخت Anycast ابر دراک علاوهبر اتصال کاربر درخواستدهنده به نزدیکترین سرور DNS، از میان بستههای آدرسی که به نشانیهای مقصد موجود در این دامنه آدرسدهی شدهاند، نزدیکترین نقطه مسیریابیشده در شبکه را پیدا کرده و سپس IP آدرس آن را اعلام میکند. این کار با استفاده از الگوریتم BGP انجام میشود.
بهصورت کلی، شبکههای هرپخشی به مدلی از Advertising در مورد Prefixهای شبکهای اطلاق میشود که با استفاده از پروتکل BGP که راهکار اصلی Backbone شبکه اینترنت است، عمل میکنند.
در راهکار انیکست کاربران همیشه به نزدیکترین سرویس در دسترس متصل خواهند شد که آن را بهطور واضح در ساختار DNS مشاهده میکنید. این کار باعث کاهش زمان دسترسی به اطلاعات و همچنین ایجاد تعادل بار (Load Balancing) در شبکه میشود. راهکارهای CDN مانند Cloudflare از راهکار هرپخشی بهصورت بسیار گسترده استفاده میکنند.
بهرهمندی از مزایای شبکه anycast با سرویس CDN ایرانی ابر دراک
بهطور خلاصه میتوان موارد زیر را بهعنوان مزایای اصلی استفاده از Anycast برای افزایش سرعت وبسایت و جلوگیری از حملات مخرب به آن نام برد:
- بهینهسازی مسیریابی براساس پروتکل BGP صورت میپذیرد و وابستگی به سایر راهکارها مانند Load Balancerها و URL Rewriting از بین میرود.
- مالکیت IPها و دسترسی به منابع IPها برای CDNها و هزینههای نگهداری شبکه توزیع محتوا کاهش مییابد که در کل موجب کاهش هزینههای کاربران نهایی خواهد شد.
- عدم وابستگی به زیرساختهایی مانند DNS باعث میشود مشتریان سرویس CDN بدون هیچگونه مشکلی در زیرساختهای DNS جهانی از مزایای توزیع جغرافیایی بهرهمند شوند.
- با کمک شبکه هرپخشی بدون داشتن دغدغه محل قرار گرفتن سرور DNS خود و با استفاده از فقط یک آدرس IP میتوانید به چندین سرویس DNS دسترسی پیدا کنید.
همانطور که قبلا گفته شد، با وجود مزایای طراحی، مالکیت و نگهداری چنین شبکههایی توسط شرکتهای ارائهدهنده خدمات اینترنتی، شبکههای Anycast از لحاظ فنی پیچیدگیهای بسیاری دارند. در حال حاضر کمتر از ۴۰ شرکت در کل دنیا شبکههای انیکست را در مالکیت دارند. این شرکتها از anycast برای اهداف توزیع محتوا، افزونگی (Redundancy) و قابلیت دسترسیپذیری بالا (High-availability) بهره میبرند که درصد قابلتوجهی از آنها، ارائهدهندگان CDN هستند.
با استفاده از سرویس CDN ایرانی ابر دراک میتوانید از مزایای شبکه anycast بهرهمند شوید و شاهد ارتقای زیرساخت کسبوکار و بهبود ارائه خدماتتان به مشتریها باشید. برای ارتباط با متخصصان ابر دراک میتوانید از راههای ارتباطی موجود در وبسایت استفاده کنید.
منابع: Cloudflare | KeyCDN