SNMP Nedir?

SNMP, açılımı Simple Network Management Protocol olan ve Türkçeye genellikle Basit Ağ Yönetim Protokolü olarak çevrilen standart bir haberleşme protokolüdür.

SNMP'nin temel amacı, bir ağdaki veya sistemdeki cihazların durumları hakkında bilgi toplamak ve gerektiğinde belirli yönetim bilgilerinin değiştirilmesine olanak sağlamaktır. Protokol, yönetim bilgisinin merkezi bir yönetim sistemi ile cihaz üzerindeki SNMP agent arasında taşınmasını sağlar.

SNMP başlangıçta TCP/IP tabanlı ağların yönetimi için geliştirilmiş olsa da günümüzde switch, router, firewall, sunucu, UPS, yazıcı, enerji cihazları, haberleşme ekipmanları, PLC, RTU ve çeşitli endüstriyel cihazların izlenmesinde de kullanılmaktadır.

SNMP'nin önemli özelliklerinden biri, cihazların üreticiden bağımsız olarak standart bir yönetim modeli üzerinden izlenebilmesini sağlamasıdır. Cihazın sunduğu bilgiler MIB (Management Information Base) içerisinde tanımlanır ve bu bilgiler OID (Object Identifier) adı verilen benzersiz tanımlayıcılarla adreslenir.

SNMP Nasıl Çalışır?

SNMP mimarisinde temel olarak iki taraf bulunur: SNMP Manager ve SNMP Agent.

SNMP Manager

SNMP Manager, ağ veya endüstriyel sistem içerisindeki cihazları izleyen merkezi uygulamadır. Cihazlardan bilgi isteyebilir, belirli değerleri değiştirebilir ve cihazlardan gönderilen bildirimleri alabilir.

  • Cihazlardan veri okuma
  • Cihaz durumlarının izlenmesi
  • Alarm ve bildirimlerin alınması
  • Belirli parametrelerin değiştirilmesi
  • Merkezi cihaz yönetimi

SNMP Agent

SNMP Agent, izlenen cihaz üzerinde çalışan ve cihazın yönetim bilgilerine erişim sağlayan yazılım bileşenidir. Agent, Manager tarafından gönderilen istekleri işler ve cihazdaki ilgili bilgileri geri gönderir.

  • Cihaz bilgilerinin sunulması
  • OID değerlerinin sağlanması
  • GET ve SET isteklerinin işlenmesi
  • Trap ve Inform bildirimlerinin gönderilmesi
  • Cihaz durumunun izlenebilir hale getirilmesi

Basit bir ifadeyle SNMP sistemini şöyle düşünebiliriz: Manager sorar, Agent cevap verir. Bazı durumlarda ise Agent, önemli bir olay meydana geldiğinde Manager'a kendiliğinden bildirim gönderebilir.

