RIP (Routing Protocol) yönlendirme protokolü, bir Distance Vector protokolüdür. Distance Vector Protocole'ler, Routing Table Update mantığıyla çalışırlar. Yani, belirli zaman aralıklarında sahip oldukları Network bilgilerini komşu Router'larına gönderir, aynı şelilde komşu Router'larından da aynı bilgileri alırlar. Bu döngünün sonunda her Router, sistemde ki bütün Network'leri öğrenmiş olur ve uygun yol seçimini yaparlar. RIP, uzaklık vektör algoritmasıyla çalışan ve yönlendirmeleri hesaplamak için Bellman-Ford algoritmasını kullanan bir protokoldür.
Bellman-Ford Algoritması Nedir?
Bellman-Ford Algoritması, bir Directed Graph'ta (yönlendirilmiş Graph) bir kaynaktan tüm diğer düğümlere olan en kısa yolu bulmak için kullanılan, en temel ve güvenilir algoritmalardan biridir. Dijkstra Algoritması'ndan farklı olarak, Bellman-Ford negatif ağırlıklı kenarları da hesaba katar. Bu özellik, algoritmanın özellikle negatif döngülerin olduğu Network yapılarında tercih edilmesine neden olur. Negatif döngüler, bir döngüdeki toplam ağırlığın negatif olması durumudur ve bu döngüler üzerinden sınırsız derecede küçük mesafeler elde edilebilir.
Algoritmanın temel çalışma prensibi, bir Graph'ın kenarları boyunca sürekli olarak mesafeleri iyileştirme sürecine dayanır. Her bir adımda, kenarların üzerinden geçilerek, hedef düğümlere ulaşmanın maliyeti azaltılır. Bu süreç, Graph'ın düğüm sayısının bir eksiği kadar tekrar edilir ve bu tekrarlar sonucunda en kısa yollar bulunur. Eğer bu sürecin sonunda herhangi bir kenar üzerinde mesafeler hala iyileştirilebiliyorsa, bu durum negatif ağırlıklı bir döngünün var olduğunu gösterir. Bellman-Ford algoritmasının en önemli avantajlarından biri, bu negatif döngülerin tespit edilebilmesidir.
Bu algoritmanın en önemli kullanım alanlarından biri, Routing Protocols'de yer alır. Özellikle Distance Vector Routing tabanlı protokoller olan RIP (Routing Information Protocol) gibi protokoller, Bellman-Ford algoritmasını temel alır. Distance Vector Routing'in temel mantığı, her bir düğümün (node), komşu düğümlerine uzaklık bilgisini göndermesi ve bu bilgiler ışığında yönlendirme kararlarının alınmasıdır. Bu süreç, Bellman-Ford algoritmasının işleyişiyle paraleldir çünkü algoritma her bir düğüm için mesafe bilgisini sürekli güncelleyerek en kısa yolları bulmaya çalışır.
Bellman-Ford algoritmasının en önemli avantajlarından biri, negatif ağırlıklı kenarları da desteklemesidir. Negatif kenarlar, bazı Network yapılarında veya problem çözümlerinde kaçınılmaz olabilir. Dijkstra gibi algoritmalar bu tür kenarlarla çalışamazken, Bellman-Ford bu duruma karşı dayanıklıdır. Ancak bu esneklik, algoritmanın daha yavaş çalışmasına neden olur. Bellman-Ford, O(V * E) karmaşıklığına sahip olup, bu da her düğüm ve kenar için ayrı bir işlem yapılacağı anlamına gelir. Özellikle büyük Network yapılarında bu süre artabilir. Bu nedenle, küçük ölçekli Network yapıları veya negatif kenarların mevcut olduğu durumlarda daha etkin bir çözüm sunar.
O(V * E), Bellman-Ford algoritmasının zaman karmaşıklığını ifade eden bir notasyondur. Burada:
• V, Graph'taki düğüm (vertex) sayısını temsil eder.
• E, Graph'taki kenar (edge) sayısını temsil eder.
Bu karmaşıklık, algoritmanın ne kadar hızlı veya yavaş çalışacağını belirlemek için kullanılır. Bellman-Ford algoritmasında her Vertex (düğüm), V kez kontrol edilir ve her kenar üzerinde E kadar işlem yapılır. Dolayısıyla algoritmanın toplam çalışma süresi, V (düğüm sayısı) ile E (kenar sayısı) çarpımına eşittir. Bu da algoritmanın her bir düğüm ve her bir kenar için ayrı bir işlem yaparak ilerlediğini gösterir.
Örneğin, eğer Graph'ınızda 5 Vertex (düğüm) ve 10 edge (kenar) varsa, Bellman-Ford algoritması yaklaşık olarak 5 * 10 = 50 işlem yapacaktır. Bu, daha büyük Network'ler için işlem sayısının hızla arttığını gösterir. Bu nedenle, O(V * E) karmaşıklığı, büyük ölçekli Graph'larda algoritmanın performansının düşmesine neden olabilir.
O(V * E), Bellman-Ford'un daha büyük Graph'lar üzerinde çalışırken Dijkstra Algoritması gibi alternatiflere göre daha yavaş olabileceğini vurgular, çünkü Dijkstra'nın zaman karmaşıklığı genellikle O(V log V)'dir ve bu, büyük Network'lerde daha hızlı sonuç verir. Ancak Bellman-Ford, negatif ağırlıklı kenarları desteklediği için belirli durumlarda tercih edilen bir çözüm sunar.
Bellman-Ford Algoritması'nın çalışma prensibi, bir Graph'ta her Vertex'ten diğer tüm Vertex'lere olan en kısa yolu bulmak üzerine kuruludur. Algoritmanın ilk adımında, seçilen kaynak Vertex'ten tüm diğer Vertex'lere olan mesafeler başlangıçta infinity (sonsuz) olarak atanır. Bunun sebebi, başlangıçta hiçbir Vertex'in uzaklığı bilinmediği için başlangıç noktası dışındaki tüm mesafelerin erişilmez olduğunu varsaymaktır. Kaynak Vertex'in kendisine olan mesafe ise sıfır olarak atanır, çünkü bir Vertex'ten kendisine olan mesafe her zaman sıfırdır.
Sonrasında algoritma, her bir kenar (Edge) üzerinden defalarca geçerek mevcut mesafeleri iyileştirmeye çalışır. Başka bir deyişle, bir Vertex'ten diğerine olan geçiş maliyeti (kenar ağırlığı) daha kısa bir yol sağlıyorsa, o Vertex için güncellenmiş bir mesafe atanır. Bu işlem, her Vertex için toplamda V-1 kez tekrarlanır, burada V, Graph'taki Vertex sayısını ifade eder. Bu tekrarlar, her Vertex'ten diğer Vertex'lere olan tüm olası en kısa yolların bulunmasını sağlar.
Algoritma son olarak negatif ağırlıklı döngülerin olup olmadığını kontrol eder. Eğer bir Vertex'ten başka bir Vertex'e daha kısa bir mesafeyle ulaşmak hâlâ mümkünse, bu negatif ağırlıklı bir döngünün var olduğunu gösterir. Negatif döngü, bir döngüdeki toplam kenar ağırlığının negatif olduğu bir durumdur. Bu döngüler, döngüde sürekli dolaşarak mesafeyi sınırsız şekilde küçültme potansiyeline sahiptir ve bu durum, en kısa yol problemlerinde sorun yaratabilir. Bellman-Ford Algoritması, negatif döngüleri tespit ederek kullanıcının algoritmanın sonuçlarındaki hataları önlemesine olanak tanır.
RIP, yönlendirici cihazların tablosunda Administrative Distance (yönetim mesafesi) 120 olarak yer alır. RIP yönlendiriciler, en iyi yol seçimini yaparken sadece geçtiği cihaz (Hop Count - atlama noktası) sayısına bakar. RIP en fazla 15 Hop'u kabul eder. Bu, bir Router'ın data iletiminde en fazla 15 tane Router geçebileceği anlamına geliyor. Bu sayı aşıldığında, yani 16. Hop'a gelince, Destination Unreachable (kaynak bulunamadı) hatasını verir.
RIP, Bir ağdaki bilgi alışverişini kolaylaştırır. RIP protokolü k ullanılmadığında, ağınızdaki her değişiklikte, yönlendirme tablolarını (Routing Table) elle düzeltmek zorunda kalırsınız. RIP protokolü kullanımı ile, ağınızdaki her değişiklikte, değişiklikler otomatik olarak Router'lar arasında güncellenmektedir. Bunun anlamı; RIP, komşu yönlendiricilerin herhangi birinde, yönlendirme tablosundaki değişikliği öğrendiğinde, bu bilgileri diğer yönlendiricilere de iletir. Böylelikle diğer yönlendiriciler de güncelleme yapabilir. RIP’in dezavantajı, En fazla 15 Hop Count (atlama noktası) desteklemesidir. RIP ile birbirlerine bağlı 20 Router olduğunu düşünürsek; her düğüm noktası kontrol edildiğinde RIP, 16. Router'a gelemeyecektir. Çünkü 15 düğüm noktası desteklidir. Bu yüzden RIP, çok büyük ağlarda kullanılamamaktadır. RIP (Router Information Protocol) İki farklı şekilde kullanılır. Bunlar, RIP Version 1 ve RIP Version 2 şeklindedir.
RIP Version 1 (RIPv1) Özellikleri
● RIPv1, Classful (sınıflar arası yönlendirme) protokoldür.
● RIPv1, periyodik güncellemelerde alt ağ maskesi (Subnet Mask) bilgisini taşımaz. Bu yüzden RIPv1 kullanılan bir Network'te Subnetting (alt ağlara) ayırma işlemi yapıldığında RIPv1 düzgün çalışmaz.
● RIPv1, periyodik güncellemelerini 255.255.255.255 Broadcast yayını üzerinden duyurur.
● RIPv1 kullanılırken kimlik doğrulama yapılmaz.
● RIPv1, sıradaki ağ cihazının adresini bildirmez.
● RIPv1, Fixed Length Subnet Mask (FLSM – Sabit Uzunluklu Alt Ağ Maskesi) destekler.
● RIPv1, 6 load balancing'e (yük eşitleme) izin verir. Default 4’tür.
● RIPv1, Split horizon ve split horizon with poison reverse özelliklerini destekler.
RIP Version 1 Yapılandırması
Router>enable
Router#configure terminal
Router(config)#Router rip
Router(config-Router)#Network
» Routerın diğer Router'lara bildireceği Network. Bu kısıma, Router'a bağlı olan tüm bacakların, yani Network'lerin, IP Adres bilgileri girilmelidir.
RIP Version 2 (RIPv2) Özellikleri
● RIPv2, Classless (Sınıfsız) protokoldür ve CIDR (Classless Inter-Domain Routing-Sınıfsız alanlar arası yönlendirme) grubunda bulunur.
● RIPv2, periyodik güncellemelerinde Subnet Mask bilgisini taşır. Kullanılan ağda Subnetting yapılabilir.
● RIPv2, periyodik güncellemelerini 224.0.0.9 multicast yayını üzerinden duyurur.
● RIPv2, kullanılırken kimlik doğrulama yapılabilir. (Kimlik Doğrulama, ağ boyunca dağıtılan yolların yetkili kaynaklardan geldiğini doğrulamak için kullanılır.)
● RIPv2, sıradaki ağ cihazının adresini belirtir.
● RIPv2, Variable Length Subnet Mask (VLSM – Değişken Uzunluklu Alt Ağ Maskesi) destekler.
● RIPv1 yüklü bir Router, RIPv2 güncellemelerini de kabul eder; fakat RIPv2 kullanan bir Router, sadece RIPv2 güncellemelerini kabul eder.
● RIPv2'de Auto Summarization vardır ve varsayılan olarak açık durumdadır.
Auto Summarization Nedir?
Bir Network yapısında Subnetting (alt ağlara bölme) işlemi yapılmışsa, yapılan bu Subnetting işlemini dikkate almadan, Network'ün bölümlenmemiş halini özet bilgi olarak karşı Router'lara iletilir ve classful gibi çalışır. Daha doğru bir yönlendirme tablosu sağlamak için RIPv2'de Auto Summarization (otomatik özetleme) özelliğinin devre dışı bırakılması önerilir. Devre dışı bırakıldığında, RIPv2 tüm alt ağlara alt ağ maskesi bilgilerini diğer Router'lara raporlayacaktır. Bunu şu şekilde daha net ifade edebileceğimi düşünüyorum;
1- R1 adında bir Router'ınız var. R1, 10.1.1.0/24 ve 10.1.2.0/24 olmak üzere iki ayrı LAN'a bağlı durumda ve R1 üzerinde Auto Summarization aktif durumda. R1 Router, Auto Summarization aktif durumda olduğu için bu iki Network, bilgisini R2 Router'ına bildirirken bu Network'leri 10.0.0.0/8 şeklinde özetleyecektir. Bu durumda sizin belirttiğiniz iki ayrı Network'ün de hiçbir önemi kalmayacak ve haberleşme sağlıklı biçimde yapılamayacaktır.
2- R2 Router, R1 Router'dan özetlenmiş 10.0.0.0/8 Network bilgisini alacak ve R1 Router tarafında hangi Network'ün 10.1.1.0/24 hangi Network'ün 10.10.2.0/24 olduğunu bilemediği için, Ping'leme işlemi de başarılı olamayacaktır.
Bunu engellemenin yolu, Auto Summarization özelliğini no auto-summary komutu ile devre dışı bırakmaktır. R1 Router, no auto-summary komutu ile kendine bağlı olan 10.1.1.0/24 ve 10.1.2.0/24 Network'lerini R2 Router'a bildirebilecektir.
RIP Version 2 Yapılandırması
Router>enable
Router#configure terminal
Router(config)#Router rip
Router(config)#version 2
Router(config-Router)#Network NetworkID
» Routerın diğer Router'lara bildireceği Network. Bu kısıma, Router'a bağlı olan tüm bacakların, yani Network'lerin, IP Adres bilgileri girilmelidir. Router(config-Router)#no auto-summary
» Komutlara ek olarak sadece no auto-summary komutunun yazılması yeterlidir.
RIP Version 2 (RIPv2) Yapılandırma
Istanbul, Ankara ve Antalya olmak üzere 3 tane şubem var ve bu şubelerim arasında RIPv2 dynamic Routing protokolü ile dinamik yönlendirme işlemi yapacağım. İlk yapmam gereken işlem, ISTANBUL ve ANKARA Router'ları üzerinde olacak ve bu Router'ların Gigabit Ethernet Port'larına IP ataması yapmak olacak.
ISTANBUL Router'ı için Gigabit Ethernet Port'larına IP ataması işlemini yapılandırıyorum.
ANKARA Router'ı için Gigabit Ethernet Port'larına IP ataması işlemini yapılandırıyorum.
Son olarak yapmam gereken işlem, ANTALYA Router'ı üzerinde olacak ve bu Router'ın Gigabit Ethernet Port'larına IP ataması yapmak olacak.
ANTALYA Router'ı için Gigabit Ethernet Port'larına IP ataması işlemini yapılandırıyorum.
Router'ların Gigbit Ethernet Port'larına IP yapılandırması işlemini yapıp, Shutdown komutu ile Port'ları aktif ettikten sonra, yapılandırmamızın ilk adımını tamamlamış oluyoruz.
Bundan sonraki işlemimiz, her bir SITE için, RIPv2 dinamik yönlendirme protokollerinden olan RIPv2 yönlendirme protokolü (Routing Protocol) ile yönlendirme işlemi yapmak olacak. Routing işlemleri yapılırken, Router'ın her bacağına bağlı olan Network'ler tek tek belirlenecektir.
Istanbul Site Router'da RIPv2 Yapılandırma
Router>enable
Router>#configure terminal
Router>#Router rip
Router>#version 2
Router>#Network 10.1.1.0
Router>#Network 88.75.23.0
Router>#no auto-summary
show ip route komutu ile Routing Table'ı görüntülüyorum.
Ankara Site Router'da RIPv2 Yapılandırma
Router>enable
Router>#configure terminal
Router>#Router rip
Router>#version 2
Router>#Network 10.1.2.0
Router>#Network 88.75.23.0
Router>#Network 78.16.55.0
Router>#no auto-summary
show ip route komutu ile Routing Table'ı görüntülüyorum.
Antalya Site Router'da RIPv2 Yapılandırma
Router>enable
Router>#configure terminal
Router>#Router rip
Router>#version 2
Router>#Network 10.1.3.0
Router>#Network 78.16.55.0
Router>#no auto-summary
show ip route komutu ile Routing Table'ı görüntülüyorum.
Yapılan işlemleri değerledirmek ve çalıp çalışmadığını kontrol etmek için, SITE'lar arasında PC'lerden Ping atma işlemi yapıyorum. Ping atma işlemini; ANTALYA'daki PC8'den, ISTANBUL'daki PC2'ye gerçekleştiriyorum;
PC8'den Ping (Echo) paketi yollanıyor.
PC8'den yollanan Ping paketi, Switch'e erişiyor.
Ping paketi Switch üzerinden, Router'ın iç Network Port'una erişiyor.
Burada Routing işlemi devreye girerek, Ping peketini bir sonraki Hop olan ANKARA Router'ına yönlendiriyor.
ANKARA Router'ı da aynı şekilde Ping paketini bir sonraki Hop olan ISTANBUL Router'ına yönlendiriyor.
ISTANBUL Router'ına ulaşan Ping paketi; buradan Switch'e, ve daha sonrasında ise hedef PC'ye (PC2) Ping peketini ulaştırıyor.
Ping işleminde; Ping'in, Ping atılan PC'ye geri yollanması, yani Echo yapan (Ping Atan) PC'ye Echo Reply yollaması gerekmektedir. Kısaca belirtmem gerekirse; Ping, ICPM (Internet Control Message Protocol-İnternet Kontrol Mesaj Protokolü) protokolünde çalışan bir sistemdir.
TCP/IP protokol takımında , İnternet Protokolü (IP) bilgisayarlar arasında veya ağ geçitlerinde hata raporlama, hata düzeltme ya da durum bildirme yeteneklerine sahip değildir. Bağlantısız (connectionless) bir protokol olan IP, Kullanıcı Veribloğu Protokolü (UDP) üstünden iki uç nokta arasında bağlantı kurulup kurulmadığıyla ilgilenmez.
ICMP (Internet Control Message Protocol-İnternet Kontrol Mesaj Protokolü), İnternet Katmanında IP paketinin veri bölümünde çalışıp, sorunları haberleşen birimlere bildirerek bir geri besleme mekanizması oluşturur. ICMP genel olarak; TTL süresi dolduğu zaman paketin sahibine bildirim yapma, herhangi bir durumda yok edilen paket hakkında geribildirim sağlama, hata oluşumlarında geribildirim sağlama, paket başka bir yoldan gideceği zaman geribildirim sağlama gibi görevler üstlenir. Sorun çözümü için sıkça kullanılan Ping ve Tracert komutları ICMP Echo Request ve ICMP Echo Reply mesajları ile çalışır.
Echo Reply paketi, Echo paketi yollanırken peketin izlediği yolları takip edeceği için, son kısımda sadece sadece Reply paketinin başarılı bir şekilde Echo yapan (Ping atan) PC8'e iletildiğini göstermek istiyorum.
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.