GRE — bir tarmoq protokoli paketini boshqa IP paket ichiga joylab tunnel orqali uzatadigan kapsulalash protokoli. Uning to‘liq nomi Generic Routing Encapsulation hisoblanadi.
GRE turli Layer 3 protokollarini IP tarmog‘i ustida tashishi, bir-biridan uzoq subnetlarni mantiqiy bog‘lashi va routing protokoli trafikini tunnel ichidan o‘tkazishi mumkin.
GREning asosiy vazifasi kapsulalash hisoblanadi. U odatiy holatda trafikni shifrlamaydi va foydalanuvchini autentifikatsiya qilmaydi.
Kapsulalash jarayoni
Tunnelga kirayotgan asl paket inner packet hisoblanadi. GRE router unga GRE header va yangi tashqi IP header qo‘shadi.
Tashqi IP header
GRE header
Ichki IP packet
Oraliq internet routerlari ichki manzilni bilmaydi. Ular faqat tashqi IP headerdagi tunnel endpoint manzillariga qarab marshrutlaydi.
Tunnel oxiridagi router tashqi IP va GRE sarlavhalarini olib tashlaydi. Asl paket ichki tarmoqqa uzatiladi.
Tunnel endpointlari
GRE tunnel ikki endpoint orasida yaratiladi.
Har endpointda:
- tunnel source;
- tunnel destination;
- tunnel interfeys IP manzili;
- ichki routing;
- MTU;
- keepalive;
- xavfsizlik siyosati
sozlanadi.
Tunnel source fizik interfeys manzili yoki loopback manzil bo‘lishi mumkin. Loopback ishlatilsa, unga underlay routing orqali yetish mavjud bo‘lishi kerak.
GRE header
GREning asosiy headeri kichik.
Maydonlar:
Protocol Type ichki payload turini ko‘rsatadi. Masalan, IPv4, IPv6 yoki boshqa protokol.
IP protocol raqami
GRE TCP yoki UDP portidan foydalanmaydi. IPv4 headerdagi protocol field GRE uchun 47 qiymatiga ega.
Firewall qoidasi IP protocol 47ga ruxsat berishi kerak. Bu TCP port 47 yoki UDP port 47 degani emas.
GRE vazifalari
GRE quyidagi holatlarda uchraydi:
- filial subnetlarini tunnel orqali bog‘lash;
- OSPF yoki EIGRP multicastini internet ustida tashish;
- IPv6 paketni IPv4 tarmog‘i orqali o‘tkazish;
- maxsus overlay;
- hub-and-spoke tunnel;
- IPsec bilan birga routing protokoli ishlatish;
- laboratoriya va test.
Oddiy IPsec policy-based tunnel multicast routing paketlarini to‘g‘ridan-to‘g‘ri tashimasligi mumkin. GRE multicastni kapsulalab, keyin IPsec bilan himoyalanadi.
Point-to-point GRE
Eng sodda GRE ikki aniq endpoint orasida ishlaydi.
Misol:
Router A public IP: 203.0.113.10
Router B public IP: 198.51.100.20
Tunnel subnet: 10.255.0.0/30
A va B tunnel interfeyslari 10.255.0.1 va 10.255.0.2 manzillarini oladi. Ichki marshrutlar shu tunnel next hop orqali yo‘naltiriladi.
Routing
GRE tunnel yaratilgani bilan ichki subnetlar avtomatik ma’lum bo‘lmaydi.
Routing usullari:
Tunnelning tashqi destination manziliga route tunnelning o‘zidan emas, fizik underlay interfeys orqali borishi kerak. Aks holda recursive routing yuzaga kelishi mumkin.
Multicast va broadcast
GRE multicast va ayrim broadcast trafikni tashishi mumkin.
Bu routing protokollari uchun muhim:
- OSPF Hello;
- EIGRP Hello;
- PIM;
- ayrim discovery protokollari.
Internetning o‘zi bu multicastni bilmaydi. GRE uni oddiy unicast tashqi IP paket ichiga joylaydi.
GRE va IPsec
GRE shifrlamaydi. Trafikni himoyalash uchun u IPsec bilan birga ishlatilishi mumkin.
GRE over IPsec
Avval ichki paket GREga joylanadi, keyin GRE paketi IPsec bilan shifrlanadi.
Afzalligi:
- multicast;
- dynamic routing;
- ko‘p ichki subnet;
- GRE moslashuvchanligi;
- IPsec maxfiyligi.
IPsec over GRE
Avval IPsec himoyalangan paket GRE tunnelga joylanadi. Bu ko‘rinish kamroq uchraydi va aniq arxitekturaga bog‘liq.
MTU
GRE qo‘shimcha sarlavha qo‘shadi. IPv4 tashqi header va asosiy GRE header odatda kamida 24 bayt overhead yaratadi.
Ethernet MTU 1500 bo‘lsa, ichki packet uchun joy kamayadi.
MTU noto‘g‘ri bo‘lsa:
yuz berishi mumkin.
Tunnel interfeys MTUsi kamaytiriladi yoki TCP MSS moslashtiriladi.
Fragmentatsiya
Fragmentatsiya ichki paket tunnelga kirishdan oldin, tashqi GRE packet yo‘lda yoki tunnel endpointda yuz berishi mumkin.
DF biti va platforma xatti-harakati muhim. Tashqi packet fragmentlansa, barcha fragmentlar yetib kelmasdan ichki packet tiklanmaydi.
Katta paketlarda Path MTU Discovery uchun zarur ICMP xabarlarini bloklamaslik kerak.
GRE Key
GRE headerdagi ixtiyoriy Key maydoni tunnel yoki trafik guruhini ajratishga yordam beradi.
Key:
ni farqlashi mumkin.
Key shifrlash kaliti emas. U maxfiylik yoki autentifikatsiya bermaydi.
Sequence Number
Ixtiyoriy sequence number paketlar tartibini aniqlashga yordam beradi.
IP tarmog‘ida paketlar turli yo‘ldan kelib, tartibi o‘zgarishi mumkin. GREning asosiy ishlashi sequence numberni majburiy talab qilmaydi.
Keepalive
Oddiy tunnel interfeysi source va destination konfiguratsiyasi borligi sababli up ko‘rinishi mumkin. Bu masofadagi endpoint haqiqatan ishlayotganini kafolatlamaydi.
GRE keepalive endpointga maxsus paket yuborib, qaytish yo‘lini tekshiradi.
Keepalive interval, retry count va down holati bilan boshqariladi. Barcha platformalar va tunnel turlari keepaliveni bir xil qo‘llamaydi.
Tunnel recursive routing
Tunnel destinationga route tunnel interfeys orqali chiqsa, recursive muammo yuz beradi.
- Tunnel B public IPga boradi.
- Dynamic routing shu public IP uchun tunnel orqali yaxshiroq route o‘rganadi.
- Tunnelni yetkazish uchun tunnelning o‘zi kerak bo‘lib qoladi.
- Sessiya beqarorlashadi.
Tunnel endpoint manzillari uchun underlay route alohida va barqaror saqlanadi.
mGRE
Multipoint GRE bitta tunnel interfeys orqali bir nechta remote endpoint bilan ishlashga imkon beradi.
mGRE ko‘pincha hub-and-spoke, DMVPN, dinamik spoke tunnel va NHRP bilan bog‘liq.
Oddiy point-to-point GREda har remote uchun alohida tunnel kerak. mGRE ko‘p filialli tarmoqni soddalashtiradi.
Xavfsizlik
GRE paketini tarmoqdagi begona qurilma soxtalashtirishi mumkin.
GREning o‘zida:
- kuchli autentifikatsiya;
- maxfiylik;
- yaxlitlik;
- replay himoyasi
yo‘q.
Himoya uchun IPsec, source ACL, tunnel endpoint allowlist, underlay firewall, routing autentifikatsiyasi va monitoring qo‘llanadi.
Diagnostika
GRE tunnel ishlamasa:
- tunnel source va destination;
- tashqi routing;
- IP protocol 47 firewall;
- NAT;
- tunnel interface state;
- keepalive;
- MTU;
- MSS;
- recursive route;
- ichki routing;
- qaytish yo‘li;
- IPsec SA;
- packet capture
tekshiriladi.
Ping tunnel IPga ishlashi barcha ichki subnetlar ishlashini kafolatlamaydi. Ichki route va firewall ham tekshiriladi.
Bog‘liq tushunchalar
Tunnel, Encapsulation, IP protocol 47, IPsec, MTU, MSS, Dynamic routing, mGRE, DMVPN, Underlay, Overlay