robdb
27 March 2017 16:59
1
We have many links between sites that are utilizing microwave that we monitor with LibreNMS. On the network map, we are able to see the switches and routers that link sites, however the physical link between these are not represented even though the radios themselves are added as devices.
Is it possible to adjust the configuration to include these layer 2 devices in the links between layer 3 devices on the network map?
Edit: I’ve added this screen shot of the map as it is now - the lines indicating where our radios sit were added in paint after the screen shot was taken - they were not drawn there automatically.
The maps depend on the data it has.
To add in the layer 2 devices, LibreNMS needs info about those links.
Discovery methods
OSPF, BGP: layer 3
ARP, XDP: layer 2
http://docs.librenms.org/Extensions/Auto-Discovery/
robdb
27 March 2017 20:03
3
The radios that service this link are indeed already added as devices in the system. Is there something else that needs to be changed to have them recognized?
Yes, you need lldp, cdp, fdp, or ARP to see those devices otherwise links cannot be drawn.
Please read the doc I linked.
robdb
29 March 2017 22:57
5
I’ve done some digging on this, as I was confident that steps necessary to allow for this to be drawn have been taken. LibreNMS is able to see ARP entries on the router that is connected to each side of the Ubiquiti AF24 radios, and those tables both show the IP/MAC addresses of the radios in them… However, upon checking the tables available from the AF24s reveals no such information.
Looking further, I pulled snmpwalk output from an AF24 and received this:
.1.3.6.1.2.1.1.1.0 = STRING: Linux 2.6.33 #1 Mon Nov 30 14:15:06 CST 2015 armv5tejl
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.10002.1
.1.3.6.1.2.1.1.3.0 = Timeticks: (53232400) 6 days, 3:52:04.00
.1.3.6.1.2.1.1.4.0 = STRING: www.site.link
.1.3.6.1.2.1.1.5.0 = STRING: LIT-UP-ROCK
.1.3.6.1.2.1.1.6.0 = STRING: LIT-UP
.1.3.6.1.2.1.1.7.0 = INTEGER: 79
.1.3.6.1.2.1.1.8.0 = Timeticks: (7700) 0:01:17.00
.1.3.6.1.2.1.1.9.1.1.1 = INTEGER: 1
.1.3.6.1.2.1.1.9.1.1.2 = INTEGER: 2
.1.3.6.1.2.1.1.9.1.1.3 = INTEGER: 3
.1.3.6.1.2.1.1.9.1.1.4 = INTEGER: 4
.1.3.6.1.2.1.1.9.1.2.1 = OID: .1.3.6.1.6.3.1
.1.3.6.1.2.1.1.9.1.2.2 = OID: .1.3.6.1.2.1.31
.1.3.6.1.2.1.1.9.1.2.3 = OID: .1.3.6.1.4.1.10002.1.1.1.31
.1.3.6.1.2.1.1.9.1.2.4 = OID: .1.3.6.1.4.1.41112
.1.3.6.1.2.1.1.9.1.3.1 = STRING: The MIB module for SNMP entities
.1.3.6.1.2.1.1.9.1.3.2 = STRING: The MIB module to describe generic objects for network interface sub-layers
.1.3.6.1.2.1.1.9.1.3.3 = STRING: The MIB module to describe system resources
.1.3.6.1.2.1.1.9.1.3.4 = STRING: Ubiquiti Networks MIB module
.1.3.6.1.2.1.1.9.1.4.1 = Timeticks: (7600) 0:01:16.00
.1.3.6.1.2.1.1.9.1.4.2 = Timeticks: (7700) 0:01:17.00
.1.3.6.1.2.1.1.9.1.4.3 = Timeticks: (7700) 0:01:17.00
.1.3.6.1.2.1.1.9.1.4.4 = Timeticks: (7700) 0:01:17.00
.1.3.6.1.2.1.2.1.0 = INTEGER: 5
.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
.1.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4
.1.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5
.1.3.6.1.2.1.2.2.1.2.1 = STRING: lo
.1.3.6.1.2.1.2.2.1.2.2 = STRING: sit0
.1.3.6.1.2.1.2.2.1.2.3 = STRING: eth0
.1.3.6.1.2.1.2.2.1.2.4 = STRING: air0
.1.3.6.1.2.1.2.2.1.2.5 = STRING: br0
.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: softwareLoopback(24)
.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: other(1)
.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.5 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 16436
.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1480
.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.4 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.5 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.4 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.5 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.6.1 = STRING:
.1.3.6.1.2.1.2.2.1.6.2 = STRING:
.1.3.6.1.2.1.2.2.1.6.3 = STRING: 0:27:22:da:c1:fd
.1.3.6.1.2.1.2.2.1.6.4 = STRING: 2:27:22:da:c1:fd
.1.3.6.1.2.1.2.2.1.6.5 = STRING: 2:27:22:da:c1:fd
.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: down(2)
.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.4 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.5 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: down(2)
.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: down(2)
.1.3.6.1.2.1.2.2.1.8.4 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.5 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.4 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.5 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.4 = Counter32: 84405662
.1.3.6.1.2.1.2.2.1.10.5 = Counter32: 72077239
.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.11.4 = Counter32: 880453
.1.3.6.1.2.1.2.2.1.11.5 = Counter32: 543074
.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.5 = Counter32: 337372
.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.4 = Counter32: 123190136
.1.3.6.1.2.1.2.2.1.16.5 = Counter32: 61594768
.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.17.4 = Counter32: 1095132
.1.3.6.1.2.1.2.2.1.17.5 = Counter32: 547562
.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.21.3 = Gauge32: 1000
.1.3.6.1.2.1.2.2.1.21.4 = Gauge32: 1000
.1.3.6.1.2.1.2.2.1.21.5 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0
.1.3.6.1.2.1.2.2.1.22.2 = OID: .0.0
.1.3.6.1.2.1.2.2.1.22.3 = OID: .0.0
.1.3.6.1.2.1.2.2.1.22.4 = OID: .0.0
.1.3.6.1.2.1.2.2.1.22.5 = OID: .0.0
.1.3.6.1.2.1.11.1.0 = Counter32: 511199
.1.3.6.1.2.1.11.2.0 = Counter32: 511192
.1.3.6.1.2.1.11.3.0 = Counter32: 6
.1.3.6.1.2.1.11.4.0 = Counter32: 0
.1.3.6.1.2.1.11.5.0 = Counter32: 0
.1.3.6.1.2.1.11.6.0 = Counter32: 0
.1.3.6.1.2.1.11.8.0 = Counter32: 0
.1.3.6.1.2.1.11.9.0 = Counter32: 0
.1.3.6.1.2.1.11.10.0 = Counter32: 0
.1.3.6.1.2.1.11.11.0 = Counter32: 0
.1.3.6.1.2.1.11.12.0 = Counter32: 0
.1.3.6.1.2.1.11.13.0 = Counter32: 66710
.1.3.6.1.2.1.11.14.0 = Counter32: 0
.1.3.6.1.2.1.11.15.0 = Counter32: 117753
.1.3.6.1.2.1.11.16.0 = Counter32: 393440
.1.3.6.1.2.1.11.17.0 = Counter32: 0
.1.3.6.1.2.1.11.18.0 = Counter32: 0
.1.3.6.1.2.1.11.19.0 = Counter32: 0
.1.3.6.1.2.1.11.20.0 = Counter32: 0
.1.3.6.1.2.1.11.21.0 = Counter32: 510098
.1.3.6.1.2.1.11.22.0 = Counter32: 0
.1.3.6.1.2.1.11.24.0 = Counter32: 0
.1.3.6.1.2.1.11.25.0 = Counter32: 0
.1.3.6.1.2.1.11.26.0 = Counter32: 0
.1.3.6.1.2.1.11.27.0 = Counter32: 0
.1.3.6.1.2.1.11.28.0 = Counter32: 511193
.1.3.6.1.2.1.11.29.0 = Counter32: 0
.1.3.6.1.2.1.11.30.0 = INTEGER: disabled(2)
.1.3.6.1.2.1.11.31.0 = Counter32: 0
.1.3.6.1.2.1.11.32.0 = Counter32: 0
The MAC address for the remote AF24 and its IP are also present in the ARP table on the router, at the interface connected to the local AF24. The remote MAC is 00:27:22:DA:B1:18, yet that doesn’t appear in any of the SNMP output. Is it simply not possible for this device to be recognized as sitting between the two routers since it doesn’t return this information directly? Maybe I’m missing something, but if the routers on both ends can see the IP and MAC addresses of radios that are indeed added in to the LibreNMS database, should it not be able to draw them? Perhaps it is unable to tell which is where?
I’m guessing that is UBNT discovery, which is not supported at this time. Feel free to put in a feature request.