پرش به مطلب اصلی

پروکسی لایه ۴

قابلیت پروکسی لایه ۴ ابر آروان، به شما کمک می‌کند تا امنیت و شتاب‌دهی را برای اپلیکیشن‌های مبتنی بر TCP خود تامین کنید. با استفاده از این ویژگی می‌توانید پروتکل‌های Non-Web مانند ایمیل، SSH ،FTP، بازی‌ها و ... را از طریق TCP در آروان مسیریابی کنید، تا آدرس سرور‌های اصلی را پنهان و از آن‌ها در برابر حملات DDoS محافظت کنید.

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

برای شروع کافی‌ است تا از مسیر «پنل کاربری ابر آروان > شبکه توزیع محتوا > انتخاب دامنه > امنیت > پروکسی لایه ۴ > اپلیکیشن جدید» یک اپلیکیشن بسازید.

گام نخست: تنظیمات اپلیکیشن

در صفحه‌ی باز شده ابتدا نام و توضیحات اپلیکیشن‌تان را وارد کنید. سپس یک زیر دامنه از دامنه‌تان را که می‌خواهید روی آن اپلیکیشن ایجاد شود را انتخاب کنید.

دقت کنید که این زیر دامنه نباید از قبل استفاده شده باشد.

در بخش‌های بعد، لازم است تا پورت، پروتکل و شیوه‌ی استفاده از PROXY PROTOCOL را مشخص کنید.

پروتکل

پروتکلی که ترافیک دریافتی از سمت کاربران بر اساس آن دریافت می‌شود. شما می‌توانید پروتکل TCP را انتخاب کنید.

در نظر داشته باشید پروتکل پس از انتخاب شدن قابل ویرایش نیست.

پورت

پورتی که کاربران درخواست‌های خود را برای آن ارسال می‌کنند و روی شبکه‌ی CDN میزبانی می‌شود. پورت انتخاب شده در میان اپلیکیشن‌های شما باید منحصر به فرد باشد و نمی‌توانید از یک پورت بیش از یک بار استفاده کنید.

در نظر داشته باشید پورت پس از انتخاب شدن قابل ویرایش نیست.

پشتیبانی از PROXY PROTOCOL

از آن‌جایی که آروان بسته‌ها را قبل از ارسال به سرور اصلی پایش می‌کند، در لاگ‌هایتان IP آروان را به جای IP کاربر واقعی خواهید دید.

ممکن است در برخی از سرویس‌ها نیاز به دریافت IP واقعی کاربر باشد. در این موارد، می‌توانید از PROXY PROTOCOL استفاده کنید تا IP کاربر را به سرویس‌تان منتقل کنید. برای TCP، ابر آروان از Proxy Protocol v1 و Proxy Protocol v2 پشتیبانی می‌کند، که به‌وسیله‌ی NGINX نیز پشتیبانی می‌شود.

  • فعال سازی نسخه ۱:

    نسخه‌ی ۱ هر اتصال را با یک هدر ارسال می‌کند که در آن آدرس IP و پورت کاربر وجود دارد.

    یک هدر نسخه ۱ دارای قالب زیر است:

    PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"

    یک نمونه Proxy Protocol v1 برای یک آدرس IPv4 به شکل زیر است:

    PROXY TCP4 192.0.2.0 192.0.2.255 42300 443\r\n

    یک نمونه Proxy Protocol v1 برای یک آدرس IPv6 به شکل زیر است:

    PROXY TCP6 2001:db8:: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 42300 443\r\n
  • فعال سازی نسخه ۲:

    هنگامی‌که برنامه‌های TCP برای استفاده از Proxy Protocol v2 پیکربندی شوند، آروان به هر اتصالِ TCP ورودی، یک هدر باینری Proxy Protocol v2 اضافه می‌کند که در آن آدرس IP و پورت کاربر وجود دارد.

    یک هدر باینری Proxy Protocol برای یک آدرس ورودی IPv4 به شکل زیر است:

0          1          2          3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

\+ +

| Proxy Protocol v2 Signature |

\+ +

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Version|Command| AF | Proto.| Address Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| IPv4 Source Address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| IPv4 Destination Address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Source Port | Destination Port |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

یک هدر باینری Proxy Protocol برای یک آدرس ورودی IPv6 به شکل زیر است:

 

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

\+ +

| Proxy Protocol v2 Signature |

\+ +

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Version|Command| AF | Proto.| Address Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

\+ +

| |

\+ IPv6 Source Address +

| |

\+ +

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

\+ +

| |

\+ IPv6 Destination Address +

| |

\+ +

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Source Port | Destination Port |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

گام دوم: تنظیمات توزیع بار

در این مرحله می‌توانید با قرار دادن آدرس چند سرور اصلی خود یک کلاستر ایجاد کنید و برای مانیتور کردن وضعیت آن از بخش مانیتورینگ بهره بگیرید.

  • روش توزیع بار

    در این بخش می‌توانید الگوریتمی‌ را که بر اساس آن یک آدرس از میان آدرس سرورهای اصلی انتخاب می‌شود مشخص کنید.

    • الگوریتم Round Robin

      این الگوریتم ساده‌ترین و رایج‌ترین الگوریتم توزیع بار است. درخواست های کاربران در چرخش ساده بین سرورهای اصلی شما توزیع می شود. برای مثال تصور کنید ۶ کاربر (u1، u2، u3، u4، u5 و u6) دارید که می‌خواهند به اپلیکیشن شما متصل شوند و شما ۳ سرور (s1، s2 و s3) دارید. u1 به u2، s1 به u3 و s2 به s3 و در ادامه u۴ به u5 ،s1 به s2 و u6 به s3 متصل می‌شود. الگوریتم Round Robin برای درخواست‌های قابل پیش‌بینی و سرورهایی با توان پردازشی و منابع نسبتن مساوی، مناسب هستند.

      اما اگر یکی از سرورها نسبت به بقیه ظرفیت بیش‌تری برای رسیدگی به درخواست‌ها داشته باشد، می‌توان به کمک وزن‌دهی از نهایت قدرت آن سرور استفاده کرد.

    • Weighted Round Robin

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

      تفاوت اصلی در مثال بالا این است که u1 به s1 وصل می‌شود و سپس u2 دوباره به s1 متصل می‌شود. u3 به s2 و u۴ به s3 و سپس u5 و u6 به s1 وصل می‌شوند.

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

    • الگوریتم Source

      این روش، آدرس‌های IP مبدا و مقصد ترافیک را ترکیب و از یک تابع ریاضی برای تبدیل آن به Hash استفاده می‌کند. بر اساس این Hash، درخواست به یک سرور خاص اختصاص داده می‌شود. از آن جایی که با قطع یک Session، کلید را می‌توان دوباره تولید کرد، درخواست کاربر به همان سروری هدایت می‌شود که در اولین درخواست به آن متصل شده است. این روش زمانی مناسب‌تر است که اتصال‌های متوالی یک کاربر لازم باشد همیشه به همان سرور باز گردد.

    • الگوریتم Least Connection

      در این روش فرض بر آن است که همگی درخواست‌ها به یک میزان به قدرت پردازش نیاز دارند و در نتیجه درخواست به سمت سروری می‌رود که کمترین Connection باز را در لحظه دارد.

  • سرور‌ها

در این بخش باید آدرس IP سرور‌هایتان را همراه با پورت و وزن مورد نظر هر کدام وارد کنید.

گام سوم: تنظیمات مانیتورینگ

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

در این صفحه باز‌ه‌ی تکرار به معنی فاصله‌ی زمانی ارسال درخواست‌های مانیتورینگ به سمت سرور‌های اصلی است.

هم‌چنین تعداد خطای قابل تحمل، مشخص‌کنند‌ه‌ی تعداد خطایی است که باید رخ دهد تا مانیتورینگ وضعیت آن سرور را به شکل خطادار در نظر بگیرد.

گام چهارم: تنظیمات فایروال

با استفاده از فایروال می‌توانید دسترسی به اپلیکیشن‌تان را بر اساس دو پارامتر IP و کشور مسدود کنید.

پروکسی لایه ۴ ابر آروان محفاظت در برابر DDoS را در لایه‌های ۳ و ۴ مدل OSI (حملات مبتنی بر TCP) ارایه می‌دهد.

ابر آروان به عنوان یک پروکسی معکوس لایه ۴ کار می‌کند، بنابراین قبل از اینکه ترافیک به مبدا پروکسی شود، ابتدا باید یک اتصال TCP مناسب برقرار شود. این کار هر گونه تاثیر حملات SYN یا SYN-ACK را به سرور‌های لبه‌ی آروان منتقل می‌کند. علاوه بر این، با استفاده از پروکسی لایه ۴ در مقابل اپلیکیشن‌تان، IP مبدا شما پنهان می‌شود و از هدف قرار گرفتن IP سرور‌های شما جلوگیری می‌شود. توصیه می‌شود پس از انتقال ترافیک به ابر آروان دسترسی همه‌ی IP‌ها به سرور اصلی را ببندید و فقط رنج IP سرور‌های آروان را وایت‌لیست کنید.

گام نهایی: ثبت درخواست

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