Skip to content

örnekler üzerinden temel SNMP

snmp desteğine sahip cihazlardan veri alınması, yorumlanması ve cihazlara ait mib ve oid değerlerinin önemi kısaca anlatmaya çalışalım. teoriye girmeden uygulamalı olarak net-snmp kullanarak alcatel omniswitchler üzerinden ufak bir iki örnek yapalım.

burada unutulmaması gereken nokta kullanacağımız cihaza ait gerekli snmp ayarlarını yapmış olmamız gerekmektedir. örneğimizde snmp adında public de tam yetkili bir kullanıcı oluşturdum. kısaca snmp ile herşey serbest durumda.

ilk önce bağlantı yapabiliyormuyuz bir deneyelim.

$ snmpwalk -v 2c -c public 10.0.0.10 system
SNMPv2-MIB::sysDescr.0 = STRING: Alcatel-Lucent OS6850-U24X 6.4.4.604.R01::evenugop Service Release, October 09, 2013.
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.6486.800.1.1.2.1.7.1.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2836626900) 328 days, 7:31:09.00
SNMPv2-MIB::sysContact.0 = STRING: Alcatel-Lucent, http://alcatel-lucent.com/wps/portal/enterprise
SNMPv2-MIB::sysName.0 = STRING: alcatel_test_switch
SNMPv2-MIB::sysLocation.0 = STRING: Unknown
SNMPv2-MIB::sysServices.0 = INTEGER: 78                                                                                                           

testimiz başarılı oldu ve cihaza ait temel bilgileri getirmiş oldu. buradan cihazımızın 6850 ve aos 6.4.4 çalıştırdığını ögrenmiş olduk.

https://service.esd.alcatel-lucent.com/portal/page/portal/EService/product_specific_support_media?p=OmniSwitch_6850___6850E

adresinden cihaza ait mib dosyasını indirebilir ve buradan ögrendiğimiz bilgilerle daha özel bilgilere artık ulaşabiliriz.

şimdi switch üzerindeki arayüzlerin durumunu ögrenelim

$ snmpwalk -v 2c -c public 10.0.0.10 1.3.6.1.2.1.2.2.1.7
IF-MIB::ifAdminStatus.1001 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1002 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1003 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1004 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1005 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1006 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1007 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1008 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1009 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1010 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1011 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1012 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1013 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1014 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1015 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1016 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1017 = INTEGER: up(1)
IF-MIB::ifAdminStatus.1018 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1019 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1020 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1021 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1022 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1023 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1024 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1025 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1026 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1027 = INTEGER: down(2)
IF-MIB::ifAdminStatus.1028 = INTEGER: down(2)
IF-MIB::ifAdminStatus.13600001 = INTEGER: up(1)
IF-MIB::ifAdminStatus.13604098 = INTEGER: up(1)
IF-MIB::ifAdminStatus.13604099 = INTEGER: up(1)
IF-MIB::ifAdminStatus.40000001 = INTEGER: up(1)

listede switch üzerindeki tüm arayüzlerin admin up/down durumları görülmektedir. bilirli bir arayüze bakmak istiyorsak : örnek olarak 4.port

$ snmpwalk -v 2c -c public 10.0.0.10 1.3.6.1.2.1.2.2.1.7.1004
IF-MIB::ifAdminStatus.1004 = INTEGER: up(1)


$ snmpget -v 2c -c public 10.0.0.10 1.3.6.1.2.1.2.2.1.7.1004
IF-MIB::ifAdminStatus.1004 = INTEGER: up(1)

seçeneklerinden birini kullanacağız. aynı sorgulamayı switch üzerinden de gerçekleştirelim.

alcatel_test_switch-> show interfaces 1/4 port 
Legends: WTR - Wait To Restore
         #   - WTR Timer is Running & Port is in wait-to-restore state
         *   - Permanent Shutdown

Slot/    Admin     Link    Violations  Recovery   Recovery      WTR            Alias
Port     Status   Status                 Time       Max        (sec)
------+----------+---------+----------+----------+----------+----------+-----------------------------------------
  1/4    enable      down      none           300         10          0 ""

snmpwalk ve snmpget ile durum bilgisini getirmeyi ögrendik. iki komut arasındaki en temel fark snmpget ile nokta atışı yaparken snmpwalk ile ağacın alt dallarınada bakabiliyoruz.

mevcut bir veriyi nasıl değiştireceğiz sorusunun cevabı ise snmpset komutunda yatıyor

cihaz üzerinden

alcatel_test_switch-> interfaces 1/4 admin up

komutu ile gerçekleştirdiğimiz işlem için

$ snmpset -v 2c -c public 10.0.0.10 1.3.6.1.2.1.2.2.1.7.1004 i 1
IF-MIB::ifAdminStatus.1004 = INTEGER: up(1)

aynı port için

alcatel_test_switch-> interfaces 1/4 admin down 

komutu ile gerçekleştirdiğimiz işlem için

$ snmpset -v 2c -c public 10.0.0.10 1.3.6.1.2.1.2.2.1.7.1004 i 2
IF-MIB::ifAdminStatus.1004 = INTEGER: down(2)

yapısını kullanıyoruz. temelde olay bu kadar basit. snmp ile cihaz yönetimi konusunda temel mantığı uygulamalı olarak umarım anlatabilmişimdir. buradaki esas mantık cihazdaki mib yapısını iyi bilmek. bunun önemi anlamak için ufak bir örnek daha yapalım.

alcatel_test_switch-> show interfaces transceiver actual 
  Slot/Port   Temp (C)   Voltage (V)   Current (mA)   Output (dBm)   Input (dBm)  
------------+----------+------------+--------------+--------------+-------------
    1/1        45.0        3.317        6.626         -5.667           -Inf    
    1/3        42.0        3.315        6.614         -5.766           -Inf    
    1/10       38.0        3.318        6.424         -5.781           -Inf    
    1/17       44.0        3.314       16.464         17.927(AH)     -7.879  

test cihazımız üzerinden interfacelerin ddm özelliklerini listeleyelim. RX değerleri switch üzerinden şimdide snmp ile alalım. bunun için ddmRxOpticalPower objesine karşılık gelen değeri biliyor olmamız gerek. bu değer bu cihazda

enterprises.6486.800.1.2.1.5.1.1.2.5.1.21
1.3.6.1.4.1.6486.800.1.2.1.5.1.1.2.5.1.21

şeklinde. bu değeri ögrendikten sonra gerekli veriyi alalım.

$ snmpwalk -v 2c -c public 10.0.0.10  1.3.6.1.4.1.6486.800.1.2.1.5.1.1.2.5.1.21
SNMPv2-SMI::enterprises.6486.800.1.2.1.5.1.1.2.5.1.21.1001 = INTEGER: -2147483648
SNMPv2-SMI::enterprises.6486.800.1.2.1.5.1.1.2.5.1.21.1003 = INTEGER: -2147483648
SNMPv2-SMI::enterprises.6486.800.1.2.1.5.1.1.2.5.1.21.1010 = INTEGER: -2147483648
SNMPv2-SMI::enterprises.6486.800.1.2.1.5.1.1.2.5.1.21.1017 = INTEGER: -7879

yukarıdaki çıktıdan görüldüğü gibi dönen değerler ile cli üzerinden sorğuladığımız değerler kısmen alakalı görülüyor ancak %100 aynı değil. bu değerleri doğru şekilde yorumlayabilmek için alcatelin sayfasından indirdiğimiz mib dosyalarına ihtiyacımız olacak. bu dosyalara baktığımızda ddmRxOpticalPower objesi için aşağıdaki bilgi yer alıyor..

ddmRxOpticalPower              OBJECT-TYPE
    SYNTAX      Integer32 (-200000 | -40000..10000)
	UNITS       "thousandth of a dBm"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of ddmRxOpticalPower indicates the current Received
         Optical Power of the SFP/XFP in 1000s of dBm.
		 A value of -200000 indicates this object is not applicable."
    ::= { ddmInfoEntry 21 }

yani bir nms uygulaması yazıyorsak elde edilen değeri 1000 e bölmemiz ve çıkan değer (-200000 | -40000..10000) dışında ise geçerli bir değer olmadığını bilmeliyiz.

alcatel omni switchlerde ddm

alcatel omni serisi cihazlarda transceiverların desteklediği ddm özellikleri show interface komutu ile görülebilir. ancak ddm özelliklerinin aktif edilmiş olması gerekmektedir.

durum bilgisi öğrenmek için

show interfaces transceiver ddm
DDM Status : enable
DDM Trap Status : disable

kullanılabilir. burada ddm in aktif edildiği görülmektedir. eğer ddm ve trap özelliklerini değiştirmek istiyorsak

interfaces transceiver ddm [trap] {enable | disable}

komut yapısı kullanılması gerekmektedir. ddm parametreleri default olarak

ddm - disable
trap - disable
kontrol zamanı (konfigüre edilemez) - 6850 (60saniye) 6400 (1saniye)

şeklindedir. default olarak kapalı gelen özellikleri açalım

-> interfaces transceiver ddm enable
-> interfaces transceiver ddm trap enable

ddm nasıl aktif edileceğini öğrendikten sonra portları nasıl inceleyeceğimize bakalım. kullanacağımız komut takımı aşağıdaki gibi olacaktır

show interfaces transceiver [slot[/port[-port2]]] transceiver  [ddm | W-Low | W-High | A-Low | A-High | actual]


fcicek_omni_test> show interfaces transceiver
  Slot/  Thres-    Temp       Voltage      Current      Output       Input
  Port   hold       (C)         (V)          (mA)        (dBm)       (dBm)
-------+--------+----------+------------+------------+------------+------------
  1/1   Actual    22.0        3.335        0.000(AL)     -Inf(AL)    0.000
         A-High    75.0        3.630      100.000        7.000        2.000
         W-High    70.0        3.465       95.000        4.000       -1.000
         W-Low      0.0        3.135       55.000       -4.701      -15.800
         A-Low     -5.0        2.970       50.000       -8.700      -19.788
  1/2   Actual    33.0        3.307       37.858       -1.362        0.000
         A-High    78.0        3.700       85.000        2.000        2.500
         W-High    73.0        3.600       80.000        1.000        2.000
         W-Low     -8.0        3.000       20.000       -7.001      -18.013
         A-Low    -13.0        2.900       15.000       -8.000      -20.000

DDM (Diagnostic Monitoring Interface)

DDM (Diagnostic Monitoring Interface) SFF Committee tarafından standart hale getirilmiş Transceivers lerin isminde de anlaşılacağı üzere verilerini monitör etmekte kullanılmaktadır.

işin detayını merak ediyorsanız http://www.sffcommittee.org adresini ziyaret etmeyle başlayabilirsiniz. piyasadaki bir çok farklı farka ve model transceiver bu standart daki yer alan tüm özellikleri desteklemeyebilir.

cisco, alcatel gibi bazı firmalar doğrudan bu standarttı takip etmemektedir. özellikle bu firmaların ürünleri ile çalışırken transceiver ile switch-router uyumuna dikkat edilmelidir. yine piyasadaki bir çok ürün bu standarttaki tüm özelliklerin hepsini içermeyebilir. kullanılacak duruma göre buna dikkat edilmelidir.

ftp://ftp.seagate.com/sff/SFF-8472.PDF

adresinden güncel standart dokümanına erişebilirsiniz.

ddm in aktif olması ve izlenmesi bir çok hata tespitinde ve giderilmesinde kullanılmaktadır. sitede huawei ve alcatel cihazlarla ilgili örnekler bulabilirsiniz.

huawei s5300 serisi switchlerde optik arayüzün değerleri

[huawei-s5300-GigabitEthernet0/0/5]display transceiver diagnosis interface GigabitEthernet 0/0/5
Port GigabitEthernet0/0/5 transceiver diagnostic information:
Parameter        Current     Low Alarm    High Alarm
  Type            Value      Threshold    Threshold    Status
-------------   ---------    ---------    ----------   --------
TxPower(dBm)    -5.92        -8.99        -2.99        normal
RxPower(dBm)    -4.74        -17.00       -5.00        abnormal
Current(mA)     13.27        1.00         50.00        normal
Temp.(C)        32.53        0.00         80.00        normal
Voltage(V)      3.31         3.10         3.50         normal

buradan görülebileceği gibi RX değerleri normal değerlerin üzerinde. Fiziksel kontrol gerekmektedir. En iyi olasılık optik zayıflatıcı kullanmak.

Back To Top