I am thinking about a tool tracking application built on Aruba devices. We have thousands of Aruba access points around campus. For now, they are beaconing so that low-power devices can figure out where they are, but I don't yet know how to
receive advertisement beacons. I started by reading
This Document which was a great starting point, but I would like to have a more interactive way to learn. I tried the HP DEV slack (which has an #aruba room) but it's not very active. So, I'm hoping I can start the conversation here instead.
We do not have nor do we plan to use Meridian. The idea is to develop our own thing specifically geared toward our application.
Advertisement and scan response frames for unknown devices are stored in raw format, that is, the payload for each frame type is stored as a hexadecimal string, along with the value. BD maintains a database of devices with attributes populated for known or classified devices and complete advertisement or scan frames for unclassified devices.If I understand this correctly, then this means that on each access point runs a background daemon that collects advertisements (beacons) that it hears and stores them in a table, along with their RSSI. In my case the beacons are going to be in Apple iBeacon format, including a type, UUID, major/minur user-defined IDs, beacon TX power, and RSSI. The document I quoted above says "Other iBeacons" which I think means it understands them i.e. an iBeacon is a "known device."
Transport Interval. The transport interval determines how often or data is sent from BD to BR. ArubaOS supports the following transport intervals:Asset tag data is sent every 4 seconds from each AP to MeridianAruba beacon management data is sent every 30 minutes
If I understand this, the BR is the BLE Relay, another program that runs on each individual AP. The BR collects the beacons it hears from the BD process, and, if configured correctly, it can push them somewhere of your choosing: either an HTTPS POST to somewhere, or over a websocket. This has to be done on each individual access point, in my case that's thousands of them. They then all individually will HTTP POST their 'heard beacons' tables to an endpoint of my choosing.
This leads to some questions, based on my limited understanding of how this works.
First, is the format of these messages defined somewhere I can see (a url etc.)? I gather that if it is HTTP POST that it's JSON (what's the format?) and if it's via websocket it's protobuf (where can i find the .proto definitions?)
Second, if I have this right, then I'll need to stand up a server that can handle a LOT of concurrent connections (7,500 access points). Do I have that right? Can these APs be configured to only send changes?
Third, there is some notion of filtering. That might be useful for me but I think to do that I would have to maintain a list of UUIDs and push them to every single access point. Do I have that right? I don't think I can use this but I still would like to know how it works. It sounds like a useful way to limit traffic, but I might want to limit what users see what (i.e. have multiple whitelists). Based on that, I think I need to have my own central server receive everything, then filter based on the individual user or client.
Finally ... if I bought just one aruba access point for home (like an AP22) could I experiment with all of this without being tied to the full campus environment, Aruba Central, etc.?
--Chris
------------------------------
Christopher Piggott
------------------------------