در ابتدا این را عرض کنیم که در تونل پروتکل GRE در صورتی که یکی از دو طرف ارتباط Tunnel شان قطع بشود، دیگر طرف مقابل قادر به تشخیص قطعی تونل و down کردن line protocol نیست و از این رو ترافیک ها همچنان روی مسیر تونل ارسال می شود ولی دیگر ترافیک تونل هیچوقت به مقصد خود نمی رسد.
Down کردن Line Protocol، وقتی که انتهای تونل در دسترس نیست، الزامی می باشد تا مسیرهایی که Interface خروجی آنها تونل است از جدول مسیریابی پاک شده و مسیرهای جایگزین در جدول مسیریابی قرار گیرد.
نکته جالب این است که بدانید اینترفیس GRE Tunnel در صورتی که شرایط زیر وجود داشته باشد UP می شود که یعنی بدون اینکه طرف مقابل اینترفیس Tunnel در دسترس باشد.
- آدرس مبدا تونل معتبر باشد و همچنین Interface آن نیز UP باشد.
- حداقل مسیری برای مقصد Tunnelدر جدول مسیریابی موجود باشد.
نحوه نگهداری از GRE Tunnel با keep-alive
پس در وضعیتی که طرف مقابل تونل دیده نمی شود و ارتباط تونل آن قطع می باشد، line protocol و اینترفیس تونل آن down نمی شود و دیگر مسیرهای اشتباه از جدول مسیریابی آن حذف نخواهند شد و مسیریابی ترافیک با مشکل مواجه خواهد شد با وجود اینکه حتی مسیر جایگزین هم وجود داشته باشد.
نگران نباشید چون راه حل این مشکل GRE keep-alive است. احتمالا با کلمه keep-alive در پروتکل های گوناگون آشنایی دارید. اینکه هر یک از دوطرف ارتباط, یک بسته کوچک را به صورت زمانی به طرف مقابل خود ارسال می کند و اگر هر یک از طرفین قادر به دریافت بسته keep-alive در چند بازه زمانی را نداشته باشد، line protocol خودش اینترفیس مربوطه را down می نماید.
ارسال Keep-alive در GRE مقداری با دیگر پروتکل ها فرق دارد . در پروتکل GRE حتی اگر یکی از طرفین ارتباط GRE سرویس keep-alive را فعال نکرده باشد، طرف مقابل، که این سرویس روی آن فعال است، قادر به ارسال و دریافت مکانیزم keep-alive خواهد بود. مکانیزم بدین گونه می باشد که محتویات بسته keep-alive، پاسخی است که قرار است طرف مقابل به ما ارسال نماید. به این معنی که وقتی طرف مقابل بسته GRE را دریافت می کند و بعد آن را باز می کند، محتویات آن بسته GRE دیگری است که قرار است به ما پاسخ دهد و بنابراین برای پاسخ دادن نیازی نیست تا مکانیزم keep-alive روی آن فعال باشد, طرف مقابل ارتباط Tunnel , به محض باز کردن بسته keep-alive با بسته دیگری مواجه می شود که فقط آن را ارسال می کند و از آنجایی که این بسته، بسته پاسخ keep-alive ارسالی است به صورت اتوماتیک به ما بر می گردد.
برای اینکه بهتر این موضوع رو درک کنید به شکل زیر دقت کنید که در آن ارتباط Tunnel بین دو روتر A و B برقرار شده است که آدرس دو سر تونل به ترتیب 129.9.9.9 و 128.8.8.8 است. بسته مکانیزم keep-alive در زیر شکل نمایش داده شده است. آدرس مبدا و مقصد بسته GRE بیرونی، که همان keep-alive است، به ترتیب روتر A و B هستند. اما داده های این بسته، بسته GRE دیگری است که آدرس مبدا و مقصد آن بر عکس است. یعنی آدرس مبدا روتر B و آدرس مقصد روتر A است. همچنین مقدار فیلد PT هم 0 است. وقتی روتر A بسته keep-alive را روی تونل GRE به روتر B ارسال می کند. اگر روتر B بسته مدنظر را دریافت کند، همانند همه ,دیگر بسته های دریافتی روی Tunnel آن را باز کرده و ارسال می نماید. بسته ارسالی همان پاسخ keep-alive است که به فرستنده بر می گردد. بنابراین طرف مقابل بدون استفاده از keep-alive پاسخ را به فرستنده ارسال نموده است. اگر به هر دلیلی پاسخ برنگردد به معنی down بودن طرف مقابل ارتباط تونل GRE است. پس چنانچه در چند بازه زمانی، فرستنده مکانیزم keep-alive پاسخ را دریافت نکند، line protocol اینترفیس Tunnel خود را down می نماید.
شکل توضیحی زیر بسته مکانیزم keep-alive ارسالی از روتر A به روتر B و همچنین پاسخ آن را نشان داده است.
برای خرید فیلتر شکن پرسرعت به سایت تیک نت وی پی ان مراجعه کنید.