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

IPv4 addresses from FORTIGATE appearing completely wrong in WebUI

Details

    Description

      There is an issue with the FORTIGATE poller.

      "IPv4 addresses" are completely wrong.

      IP addresses are changed, ommitting the 1st octet and adding ".1" at the end (see capture).

       

      If you have an interface "192.168.1.1/24" configured, it will show as "168.1.1.1/24", which is completely weird!

       

      Could you help me on this?

      Thanks!

      Attachments

        Activity

          [OBS-4341] IPv4 addresses from FORTIGATE appearing completely wrong in WebUI

          This is seems as different issue (ifIndex reported as last part of index).
          At the same time, there is another problem - no information about prefix:

          IP-MIB::ipAddressIfIndex.ipv4."10.200.100.184".1 = INTEGER: 1
          IP-MIB::ipAddressType.ipv4."10.200.100.184".1 = INTEGER: unicast(1)
          IP-MIB::ipAddressPrefix.ipv4."10.200.100.184".1 = OID: SNMPv2-SMI::zeroDotZero.0
          IP-MIB::ipAddressOrigin.ipv4."10.200.100.184".1 = INTEGER: manual(2)

          But initial issue report still related with firmware update - there seems as reported incorrect IP address as I written before.

          landy Mike Stupalov added a comment - This is seems as different issue (ifIndex reported as last part of index). At the same time, there is another problem - no information about prefix: IP-MIB::ipAddressIfIndex.ipv4."10.200.100.184".1 = INTEGER: 1 IP-MIB::ipAddressType.ipv4."10.200.100.184".1 = INTEGER: unicast(1) IP-MIB::ipAddressPrefix.ipv4."10.200.100.184".1 = OID: SNMPv2-SMI::zeroDotZero.0 IP-MIB::ipAddressOrigin.ipv4."10.200.100.184".1 = INTEGER: manual(2) But initial issue report still related with firmware update - there seems as reported incorrect IP address as I written before.

          This is a Fortinet bug. They're appending the ifIndex to the end of the IP address for some unfathomable reason. This is not valid for this OID.

          You need to contact Fortinet and get them to fix their firmware.

          Making duplicate tickets here won't fix Fortinet's firmware.

          adama Adam Armstrong added a comment - This is a Fortinet bug. They're appending the ifIndex to the end of the IP address for some unfathomable reason. This is not valid for this OID. You need to contact Fortinet and get them to fix their firmware. Making duplicate tickets here won't fix Fortinet's firmware.
          vidda Vidda added a comment -

          Hi Christian,

          Thanks for all that precisions!

          I just created a new sub-task to try to get Observium team to investigate a bit more by their side.

          Hope they will!        

           

          Kind Regards,

          David

           

          vidda Vidda added a comment - Hi Christian, Thanks for all that precisions! I just created a new sub-task to try to get Observium team to investigate a bit more by their side. Hope they will!           Kind Regards, David  
          cdassy Christian Dassy added a comment - - edited

          The weird part is that some interfaces work and others don't. Even the ones that work the extra 1 is present. Doing a snmpwalk shows that the fortigates handles the correct IPs. So, I'm confused wether is a Vendor issue or simple a parse issue when loading the data into the database. 

          I'm not an expert so please take this with a grain of salt and I'm willing to hep in order to solve this issue.

          Thank you in advance and best regards.

          /opt/observium$ snmpwalk -v3  -l authPriv -u obssnmpread -a SHA -A "asdasffsdfsdfs" -x AES -X "asdasffsdfsdfs" fw01 -m IP-MIB | grep -i ipaddressifindex

          IP-MIB::ipAddressIfIndex.ipv4."10.10.10.1".6 = INTEGER: 6
          IP-MIB::ipAddressIfIndex.ipv4."10.10.200.1".15 = INTEGER: 15
          IP-MIB::ipAddressIfIndex.ipv4."10.10.250.1".13 = INTEGER: 13
          IP-MIB::ipAddressIfIndex.ipv4."10.10.254.1".43 = INTEGER: 43
          IP-MIB::ipAddressIfIndex.ipv4."10.10.255.1".23 = INTEGER: 23
          IP-MIB::ipAddressIfIndex.ipv4."10.100.0.1".34 = INTEGER: 34
          IP-MIB::ipAddressIfIndex.ipv4."10.128.4.1".9 = INTEGER: 9
          IP-MIB::ipAddressIfIndex.ipv4."10.130.0.1".35 = INTEGER: 35
          IP-MIB::ipAddressIfIndex.ipv4."10.130.1.1".37 = INTEGER: 37
          IP-MIB::ipAddressIfIndex.ipv4."10.130.255.1".39 = INTEGER: 39
          IP-MIB::ipAddressIfIndex.ipv4."10.150.2.1".7 = INTEGER: 7
          IP-MIB::ipAddressIfIndex.ipv4."10.253.255.254".36 = INTEGER: 36
          IP-MIB::ipAddressIfIndex.ipv4."10.255.11.1".12 = INTEGER: 12
          IP-MIB::ipAddressIfIndex.ipv4."10.255.18.1".61 = INTEGER: 61
          IP-MIB::ipAddressIfIndex.ipv4."10.255.19.1".63 = INTEGER: 63
          IP-MIB::ipAddressIfIndex.ipv4."100.100.99.1".18 = INTEGER: 18
          IP-MIB::ipAddressIfIndex.ipv4."100.100.99.5".21 = INTEGER: 21
          IP-MIB::ipAddressIfIndex.ipv4."100.100.99.9".16 = INTEGER: 16
          IP-MIB::ipAddressIfIndex.ipv4."100.100.99.13".17 = INTEGER: 17
          IP-MIB::ipAddressIfIndex.ipv4."100.100.100.2".2 = INTEGER: 2
          IP-MIB::ipAddressIfIndex.ipv4."100.100.100.100".14 = INTEGER: 14
          IP-MIB::ipAddressIfIndex.ipv4."100.102.5.154".10 = INTEGER: 10
          IP-MIB::ipAddressIfIndex.ipv4."127.0.0.1".14 = INTEGER: 14
          IP-MIB::ipAddressIfIndex.ipv4."184.161.64.220".1 = INTEGER: 1
          IP-MIB::ipAddressIfIndex.ipv4."192.168.1.1".11 = INTEGER: 11

          snmpwalk -v3  -l authPriv -u obssnmpread -a SHA -A "asdasffsdfsdfs" -x AES -X "asdasffsdfsdfs" fw01 1.3.6.1.2.1.4.34.1.3

          iso.3.6.1.2.1.4.34.1.3.1.4.10.10.10.1.6 = INTEGER: 6
          iso.3.6.1.2.1.4.34.1.3.1.4.10.10.200.1.15 = INTEGER: 15
          iso.3.6.1.2.1.4.34.1.3.1.4.10.10.250.1.13 = INTEGER: 13
          iso.3.6.1.2.1.4.34.1.3.1.4.10.10.254.1.43 = INTEGER: 43
          iso.3.6.1.2.1.4.34.1.3.1.4.10.10.255.1.23 = INTEGER: 23
          iso.3.6.1.2.1.4.34.1.3.1.4.10.100.0.1.34 = INTEGER: 34
          iso.3.6.1.2.1.4.34.1.3.1.4.10.128.4.1.9 = INTEGER: 9
          iso.3.6.1.2.1.4.34.1.3.1.4.10.130.0.1.35 = INTEGER: 35
          iso.3.6.1.2.1.4.34.1.3.1.4.10.130.1.1.37 = INTEGER: 37
          iso.3.6.1.2.1.4.34.1.3.1.4.10.130.255.1.39 = INTEGER: 39
          iso.3.6.1.2.1.4.34.1.3.1.4.10.150.2.1.7 = INTEGER: 7
          iso.3.6.1.2.1.4.34.1.3.1.4.10.253.255.254.36 = INTEGER: 36
          iso.3.6.1.2.1.4.34.1.3.1.4.10.255.11.1.12 = INTEGER: 12
          iso.3.6.1.2.1.4.34.1.3.1.4.10.255.18.1.61 = INTEGER: 61
          iso.3.6.1.2.1.4.34.1.3.1.4.10.255.19.1.63 = INTEGER: 63
          iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.1.18 = INTEGER: 18
          iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.5.21 = INTEGER: 21
          iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.9.16 = INTEGER: 16
          iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.13.17 = INTEGER: 17
          iso.3.6.1.2.1.4.34.1.3.1.4.100.100.100.2.2 = INTEGER: 2
          iso.3.6.1.2.1.4.34.1.3.1.4.100.100.100.100.14 = INTEGER: 14
          iso.3.6.1.2.1.4.34.1.3.1.4.100.102.5.154.10 = INTEGER: 10
          iso.3.6.1.2.1.4.34.1.3.1.4.127.0.0.1.14 = INTEGER: 14
          iso.3.6.1.2.1.4.34.1.3.1.4.184.161.64.220.1 = INTEGER: 1
          iso.3.6.1.2.1.4.34.1.3.1.4.192.168.1.1.11 = INTEGER: 11

          But then the mapping done by Observium works for some interfaces, but for other does not and then grabs the wrong information.

          SQL[SELECT * FROM `ipv4_addresses` WHERE `device_id` = '44']
          SQL RUNTIME[0.00013590s]

          SQL[SELECT * FROM `ipv6_addresses` WHERE `device_id` = '44']
          SQL RUNTIME[0.00014615s]
          ---------------------------------------------------------------------------------------

          ifIndex ifDescr                 IP: Version Address           Network           Type     Origin

          ---------------------------------------------------------------------------------------

          6       ...                     IPv4         10.10.1.1/24     10.10.1.0/24     private        
          15       ...                     IPv4         10.200.1.1/24     10.200.1.0/24     private        
          13       ...                     IPv4         10.250.1.1/24     10.250.1.0/24     private        
          43       ...                     IPv4         10.254.1.1/24     10.254.1.0/24     private        
          23       Network-MGMT           IPv4         10.255.1.1/24     10.255.1.0/24     private        
          34       ...                     IPv4         100.0.1.1/24     100.0.1.0/24     unicast        
          9       ...                     IPv4         128.4.1.1/24     128.4.1.0/24     unicast        
          35       IoT SSID               IPv4         130.0.1.1/24     130.0.1.0/24     unicast        
          37       ...                     IPv4         130.1.1.1/24     130.1.1.0/24     unicast        
          39       ...                     IPv4         130.255.1.1/24   130.255.1.0/24   unicast        
          7       Network-Service         IPv4         150.2.1.1/23     150.2.0.0/23     unicast        
          36       Quarantine Soft Switch IPv4         253.255.254.1/20 253.255.240.0/20 unicast        
          12       Quarantine VLAN         IPv4         255.11.1.1/24     255.11.1.0/24     unicast        
          61       Sniffer VLAN           IPv4         255.18.1.1/24     255.18.1.0/24     unicast        
          63       NAC Segment VLAN       IPv4         255.19.1.1/24     255.19.1.0/24     unicast        
          18       ...                     IPv4         100.99.1.1/32     100.99.1.1/32     unicast        
          21       ...                     IPv4         100.99.5.1/32     100.99.5.1/32     unicast        
          16       ...                     IPv4         100.99.9.1/32     100.99.9.1/32     unicast        
          17       ...                     IPv4         100.99.13.1/32   100.99.13.1/32   unicast        
          2       ...                     IPv4         100.100.2.1/30   100.100.2.0/30   unicast        
          14       ...                     IPv4         100.100.100.1/32 100.100.100.1/32 unicast        
          14       ...                     IPv4         0.0.1.1/8         0.0.0.0/8         unicast        
          10       ...                     IPv4         102.5.154.1/30   102.5.154.0/30   unicast        
          1       ...                     IPv4         161.64.220.1/24   161.64.220.0/24   unicast        
          11       ...                     IPv4         168.1.1.1/24     168.1.1.0/24     unicast        

          ---------------------------------------------------------------------------------------

          cdassy Christian Dassy added a comment - - edited The weird part is that some interfaces work and others don't. Even the ones that work the extra 1 is present. Doing a snmpwalk shows that the fortigates handles the correct IPs. So, I'm confused wether is a Vendor issue or simple a parse issue when loading the data into the database.  I'm not an expert so please take this with a grain of salt and I'm willing to hep in order to solve this issue. Thank you in advance and best regards. /opt/observium$ snmpwalk -v3  -l authPriv -u obssnmpread -a SHA -A "asdasffsdfsdfs" -x AES -X "asdasffsdfsdfs" fw01 -m IP-MIB | grep -i ipaddressifindex IP-MIB::ipAddressIfIndex.ipv4."10.10.10.1".6 = INTEGER: 6 IP-MIB::ipAddressIfIndex.ipv4."10.10.200.1".15 = INTEGER: 15 IP-MIB::ipAddressIfIndex.ipv4."10.10.250.1".13 = INTEGER: 13 IP-MIB::ipAddressIfIndex.ipv4."10.10.254.1".43 = INTEGER: 43 IP-MIB::ipAddressIfIndex.ipv4."10.10.255.1".23 = INTEGER: 23 IP-MIB::ipAddressIfIndex.ipv4."10.100.0.1".34 = INTEGER: 34 IP-MIB::ipAddressIfIndex.ipv4."10.128.4.1".9 = INTEGER: 9 IP-MIB::ipAddressIfIndex.ipv4."10.130.0.1".35 = INTEGER: 35 IP-MIB::ipAddressIfIndex.ipv4."10.130.1.1".37 = INTEGER: 37 IP-MIB::ipAddressIfIndex.ipv4."10.130.255.1".39 = INTEGER: 39 IP-MIB::ipAddressIfIndex.ipv4."10.150.2.1".7 = INTEGER: 7 IP-MIB::ipAddressIfIndex.ipv4."10.253.255.254".36 = INTEGER: 36 IP-MIB::ipAddressIfIndex.ipv4."10.255.11.1".12 = INTEGER: 12 IP-MIB::ipAddressIfIndex.ipv4."10.255.18.1".61 = INTEGER: 61 IP-MIB::ipAddressIfIndex.ipv4."10.255.19.1".63 = INTEGER: 63 IP-MIB::ipAddressIfIndex.ipv4."100.100.99.1".18 = INTEGER: 18 IP-MIB::ipAddressIfIndex.ipv4."100.100.99.5".21 = INTEGER: 21 IP-MIB::ipAddressIfIndex.ipv4."100.100.99.9".16 = INTEGER: 16 IP-MIB::ipAddressIfIndex.ipv4."100.100.99.13".17 = INTEGER: 17 IP-MIB::ipAddressIfIndex.ipv4."100.100.100.2".2 = INTEGER: 2 IP-MIB::ipAddressIfIndex.ipv4."100.100.100.100".14 = INTEGER: 14 IP-MIB::ipAddressIfIndex.ipv4."100.102.5.154".10 = INTEGER: 10 IP-MIB::ipAddressIfIndex.ipv4."127.0.0.1".14 = INTEGER: 14 IP-MIB::ipAddressIfIndex.ipv4."184.161.64.220".1 = INTEGER: 1 IP-MIB::ipAddressIfIndex.ipv4."192.168.1.1".11 = INTEGER: 11 snmpwalk -v3  -l authPriv -u obssnmpread -a SHA -A "asdasffsdfsdfs" -x AES -X "asdasffsdfsdfs" fw01 1.3.6.1.2.1.4.34.1.3 iso.3.6.1.2.1.4.34.1.3.1.4.10.10.10.1.6 = INTEGER: 6 iso.3.6.1.2.1.4.34.1.3.1.4.10.10.200.1.15 = INTEGER: 15 iso.3.6.1.2.1.4.34.1.3.1.4.10.10.250.1.13 = INTEGER: 13 iso.3.6.1.2.1.4.34.1.3.1.4.10.10.254.1.43 = INTEGER: 43 iso.3.6.1.2.1.4.34.1.3.1.4.10.10.255.1.23 = INTEGER: 23 iso.3.6.1.2.1.4.34.1.3.1.4.10.100.0.1.34 = INTEGER: 34 iso.3.6.1.2.1.4.34.1.3.1.4.10.128.4.1.9 = INTEGER: 9 iso.3.6.1.2.1.4.34.1.3.1.4.10.130.0.1.35 = INTEGER: 35 iso.3.6.1.2.1.4.34.1.3.1.4.10.130.1.1.37 = INTEGER: 37 iso.3.6.1.2.1.4.34.1.3.1.4.10.130.255.1.39 = INTEGER: 39 iso.3.6.1.2.1.4.34.1.3.1.4.10.150.2.1.7 = INTEGER: 7 iso.3.6.1.2.1.4.34.1.3.1.4.10.253.255.254.36 = INTEGER: 36 iso.3.6.1.2.1.4.34.1.3.1.4.10.255.11.1.12 = INTEGER: 12 iso.3.6.1.2.1.4.34.1.3.1.4.10.255.18.1.61 = INTEGER: 61 iso.3.6.1.2.1.4.34.1.3.1.4.10.255.19.1.63 = INTEGER: 63 iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.1.18 = INTEGER: 18 iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.5.21 = INTEGER: 21 iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.9.16 = INTEGER: 16 iso.3.6.1.2.1.4.34.1.3.1.4.100.100.99.13.17 = INTEGER: 17 iso.3.6.1.2.1.4.34.1.3.1.4.100.100.100.2.2 = INTEGER: 2 iso.3.6.1.2.1.4.34.1.3.1.4.100.100.100.100.14 = INTEGER: 14 iso.3.6.1.2.1.4.34.1.3.1.4.100.102.5.154.10 = INTEGER: 10 iso.3.6.1.2.1.4.34.1.3.1.4.127.0.0.1.14 = INTEGER: 14 iso.3.6.1.2.1.4.34.1.3.1.4.184.161.64.220.1 = INTEGER: 1 iso.3.6.1.2.1.4.34.1.3.1.4.192.168.1.1.11 = INTEGER: 11 But then the mapping done by Observium works for some interfaces, but for other does not and then grabs the wrong information. SQL [SELECT * FROM `ipv4_addresses` WHERE `device_id` = '44'] SQL RUNTIME [0.00013590s] SQL [SELECT * FROM `ipv6_addresses` WHERE `device_id` = '44'] SQL RUNTIME [0.00014615s] -------- ---------------------- ----------- ---------------- ---------------- ------- ------- ifIndex ifDescr                 IP: Version Address           Network           Type     Origin -------- ---------------------- ----------- ---------------- ---------------- ------- ------- 6       ...                     IPv4         10.10.1.1/24     10.10.1.0/24     private         15       ...                     IPv4         10.200.1.1/24     10.200.1.0/24     private         13       ...                     IPv4         10.250.1.1/24     10.250.1.0/24     private         43       ...                     IPv4         10.254.1.1/24     10.254.1.0/24     private         23       Network-MGMT           IPv4         10.255.1.1/24     10.255.1.0/24     private         34       ...                     IPv4         100.0.1.1/24     100.0.1.0/24     unicast         9       ...                     IPv4         128.4.1.1/24     128.4.1.0/24     unicast         35       IoT SSID               IPv4         130.0.1.1/24     130.0.1.0/24     unicast         37       ...                     IPv4         130.1.1.1/24     130.1.1.0/24     unicast         39       ...                     IPv4         130.255.1.1/24   130.255.1.0/24   unicast         7       Network-Service         IPv4         150.2.1.1/23     150.2.0.0/23     unicast         36       Quarantine Soft Switch IPv4         253.255.254.1/20 253.255.240.0/20 unicast         12       Quarantine VLAN         IPv4         255.11.1.1/24     255.11.1.0/24     unicast         61       Sniffer VLAN           IPv4         255.18.1.1/24     255.18.1.0/24     unicast         63       NAC Segment VLAN       IPv4         255.19.1.1/24     255.19.1.0/24     unicast         18       ...                     IPv4         100.99.1.1/32     100.99.1.1/32     unicast         21       ...                     IPv4         100.99.5.1/32     100.99.5.1/32     unicast         16       ...                     IPv4         100.99.9.1/32     100.99.9.1/32     unicast         17       ...                     IPv4         100.99.13.1/32   100.99.13.1/32   unicast         2       ...                     IPv4         100.100.2.1/30   100.100.2.0/30   unicast         14       ...                     IPv4         100.100.100.1/32 100.100.100.1/32 unicast         14       ...                     IPv4         0.0.1.1/8         0.0.0.0/8         unicast         10       ...                     IPv4         102.5.154.1/30   102.5.154.0/30   unicast         1       ...                     IPv4         161.64.220.1/24   161.64.220.0/24   unicast         11       ...                     IPv4         168.1.1.1/24     168.1.1.0/24     unicast         -------- ---------------------- ----------- ---------------- ---------------- ------- -------

          This is complete impossible fix on Observium discovery.
          Firmware bug.

          They lose the first number of the address and add .1 at end.

          landy Mike Stupalov added a comment - This is complete impossible fix on Observium discovery. Firmware bug. They lose the first number of the address and add .1 at end.

          Make sure that you use latest firmware for device, because this is seems as firmware bug.
          This data come from common IP-MIB and standardized across vendors.

          Make and attach discovery debug (as Bot written).
          And snmpdump for check if there exist other place(s) with correct IPs.

          If this is already latest firmware, than you should write to vendor support about issue.

          landy Mike Stupalov added a comment - Make sure that you use latest firmware for device, because this is seems as firmware bug. This data come from common IP-MIB and standardized across vendors. Make and attach discovery debug (as Bot written). And snmpdump for check if there exist other place(s) with correct IPs. If this is already latest firmware, than you should write to vendor support about issue.

          General questions and device support can be discussed in our Discord channel, click here to join.


          Please make and attach additional information about the device:

          • full snmp dump from device:

            snmpwalk -v2c -c <community> -t 3 -Cc --hexOutputLength=0 -ObentxU <hostname> .1 > myagent.snmpwalk
            snmpwalk -v2c -c <community> -t 3 -Cc --hexOutputLength=0 -ObentxU <hostname> .1.3.6.1.4.1 >> myagent.snmpwalk

            If device not support SNMP version 2c, replace -v2c with -v1.

          • If you have problems with discovery or poller processes, please do and attach these debugs:

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

          • additionally attach device and/or vendor specific MIB files

          This comment is added automatically.

          bot Observium Bot added a comment - General questions and device support can be discussed in our Discord channel, click here to join . Please make and attach additional information about the device: full snmp dump from device: snmpwalk -v2c -c <community> -t 3 -Cc --hexOutputLength=0 -ObentxU <hostname> .1 > myagent.snmpwalk snmpwalk -v2c -c <community> -t 3 -Cc --hexOutputLength=0 -ObentxU <hostname> .1.3.6.1.4.1 >> myagent.snmpwalk If device not support SNMP version 2c, replace -v2c with -v1. If you have problems with discovery or poller processes, please do and attach these debugs: ./discovery.php -d -h <device> ./poller.php -d -h <device> additionally attach device and/or vendor specific MIB files This comment is added automatically.

          People

            landy Mike Stupalov
            vidda Vidda
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: