((ADC) Application Delivery Controller) چیست؟
کنترل کننده تحویل برنامه (ADC) یکی از اجزای شبکه است که وظیفه مدیریت و بهینهسازی کلاینتها جهت اتصال به وب یا سرور برنامههای کاربردی را دارد. بهطورکلی، یک ADC ممکن است یک دستگاه سختافزاری یا یک برنامه نرمافزاری باشد که جریان داده بین دو اجزا را مدیریت میکند.
یک ADC وظیفه load balancing بین سرورها و سرعت بخشیدن به برنامهها را، انجام میدهد. با گذر زمان و با پیشرفت تکنولوژی، ارائهدهندگان نسل جدید ADC وظایفی را گسترش دادهاند که از توازن بارهای سنتی و ADCهای نسل اول فراتر رفته است. از جمله این موارد، میتوان به تخلیه Secure Sockets Layer/Transport Layer Security (SSL/TLS) offloading, rate shaping and firewalls for web applications اشاره کرد.
نحوه عملکرد کنترلکننده تحویل برنامه (ADC)
ADC در اصل مانند یک متعادل کننده (Load Balancer) عمل میکند. این امر عملکرد End User، قابلیت اعتمادسازی، استفاده از منابع مرکز داده و امنیت برای برنامههای سازمانی را بهینهسازی میکند. همچنین ADC ها، وظایف دیگری را نیز انجام میدهند، از جمله:
• Application acceleration
• Caching
• Compression
• Traffic shaping
• Content switching
• Multiplexing
• Application security ADC
با پیادهسازی تکنیکهای بهینهسازی مانند طبقهبندی برنامه ، فشردهسازی و ذخیرهسازی معکوس، عملکرد برنامهها را در شبکه وسیع بهبود میبخشد.
بهطور معمول، ADC پشت یک فایروال و جلوی یک یا چند سرور برنامه قرار میگیرد و بهعنوان یک نقطه کنترل تکی عمل میکند که میتواند نیازهای امنیتی یک برنامه را تعیین کند و احرازهویت، اجازه دسترسی و حسابرسی را بهصورت ساده فراهم نماید.
یک کنترل کننده تحویل برنامه جریان دادهها بین سرورها و برنامهها را هدایت میکند
ویژگیهای کنترل کننده تحویل برنامه (ADC)
یک کنترل کننده تحویل برنامه میتواند بهصورت فیزیکی به عنوان یک دستگاه سختافزاری یا مجازی بهصورت نرمافزاری اجرا شود که بر روی یک سرور x86 قرار دارد. همچنین کنترل کننده تحویل برنامه مجازی در مراکز دادههای بزرگ شرکتی و محیطهای محاسبات ابری کاربرد دارد که مشتریان نیاز دارند تا بتوانند ظرفیت را با تغییر درخواستهای برنامه بهصورت صعودی و نزولی افزایش دهند. همچنین این سیستمها از قابلیتهای پشتیبانی از مجازیسازی، چندمستندی و انواع مختلفی از احراز هویت مرکزی را ارائه میدهند.
توازن بار (Load Balancing)
کنترل کنندههای تحویل برنامه در لایههای 3، 4 و 7 توازن بار فراهم میکنند. در لایههای 3 و 4، ترافیک بر اساس زیرشبکهها و آدرسهای IP، اطلاعات جلسه TCP، پروتکلها و شمارههای پورت توزیع میشود. قابلیتهای لایه 7 شامل توازن بار محتوا میباشد که ترافیک را بر اساس URL، دامنه، هدر HTTP یا کوئری توزیع میکند. کنترل کنندههای تحویل برنامه براساس قابلیت پشتیبانی از برنامههای مختلف، متفاوت از یکدیگر میباشند.
نظارت (Monitoring)
کنترل کنندههای تحویل برنامه (ADC) اتصالات بین دستگاهها را با استفاده از روشهایی مانند راندرابین (Round Robin)، زمان پاسخ یا کمترین بستهها تغییر میدهند. ADCهای مدرن از سیستم مانیتورینگ استفاده میکنند تا وضعیت یک سرور را تشخیص دهند. این امر مرحله مهمی از قبل از ارسال ترافیک میباشد، چرا که در غیراینصورت ممکن است به یک سرور بارانداز متعدد برسد. مانیتورینگ ADC از پروتکلهای مختلفی از جمله سیستم نامگذاری دامنه (DNS)، پروتکل انتقال فایل (FTP)، HTTP، HTTPS، TCP، UDP و ... استفاده میکند.
ایجاد ارتباط یک به چند
با انجام چندگانهسازی TCP، کنترل کنندههای تحویل برنامه (ADC) تعداد جلسات TCP را بهمنظور صرفهجویی در پهنای باند شبکه فشرده کرده و همزمان چندین سیگنال را ارسال میکنند. ایجاد ارتباط یک به چند، برای سرورهای برنامه مفید میباشد. چرا که بار دستگاه و ترافیک تبادل بهصورت هندسی با جلسات جدید افزایش مییابد.
ادغام پروتکل
بیشتر کنترلکنندههای تحویل برنامه (ADC) از ادغام با شبکههای موجود و پروتکلهای مسیریابی پویا، مانند Open Shortest Path First, Border Gateway Protocol and Virtual Extensible LAN پشتیبانی میکنند. علاوه بر این، کنترلکنندههای تحویل برنامه میتوانند بار پردازشی SSL/TLS را از سرورها برداشته، عملکرد برنامهها را شتاب دهند و به حفظ پایداری شبکه با کیفیت بالا کمک نمایند.
امنیت در کنترل کننده تحویل برنامه (ADC)
ADCها، نقش مهمی در امنیت شبکه ایفا میکنند. از مزایای دیگر ADCها، دفاع در برابر حملات توزیع شده (DDoS) می باشد. این کنترل کنندهها، از تکنیکهایی نظیر توازن بار در فایروالها، جلوگیری و شناسایی نفوذ و فایروال تحت برنامههای وب (WAF) استفاده میکنند تا با مدیریت درست از ایجاد ترافیک در حملات DDoS جلوگیری نماید.
در موارد دیگر، کنترل کنندههای تحویل برنامه میتوانند حملات تانلینگ SSL/TLS را متوقف سازند. برخی از این کنترل کنندهها دارای یک فایروال برنامه DNS هستند تا در مقابل فراز و فرود ناگهانی ترافیک به یک سرور DNS جلوگیری کنند.
از فایروالهای تحت وب نیز برای متوقف کردن حملات اسکریپت نقطه به نقطه (Cross-Site Scripting) استفاده میگردد. این ویژگی ممکن است به عنوان یک ویژگی داخلی با لایسنس کنترل کننده تحویل برنامه یا یک افزونه ویژه ارائه شود. WAFها، قادرند به حملات تزریق زبان ساختاری (Structured Query Language injections) خاتمه دهند، کوکیها را پاکسازی کرده و از دسترسی به دادههای حساس جلوگیری نمایند.
همچنین بعضی از ADCها، از امر از دست دادن داده جلوگیری به عمل میآوردند. با این ویژگی، ADC دادهها را بررسی میکند تا مشخص کند آیا با سیاستهای شرکت مطابقت دارند یا خیر و دادههایی که مخرب یا نقض این سیاستها هستند را علامتگذاری یا مسدود میکند.
مزایا و معایب ADCها
ADCها، عملکرد توازن بار برنامه (Load Balancing)، ارائه امن برنامههای کاربردی و مدیریت رفتار برنامه را فراهم میکنند. آنها میتوانند بهصورت سختافزاری یا بهصورت نرمافزار مجازی نصب شوند و به شرکتها انعطاف بیشتری در نحوه نصب آنها میدهند. همچنین، این کنترل کنندهها با استفاده از میکروسرویسهای اختصاصی در داخل محیطهای شرکتی، از مدیریت ترافیک دادههای داخلی پشتیبانی میکنند.
امکانات بهروز شده ADCها، شامل پشتیبانی از برنامههای کاربردی containerized و تجزیه و تحلیل جامع میباشد. این امکانات به سازمانها امکان مدیریت جریانهای ترافیک داخل عملیات را بهصورت موثرتر میدهند. به عبارت دیگر، ADCها ویژگیهای بسیار بیشتر و عملکرد بهبود یافتهای ارائه میدهند.
در مقابل، نقاط ضعفهایی نیز وجود دارند. ویژگیهای ADCها مختص به هر شرکت یا سازمان میباشد، بنابراین مقایسه آنها برای سازمانها ممکن است چالشبرانگیز باشد. هر ADC ترافیک را به شکل متفاوتی پردازش میکند که ممکن است باعث محدودیتهای عملکرد و مشکلات عملیاتی دیگر شود. همچنین، رمزگشایی و بارگذاری ترافیک SSL/TLS نیز ممکن است منابع قابل توجهی را مصرف نماید.