GRE (Generic Routing Encapsulation – Jenerik Yönledirici Kapsülleme)

Eyl 07, 2013

GRE (Generic Routing Encapsulation – Jenerik Yönledirici Kapsülleme) IP başlığının üzerine diğer ağ katmanı (OSI 3.katman) protokollerinin başlıklarını kapsülleyerek  paketin yönlendirilmesini sağlayan bir protokoldür. 

GRE, Cisco Systems tarafından bir tünelleme protokolü olarak geliştirilmiştir. Arada farklı networkler olduğunda GRE tünelleri kullanarak belli networkler birbirine bağlanabilir, bu ağlardaki cihazların birbirleriyle haberleşmesi sağlanabilir. Bu durumu daha açık ifade etmek ve konfigürasyon örneği göstermek amacıyla aşağıda basit bir topoloji örneği mevcuttur.

Bu örnekte basit bir topoloji üzerinde GRE tüneli oluşturulacak ve Merkez Yönlendirici (Router) ve Şube Yönlendiricinin bu tünel üzerinden dinamik yönlendirme (routing) protokollerden biri olan OSPF konuşturarak üzerlerindeki Loopback networkleri birbirlerine öğretmeleri sağlanacaktır.

Öncelikle tüm cihazların bacaklarına belirlenmiş olan IP adresleri verilir. Daha sonra Merkez cihazında aşağıda bulunan komutlar işletilir.

Merkez cihazına girilen komutlar simetrik olarak Şube cihazında da işletilir.

Komutları girerken dikkat edilmesi gereken birkaç önemli husus  vardır;

  • Tünel arayüzüne girilen kaynak ve hedef IP adresleri tünelin oluşturulduğu cihaz için ulaşılabilir olmalıdır. Bu örnekte ulaşılabilmesi için rotalar cihazlara  ip routenetwork adresi” “alt ağ maskesi” “next hop  IP adresi” komutu girilerek statik olarak öğretilmiştir.
  • Tünel IP adresleri aynı ağdan IP adresleri olmalıdır.

Bu işlemler sonunda Merkez ve Şube cihazlarının GRE tüneli üzerinden ISS cihazına (İnternet Servis Sağlayıcının cihazına) herhangi bir işlem yapmadan ve networkleri öğretmeye gerek kalmadan birbirlerine Loopback IP adreslerinin networkleri olan 172.0.0.0 /24 ve 172.16.1.0 /24 networklerini öğrettikleri görülecektir.

Bu basit örnekte olduğu gibi GRE farklı lokasyonlarda bulunan networklerimizde Private IP adresleri  (Özel IP adresleri) kullanılabilir. Normalde private IP adresleri yönlendirilebilir değildir, çünkü aynı private IP adresleri farklı kişi ve kurumlar tarafından farklı lokasyonlarda kullanılıyor olabilir. Dolayısıyla sağlıklı bir yönlendirme yapılamaz. GRE tünelleri sayesinde lokasyonlar arasında kurulan GRE tünelleri üzerinden kendi private IP adreslerini güvenli ve sorunsuz bir şekilde yönlendirerek , cihazlara farklı lokasyonlarda private IP kullanılan networkler öğretilebilir. GRE tünellerinin en genel kullanımı bu şekildedir.

GRE çalışma mantığı şu şekildedir ; 

GRE, ağ katmanı başlığını da içeren IP paketini kapsülleme yoluyla çalışır. Bir ağ katmanı protokolü (IPv4, IPv6, IPX) GRE ile kapsüllendikten sonra yeni bir IP başlığı eklenir. Bu durumda GRE kapsülünün içinde paketin kaynak IP adresi ve hedef IP adresi gibi bilgiler içeren bir ağ katmanı başlığı bulunur. Ayrıca kapsülün dışında tekrardan ağ katmanı başlığı eklendiği için bu başlıkta da GRE tünelinin kaynak ve hedef IP adresleri bulunur.

Bir paket GRE tüneline yönlendirildiğinde pakete tünelin girişinde GRE başlığı eklenir ve onun üzerine yeni bir ağ katmanı başlığı eklenir. Bu başlıkta GRE tünelinin kaynak ve hedef IP adresleri gibi bilgiler vardır. Tünelin başından sonuna gidene kadar arada bulunan Yönlendirici gibi 3. Katman cihazları bu başlığa bakarak yönlendirme yapar. Paket başlıktaki hedef IP adresine vardığında yani tünelin sonuna geldiğinde bu başlık ve GRE başlığı atılır. Bundan sonra paket kapsülün içinde yer alan başlıktaki hedef IP adresine göre yönlendirilir.

OSI modelini baz alarak GRE için bu şekilde bir gösterim yapılabilir. GRE OSI katmanında 2 kere 3. Katman başlığı kullanmayı sağlar.

 

Örneğin; yukarıdaki resimde görüleceği gibi 3. Katmanda IPv6 ve IPv4 protokollerinin başlıkları ayrı ayrı pakete eklenmiş. Bu örnekte de olduğu gibi arada 3.katmanda IPv4 protokolü kullanan başka bir network olsa bile, GRE tüneli kullanarak kendi networkünüzde IPv6 kullanabilirsiniz. 

GRE Tünellerinin Avantajları

  • Belli bir protokol kullanan bir network üzerinden çeşitli protokoller kullanabilmeyi sağlar.
  • Sınırlı sayıda cihaz bulunan networklerde geçici çözüm sağlar. 
  • Sürekli olmayan alt networklerin birbirine bağlanmasını sağlar.
  • Geniş alan ağlarında (WAN-Wide Area Networks) VPN (Virtual Private Network - Sanal Özel Ağ) bağlantısı sağlar.

GRE Başlık Yapısı

         

  • C - Checksum Present (0 biti); Eğer bu bit 1 olarak işaretlenmişse Checksum ve Reserved1 alanları geçerli bilgi içerir demektir.
  • Reserved0 (1-12 arası bitler); 1-5 arası bitler 0 olmadığı takdirde paketi alan cihaz paketi çöpe atar. 6-12 arası bitler gelecekte kullanılması için ayrılmıştır fakat 0 olarak gönderilir ve dikkate alınmaz.
  • Ver – Version Number(13-15 arası bitler); GRE versiyonu belirtir ve tek versiyon olduğu için tüm bitler 0 olmalıdır.
  • Protocol Type (17-32 arası bitler); Bu alan GRE kapsülünün içindeki ağ katmanı başlığını hangi protokolü olduğunu belirtir.
  • Checksum(33-48); Bu alanın amacı alanda bulunan bitlerin değerini 0 yapmaktır.
  • Reserved1(48-64); Gelecekte kullanmak için ayrılmış bir alandır ve tüm bitleri 0 olarak gönderilir.