GRE Tunneling چیست؟
"تونل زنی GRE پروتکلی برای کپسوله کردن بستههای داده با استفاده از یک پروتکل مسیریابی در بسته های پروتکل دیگر است."
تونل زنی GRE و چگونه در حملات DDOS استفاده میشود؟
GRE یا Generic Routing Encapsulation پروتکلی برای کپسوله کردن بستههای داده با استفاده از یک پروتکل مسیریابی در بسته های پروتکل دیگر است. کپسوله کردن به معنای قرار دادن یک بسته داده در یک بسته داده دیگر است، درست مانند قرار دادن یک جعبه درون جعبهای دیگر. GRE یکی از راههای راهاندازی یک اتصال مستقیم Point-To-Point به منظور ساده سازی اتصالات بین شبکههای جداگانه است و با انواع پروتکلهای لایه شبکه کار میکند.
GRE استفاده از پروتکلهایی را که معمولا توسط شبکه پشتیبانی نمیشوند را امکانپذیر میکند. زیرا بستههای داده در بستههای داده دیگری قرار دارند که پروتکلهای پشتیبانی شده استفاده میکنند. برای درک اینکه GRE چگونه کار میکند به تفاوت بین ماشین و کشتی فکر کنید. یک ماشین به راحتی میتواند در خشکی و جادهها حرکت کند، در حالی که یک کشتی از روی آب حرکت می کند. یک ماشین معمولاً نمی تواند روی آب حرکت کند؛ برای انجام این کار می توان یک ماشین را در یک کشتی بارگیری کرد.
در این قیاس، نوع زمین مانند شبکه ای است که از پروتکل های مسیریابی خاصی پشتیبانی می کند و وسایل نقلیه مانند بسته های داده هستند. GRE راهی برای بارگیری یک نوع بسته داده در بسته داده دیگری است به طوری که اولین بسته بتواند از شبکه ای عبور کند که معمولاً نمی تواند از آن عبور کند، درست همانطور که یک نوع وسیله نقلیه (خودرو) بر روی نوع دیگری از وسیله نقلیه (کشتی) بارگذاری می شود.
به عنوان مثال، فرض کنید یک شرکت باید یک ارتباط بین شبکه های محلی (LAN) در دو دفتر مختلف خود راه اندازی کند. هر دو شبکه محلی از آخرین نسخه پروتکل اینترنت IPv6 استفاده می کنند. اما برای انتقال از یک شبکه اداری به شبکه دیگر، ترافیک باید از طریق شبکه ای که توسط شخص ثالث مدیریت می شود عبور کند، که تا حدودی قدیمی است و فقط از پروتکل IPv4 قدیمی پشتیبانی می کند. با GRE این شرکت میتواند ترافیک را از طریق این شبکه با کپسوله کردن بستههای IPv6 در بستههای IPv4 ارسال کند. با اشاره به قیاس، بستههای IPv6 خودرو هستند، بستههای IPv4 کشتی هستند و شبکه شخص ثالث آب است.
تونل زنی GRE به چه معناست؟
محصور کردن بستهها در بستههای دیگر «تونلسازی» نامیده میشود. تونلهای GRE معمولاً بین دو روتر پیکربندی میشوند و هر روتر مانند یک انتهای تونل عمل میکند. روترها به گونه ای تنظیم شده اند که بسته های GRE را مستقیماً به یکدیگر ارسال و دریافت کنند. هیچ مسیریاب بین این دو روتر بسته های کپسوله شده را باز نمی کند. آنها فقط به هدرهای اطراف بسته های کپسوله شده برای ارسال آنها اشاره می کنند.
برای درک اینکه چرا به این «تونل زنی» می گویند، می توانیم قیاس را کمی تغییر دهیم. اگر ماشینی باید از نقطه A در یک طرف کوه به نقطه B در طرف دیگر عبور کند، کارآمدترین راه این است که به سادگی از کوه عبور کنید. با این حال، اتومبیل های معمولی قادر به عبور مستقیم از سنگ های جامد نیستند. در نتیجه، ماشین باید تمام مسیر کوه را طی کند تا از نقطه A به نقطه B برسد. اما تصور کنید که یک تونل از میان کوه ایجاد شده است. اکنون خودرو می تواند مستقیماً از نقطه A به نقطه B برود که بسیار سریعتر است و بدون تونل نمی تواند انجام دهد.
اکنون، نقطه A را به عنوان یک دستگاه شبکه، نقطه B را به عنوان یک دستگاه شبکه دیگر، کوه را به عنوان شبکه بین دو دستگاه، و خودرو را به عنوان بسته های داده ای که باید از نقطه A به نقطه B بروند، در نظر بگیرید. این شبکه را تصور کنید. از نوع بسته های داده ای که دستگاه های موجود در نقاط A و B نیاز به تبادل دارند پشتیبانی نمی کند. مانند خودرویی که سعی میکند از کوه عبور کند، بستههای داده نمیتوانند از آن عبور کنند و ممکن است نیاز به طی کردن مسیر بسیار طولانیتری از طریق شبکههای اضافی داشته باشند.
اما GRE یک "تونل" مجازی از طریق شبکه "کوهستان" ایجاد می کند تا به بسته های داده اجازه عبور دهد. درست همانطور که یک تونل راهی را برای خودروها ایجاد می کند که مستقیماً از زمین عبور کنند، GRE (و سایر پروتکل های تونل زنی) راهی را برای بسته های داده ایجاد می کند تا از شبکه ای عبور کنند که آنها را پشتیبانی نمی کند.
GRE چگونه در حملات DDoS استفاده می شود؟
در یک حمله DDoS، مهاجم تلاش میکند تا سرور یا شبکه مورد نظر را با ترافیک شبکه ناخواسته غرق کند و توسط بمباران سرور با درخواستهای جعلی کاری انجام میدهد که سرور نتواند به مشتریان خود خدماتی ارائه دهند. یکی از بزرگترین حملات DDoS ثبت شده در سپتامبر 2016 رخ داد. این حمله علیه وب سایت یک محقق امنیتی و با استفاده از Mirai botnet انجام شد. وب سایت مملو از بسته هایی بود که از پروتکل GRE استفاده می کردند. برخلاف برخی پروتکلهای دیگر، منبع بستههای GRE را نمیتوان جعلی یا جعل کرد. برای انجام یک حمله بزرگ GRE DDoS، مهاجم باید تعداد زیادی از دستگاههای محاسباتی واقعی را در یک باتنت کنترل کند.