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.