EOS Yazılımları İçin SNMP Veri Adresleme (S#)

EOS SCADA SNMP istemcisinde veri adresi, SNMP Object Identifier yani OID kullanılarak belirtilir. Adres S# prefix'i ile başlar.

S#OID

Örneğin:

S#1.3.6.1.2.1.2.2.1.11.10

SNMP OID, nokta karakterleri ile ayrılmış sayısal bölümlerden oluşmalıdır.

MIB ve OID Nedir?

SNMP'de cihazlardan hangi bilgilerin okunabileceğini anlamanın temelinde MIB ve OID kavramları bulunur.

MIB

MIB (Management Information Base), bir SNMP cihazının sunduğu yönetim bilgilerinin tanımlarını içeren yapıdır. MIB dosyaları, belirli OID'lerin ne anlama geldiğini, veri tipini ve nasıl kullanılacağını açıklamak için kullanılır.

OID

OID (Object Identifier), SNMP içerisindeki belirli bir bilgi veya nesneyi tanımlayan hiyerarşik bir numaradır. Örneğin 1.3.6.1.2.1.1.3.0 gibi bir OID belirli bir SNMP nesnesine karşılık gelir.

OID'ler ağaç yapısında düzenlenir. Bu nedenle SNMP'de bir veri noktasına erişmek, SCADA sistemlerinde kullanılan adresleme mantığına benzer şekilde belirli bir OID'nin sorgulanması anlamına gelir.

Üreticiler kendi cihazlarına özgü bilgileri de MIB tanımları içerisinde sunabilir. Bu nedenle bir cihazdan üreticiye özel sıcaklık, güç, fan durumu veya hata kodu gibi bilgileri okuyabilmek için üreticinin MIB dosyasına ihtiyaç duyulabilir.

SNMP İşlemleri

SNMP, yönetim bilgilerinin okunması, değiştirilmesi ve olayların bildirilmesi için çeşitli işlem türleri kullanır. En yaygın SNMP işlemleri aşağıda açıklanmıştır.

GET

Belirli bir OID'nin mevcut değerini okumak için kullanılır. Örneğin bir cihazın sıcaklığı, çalışma süresi veya port durumu GET işlemiyle okunabilir.

GETNEXT

OID ağacında bir sonraki nesnenin bulunması amacıyla kullanılır. Özellikle MIB içerisindeki tabloların ve nesnelerin dolaşılmasında kullanışlıdır.

GETBULK

Birden fazla yönetim bilgisinin daha verimli şekilde alınmasını sağlar. Özellikle SNMPv2c ve SNMPv3 uygulamalarında büyük tabloların okunmasında kullanılır.

SET

Yetkili kullanıcıların cihaz üzerindeki desteklenen bir yönetim nesnesinin değerini değiştirmesini sağlar. Ancak hangi değerlerin değiştirilebileceği cihazın SNMP agent yapılandırmasına bağlıdır.

TRAP

Cihazın önemli bir olay meydana geldiğinde SNMP Manager'a kendiliğinden bildirim göndermesini sağlar. Örneğin bir haberleşme bağlantısının kesilmesi veya cihazın yeniden başlaması Trap ile bildirilebilir.

INFORM

Trap'e benzer şekilde olay bildirimi için kullanılır; ancak alıcı tarafından alınmasının onaylanabilmesi bakımından Trap'ten farklıdır. Bu nedenle güvenilir bildirim mekanizmasının gerekli olduğu uygulamalarda tercih edilebilir.

SNMP Sürümleri

SNMP'nin zaman içerisinde farklı sürümleri geliştirilmiştir. Günümüzde özellikle SNMPv2c ve güvenlik özellikleri nedeniyle SNMPv3 yaygın olarak karşılaşılmaktadır.

SNMPv1

SNMP'nin ilk yaygın sürümüdür. Basit bir yapıya sahiptir ve GET, GETNEXT, SET ve Trap gibi temel işlemleri destekler. Günümüzde eski cihazlarda ve mevcut sistemlerde karşılaşılabilir.

SNMPv2c

SNMPv1'e göre daha gelişmiş protokol işlemleri sunar. Özellikle GETBULK işlemi sayesinde büyük miktardaki yönetim bilgisinin daha verimli okunmasını sağlar.

Ancak community string tabanlı SNMPv2c kullanımı güçlü bir güvenlik mekanizması sağlamaz.

SNMPv3

SNMPv3, SNMP yönetim mimarisine daha gelişmiş güvenlik mekanizmaları kazandırır. Kimlik doğrulama, bütünlük ve gizlilik gibi güvenlik özellikleri desteklenebilir.

Güvenlik gereksinimi yüksek sistemlerde SNMPv3 tercih edilmesi, SNMPv1 ve SNMPv2c'ye göre daha uygun bir yaklaşım olabilir.

SNMP Haberleşmesi

SNMP uygulamalarında klasik olarak UDP tabanlı haberleşme kullanılır. SNMP Manager'ın istekleri için yaygın olarak UDP 161 portu, Trap ve benzeri bildirimlerin alınması için ise UDP 162 portu kullanılır.

UDP 161

SNMP Agent'ın normal SNMP isteklerini dinlediği standart porttur. GET, GETNEXT, GETBULK ve SET gibi işlemler bu port üzerinden gerçekleştirilebilir.

UDP 162

SNMP Manager veya Trap Receiver tarafından Trap ve bildirimlerin alınmasında kullanılan standart porttur.

Bu nedenle bir SCADA veya merkezi izleme uygulamasının SNMP cihazlarına erişebilmesi için ağ ve güvenlik duvarı yapılandırmalarında ilgili UDP portlarının erişilebilir olması gerekir.

SNMP Endüstriyel Sistemlerde Nasıl Kullanılır?

SNMP, doğrudan bir proses kontrol protokolü olmaktan çok, cihazların ve haberleşme altyapısının izlenmesi ve yönetimi amacıyla kullanılır. Bununla birlikte birçok endüstriyel tesiste SCADA sistemlerinin tamamlayıcı bir haberleşme protokolü olarak önemli bir rol üstlenebilir.

Ağ Cihazlarının İzlenmesi

Switch, router, firewall ve diğer ağ cihazlarının port durumları, trafik değerleri, hata sayaçları, sıcaklık ve benzeri bilgileri izlenebilir.

UPS ve Enerji Sistemleri

UPS sistemleri, güç kaynakları ve bazı enerji cihazlarından gerilim, akım, yük, batarya, çalışma durumu ve alarm bilgileri alınabilir.

Sunucu ve Bilgisayar Sistemleri

Sunucu ve bilgisayar sistemlerinde çalışma durumu, sistem kaynakları, ağ arayüzleri ve üreticiye özgü çeşitli bilgiler izlenebilir.

Endüstriyel Cihazlar

SNMP desteği bulunan PLC, RTU, haberleşme cihazları, endüstriyel switch'ler ve diğer saha ekipmanları merkezi sistemlerden izlenebilir.

Alarm ve Olay Bildirimleri

Cihazlardan gelen Trap veya Inform bildirimleri SCADA, alarm yönetimi veya merkezi izleme sistemlerine aktarılabilir.

Performans İzleme

Zaman içerisinde toplanan SNMP verileri arşivlenerek trend, performans ve kapasite analizlerinde kullanılabilir.

SNMP ve SCADA

Bir SCADA sistemi SNMP kullanarak yalnızca klasik PLC ve RTU verilerini değil, tesisin haberleşme ve yardımcı altyapısına ait birçok bilgiyi de merkezi olarak izleyebilir.

Örneğin bir enerji üretim tesisinde SCADA sistemi aynı platform içerisinde PLC'lerden proses verilerini, enerji cihazlarından ölçümleri ve ağ switch'lerinden haberleşme durumlarını toplayabilir.

Bu yaklaşım, özellikle bir cihazın kendisi çalışıyor görünmesine rağmen haberleşme altyapısında meydana gelen problemlerin erken fark edilmesine yardımcı olabilir.

SNMP verileri SCADA içerisinde trend, alarm, olay kaydı ve raporlama mekanizmalarıyla birlikte kullanılabilir. Böylece ağ ve cihaz yönetim bilgileri, tesisin diğer operasyonel verileriyle aynı sistem içerisinde değerlendirilebilir.

SNMP'nin Avantajları

Yaygın Standart

Çok sayıda ağ ve endüstriyel cihaz tarafından desteklenen standart bir yönetim protokolüdür.

Merkezi İzleme

Farklı üreticilere ait çok sayıda cihazın merkezi bir uygulama üzerinden izlenmesini kolaylaştırır.

Basit ve Hafif

Basit protokol yapısı sayesinde cihaz yönetimi ve periyodik veri toplama uygulamalarında oldukça kullanışlıdır.

Olay Bildirimi

Trap ve Inform mekanizmaları sayesinde cihazların önemli olayları merkezi sistemlere bildirmesine olanak sağlar.

Veri Arşivleme

SNMP ile toplanan bilgiler zaman serisi olarak arşivlenebilir ve daha sonra performans analizi için kullanılabilir.

SNMPv3 Güvenliği

SNMPv3 ile kimlik doğrulama, bütünlük ve gizlilik gibi daha gelişmiş güvenlik mekanizmaları kullanılabilir.

SNMP Kullanırken Dikkat Edilmesi Gerekenler

SNMP oldukça kullanışlı bir protokol olmakla birlikte, her uygulama için tek başına uygun bir proses haberleşme protokolü değildir.

  • SNMP, klasik proses kontrol protokollerinin yerine geçmek amacıyla tasarlanmamıştır.
  • Bir cihazın SNMP desteklemesi, cihazdaki bütün bilgilerin SNMP üzerinden erişilebilir olduğu anlamına gelmez.
  • Üreticiye özgü veriler için üreticinin MIB dosyasına ihtiyaç duyulabilir.
  • SNMPv1 ve SNMPv2c kullanılan sistemlerde güvenlik gereksinimleri ayrıca değerlendirilmelidir.
  • Kritik sistemlerde mümkün olduğunda SNMPv3 gibi daha gelişmiş güvenlik özellikleri değerlendirilmelidir.
  • Çok sık polling yapılması cihaz ve ağ üzerinde gereksiz trafik oluşturabileceğinden sorgulama periyotları uygulamanın ihtiyacına göre belirlenmelidir.

Basit Bir SNMP Örneği

Bir SNMP cihazının IP adresinin 192.168.1.100 olduğunu düşünelim. Cihazın belirli bir OID'sini okumak isteyen bir SNMP Manager, ilgili OID için GET isteği gönderebilir.

Örneğin:

SNMP Agent
IP Address : 192.168.1.100
Port       : 161

OID        : 1.3.6.1.2.1.1.3.0

Manager bu OID için bir GET isteği gönderdiğinde, cihazdaki SNMP Agent ilgili değeri bulur ve Response mesajı içerisinde Manager'a geri gönderir.

Benzer şekilde cihazda önemli bir olay meydana geldiğinde Agent, Manager'ın Trap Receiver bölümüne bir Trap gönderebilir.

Böylece SNMP ile iki temel çalışma modeli birlikte kullanılabilir: periyodik sorgulama (polling) ve olay tabanlı bildirim.

SNMP Araçları

Bu bölümde SNMP protokolünü test etmek, cihazlardan veri okumak, OID'leri keşfetmek, MIB dosyalarını incelemek ve SNMP Trap mesajlarını izlemek için kullanılabilecek araçlar paylaşılacaktır.

🔧 SNMP Test ve İzleme Araçları

SNMP Manager, SNMP Agent, OID sorgulama, MIB görüntüleme ve Trap izleme gibi işlemler için hazırlanmış araçlar burada yayınlanacaktır.

  • SNMP Scanner – Ağ üzerindeki SNMP cihazlarını keşfetmek ve temel bilgilerini görüntülemek için.
  • SNMP GET / SET Tool – OID değerlerini okumak ve desteklenen değerleri değiştirmek için.
  • SNMP Walk Tool – OID ağacını dolaşmak ve cihaz tarafından sunulan nesneleri keşfetmek için.
  • SNMP Trap Receiver – SNMP Trap mesajlarını almak ve incelemek için.
  • MIB Viewer – MIB dosyalarını incelemek ve OID yapılarını görüntülemek için.

Not: Bu bölüm geliştirme aşamasındadır. EOS Endüstriyel Yazılım Portalı üzerinde hazırlanacak ücretsiz SNMP araçları ilerleyen dönemde burada yayınlanacaktır.

Özet

SNMP, ağ ve sistem yönetimi için geliştirilmiş, günümüzde çok geniş bir cihaz ailesi tarafından desteklenen standart bir haberleşme protokolüdür.

MIB ve OID yapısı sayesinde cihazlardaki yönetim bilgileri standart bir şekilde adreslenebilir. GET, GETNEXT, GETBULK ve SET işlemleri ile bilgiler sorgulanabilir veya desteklenen parametreler değiştirilebilir. Trap ve Inform mekanizmaları ise cihazların meydana gelen olayları merkezi sistemlere bildirmesine olanak sağlar.

Özellikle SCADA ve endüstriyel izleme sistemlerinde SNMP; PLC ve proses verilerine ek olarak ağ altyapısı, UPS, enerji cihazları, haberleşme ekipmanları ve yardımcı sistemlerin aynı merkezi yapı içerisinde izlenmesini sağlayan önemli bir tamamlayıcı protokoldür.