SNMP (Simple Network Management Protocol), ağ cihazlarının, bilgisayar
sistemlerinin ve çeşitli endüstriyel cihazların izlenmesi ve yönetilmesi amacıyla
kullanılan standart bir haberleşme protokolüdür.
SNMP sayesinde cihazların çalışma durumu, ağ bağlantıları, işlemci ve bellek kullanımı,
sıcaklık, enerji değerleri, hata durumları ve üretici tarafından sunulan diğer bilgiler
merkezi bir sistem tarafından izlenebilir.
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 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.
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, 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'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 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.
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.
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.
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, 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.