Uploaded image for project: 'Observium'
  1. Observium
  2. OBS-4945

Add Interface metris for BisonRouter (TheRouter)

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • None
    • None
    • Discovery, Poller
    • None

    Description

      BisonRouter is a Linux/DPDK routing solution used for cgNAT among other things. Because of the use of DPDK, the interfaces controlled by BR are not visible in the normal way. However, they have made it so that interfaces can be seen through SNMP using custom OIDs.

      Is it possible in some way to incorporate this?

      Here is an walk of that section:

      root@cgn1-XXX:~# snmpwalk -v 2c -c [nothing to see here] localhost .1.3.6.1.4.1.2238.240.1.3.1
      iso.3.6.1.4.1.2238.240.1.3.1.1.2 = INTEGER: 2
      iso.3.6.1.4.1.2238.240.1.3.1.1.3 = INTEGER: 3
      iso.3.6.1.4.1.2238.240.1.3.1.2.2 = STRING: "vl4054"
      iso.3.6.1.4.1.2238.240.1.3.1.2.3 = STRING: "vl2701"
      iso.3.6.1.4.1.2238.240.1.3.1.3.2 = INTEGER: 2
      iso.3.6.1.4.1.2238.240.1.3.1.3.3 = INTEGER: 2
      iso.3.6.1.4.1.2238.240.1.3.1.4.2 = INTEGER: 0
      iso.3.6.1.4.1.2238.240.1.3.1.4.3 = INTEGER: 0
      iso.3.6.1.4.1.2238.240.1.3.1.5.2 = INTEGER: 4054
      iso.3.6.1.4.1.2238.240.1.3.1.5.3 = INTEGER: 2701
      iso.3.6.1.4.1.2238.240.1.3.1.6.2 = Counter64: 36857768272
      iso.3.6.1.4.1.2238.240.1.3.1.6.3 = Counter64: 11419416251
      iso.3.6.1.4.1.2238.240.1.3.1.7.2 = Counter64: 11429913512
      iso.3.6.1.4.1.2238.240.1.3.1.7.3 = Counter64: 36798085277
      iso.3.6.1.4.1.2238.240.1.3.1.8.2 = Counter64: 49541793927987
      iso.3.6.1.4.1.2238.240.1.3.1.8.3 = Counter64: 3723020816035
      iso.3.6.1.4.1.2238.240.1.3.1.9.2 = Counter64: 3722695136183
      iso.3.6.1.4.1.2238.240.1.3.1.9.3 = Counter64: 49532778420412

      Attachments

        1. 360.txt
          278 kB
        2. screenshot-1.png
          screenshot-1.png
          101 kB

        Issue Links

          Activity

            [OBS-4945] Add Interface metris for BisonRouter (TheRouter)

            for interfaces we need information about port speed, oper and admin state.

            landy Mike Stupalov added a comment - for interfaces we need information about port speed, oper and admin state.

            Ok, that this interfaces impossible to use as "normal" interfaces in Observium.

            landy Mike Stupalov added a comment - Ok, that this interfaces impossible to use as "normal" interfaces in Observium.

            I have reached out to the developers of BisonRouter and asked him to look at this JIRA. This was his response:

            Based on below answers it’s clear that observium guys think that vifTable BisonRouter OID has referenced ifTable OID. That assumption is incorrect. BisonRouter vifTable contains information only on BisonRouter and has nothing to do with other OID tables or objects like ifTable.

            arubenstein Alex Rubenstein added a comment - I have reached out to the developers of BisonRouter and asked him to look at this JIRA. This was his response: Based on below answers it’s clear that observium guys think that vifTable BisonRouter OID has referenced ifTable OID. That assumption is incorrect. BisonRouter vifTable contains information only on BisonRouter and has nothing to do with other OID tables or objects like ifTable.

            it seems as device incorrectly report parent port.
            in your debug (and walk) it's reported as:

            vifPort.2 = 2
            vifPort.3 = 2

            meanin walk should be port with ifIndex 2.
            but in ifTable walk no ports with this index and seems as it should be 3 in vifPort.

            Parent port used for correctly associate ifOperStatus and ifAdminStatus. Because not such information in table.

            landy Mike Stupalov added a comment - it seems as device incorrectly report parent port. in your debug (and walk) it's reported as: vifPort.2 = 2 vifPort.3 = 2 meanin walk should be port with ifIndex 2. but in ifTable walk no ports with this index and seems as it should be 3 in vifPort. Parent port used for correctly associate ifOperStatus and ifAdminStatus. Because not such information in table.

            360.txt has been attached.

            arubenstein Alex Rubenstein added a comment - 360.txt has been attached.

            Based on your previous screenshot, you have troubles with get this tables.. vifTable

            Make discovery debug and attach

            ./discovery.php -d -h <device>

            landy Mike Stupalov added a comment - Based on your previous screenshot, you have troubles with get this tables.. vifTable Make discovery debug and attach ./discovery.php -d -h <device>

            I've moved to rolling, still same result. In discovery:

            #####  Module Start: ports  #####
             
             o Caching OIDs         ifDescr ifAlias ifName ifType ifOperStatus
             o BISON-ROUTER-MIB     vifTable
             o Caching DB           7 ports
             o Discovering ports    .....
            +---------+---------+--------+---------+------------------+-------------+---------+
            | ifIndex | ifDescr | ifName | ifAlias | ifType           | Oper Status | Ignored |
            +---------+---------+--------+---------+------------------+-------------+---------+
            | 1       | lo      | lo     | ...     | softwareLoopback | up          | no      |
            | 3       | eno3    | eno3   | ...     | ethernetCsmacd   | up          | no      |
            | 5       | eno4    | eno4   | ...     | ethernetCsmacd   | down        | no      |
            | 6       | eno1    | eno1   | ...     | ethernetCsmacd   | down        | no      |
            | 7       | eno2    | eno2   | ...     | ethernetCsmacd   | down        | no      |
            +---------+---------+--------+---------+------------------+-------------+---------+
             
             
             o Duration             0.2482s
            

            arubenstein Alex Rubenstein added a comment - I've moved to rolling, still same result. In discovery: ##### Module Start: ports #####   o Caching OIDs ifDescr ifAlias ifName ifType ifOperStatus o BISON-ROUTER-MIB vifTable o Caching DB 7 ports o Discovering ports ..... +---------+---------+--------+---------+------------------+-------------+---------+ | ifIndex | ifDescr | ifName | ifAlias | ifType | Oper Status | Ignored | +---------+---------+--------+---------+------------------+-------------+---------+ | 1 | lo | lo | ... | softwareLoopback | up | no | | 3 | eno3 | eno3 | ... | ethernetCsmacd | up | no | | 5 | eno4 | eno4 | ... | ethernetCsmacd | down | no | | 6 | eno1 | eno1 | ... | ethernetCsmacd | down | no | | 7 | eno2 | eno2 | ... | ethernetCsmacd | down | no | +---------+---------+--------+---------+------------------+-------------+---------+     o Duration 0 .2482s

            Change currently in rolling updates (only), you seems to use stable (or ce, not sure).

            landy Mike Stupalov added a comment - Change currently in rolling updates (only), you seems to use stable (or ce, not sure).

            Thanks for the attention. However, I am not sure how this works. I've updated observium, rediscovered the device, and polled. In the poller:

            #####  Module Start: ports  #####
             
             o Caching Oids         ifEntry ifXEntry
             o BISON-ROUTER-MIB     vifTable vifCvid vifPort +---------+------+--------+
            | ifIndex | Vlan | Trunk  |
            +---------+------+--------+
            |         |      | access |
            | 2       | 4054 | access |
            | 2       | 2701 | access |
            +---------+------+--------+
             
             
             o ADSL-LINE-MIB
             o EtherLike-MIB        dot3StatsDuplexStatus
             o Q-BRIDGE-MIB         dot1qVlanStaticUntaggedPorts +---------+------+--------+
            | ifIndex | Vlan | Trunk  |
            +---------+------+--------+
            |         |      | access |
            | 2       | 4054 | access |
            | 2       | 2701 | access |
            +---------+------+--------+
             
             
             o IP-MIB               IP-MIB ipIfStats
             
             
            +---------+-------+----------+--------+----------+----------+---------+----------+--------+---------+----+
            | ifIndex | Label | Type     | Speed  | BPS In   | BPS Out  | Data In | Data Out | PPS In | PPS Out | HC |
            +---------+-------+----------+--------+----------+----------+---------+----------+--------+---------+----+
            | 1       | lo    | Loopback | 10Mbps | 817bps   | 817bps   | 13.7kB  | 13.7kB   | 1.34   | 1.34    | Y  |
            | 7       | eno2  | Ethernet | 0bps   | 0bps     | 0bps     | 0B      | 0B       | 0      | 0       | Y  |
            | 6       | eno1  | Ethernet | 0bps   | 0bps     | 0bps     | 0B      | 0B       | 0      | 0       | Y  |
            | 3       | eno3  | Ethernet | 1Gbps  | 4.93kbps | 13.8kbps | 82.4kB  | 230kB    | 5.56   | 5.44    | Y  |
            | 5       | eno4  | Ethernet | 0bps   | 0bps     | 0bps     | 0B      | 0B       | 0      | 0       | Y  |
            +---------+-------+----------+--------+----------+----------+---------+----------+--------+---------+----+
             
             
             o Module time          0.4834s
            

            observium@observium-master:/opt/observium$ snmpwalk -v2c -c [...] xxx..planet.net .1.3.6.1.4.1.2238.240.1.3.1
            SNMPv2-SMI::enterprises.2238.240.1.3.1.0 = INTEGER: 0
            SNMPv2-SMI::enterprises.2238.240.1.3.1.1.2 = INTEGER: 2
            SNMPv2-SMI::enterprises.2238.240.1.3.1.1.3 = INTEGER: 3
            SNMPv2-SMI::enterprises.2238.240.1.3.1.2.2 = STRING: "vl4054"
            SNMPv2-SMI::enterprises.2238.240.1.3.1.2.3 = STRING: "vl2701"
            SNMPv2-SMI::enterprises.2238.240.1.3.1.3.2 = INTEGER: 2
            SNMPv2-SMI::enterprises.2238.240.1.3.1.3.3 = INTEGER: 2
            SNMPv2-SMI::enterprises.2238.240.1.3.1.4.2 = INTEGER: 0
            SNMPv2-SMI::enterprises.2238.240.1.3.1.4.3 = INTEGER: 0
            SNMPv2-SMI::enterprises.2238.240.1.3.1.5.2 = INTEGER: 4054
            SNMPv2-SMI::enterprises.2238.240.1.3.1.5.3 = INTEGER: 2701
            SNMPv2-SMI::enterprises.2238.240.1.3.1.6.2 = Counter64: 74787081804
            SNMPv2-SMI::enterprises.2238.240.1.3.1.6.3 = Counter64: 29074323599
            SNMPv2-SMI::enterprises.2238.240.1.3.1.7.2 = Counter64: 29070075500
            SNMPv2-SMI::enterprises.2238.240.1.3.1.7.3 = Counter64: 74694045353
            SNMPv2-SMI::enterprises.2238.240.1.3.1.8.2 = Counter64: 96229717030640
            SNMPv2-SMI::enterprises.2238.240.1.3.1.8.3 = Counter64: 12636697972546
            SNMPv2-SMI::enterprises.2238.240.1.3.1.9.2 = Counter64: 12632699252578
            SNMPv2-SMI::enterprises.2238.240.1.3.1.9.3 = Counter64: 96216123592041

            arubenstein Alex Rubenstein added a comment - Thanks for the attention. However, I am not sure how this works. I've updated observium, rediscovered the device, and polled. In the poller: ##### Module Start: ports #####   o Caching Oids ifEntry ifXEntry o BISON-ROUTER-MIB vifTable vifCvid vifPort +---------+------+--------+ | ifIndex | Vlan | Trunk | +---------+------+--------+ | | | access | | 2 | 4054 | access | | 2 | 2701 | access | +---------+------+--------+     o ADSL-LINE-MIB o EtherLike-MIB dot3StatsDuplexStatus o Q-BRIDGE-MIB dot1qVlanStaticUntaggedPorts +---------+------+--------+ | ifIndex | Vlan | Trunk | +---------+------+--------+ | | | access | | 2 | 4054 | access | | 2 | 2701 | access | +---------+------+--------+     o IP-MIB IP-MIB ipIfStats     +---------+-------+----------+--------+----------+----------+---------+----------+--------+---------+----+ | ifIndex | Label | Type | Speed | BPS In | BPS Out | Data In | Data Out | PPS In | PPS Out | HC | +---------+-------+----------+--------+----------+----------+---------+----------+--------+---------+----+ | 1 | lo | Loopback | 10Mbps | 817bps | 817bps | 13 .7kB | 13 .7kB | 1.34 | 1.34 | Y | | 7 | eno2 | Ethernet | 0bps | 0bps | 0bps | 0B | 0B | 0 | 0 | Y | | 6 | eno1 | Ethernet | 0bps | 0bps | 0bps | 0B | 0B | 0 | 0 | Y | | 3 | eno3 | Ethernet | 1Gbps | 4 .93kbps | 13 .8kbps | 82 .4kB | 230kB | 5.56 | 5.44 | Y | | 5 | eno4 | Ethernet | 0bps | 0bps | 0bps | 0B | 0B | 0 | 0 | Y | +---------+-------+----------+--------+----------+----------+---------+----------+--------+---------+----+     o Module time 0 .4834s observium@observium-master:/opt/observium$ snmpwalk -v2c -c [...] xxx..planet.net .1.3.6.1.4.1.2238.240.1.3.1 SNMPv2-SMI::enterprises.2238.240.1.3.1.0 = INTEGER: 0 SNMPv2-SMI::enterprises.2238.240.1.3.1.1.2 = INTEGER: 2 SNMPv2-SMI::enterprises.2238.240.1.3.1.1.3 = INTEGER: 3 SNMPv2-SMI::enterprises.2238.240.1.3.1.2.2 = STRING: "vl4054" SNMPv2-SMI::enterprises.2238.240.1.3.1.2.3 = STRING: "vl2701" SNMPv2-SMI::enterprises.2238.240.1.3.1.3.2 = INTEGER: 2 SNMPv2-SMI::enterprises.2238.240.1.3.1.3.3 = INTEGER: 2 SNMPv2-SMI::enterprises.2238.240.1.3.1.4.2 = INTEGER: 0 SNMPv2-SMI::enterprises.2238.240.1.3.1.4.3 = INTEGER: 0 SNMPv2-SMI::enterprises.2238.240.1.3.1.5.2 = INTEGER: 4054 SNMPv2-SMI::enterprises.2238.240.1.3.1.5.3 = INTEGER: 2701 SNMPv2-SMI::enterprises.2238.240.1.3.1.6.2 = Counter64: 74787081804 SNMPv2-SMI::enterprises.2238.240.1.3.1.6.3 = Counter64: 29074323599 SNMPv2-SMI::enterprises.2238.240.1.3.1.7.2 = Counter64: 29070075500 SNMPv2-SMI::enterprises.2238.240.1.3.1.7.3 = Counter64: 74694045353 SNMPv2-SMI::enterprises.2238.240.1.3.1.8.2 = Counter64: 96229717030640 SNMPv2-SMI::enterprises.2238.240.1.3.1.8.3 = Counter64: 12636697972546 SNMPv2-SMI::enterprises.2238.240.1.3.1.9.2 = Counter64: 12632699252578 SNMPv2-SMI::enterprises.2238.240.1.3.1.9.3 = Counter64: 96216123592041

            Added in r13822.

            landy Mike Stupalov added a comment - Added in r13822.

            People

              landy Mike Stupalov
              arubenstein Alex Rubenstein
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: