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

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

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

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

اگر به نصویر زیر دفت نمایید دو سایت با آدرس های 192.168.1.0/24 و 192.168.2.0/24 با استفاده از اینترنت به یکدیگر وصل هستند. کاربرها در این دو سایت نمی توانند به صورت transparent و همانند LAN با یکدیگر ارتباط برقرار انجام دهند زیرا آدرس های محدوده خصوصی ( private ) در اینترنت مسیریابی نمی شوند. Interface بیرونی روترهای مرزی این دو سایت آدرس اینترنتی IP1 و IP2 را دارند که با استفاده از اینترنت قابل مشاهده هستند و بنابراین روترهای مرزی این دو سایت می توانند کاملا به صورت transparent با هم ارتباط برقرار کنند.

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

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

درباره GRE Tunnel

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

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

در ادامه مقاله به شیوه پیاده سازی تونل ( GRE ) بین دو سایت روی بستر اینترنت نشان داده می شود.

درباره GRE Tunnel
درباره GRE Tunnel

 

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

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

بررسی GRE Tunnel

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

یکی از فیلدها Protocol Type است که نوع بسته داخلی را مشخص می نماید و دقیقا به خاطر همین فیلد است که هر نوع ترافیکی را می توان روی پروتکل GRE پباده کرد. فیلد Flags هم عدم وجود فیلدهای اختیاری در سرویس GRE را نشان می دهد. بدیهی است در صورت موجود بودن فیلدهای اختیاری که در پایین مقاله معرفی می شود ، سایز هدر GRE از 4 بایت بیشتر می شود. حداکثر سایز سربار GRE چیزی حدود 16 بایت می باشد.

بررسی GRE Tunnel
بررسی GRE Tunnel

 

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

معرفی و پیکربندی GRE Tunneling
معرفی و پیکربندی GRE Tunneling

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

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

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

فهرست