درباره GRE Tunnel و نحوه پیاده سازی آن

درباره GRE Tunnel و نحوه پیاده سازی آن

درباره GRE Tunnel و نحوه پیاده سازی آن

درباره GRE Tunnel و نحوه پیاده سازی آن

برای تونل زدن در تمامی پروتکل هایی که در بستر IP قرار دارند از از وی پی ان پروتکل GRE استفاده می شود. بدین روش که با GRE Tunnel دو سایت را که احتمال دارد از نوع IPV4، IPV6، IPX و یا هر پروتکل دیگری باشد را می­توانید روی بستر IPV4  و به صورت Point-to- Point  به همدیگر وصل کنید.

در این مقاله ما ترافیک آی پی را بر روی بستر اشتراکی IP به صورت پروتکل GRE تونل زده­ایم تا بتوانیم ارتباط سایت­ها را روی بسترهای عمومی و اشتراکی مثل اینترنت به همدیگر وصل کنیم.

درباره GRE Tunnel و نحوه پیاده سازی آن

اگر دو تا سایت داشته باشیم که محدوده آدرس آنها اختصاصی باشد و روی بستر اینترنت به همدیگر وصل باشند، ارتباط کاربران در این دو وبسایت به صورت Transparent بدون GRE Tunnel کار سختی است. به این دلیل که آدرس­های محدوده اختصاصی روی اینترنت به هیچ صورتی مسیریابی نمی­شوند و برای دو کاربر که قصد ارتباط متقابل روی اینترنت دارند باید از روش­های دیگر مثلNAT استفاده کرد. که Transparent نیست.

ترافیک بین دو سایت را تکنولوژی GRE Tunnel مجددا روی ترافیک جدیدی از نوع آی پی بسته­بندی کرده که در آن آدرس مبدا و مقصد آدرس بیرونی و اینترنتی روترهای مرزی دو سایت باشد و بدین روش ارتباط بین دو سایت نیز امکان­پذیر می­شود.

اگر به تصویر زیر توجه کنید دو سایت با آدرس­های ۱۹۲٫۱۶۸٫۱٫۰/۲۴ و ۱۹۲٫۱۶۸٫۲٫۰/۲۴ با استفاده از اینترنت به همدیگر متصل هستند. در این دو سایت کاربرها نمی توانند به صورت transparent و مثل LAN با همدیگر ارتباط برقرار ­کنند چون آدرس­های محدوده خصوصی (private ) در اینترنت مسیریابی نمی­شوند. رابط کاربری بیرونی روترهای مرزی این دو سایت IP1 و IP2  را دارند که با بهره بردن از اینترنت قابل دیدن هستند و بنابراین روترهای مرزی این دو سایت کاملا به صورت transparent  با یکدیگر می­توانند ارتباط برقرار کنند.

در این شرایط ارتباط بین دو سایت را می توان به وسیله Tunnel به صورت کاملا شفاف برقرار کرد. به چنین حالتی که ترافیک بین دو سایت با آدرس مبدا و مقصد مشخص، هنگامی که روتر مرزی سایت مبدا، که در واقع همان ابتدا  Tunnel است، گرفته می­شود، روی ترافیک دیگری با آدرس مبدا و مقصد IP1 وIP2  که آدرس نخست و انتهای تونل هستند، سوار می­شوند.

ترافیک اخیر روی اینترنت مسیریابی شده و در روتر مرزی سایت مقصد که همان آخر Tunnel است، گرفته می­شود. در انتها هم بسته اصلی از سربار ساخته شده جدا می­شود و به سایت مقصد تحویل داده می­شود.

 

درباره GRE Tunnel

یک روش از tunneling سرویس GRE Tunnel  است که هر نوع ترافیکی را می­تواند روی آی پی سوار و منتقل کند. در ضمن توانایی منتقل­کردن ترافیک­های multicast و broadcast  را هم دارد.

این به این معنی است که اگر از سایت مبدا ترافیک multicast  و یا broadcast  به سایت مقصد ارسال انجام شود، قابلیت انتقال بوسیله GRE خواهد داشت. یکی از مزایای ویژه GRE ، امکان پذیر کردن قابلیت، اجرای پروتکل­های مسیریابی را روی GRE است. به روش پیاده­سازی تونل ( GRE) در ادامه مقاله، بین دو سایت روی بستر اینترنت نشان داده می­شود.

برای روش کانفیگ تونل GRE  مراحل پایین را دنبال کنید:

  1. با دستور interface tunnel نخست تونل جدیدی را ایجاد می­کنیم.
  2. سپس در محیط رابط کاربری تونل، مد تونل خود را به وسیله دستور tunnel mode به GRE تغییر می دهیم. جایی که مد پیش فرض است، نیازی به این دستور نیست، همچنین در خروجی پیکربندی نیز نشان داده می شود.
  3. با دستورات tunnel source و tunnel destination مبدا و مقصد تونل را مشخص می­کنیم و آدرس بیرونی روترهای مرزی دو سایت، مبدا و مقصد تونل است.
  4. ترافیک بین وبسایت­ها با یکی از روش­های مسیریابی Static و یا Dynamic را از طریق Tunnel ارسال می­نماییم. از پروتکل EIGRP در این روش برای مسیریابی بین وبسایت­ها روی Tunnel استفاده می­شود. همان طور که پیش­تر بیان شد یکی از مزایا تونل GRE  امکان ارسال ترافیک broadcast  و multicast  است که امکان پیاده­کردن هر یک از پروتکل­های مسیریابی را روی تونل امکان­ پذیر می­سازد.

بررسی GRE Tunnel

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

Protocol Type یکی از فیلدهایی است که نوع بسته داخلی را معین می­کند. به خاطر همین فیلد است که دقیقا هر نوع ترافیکی را روی پروتکل GRE  می­توان اجرا کرد.نبودن فیلدهای اختیاری در سرویس GRE به وسیله فیلد Flags نشان داده می شود. بدیهی است سایز هدر GRE در صورت وجود داشتن فیلدهای اختیاری که در انتها مقاله معرفی می­شود، از ۴ بایت بالاتر می­رود. بیشترین سایز هدرGRE عددی نزدیک به ۱۶ بایت است.

فیلدهای اختیاری مثل GRE در عکس پایین در کنار فیلدهای اصلی نشان داده شده است. فیلدهای اختیاری پروتکل GRE، Sequence number، checksum و key  هستند که به ترتیب وظیفه مرتب­ سازی ترافیک GRE، مشخص کردن نوع خطا در ارسال ترافیک سرویس GRE  و احراز هویت ابتدا و انتهای Tunnel را نسبت به هم برعهده دارند. در GRE کلید به صورت clear text و بدون رمزنگاری انتقال داده می­شود.

شکل هدرGRE در شکل پایین به صورت دقیق­تر نشان داده شده است. فیلدهای C، K و  S  در GRE Flag نشان­دهنده وجود داشتن یا عدم وجود فیلدهای اختیاری checksum، sequence number وkey  است.

دیدگاهتان را بنویسید