T.C.
GAZİ
ÜNİVERSİTESİ
TEKNİK
EĞİTİM FAKÜLTESİ
ELEKTRONİK-BİLGİSAYAR
EĞİTİMİ BÖLÜMÜ
BİLGİSAYAR
SİSTEMLERİ ABD.
ÇOK
İŞLEMCİLİ SİSTEMLERDE AĞLAR
(EBE-458)
DERSİ
ÖDEVİ
Konu
SNMP
(Simple
Network Management Protocol)
Mehmet
Güneş Pak 9762008 4 A1
Araş.
Gör. Necaattin Barışçı
İçindekiler
Tüm hesaplama olaylarının iletişim ağı kavramı çevresinde dolaşır olduğu günümüzde, sistem yöneticilerinin işi gittikçe altından kalkılamaz hale gelmektedir. Yönlendirici, hub, sunucu gibi kaynakların ve iletişim ağındaki her kritik aygıtın kullanıma hazır tutulması yönetimin temel görevi olarak ortaya çıkmaktadır.
İşletmenlerin iletişim ağı aygıtlarını denetim altında tutmaları için çok sayıda neden bulunmaktadır. Bunlar arasında, bant genişliği kullanımı, bağlantıların yön eylem durumu, kablolama ya da aygıtlar arası bilgi aktarımındaki sorunlar gibi sıralanabilirler. İletişim ağı etkinliğinin denetim altında tutulması da güvenlik sorunlarının ve olumsuz davranışların saptanması için iyi bir başlangıç noktası oluştururlar.
Bir çok durumda, bir kuruluşa ait iletişim ağında uzaktaki iletişim ağlarına Wide Area Nework (WAN) ya da Internet'e bağlantılar bulunur ve bu bağlantıların parasal götürülerinin belirlenmesinde bütünüyle trafik hacmi taban alınabilir. Dolayısıyla bu bağlantılar üzerinden yapılan iletişimin istatistiğinin tutulması büyük önem kazanır. Bu X.25 bağlantılarının hala yaygın olduğu Avrupa'da çok yaygın olarak karşılaşılan bir görevdir. Bu bağlantılar, gönderilen ve alınan paketler tabanında faturalandırılırlar.
Peer To Peer veya Frame Relay türden bağlantılar genellikle düz bir tutar üzerinden faturalandırılırlar.
Bu gereksinimlerin tümüne yanıt olarak Simple Network Management Protocol (SNMP -Basit Ağ Yönetim Protokolü) adlı bir protokol verilebilir. 1980 yılında geliştirilmesinden bu yana SNMP ağ yönetiminde etkili bir standart haline gelmiştir. SNMP çok basit bir çözümdür, işletilebilmesi için çok az bir koda gereksinim duyar ve üreticiler ürünlerine çok kolay bir şekilde SNMP ajanı koyabilmektedirler. SNMP çok genişletilebilir bir yapıya sahiptir. Üreticiler, varolan ürünlerine çok kolay bir şekilde ağ yönetim fonksiyonlarını ekleyebilmelerine olanak tanır. SNMP yönetim mimarisini donanım aygıtlarının mimarisinden ayırmaktadır. Bu sayede üreticilerin sağladığı destek te genişlemektedir. Belki de en önemlisi SNMP’nin, diğer protokollere nazaran, sadece kağıt üzerinde olmaması, çok geniş bir alanda kullanılmasıdır.
SNMP ile bir yönlendiricinin sabit diskinin dolup dolmadığını ya da bir portu üzerindeki trafik miktarını izlenebilir. SNMP bunlardan başka ağdaki hemen hemen her şeyi, yazılım unsurları dahil olmak üzere, izleyebilmektedir. Örneğin DHCP sunucunun kaç bilgisayara IP adresi dağıttığını ya da WINS sunucuya kaç bilgisayarın isim/IP eşleme bilgisi kaydettirdiğini de SNMP ile sorgulanabilir.
SNMP protokolüne geçmeden önce SNMP ile direkt alakalı olan Ağ Yönetim Mimarisi ve Yönetim Bilgisi’nin yapısına deyinmekte fayda vardır.
Ağ yönetim mimarisi iki temel elemandan oluşmaktadır: SNMP bir çeşit client-server (Sunucu-istemci) mimarisidir. Bu kavramların SNMP’deki adı ise Manager (yönetici) ve Agents (Ajanlar)’dır. Manager ağ yöneticilerinin ağ yönetim fonksiyonlarını kullandığı bir konsol durumundadır. Ajanlar ise yönetilen aygıta bir arayüz vazifesi gören bağımsız varlıklardır. Köprüler, yönlendiriciler, hublar ve sunucular, yönetilen nesneleri içeren aygıtlardır. Yönetilen nesneler, sorunlu aygıtın o anki operasyonu ile doğrudan alakalı olan, donanım, konfigürasyon parametreleri veya performans istatistikleri olabilir. Bu nesneler sanal bilgi veritabanında planlanırlar. Bu sanal bilgi veritabanı Management Information Base (MIB) olarak ta bilinir.
Ağ yönetiminin mimarisi aşağıdaki şekildeki gibidir.

