ODR (On Demand Routing - Talep Üzerine Yönlendirme), CDP (Cisco Discovery Protocol - Cisco Keşif Protokolü)'nin bir yükseltmesidir, kendi başına bir yönlendirme (routing) protokolü değildir. CDP (Cisco Discovery Protocol) ise komşu olan iki cihazın birbirine kendileriyle ilgili bilgileri gönderdikleri, Cisco'nun çıkardığı bir protokoldür. CDP aracılığıyla komşu Cisco cihazın türü, IP adresi, IOS versiyonu ve yine komşu Cisco cihazın yetenek ve kapasiteleri gibi bir çok bilgiye ulaşılabilir. ODR, Cisco IOS yazılımının 11.2 sürümünde CDP'ye eklenmiştir. Bu yükseltmenin amacı, bağlı bir köşe (stub) yönlendiricinin "IP prefix"ini CDP aracılığıyla tanıtmaktır. Bu özellik her ağ veya alt-ağ için fazladan 5 byte kullanır: 4 byte IP adresi için ve 1 byte IP ile birlikte alt ağ maskesini tanıtmak için.
ODR göbek ve ispit (hub and spoke) topolojileri için mükemmel bir çözümdür. Bu topolojilerde ispit (spoke) yönlendiriciler göbek (hub) hariç başka hiç bir yönlendiriciye bağlanmayarak köşe yönlendirici gibi davranır. ODR kullanılabilmesi için ağ dahilinde yalnızca IOS 11.2 ve sonrası sürüme sahip Cisco yönlendiricileri var olmalıdır. Dinamik protokol kullanan ağ çevreleri (İnternet Servis Sağlayıcı gibi) için ODR uygun değildir.
ODR'yi etkinleştirmek için aşağıdaki komut kullanılır:
Router(config)# router odr
Göbek yönlendiricide ODR etkinleştirildikten sonra IP tablosuna köşe ağ rotaları yüklenmeye başlanır. Köşe yönlendiricide herhangi bir IP yönlendirme protokolü yapılandırılması gerekli değildir. Aslında ODR açısından bakılırsa bir yönlendirici, üzerinde bir IP yönlendirme protokolü yapılandırılmadığında otomatik olarak bir köşe olarak göz önüne alınır.
ODR, VLSM (Variable Length Subnet Mask – Değişken Uzantılı Alt Ağ Maskesi) bilgisini taşıyabilme özelliğine sahiptir. ODR, CDP kullanarak göbek ve köşe yönlendiriciler arasında mümkün olan en az yönlendirme bilgisini taşır. Köşe yönlendirici, IP prefixleri göbek yönlendiriciye gönderir. Göbek yönlendirici varsayılan (default) rota bilgisini köşe yönlendiricilere sağlar ve bu şekilde her köşe yönlendiricide varsayılan rota yapılandırılmasına gerek kalmaz.
Global konfigürasyon (Global configuration) modunda no cdp run komutu ODR köşe yönlendirme bilgisinin yayılmasını tamamen kapatır. Arayüz konfigürasyon (Interface configuration) modunda no cdp enable komutu ise belirli bir arayüzde ODR bilgisi yayılımını kapatır.
Router(config)# no cdp run
Router(config-if)# no cdp enable
ODR Zamanlayıcı Ayarları
ODR temel zamanlama parametreleri değiştirilebilir. Bu yönlendirme protokolü dağınık ve eş zamanlı olmayan bir yönlendirme algoritması kullandığından, bu zamanlayıcıların ağ içindeki tüm yönlendirici ve erişim sunucularında aynı olması gereklidir.
ODR hiç bir yapılandırma komutu girilmediği takdirde zamanlayıcı için aşağıdaki varsayılan değerleri kullanır:
- Güncelleme Süresi (Update Timer): 90 saniye
- Geçersiz olma Süresi (Invalid Timer): 270 saniye
- Basılı tutma Süresi (Hold down Timer): 280 saniye
- Silinme Süresi (Flush Timer): 630 saniye
- Uyku Süresi (Sleep Timer): 0 milisaniye
ODR zamanlayıcılarını ayarlamak için gerekli komut ve açıklamaları aşağıdadır:
Router(config)# timers basic <update> <invalid> <holddown> <flush> [sleeptime]
- Güncelleme Süresi (Update Timer): Saniye cinsinden güncelleme gönderilme aralığıdır. ODR protokolünün esas zamanlayıcı parametresidir.
- Geçersiz olma Süresi (Invalid Timer): Saniye cinsinden, bir yönlendiricinin geçersiz sayılacağı zaman aralığıdır ve 'update' süresinin en az 3 katı olmak zorundadır. Bir yönlendiricinin geçersiz sayılması demek, o cihazdan hiç bir güncelleme alınmaması anlamına gelir. Rota erişilemez olarak işaretlenir ve ulaşılamaz olarak tanıtılır. Ancak rota paketleri ilerletmeye devam eder.
- Basılı tutma Süresi (Hold down Timer): Saniye cinsinden, kullanılamaz olarak işaretlenen bir yönlendiricinin yönlendirme bilgisinin tekrar denendiği zaman aralığıdır. Bu konumda rota kullanılamaz olarak işaretli olduğu halde paket iletilmesinde kullanılır. 'Update' zamanının en az 3 katı olmak zorundadır.
- Silinme Süresi (Flush Timer): Saniye cinsinden, bir rotanın yönlendirme tablosundan atılmasına kadar geçen zaman aralığıdır. Bu değer en az 'invalid' ve 'holddown' değerlerinin toplamı kadar olmalıdır.
- Uyku Süresi (Sleep Timer): Milisaniye cinsinden, bir flash güncellemesi durumunda yönlendirme güncellemelerinin ertelendiği zaman aralığıdır. Bu değer 'update' değerinden küçük olmalıdır.
Örneğin aşağıdaki komutlarla güncellemeler her 5 saniyede bir gönderilmek üzere ayarlanmıştır. Eğer bir komşudan 15 saniye içinde cevap dönmezse, o rota kullanılamaz olarak işaretlenir. Sonraki 15 saniye boyunca o kullanılamaz olarak işaretlenen komşu denenmeye devam edilir. Bu sürenin sonunda ise rota tablodan atılır.
Router(config)# router odr
Router(config-router)# timers basic 5 15 15 30
Router(config-router)# end