# Yönlendirici Bilgi Protokolü
İngilizce "Router Information Protocol", yani Yönlendirme" Bilgi Protokolü" anlamına gelen RIP, bir TCP/IP ağındaki router'ların birbirini otomatik olarak tanımasında kullanılan bir iç yönlendirme protokoldür. Aynı zamanda uzaklık vektör algoritmasına dayanır ve IGP 'nın bir uygulamasıdır. Yönlendirme kararları, düğümler arasındaki sıçramaların sayısına dayanır. Yönlendiriciden geçmek bir sıçrama sayılır.
İlk olarak XNS protokol kümesinde kullanılmış olup daha sonra IP ağ uygulamalarında kullanılmıştır.
RIP en iyi yol seçimini yaparken tek kriter olarak hop (düğüm) sayısına bakar. Max. 15 hop kabul edilir. 16'dan sonra destination unreachable hatasını gönderir. Router bu protokolde kendisine bağlı olan networkleri 30 saniyede bir komşu router'a bildirir. (classfull bir protokoldür yani ip adresinin sınıfına ait subnet mask seçilerek gönderilir. Subnet mask girilmez diğer bir deyişle) RIP protokolünde çalışan bir router'ın routing table'ında hop sayısı 16 olanlar ulaşılamaz anlamına gelmektedir. Router herhangi bir komşu router'dan 180 saniye bilgi alamazsa o kaydı artık kullanmıyor. Eğer 60 saniye daha bir bilgi alamazsa o router'ı yönlendirme tablosundan siliyor. Yönlendirme tablosunda kaynak adres, mask, router, interface, time gibi bilgiler vardır. Ayrıca router'lar arasında herhangi bir kimlik kanıtlaması yoktur.
Ağ topolojisindeki herhangi bir değişiklik, oraya bağlı olan yönlendirici tarafından sezilir ve yönlendirici yeni durum için değerlendirme yapar. Eğer daha iyi bir yol bulursa, önce kendi tablosunu günceller ve daha sonra komşularına yansıtır. Komşu yönlendiricilerde yeni durumu göz önüne alarak kendi tablolarını güncelleyip kendi komşularına haber verirler. Ancak değişikliği ilk yansıtan yönlendiriciye tekrar gönderilmemelidir. Böyle bir durumda kısır bir döngü oluşur.


### Versiyonlar.
Yönlendirme bilgi protokolünün üç standart sürümü bulunmaktadır: IPv4 için "RIPv1" ve "RIPv2", IPv6 için "RIPng."


## RIP versiyon 1.
Rip versiyonunun orijinal talimatnamesi, RIP'in, RFC 1058 içinde tanımlandığı üzere classful (classful ağ: 1981'den CIDR ‘ın(Classless Inter-Domain Routing) tanıtımına kadar internette kullanılan bir ağ adresleme mimarisidir.Bu metot internet protokol versiyon 4 için adres uzayını 5 adres sınıfına parçalar. Her bir sınıf, adreslerin ilk 4 bitinde kodlanmıştır, ya farklı bir ağ boyutunu tanımlar mesala unicast adresler için ağa bağlı bilgisayarların sayısı ya da mulitcast ağlar (sınıf D) tanımlar.) routing kullandığını söyler. Periyodik yönlendirme altağ bilgisini taşımadan güncelleme yapar, VLSM için destekten yoksundur. Bu sınırlama aynı ağ sınıfı içinde farklı boyutta alt ağlara sahip olmayı imkansız hale getirmiştir. Diğer bir deyişle, bir ağ sınıfındaki tüm alt ağlar aynı boyuta sahiptirler. Yönlendirici kimlik kanıtlaması için de bir destek yoktur bu da RIP‘i çeşitli ataklara karşı zayıf kılar.


## RIP versiyon 2.
Orijinal RIP talimatnamesinin eksikliğinden dolayı, RIP versiyon 2 1993 yılında geliştirilmiştir ve en son 1998 yılında standartlaştırılmıştır. RIp versiyon 2 alt ağ bilgisini taşıyacak hale gelmiştir ve bu da CIDR ‘ ı desteklemiştir. Geriye uyumluluğu desteklemek adına, hop sayısı sınırı 15 kalmıştır. RIP versiyon 2 eğer RIP versiyon 1 mesajları içerisindeki tüm protokol alanları sıfır olursa tamamen RIP versiyon 1 ile birlikte çalışabilirliği desteklemektedir. Ek olarak, uyumlu switch özelliği ince taneli birlikte çalışabilirlik ayarlarına da izin vermiştir. Ağa bağlı makinelerde gereksiz yüklenmeden kaçınmak için yönlendirme içerisine katılmamıştır, RIP versiyon 2 tüm yönlendirme tablosunu 224.0.0.9 adresinde tüm komşu yönlendiricilere broadcast yayımlayan RIP v1 e karşın multicast olarak yayınlar. Özel uygulamalar için unicast adreslemeye izin verilkmiştir. RIP versiyon 2 STD56 internet standardıdır. Yön etiketleri de RIP versiyonuna eklenmiştir. Bu da tüm yönlendiricilerin EGP protokollerinden merkezi yönlerin harici yönlerden ayırt edilmelerine imkân vermiştir.