Şekil 1: Ağ Yönetim Mimarisi
Tipik bir ajan her zaman:
· Tam bir SNMP protokolünü uygular
· MIB’ de tanımlandığı gibi yönetim bilgisini depolar
· Yöneticiye eşzamansız olarak herhangi bir olay hakkında işaret gönderebilir
· SNMP ile yönetilemeyen ağlarda proxy olabilir.
Tipik bir yönetici her zaman:
· Network Management Station (NMS) olarak işletilebilir
· Tam bir SNMP protokolünü uygular
· Aşağıdaki işlemleri yapabilir
o Ajanları sorgulayabilir
o Ajanlardan yanıtları alabilir
o Ajanlardaki değişkenleri set edebilir
o Ajanlardan gelen eşzamansız olayları onaylar
Bazı seçkin üreticiler yöneticinin yerini alabilecek ağ yönetim platformları sunmuşlardır. Bunlara örnek olarak:
· Dec PolyCenter Network Manager
· Hewlett-Packard OpenView
· IBM AIX NetView/6000
· SunConnect SunNet Manager
verilebilir.
Ağ yönetimindeki yönetici/ajan paradigmasında, nesnelerin mantıksal olarak erişilebilir olması gerekir. Mantıksal olarak erişimin anlamı, yönetim bilgisinin her hangi bir yerde saklı olması, ve bu sayede bilginin alınabilir ve değiştirilebilir olması demektir. SNMP aslında alma ve değiştirme işlemini gerçekleştirmektedir. SMI ‘nın yapısı OSI SMI üzerine kurulmuştur.
SMI bilgiyi organize eder, isimlendirir ve tarif eder; bu sayede mantıksal adres meydana gelebilir. SMI’ ya göre yönetilen her nesnenin bir ismi,bir sentaksı (syntax) ve kodlaması olması gerekir. İsim, nesneyi tanımlamada kullanılan bir Object Identifier (Nesne Tanımlayıcısı) ‘dır. Sentaks ise integer veya string gibi veri tipini belirler. Kodlama, bilginin yönetilen nesne ile nasıl ilişkilendirildiğini bildirir. Makineler arası iletim için bir seri haline getirilmiştir. SNMP için kullanılan sentaks Abstract Syntax Notation One (ASN.1) olarak bilinir. SNMP için kullanılan kodlama ise Basic Encoding Rules (BER) olarak bilinir. Kullanılan isimler birer nesne tanımlayıcısıdır. MIB’nin bu isimleri nasıl kullandığı bundan sonraki konularda işleyeceğiz
ASN.1, sadece SMI değil, pekçok Request For Comments (RFC)’yi belirtmekte kullanılır. Örneğin internet standardı olan MIB ve SNMP. ASN.1 OSI’ de amaç tanımlamaları için geniş olarak kullanılmaktadır. SMI ve MIB’leri tanımlamak için kullanılan ASN.1,OSI tarafından verilen ASN dilinin bir alt kümesidir. ASN.1 içerisinde:
· Nesne Örnekleri ( Protokole özel)
· Mesaj İletim Formatı (BER’e göre)
açıkça belirtmektedir.
Her nesne,bir aygıt veya aygıtın bir karakteristiği olsun, tek olarak tanımlanabilen bir ada sahip olması gerekir. O isim Object Identifier (OID-Nesne Tanımlayıcısı)’dır. Integer türünden değişkenlerin sıra halinde yazılmasıyla elde edilir. Örneğin 1.3.6.1.2.1.1.1.0 sırası, Management alt ağacının, sistem grubu içerisindeki türünü belirtir.
SNMP ağ aygıtları arasında yönetim bilgisinin akışına yardımcı olmak için dizayn edilen, uygulama katmanında çalışan bir protokoldür. SNMP ile taşınan veriyi kullanarak (her saniyedeki paketler veya ağ hata oranları), ağ yöneticileri daha kolay bir şekilde ağ performansını yönetebilir, ağ sorunlarını bulup çözebilir ve ağın büyümesi için plan yapabilirler.
TCP gibi, SNMP de bir internet protokolüdür. SNMP’nin iki sürümü vardır;Sürüm I ve Sürüm II. Sürüm II’de pek çok yenilikle beraber, güvenlik kabiliyeti de arttırılmıştır. Diğer değişiklikler SNMP’nin uygulanmasında ve tanımlanmasındaki özelikleri daha titiz ve dikkatli hale getirmiştir. SNMP’nin yaratıcıları, nispeten kısa bir peryoddan sonra, SNMP Sürüm II (SNMPv2) geniş bir biçimde, SNMP Sürüm I (SNMPv1)’ in yerini alacağı görüşündedirler.
SNMP, RFCs denen internet belgelerini tanımlayan, çok geniş bir mimari olan Internet Network Management Framework (NMF)’nin bir parçasıdır. SNMPv1’de NMF’ler 1155,1157 ve 1212 RFCs’leriyle; SNMPv2’de NMF’ler 1441 den 1452’ye kadar olan RFCs’lerde tanımlanmıştır.
Günümüzde SNMP, genellikle üniversite ve araştırma merkezlerinde kullanılan çeşitli ticari ağların yönetiminde kullanılmaktadır. SNMP oldukça basit bir protokoldür. Özellikleri,onun günümüzdeki karmaşık ve büyük ağlarda, ortaya çıkan sorunları ele almada oldukça başarılıdır.
SNMP, internet ağı yönetim mimarisinin bir parçasıdır. Bu mimari aşağıda belirtilen olan çeşitli varlıklardan oluşur:
· Ağ Elemanları: Bazen yönetilmiş aygıtlar olarak ta anılır. Ağ elemanları ağa bağlı olan bilgisayarlar,yönlendiriciler ve terminal sunucuları gibi donanım aygıtlarıdır.
· Ajanlar: Ajanlar ağ elemanlarında bulunan yazılım modülleridir. Hata paketleri gibi, ağ elemanlarından alınan yönetim bilgilerini toplarlar ve depolarlar.
· Yönetilmiş Nesne: Yönetilmiş nesne, herhangi bir şeyin yönetilebilen karakteristiğidir. Örneğin,özel bir ana bilgisayardaki o an aktif olan TCP paketlerinin listesi bir yönetilmiş nesnedir. Yönetilmiş nesneler, özel nesne örnekleri olan değişkenlerden farklıdırlar. Örneğimizde,nesne örneği olarak, özel ana bilgisayardaki tek bir TCP paketini verebiliriz. Yönetilmiş nesneler skalar (tek bir nesne örneğini tanımlayan), veya tabular (çoklu veya alakalı örnekleri tanımlayan) olabilir.
· Management Information Base(MIB): MIB,sanal bir bilgi deposunda yer alan yönetilmiş nesnelerin bir yığınıdır. Alakalı yönetilmiş nesneler, özel MIB modüllerinde tanımlanırlar.
· Sentaks Sistemi: Sentaks sistemi, MIB’in makine-bağımlı biçimindeki yönetilmiş nesnelerini tanımlamak için kullanılan bir dildir. Sentaks sisteminin devamlı kullanımı, değişik türden bilgisayarların bilgileri paylaşmasına olanak tanır. İnternet yönetim sistemleri, yönetim protokolü ve yönetilecek nesneler arasında değiş tokuş edilen paketlerin hepsini tanımlayabilmek için, International Organization for Standardization (ISO)’nun, Open System Interconnection (OSI)’ın ve Abstract Syntax Notation 1 (ASN.1)’in alt kümelerini kullanır.
·
Structure of Management Information (SMI):
SMI yönetim bilgisini tarif etmek için kullanılan kuralları tanımlar. SMI ASN.1
‘i kullanmak üzere tanımlanmıştır.
·
Network Management Stations (NMSs): Bazen
konsol olarak ta adlandırılırlar. Bu aygıtlar ağ elemanlarını izleyen ve
denetleyen yönetim programlarını icra ederler. Fiziksel olarak NMS’lerin, mühendislikte kullanılan iş
istasyonlarındaki gibi çok hızlı işlemcileri, çok renkli ekranları, güçlü
bellekleri ve çok fazla disk alanlarına sahiptirler. Her yönetilmiş çevrede en
azından bir tane NMS bulunmalıdır.
·
Partiler: SNMPv2’deki yeniliklerden
olan partiler, SNMPv2 iletişimini başlatan veya kabul eden mantıksal SNMPv2
varlıklarıdır. Her SNMPv2 partisi kendine özgü bir parti tanımlayıcısı,
mantıksal bir ağ adresi, yalnız bir doğrulama protokolü ve tek bir gizlilik
protokolünden meydana gelir. SNMPv2 mesajları iki parti arasında iletilir. Bir
SNMPv2 varlığı, her birinde farklı parametreler olması kaydıyla birden
fazla parti tanımlayabilir. Örneğin
değişik partiler değişik doğrulama ve/veya gizlilik protokolü kullanabilir.
·
Yönetim Protokolü: Yönetim protokolü, yönetim bilgisini ajanlar
ve NSM’ler arasında taşımak için
kullanılır. SNMP Internet Community’nin standart yönetim protokolüdür.
İnternet yönetim modelinin çoğu basit elemanı şekil.2’ de grafiksel olarak gösterilmiştir:

