Basit Ağ Yönetimi Protokolü adıyla literatüre giren ve 80′lerde tasarlanan SNMP’nin ilk baştaki amacı farklı türden iletişim ağlarının işletiminin, iletişim ağı’nda çok küçük gerilmelere neden olabilecek basit bir tasarımla işletilmesiydi. Ancak kısa sürede yüksek kullanım oranlarına ulaşmış ve yeterlilik ve güvenlik gibi eksik yönlerinin giderilmesiyle genel kabul görür hale gelmiştir. Günümüzde SNMP’den daha kolay öğrenilebilen ve daha az karmaşık protokoller(CMIP, RMON) mevcut olduğu halde SNMP yoğun olarak kullanılmaktadır. Günümüzde kullanımda olan SNMPv1, SNMPv2, SNMPv3 olmak üzere 3 tane SNMP sürümü mevcuttur.
İlk SNMP versiyonu olan SNMPv1 en yaygın olarak kullanılan ve genelde cihazlarda desteğinin bulunduğu bir sürümdür. Ancak birçok uygulamasında zayıflık olduğu CERT’in raporlarında belirtilmiştir. SNMPv2 denilen yeni bir tür geliştirildi. Bu; gerçek protokolün güvenlik eksiğine hitap ediyor ve gizlilik, doğruluk üzerine odaklanıp kontrolü sağlıyor. Ayrıca daha karışık değişken belirtimlerine izin veriyor ve farklı güdümleri ihtiva ediyor. SNMPv2′nin sorunu ise SNMPv1′in aksine hala kabul edilmiş bir ölçüt olmayışıdır. SNMPv3’ün geliştirilmesi önceki versiyonlarda mevcut olan güvenlik sorunlarıdır. SNMP’ye USM ve VACM adında güvenlik standartları yetkinliği getirmiştir.
SNMP’nin Temel Bileşenleri
SNMP OSI referans modeline baktığımızda, ağ cihazlarında yönetimsel bilgi alışverişinin sağlanması için oluşturulmuş bir uygulama katmanı protokolüdür. TCP/IP protokolünün bir parçası olan SNMP; ağ yöneticilerinin ağ performansını arttırması, ağ problemlerini bulup çözmesi ve ağlardaki genişleme için planlama yapabilmesine olanak sağlar. Cihaz üzerindeki sıcaklıktan, cihaza bağlı kullanıcılara, internet bağlantı hızından sistem çalışma süresine kadar çeşitli bilgiler SNMP’de tanımlanmış ağaç yapısı içinde tutulurlar. SNMP temel olarak 3 bileşenden oluşur.
Ajan (Agent): SNMP hizmetini cihaz üzerinde çalıştırıp gerekli bilgileri kayıtlı tutarak yönetici birime aktaran veya yönetici birimden gelen değişikliği cihaza uygulayan
uygulamadır. Ajan denetim altında tutulan ya da yönetilen iletişim ağı düğümlerinden her birinde çalışan bir programdır. O, biçimlendirilmiş yapı içindeki öğelerin tümüne bir ara yüz sağlar. Bu öğeler, Yönetim Bilgi Tabanı (MIB) adını taşıyan ve daha sonra açıklanacak olan bir veri yapısı içinde depolanırlar. Bu, yönetilecek bilgiyi alıkoyduğu sürece sunumcu tarafı olup istemciden güdüm bekler.
Yönetici (Managed Device): Ajan uygulamadan ihtiyaç duyulan bilgileri alıp kullanıcıya gösterir ve kullanıcının değiştirmek istediği değerleri cihaza gönderir.
Ağ Yönetim Sistemi (NMS): Yönetici birimde çalışan ve bir ağa bağlı tüm cihazların izlenmesini ve yönetimini sağlayan uygulamaya verilen isimdir. Aşağıdaki Şekil 2.1 de, yukarıda tanımlanan bileşenler resmedilmiştir.
SNMP Yönetim Bilgi Tabanı (MIB)
SNMP, protokol tarafından yönetilen bilgiye farklı bir ölçüt tanımlar. Bu ölçüt bilgiyi networkteki bir aygıt içinde korunan ve buradaki işlemlere izin verilmiş olarak tanımlar. Bilgi, bir ağaç yapısında inşa edilmiştir. Ve her değişkene ulaşmak için tek bir yol vardır. Yapılandırılmış bu ağaç Yönetim Bilgi Tabanı (Management Informatıon Base) (MIB) olarak adlandırılır. Ve birçok RFC’de belgelendirilmiştir.
TCP/ IP ‘in son sürümü MIB-II ‘dır ve RFC-1213 olarak tanımlanır.Bilgiyi TCP/ IP aygıtları 8 kategoride sahip olabilecek şekilde böler.Bu bilgide olan her değişken bu gruplardan birine girer.
Bilgileri
sistem Konak ya da yolverici işletim sistem bilgileri
arayüzler İletişim ağı arayüzleri bilgileri
adres-çevirisi Adres çeviri bilgileri
ip IP Antlaşma Bilgileri
icmp ICMP Antlaşma Bilgileri
tcp TCP Antlaşma Bilgileri
udp UDP Antlaşma Bilgileri
egp Dış Geçityolu Antlaşma Bilgileri
MIB’in belirli bir müfredat hakkındaki tanımı müfredatın sahip olduğu bilgiyi de özelleştirir. Genelde MIB’in müfredatı yalnız sayıları depolar fakat onlar dizileri veya
tablolar gibi daha karışık yapılarıda ihtiva eder. MIB’deki müfredat nesne(object) olarak da adlandırılır. Nesneler MIB ağacının yaprak boğumlarıdır, fakat bir nesne birden çok örneğe sahiptir. Mesela; bir tablo nesnesi. Bir object’in sahip olduğu değeri (value) bulmak için örnek sayısına sayı eklenir. Ne zaman ki bir object için bir örnek var olursa bu 0 örnek demektir.
Örneğin, interface kategorisindeki ifnumber nesnesi bir sayı içerir.Bu sayı bu aygıtta olan ve ayrıca interface numaralarını içeren bir sayıdır.Fakat IP kategorisinden
ipRoutingTable nesnesi aygıtın takip edilecek çizelgesini içerir. Bir nesnenin değerini (value) yeniden elde etmek için örneğin numarasını kullanmayı unutmayın.Bu halde ,bir takip edici (Router) içindeki interfaces sayısı ifNumber.0 adlı örnekle görülebilir.
Bir tablo nesnesi halinde; tablonun indeksi özel bir örneği belirtmek için son sayı gibi kullanılır (Tablonun sırası).
MIB değişkenini tanımlamak ve belirtmek için kullanılan bir başka ölçüte de yönetim bilgisinin yapısı denir. (Structure of management Information) (SIM). ISO dillerinden birinde yazılmış olan MIB değikenlerini ASN.1 diye adlandırır. Bu değişkenlerin formunu ve içeriğini şüpheden uzak , açıklayıcı yapar.
ISO isim boşluğu diğer ölçüt kurumları için olan diğer ağaçlarla birlikte global isim boşluğu içerisindedir. ISO isim boşluğuyla birlikte MIB bilgisi için özel bir ağaç vardır.
Ağacın bu MIB tarafında bütün protokollerden ve uygulamalardan olan nesneler(object) için alan vardır. Böylece onların bütün bilgileri açıklayıcı bir şekilde temsil edilir.
Aşağıdaki şekilde TCP/ IP isim boşluğu IAB.’ın mgmt isim boşluğunun hemen altındadır.Ayrıca bu yapı her seviye için bir sayı da belirtir.
![SNMP’de MIB’in hiyerarşik yapısı](http://www.tuncaybas.com/wp-content/uploads/2014/05/snmp.jpg)
SNMP’nin Kullanımı:
SNMP istek gönderme ve cevap bekleme ile çalışan bir protokoldür. Ağ yönetim sistemi uygulaması ajan uygulama çalıştıran cihaza ihtiyaç duyduğu bilginin isteğini gönderir ve isteği alan cihaz yönetim uygulamasına ilgili değeri döndürür. Burada UDP ve IP gibi geçmişten günümüze sıklıkla kullanılan iletişim protokollerinden birisi kullanılabilir. SNMP’de yönetim ve izleme SNMPv1 adı verilen ilk sürümünde sadece 4 çeşit işlemle gerçekleştirilir:
• GET: Yönetim sistemi tarafından yönetilen birimdeki bir veya daha fazla bilgi birimindeki değeri elde etmek için gönderilen istek komutudur.
• GETNEXT: Yönetim sisteminden bir bilgi tablosundaki sonraki değeri okumak için gönderilen istek komutudur.
• SET: Yönetim sisteminin yönettiği cihaz üzerinde bir değeri değiştirmek için kullandığı komuttur.
• TRAP: Üzerinde ajan uygulama çalışan cihazda belirli özel durumlar oluştuğunda bu durumu yönetim sistemine bildiren işlemdir. Diğer işlemlerden farklı olarak bu işlem için yönetim sisteminden herhangi bir istek gönderilmesi gerekmez.
SNMPv2 adı verilen ikinci sürüm ise ilk sürümün geliştirilmesi ile ortaya çıkarılmıştır. Örneğin iki yeni işlem ilave edilmiştir:
• GETBULK: Büyük boyutlu bilgilerin verimli şekilde elde edilmesi için yönetim sistemi tarafından gönderilen istek. Bu sayede tablolardan aynı anda birkaç sütun almak mümkün olmuştur.
• INFORM: Bir yönetim sisteminin diğer bir yönetim sistemini bilgilendirmek amacıyla kullandığı işlem.
SNMP yönetici ile ajan arasında yukarıda sayılan komutlar yoluyla sağlana iletişim aşağıdaki şekilden açıkça anlaşılabilir.
![SNMP yönetici ile ajan arasında iletişim](http://www.tuncaybas.com/wp-content/uploads/2014/05/snmp_haberlesme.jpg)
Bunun yanı sıra MIB’ler için kullanılan bilgi saklama değişkenlerinin kapasitesi arttırılmıştır. Örneğin 32 bitlik sayaçların yanı sıra 64 bitlik sayaçlar kullanılmaya
başlanmıştır. Her ne kadar bir geliştirilme ile ortaya çıkarılsa da bu iki sürüm birbiriyle uyumlu değildir. Ancak her iki sürümü destekleyen sistemler de mevcuttur.
7,823 total views, 1 views today