## RIPng.
RIPng (RIP gelecek nesil) IPv6 gelecek nesil internet protokolünün desteklenmesi için RIP versiyon 2 nin gelişmişi olarak RFC 2080 içinde tanımlanmıştır.
RIP versiyon 2 ve RIPng arasındaki temel fark
Ipv6 ağı için destek
RIPv2, RIPv1 ‘in güncel kimlik kanıtlamalarını desteklerken, IPv6 yönlendiricileri kimlik kanıtlama işlevi için IPSec kullanmayı desteklediğinden RIPng desteklemez.
RIPv2 yönlendiricilere gelişigüzel kısaltmalar eklemeye izin verirken, RIPng izin vermez.
RIPv2 her bir yönlendirme girişinde diğer hop ‘u şifreler, RIPng yönlendirme girişlerinin bir kümesi için diğer hop’un özel şifrelenmesini gerektirir.
RIPng multicast grup FF02::9 u kullanarak UDP 521 portundan güncellemeleri gönderir.


## Amaç.
İnternet denen ağ, birçok ağın birbirine bağlantısı ile oluşur. Örneğin:
  - Türkiye'deki çoğu internet servis sağlayıcısı, TTnet'in omurgasına bağlıdır
  - Belki de binlerce satır yönlendirme bilgisi girecek adam sayısı azdır
  - Ağ, değişimlere (örneğin TTnet'in su altı kablosunun kopması) karşı dayanıksız olacaktır
Dolayısıyla, RIP ve başka protokoller (OSPF de) router'ların birbirlerini otomatik olarak görmesi için gerekli hizmetleri sunarlar.


## » RIP'in sorunları «.
RIP, sadece kaç adımda gideceğini bildiğinden ortaya kimi sorunlar çıkar. Az önceki örnekte B ile C ağları arasındaki R3 yolunu kestiğimizi varsayalım. Bu durumda:
  - B router'ı C'ye doğru olan bağlantısını aklından siler
  - A router'ı B router'ına "ben C'ye iki adımda ulaşabiliyorum" der
  - B router'ı bunu listesine ekler ve A router'ına "ben C'ye üç adımda ulaşabiliyorum" der
  - Normalde C'ye B üzerinden ulaştığını bilen A router'ı, tablosunu günceller ve B'ye "ben C'ye dört adımda ulaşabiliyorum" der
  - Ve bu "sonsuza doğru sayma" böyle devam eder!
Bu sorunun çözümü için RIP 16 adımdan daha fazla adımdan ulaşılan ağları "o aslında ulaşılamıyor" kapsamına alır. Buna ek olarak, daha karmaşık olan OSPF protokolü bu sorunu çözmektedir.


## RIP ve Çalıştırılması.
RIP bir yönlendirme protokolüdür ve yönlendirme tablosunu dinamik olarak günceller. RIP kullanılan sistemlerde yönlendirme bilgileri, yine RIP'ın komşu sistemlerden gelen yeni bilgiler uyarınca sürekli yenilenir.
UNIX sistemlerin birçoğu RIP ile ilgili programı bünyesinde barındırır. Çalıştırılması için " %routed " yazılması yeterlidir.
Bu komut yürütülmeye başlatıldıktan sonra artık dinamik yönlendirme yapılıyor demektir. Yönlendirme tablosuna "netstat *-rn " komutuyla bakılarak aktif yönlendirme bilgileri görülebilir. Normalde RIP'in koştuğu sistemler, kendi yönlendirme özelliklerini RIP'in koştuğu komşu sistemlere de gönderir. Böylece komşu olan tüm RIP'li sistemler birbirleri hakkında bilgi sahibi olurlar.


## RIP ve gateway dosyası.
RIP yönlendirme algoritmasına ait " routed " programı ilk çalıştırıldığında yönlendirme tablosu boştur denilebilir. " gateway " dosyası başlangıç yönlendirme bilgilerini tutan bir sistem dosyasıdır. " routed " programı sistem ilk kalktığında bu dosya içindeki bilgileri okur ve tabloya yerleştirir.