Şekil 2: İnternet Yönetim Modeli
NMS ve yönetilen aygıtlar arası etkileşim dört türlü komut sayesinde olmaktadır:
· Reads (Okuma): Yönetilmiş aygıtları izlemek için, NMS’ler aygıtlar tarafından oluşturulan değişkenleri okurlar.
· Writes (Yazma) : Yönetilmiş aygıtları izlemek için, NMS’ler yönetilmiş aygıtlar içinde saklanan değişkenlere yazarlar.
· Traversal Operation (Üzerinden Geçirme İşlemi) : NMS’ler bu işlemi yönetilmiş aygıtın hangi değişkenleri desteklediğini belirlemek ve ardışık olarak yönetilmiş aygıttaki değişken tablolarından (IP yönlendirme tablosu gibi) bilgi almak için kullanır.
· Traps (Tuzaklar): Yönetilmiş aygıt bazı olayları NMS’lere rapor etmek için bu trapleri kullanırlar.
MIB’ler yönetilmiş nesne veya yönetilecek aygıt hakkındaki tanımlamaları tutan birer veritabanıdırlar. İsimsiz bir köke sahip özet şeklinde bilgi veren ağaçlar olarak tanımlanabilir. Özel veri tipleri de ağacın yapraklarını oluşturur. Aygıtın, her türlü tanımlamaları için, MIB içerisine yazılmış, değerlerden oluşan bir veritabanı tutulur. Her değişkene ulaşmak için tek bir yol vardır. Donanım ve yazılım üreticileri kendi ürünlerinin SNMP yönetim sistemleri tarafından sorgulanabilmesi için ürün parametrelerini MIB’ler içerisinde toplarlar. Firmalar dışında internet organları da standart ürünler için MIB’ler oluşturur. Bir SNMP yönetim sistemi ne kadar çok MIB tanırsa o kadar iyi olur.
Şu anda internette kullanılan MIB standardı MIB II ‘dir. Bu standart 1213 numaralı RFCs’de tanımlanmıştır. MIB II’de protokollere göre gruplara bölünmüştür. Toplam 171 adet parametre vardır. Bu parametreler:
· System (Sistem): İşletim sistemi Bilgileri
· Interfaces (Arayüzler): Ağ arayüz bilgileri
· AT (Adres Çevirisi): Adres Çeviri bilgileri
· IP : IP Anlaşma bilgileri
· ICMP: ICMP anlaşma bilgileri
· TCP: TCP anlaşma bilgileri
·
udp: UDP anlaşma bilgileri
·
egp: Dış geçit yolu anlaşma bilgileri
· transmIssIon: İletim ilgileri
· snmp: SNMP bilgileri
şeklindedir.
SNMP protokolünü kullanan yönetim aygıtlarının çalışması şu şekilde olmaktadır:
Yönetim aygıtlarına NMS aygıtları denmektedir. Bu aygıt yönetilen nesnenin MIB’ini görmek ister. Yönetilmiş aygıtın MIB’inde daha önce de anlatıldığı gibi nesne hakkında çeşitli bilgiler (değerler) bulunur. Yönetilen aygıt MIB’inde bulunan bilgileri NMS’lere göndererek işlemi tamamlar. NMS aldığı bu bilgilere dayanarak işlem yapar.
Ağacın yapraklarının her birine nesne denilmektedir. MIB’de her nesnenin bir OID’si ve ismi olmaktadır. Bu isimler şekil.3’te gösterilen MIB ağacına göre tanımlanırlar.

Şekil 3:Basit MIB Yapısı
Örneğin Enterprise yaprağının altındaki Lan Manager MIB II için verilen nesne adı:
Iso.org.dod.internet.private.enterprise.lanmanager
olarak belirtilebilir.
Bu nesne adına ait nesne numarası da:
1.3.6.1.4.1.77
şeklindedir.
Diğer bir örnek te Internet MIB II için verilebilir:
|
Nesne adı |
: |
Iso.org.dod.internet.management.mibii |
|
Nesne
numarası |
: |
1.3.6.1.2.1 |
SNMP’de nesne numarası biliniyorsa sorgulama yapmak çok kolaydır. Çok çeşitli sorgular yapılıp hatta bu parametreler değiştirilebilir. Bunu engellemek için SNMP’de bir güvenlik unsuru vardır. Bu unsur Community (Toplum) mantığıdır. SNMP yönetim sistemi ile ajanlar bir toplum oluştururlar. Ajanlar yalnızca kendi toplumlarından gelen sorgulama isteklerine yanıt verirler. SNMP toplumları toplum isimleri ile belirlenir. Bir SNMP ajanı birden fazla toplumun üyesi olabilir veya SNMP programının özelliğine göre bir ajan bütün SNMP komutlarına yanıt verecek şekilde düzenlenebilir.
Şekilde topluluklar ve toplum sorumluları görülmektedir:

Şekil 4: NMS’ler ve yönetim toplulukları
Topluluk ismi COM1 olan bilgisayarların trap sorumlusu NMS1, ve topluluk ismi COM2 olan bilgisayarların trap sorumlusu NMS2 olsun. Bu durumda Ajent1 ve Ajent2 bilgisayarlarındaki SNMP ajan servisi sadece NMS1’den gelen isteklere yanıt verir. Aynı şekilde Ajent3 ve Ajent4 bilgisayarları sadece, trap sorumluları olan NMS2’den gelen isteklere yanıt verirler.
4.4. SMI Tanımlamaları
SMI’ya göre yönetilen her nesnenin bir adı,sentaksı ve kodlaması olması gerekir. Ad olarak OID kullanılmaktadır. Sentaks nesnenin veri türünü belirler. Kodlama ise bilginin nesne ile nasıl ilişkilendirildiğini tanımlar.
SMI da veri tipleri üç kategoriye ayrılmıştır:
1. Basit Tipler:
· Integer
· Octet String
· OID
· Bit Strings
2. Geniş uygulamalı tipler:
· Network Addresses
· Counters
· Gauges
· Time Ticks
· Opaque
· Integer
· Unsigned Integer
3. Basit Yapılı Tipler
· Row
· Table
SNMP kendi başına aslında bir istek/yanıt protokolüdür. NMS’ler hiç bir yanıt almadan pekçok istek gönderebilirler. Altı tane SNMP operatörü tanımlanmıştır:
· Get: NMS’nin ajandan bir nesne örneği almasına olanak tanır.
· GetNext: NMS’nin, tabloda veya listede bulunan sıradaki nesne örneğini almasına olanak tanır.
· GetBulk: SNMPv2 ile gelen bir komuttur. GetNext komutunu ard arda kullanmak yerine tek seferde büyük miktarda bilgi almak için kullanılır.
· Set: NMS’ye ajan içerisindeki nesne örneklerine değer ataması için olanak sağlar
· Trap: Ajanların, NMS’ye bilgi göndermek için kullandıkları mesajdır.
· Inform: SNMPv2 ile gelen bir komuttur. NMS’nin diğer NMS’ye Trap mesajı gönderebilmesini sağlar.
SNMP servisinde bilgiler UDP paketleri şeklinde taşınır. SNMPv1 ve SNMPv2’de iki tür mesaj formatı vardır.
4.6.1. SNMPv1 Mesaj Formatı
SNMPv1 paketleri iki parçadan oluşmaktadır. Birinci kısımda sürüm ne Topluluk ismi bulunur. İkinci kısımda ise çeşitli operatörleri (Get, Set gibi) ve nesne örneklerini içeren Protocol Data Unit (PDU- Protokol Veri Üniteleri) kısmıdır.
Şekil 5: SNMPv1 mesaj formatı
· Sürüm: Bütün ağ elemanlarının aynı SNMP yazılımını kullandığını doğrulamada kullanılır
· Topluluk: Erişilecek topluluk ismi
· PDU Tipi: Taşınan PDU tipi
· İstek ID: İstekleri yanıtlarla ilişkilendirir.
· Hata Durumu: Hatayı veya hata tipini bildirir
· Hata İndeksi: Hatayı özel bir nesne örneği ile ilişkilendirir
· Değişken Cildi: Özel nesne örneklerini onların geçerli değerleriyle ilişkilendirir.
SNMPv2 paketleri de iki kısımdan oluşmaktadır. İkinci kısımlar aynıdır. Farklı olarak SNMPv2 paketlerinde Wrapper (İleti) denen bir kısım bulunmaktadır. Bu kısım gizlilik ve yetki bilgilerini taşımaktadır.
SNMPv2’de iki tane temel güvenlik protokolü vardır. Birincisi yetki için kullanılan Digest Authentication Protocol (DAP- Özet Yetki Protokolü) ve ikincisi gizlilik için Symmetric Privacy Protocol (SPP- Simetrik Gizlilik Protokolü).
· DAP: Alınan mesajın gönderilen mesaj ile aynı olup olmadığını kontrol eder. Veri bütünlü Message Digest 5 (MD5)’e göre hesaplanmış 128 bitlik mesaj özetiyle sağlanır.
· SPP: SPP sadece alıcı ve gönderen tarafından görülebilen gizli bir şifrelenmiş anahtar oluşturur.

Şekil 6: SNMPv2 mesaj formatı
Basit ağ yönetimi protokolü (SNMP) hizmeti, TCP/IP ve IPX iletişim kurallarını çalıştıran bilgisayarları destekler. Bu hizmet, TCP/IP iletişim kuralı başarıyla yapılandırıldıktan sonra yüklenebilen isteğe bağlı bir hizmettir.
SNMP hizmeti, aşağıdaki programları çalıştıran bilgisayarların uzaktan ve merkezi yönetimine olanak veren bir SNMP aracısı sağlar:
· Windows 2000 Server
· Windows 2000 Professional
· Windows 2000 tabanlı WINS