سیسکو GRE چیست ؟
GRE وآموزش پیاده سازی GRE – Generic Routing Encapsulation توسط روتر سیسکو
GRE یا همان Generic Routing Encapsulation یکی از پروتکل های سیسکو در آوردی کمپانی سیسکو است که برگرفته از کبر و غرور بالای این شرکت معظم است که مایل است صنعت شبکه را استوار بر دلبخواه های خودش کند 🙂 ! البته خیلی هم شوخی نبود ، در صورتی که با سیسکو آشنایی داشته باشید و یا مقالات ما را دنبال کرده باشید ، حتما به دیگر استانداردهای غیر استانداردی که مختص تجهیزات سیسکو است ، برخورده اید ، برای مثال ISL در مبحث Vlan Trunking و یا IGRP – EIRGP در مباحث روتینگ ،، و حال در این مقال شبکه های خصوصی مجازی یا همان V irtual P rivate N etwork ، باز سیسکو ساز مخالف میزند و GRE را معرفی می نماید .
GRE از حق نگذریم ، پروتکل خوبیست ، به زبان بیش از حد ساده در واقع پروتکلی است حمال ، برای Encapsulate کردن دیگر پروتکل ها در دل خود و انتقال بر روی بستر IP .
Tunneling مکانیسمی است که در آن پکت های یک نوع پروتکل ، توسط پروتکل دیگری بر روی بستری خاص در اینجا IP حمل میشود . در تانلینگ ما دو مفهوم داریم ، اولی که وظیفه انتقال را دارد Transport Protocol یا همان حمال خودمان نام دارد و پروتکلی که توسط این حمال حمل میشود ، Passenger یا همان مسافر نامیده میشود .
GRE قابلیت Encapsulate انواع پروتکل های مختلف را دارد ، به زبان ساده Encapsulate یعنی جاساز :دی ، بدین معنی که اگر قرار است این حمال باری را قاچاق کند ، این بار میتواند ، مواد غذایی فاسد شدنی ، انسان زنده یا مرده ( جسد ) ، اسلحه و مهمات ، کمک های مردمی و یا حتی مواد باشد ،، خب این قاچاقچی باید خیلی قابل باشد که بتواند انواع این مسافر ها را جاساز کرده و با پوشش مناسب از بستر های عمومی که همان جاده ها باشند عبور دهد :)) ! پس GRE مالتی پروتکل است 🙂 !
GRE عموما به صورت Point to Point بین دو روتر سیسکو برقرار میشود ، برای مثال شما میتوانید بر روی بستری عمومی مثال اینترنت یا اینترانت ، دفاتر و شعبات خود را توسط GRE بین روتر های مرزی به یکدیگر متصل و از مزایای Dynamic Routing استفاده کنید و یا برای انتقال اینترنت بر روی بستر اینترانت و یا انتقال خطوط تلفن بین دفاتر شرکت و سازمان و یا انتقال تصویر و یا هر نوع دیتای مهم دیگری که میبایست بر روی یک بستر عمومی نظیر اینترنت و یا اینترانت یا همان شبکه ملی داده به شکل خصوصی انتقال یابد .
GRE ذاتا Stateless است ، بدین معنی که متوجه افتادن لینک نمیشد ، البته میتوانید از keep-alive ها استفاده کنید و یا از floating static route توسط Policy Based Routing PBR و یا حتی از IP SLA چیست جهت Redundancy استفاده کنید
راه اندازی و اتصال ذو روتر سیسکو توسط GRE Tunnel نسبتا آسان است ، تنها نکته ای باید به آن توجه کنید ، میزان MTU مسیر و همچنین TCP MSS است ، و الا با مشکل در باز شدن صفحات و … در انتقال اینترنت مواجه خواهید شد ، که در این باره طی یک مقاله قبلا بحث شده است .
آموزش راه اندازی GRE توسط روتر سیسکو :
Router 1 :
R1(config)# interface Tunnel1
R1(config-if)#tunnel mode gre ip
R1(config-if)# ip address 172.16.0.1 255.255.255.0
R1(config-if)# ip mtu 1500
R1(config-if)# ip tcp adjust-mss 1360
R1(config-if)# tunnel source 1.1.1.10
R1(config-if)# tunnel destination 2.2.2.10
Router 2 :
R2(config)# interface Tunnel1
R2(config-if)#tunnel mode gre ip
R2(config-if)# ip address 172.16.0.2 255.255.255.0
R2(config-if)# ip mtu 1500
R2(config-if)# ip tcp adjust-mss 1360
R2(config-if)# tunnel source 2.2.2.10
R2(config-if)# tunnel destination 1.1.1.10
حال برای اینکه شبکه های پشت روتر های 1 و 2 یکدیگر را ببینند این دو خط Route را بر روی هر روتر مینویسیم :
Router 1 :
R1(config)#ip route 192.168.2.0 255.255.255.0 172.16.0.2
Router 2 :
R2(config)#ip route 192.168.1.0 255.255.255.0 172.16.0.1
GRE پروتکل امنی نیست ، بدین معنی که اطلاعات بدون رمز گذاری Encapsulate میشود و هر انسان بیماری میتواند در میان راه پکت ها را Sniff یا همان شنود و decapsulate نماید ، پس برای حمل اطلاعات حساس ، ( اسلحه و مهمات و جسد و مواد و … ) مناسب نیست ، راه حل چیست ؟ استفاده از IP SEC ! با استفاده از IP Sec میتوانید یک لایه امنیتی مناسب به GRE اضافه نمایید .
خیلی گذرا به کانفیگ IP Sec بر روی روتر 1 میپردازیم :
R1(config)# crypto isakmp policy 1
R1(config-isakmp)# encr 3des
R1(config-isakmp)# hash md5
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 2
R1(config-isakmp)# lifetime 86400
R1(config)# crypto isakmp key shabake address 2.2.2.10
R1(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
R1(cfg-crypto-trans)# mode transport
R1(config)# crypto ipsec profile protect-gre
R1(ipsec-profile)# set security-association lifetime seconds 86400
R1(ipsec-profile)# set transform-set TS
R1(config)# interface Tunnel 0
R1(config-if)# tunnel protection ipsec profile protect-gre
همین تنظیمات نیز تقریبا به همین صورت میبایست بر روی روتر مجاور نیز پیاده سازی شود ، و اگر خیلی علاقه مند هستید که بفهمید مکانیسم کار به چه صورتیست ، بروید کتاب بخوانید 🙂
وفقک الله
Aka Networks