Merhabalar. Sizlere bu yazımda Cisco IOS router’lar üzerinde çalışan debugging özelliğini biraz daha fonksiyonel hale getirebilecek conditional debug’dan bahsedeceğim. Bildiğiniz üzere debug komutu Cisco cihazlarda troubleshoot yaparken girdiğimiz komutların ve cihaz üzerinde çalışan konfigürasyonun anlık etkilerini gözlemlememizde önemli bir yere sahip. Fakat bu komut çok faydalı olmasının yanı sıra oldukça dikkatli de kullanılması gereken bir komut. Zira debug komutunu verdiğimiz her işlem için router bize log düşürerek geri dönüş yapmak için ekstra CPU kullanmak durumunda kalıyor. Özellikle işlemcisi üzerinde ağır yükleme olan ( aşırı trafik, kabarık bir routing tablosu vs.) router için yanlış kullanılmış bir debug komutu cihazın sature olmasına yani hem normal işleyişinin hem de yönetiminin imkansız hale gelmesine neden olabilir.
Peki debug komutunu işlemciyi yormadan kullanmamızın yolu nedir ? Halihazırda zaten debug komutunun yanına yazacağımız seçenekler oldukça çeşitli.( C7200-AdvEnterpriseK9-M V.12.4 üzerinde ilk aşamada 259 seçenek çıkıyor ). Alt seçenekleri peş peşe eklediğimizi düşünürsek aslında binlerce özelleşmiş debug komutu yazabiliyoruz. Fakat bazı durumlarda troubleshoot yaparken logların belli bir porttan, IP adresinden, MAC adresinden ya da voice için düşünecek olursak arayan ya da aranan client ID’sinden başlatılan işlemlerle ilgili olanlarına ihtiyaç duyduğumuz halde, ne kadar spesifik debug komutu yazarsak yazalım ihtiyacımız olanı diğer loglar arasından seçmek problem olabiliyor. Bu durum için Cisco IOS üzerinde conditional debug yardımımıza yetişiyor.
Conditional debug temelde öncelikle belirtilen özelliklerde bir yada birden fazla condition oluşturup, sonrasında vereceğimiz debug komutlarında bu conditionların uygulanması esasına dayanıyor. Condition oluştururken kullanabileceğimiz alt seçenekler aşağıdaki gibi çeşitler içermekte:
Örnek uygulama olarak RIPv2 çalıştıran bir topolojinin periyodik update paketlerinin loglarını tek bir interface üzerine condition oluşturarak inceleyeceğim. Normal koşullarda cihazın debug ip rip çıktısı şu şekilde:
Şimdi de condition oluşturalım. Bunun için aşağıdaki şekilde bir komut yazmamız yeterli. Tabii ben burada interface üzerine kısıtlama yaptım, siz de kendi tercihinize göre bir seçenek üzerine ilerleyebilirsiniz:
Bu sayede sadece FastEthernet0/0 ile ilgili update paketlerini loglamış olacağız. Tekrar bir önceki debug komutunu çalıştıracak olursak karşımıza aşağıdaki gibi kısıtlanmış bir log dizisi çıkacaktır:
Yukarıda görüldüğü gibi oluşturduğumuz condition sayesinde yalnızca belirtilen interface ile ilgili logları görmüş oluyoruz. Yalnız conditional debug ile ilgili unutulmaması gereken bir noktaya değinmeden geçmeyeyim. Burada oluşturduğumuz condition’lar undebug all komutu ile silinmezler. Yani condition yazdıktan sonra bütün debug komutlarımıza bu condition uygulanacaktır. Condition’ların devre dışı kalmaları için elle silinmeleri gerekmektedir. Aktif condition listesinin görüntülenmesi ve istenen bir condition’ın silinmesi ise aşağıda belirtilen komutlarla gerçekleştirilir:
Umarım aklınızda conditional debug konusunda biraz da olsa fikir oluşturabilmişimdir . Bir sonraki yazımda görüşmek üzere…