GRE (Genel Yönlendirme Kapsülleme), IP üstbilgisi üzerindeki diğer ağ katmanı (OSI katman 3) protokollerinin başlıklarını kaplayarak paket yönlendirme sağlayan bir protokoldür.
GRE, Cisco Systems tarafından tünel protokolü olarak geliştirilmiştir. Arada farklı ağlar olduğunda, GRE tünelleri kullanılarak belirli ağlar birbirine bağlanabilir ve bu ağlardaki cihazlar birbirleriyle iletişim kurabilir. Bunu daha net göstermek ve bir konfigürasyon örneği göstermek için, aşağıdakiler basit bir topoloji örneğidir.
Bu örnekte, basit bir topolojide bir GRE tüneli oluşturulacak ve Yönlendirici ve Şube Yönlendiricisine birbirlerine geri döngü ağlarını, dinamik yönlendirme protokollerinden OSPF’den birinde öğretmeleri öğretilecektir.
Dikkate alınması gereken birkaç önemli nokta vardır;
Tünel arayüzüne girilen kaynak ve hedef IP adresleri, tünelin oluşturulduğu cihaz için erişilebilir olmalıdır. Bu örnekte, ipler “ağ adresi” “alt ağ maskesi” “sonraki atlama IP adresi” komutu ile ip yolu girilerek aygıtlara statik olarak öğretilir.
Tünel IP adresleri aynı ağdan gelen IP adresleri olmalıdır.
Bu işlemin sonunda, Merkezi ve Şube cihazlarının Geri Döngü IP adresleri olan 172.0.0.0 / 24 ve 172.16.1.0 / 24 ağlarının ISP cihazına (İnternet Servis Sağlayıcısı) öğrettiği görülecektir. ağlara öğretmeye gerek olmadan.
Bu basit örnekte olduğu gibi, GRE, farklı konumlarda bulunan ağlarımızda Özel IP adreslerini kullanabilir. Normalde, özel IP adresleri yönlendirilemez, çünkü aynı özel IP adresleri farklı yerlerdeki farklı kişiler ve kurumlar tarafından kullanılabilir. Bu nedenle sağlıklı bir yönelim yapılamaz. GRE tünelleri sayesinde, özel IP adreslerini kullanarak farklı yerlerde özel IP adreslerini öğretmek mümkündür. GRE tünellerinin en yaygın kullanımı budur.
GRE çalışma mantığı şöyledir;
GRE, ağ katmanı başlığı da dahil olmak üzere IP paketini içine alarak çalışır. Bir ağ katmanı protokolünü (IPv4, IPv6, IPX) GRE ile kapsüldükten sonra, yeni bir IP başlığı eklenir. Bu durumda, GRE kapsülü, kaynak IP adresi ve paketin hedef IP adresi gibi bilgileri içeren bir ağ katmanı başlığı içerir. Ek olarak, ağ katmanı başlığı kapsülün dışına eklendiğinden, bu başlık ayrıca GRE tünelinin kaynak ve hedef IP adreslerini içerir.
Bir paket GRE tüneline yönlendirildiğinde, GRE başlığı tünelin girişindeki pakete eklenir ve buna yeni bir ağ katmanı başlığı eklenir. Bu konu, GRE tünelinin kaynak ve hedef IP adresleri gibi bilgiler içerir. Yönlendirici gibi, aralarında bulunan, tünelin başından sonuna kadar olan Katman 3 cihazları, bu başa bakarak yönlendirilir. Paket, başlıktaki hedef IP adresine ulaştığında, yani tünelin sonunda, bu başlık ve GRE başlığı atılır. Paket daha sonra kapsülde bulunan başlıktaki hedef IP adresine göre yönlendirilir.
OSI modeline dayanarak, GRE için bu şekilde bir gösteri yapılabilir. GRE OSI katmanında Katman 2 katmanını 2 kez kullanmanıza izin verir.
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
GRE: Generic Routing Encapsulation.
Router1
conf t
hostname Router1
interface G0/1
ip address 192.168.1.1 255.255.255.0
no shut
interface s0/0/0
ip address 10.1.1.1 255.255.255.252
no shut
ISPRouter:
conf t
hostname ISP
int s0/0/0
ip address 10.1.1.2 255.255.255.252
no shutdown
int s0/0/1
ip address 10.2.2.2 255.255.255.252
no shutdown
Router2
conf t
hostname Router2
int s0/0/1
ip address 10.2.2.1 255.255.255.252
no shutdown
int g0/1
ip address 192.168.2.1 255.255.255.0
no shutdown
Router1:
ip route 0.0.0.0 0.0.0.0 10.1.1.2
Router2
ip route 0.0.0.0 0.0.0.0 10.2.2.2
Router1:
interface tunnel 0
ip address 192.168.10.1 255.255.255.252
tunnel source s0/0/0
tunnel destination 10.2.2.1
Router2
interface tunnel 0
ip address 192.168.10.2 255.255.255.252
tunnel source s0/0/1
tunnel destination 10.1.1.1
show ip interface brief
.
show interface tunnel 0
ping 192.168.10.2
traceroute 192.168.10.2
Router1:
router ospf 1
network 192.168.10.0 0.0.0.255 area 0
network 192.168.1.0 0.0.0.255 area 0
Router2:
router ospf 1
network 192.168.10.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
Router1: