Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-23801

Unexpected results with snmp Hex-String values

XMLWordPrintable

    • Icon: Problem report Problem report
    • Resolution: Fixed
    • Icon: Trivial Trivial
    • None
    • 6.4.9, 7.0.0alpha8
    • Proxy (P), Server (S)
    • None

      Steps to reproduce:

      1. Instal MIB files to zabbix server, restart zabbix server process
      2. create walk[1.3.6.1.2.1.2.2.1.6] item for some SNMP device
      3. Uninstal MIB files from zabbix server or change IF-MIB.txt file as described later, restart zabbix server process
      4. compare values before and after MIB files uninstallation

      First result:

      .1.3.6.1.2.1.2.2.1.6.1 = STRING: 8:55:31:75:2f:b6

      Second result:

      .1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 08 55 31 75 2F B6

      Expected:
      same result independent on MIB files in OS.

       

      Description:

      If I use snmp agent with get or walk item for aquiring MAC addresses from device, A got diferent results that depends on lib net-snmp configuration or on snmp.conf file. 

      For example:
       If there are no MIB files imported in OS - the result for getting MAC addres from item: 1.3.6.1.2.1.2.2.1.6[index,1.3.6.1.2.1.2.2.1.2,"ether2"] is 08 55 31 75 2F B2  
      Result for walk item: walk[1.3.6.1.2.1.2.2.1.6] is table with Hex-STRING values:
      .1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 08 55 31 75 2F B6
      .1.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 08 55 31 75 2F B7
      .1.3.6.1.2.1.2.2.1.6.3 = Hex-STRING: 08 55 31 75 2F B1
      .1.3.6.1.2.1.2.2.1.6.4 = Hex-STRING: 08 55 31 75 2F B2

      But if there are MIB files imported - in my example IF-MIB with part, that defines ifPhysAddress as PhysAddress syntax:
      ifPhysAddress OBJECT-TYPE
          SYNTAX      PhysAddress
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "The interface's address at its protocol sub-layer.  For
                  example, for an 802.x interface, this object normally
                  contains a MAC address.  The interface's media-specific MIB
                  must define the bit and byte ordering and the format of the
                  value of this object.  For interfaces which do not have such
                  an address (e.g., a serial line), this object should contain
                  an octet string of zero length."
          ::= { ifEntry 6 }

      Then PhysAddres is converted to STRING and Zabbix returns value converted to string: 8:55:31:75:2f:b2 - for same item
      And walk item returns:
      .1.3.6.1.2.1.2.2.1.6.1 = STRING: 8:55:31:75:2f:b6
      .1.3.6.1.2.1.2.2.1.6.2 = STRING: 8:55:31:75:2f:b7
      .1.3.6.1.2.1.2.2.1.6.3 = STRING: 8:55:31:75:2f:b1
      .1.3.6.1.2.1.2.2.1.6.4 = STRING: 8:55:31:75:2f:b2

      That's problem, when you need to compare MAC address - you need to use same MAC address representation in any case. in any part of DB.  I use MAC address in script item to find device connected on port so I need same syntax anywhere.

      Asking walk for ARP chche MAC addresses - walk[.1.3.6.1.2.1.17.4.3.1.1] returns Hex-STRINGS correctly with or without MIB files loaded, because syntax defined in MIB file is: "SYNTAX MacAddress""

      I know, that "SYNTAX PhysAddress" comes from RFC 1213 definition. But can zabbix ignore this snmp library setting and provide non-converted value to item value?

      I know, I can use some workarounds:
          1) Change IF-MIB to use syntax:
          ifPhysAddress OBJECT-TYPE
              SYNTAX      MacAddress
          2) Delete IF-MIB file
          3) Create preprocessing for MAC address normalization to fullfill regular expression ^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$
      But every workaround has some advantages and disadvantages.

      Can zabbix provide Hex-STRING item without conversion to STRING independently on MIB files and snmp.conf setup?

       

            acarvalho Assyr de Carvalho Junior
            Alois Zadrazil Alois Zadrazil
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: