Airport Extreme-Express and SNMP
Installation went (almost) smoothly: my previous airport setup was just MAC based, and this not the best idea for WDS setup. Apparently doable, but it was simpler to switch to WPA.
Then ? Then I have this little obsession these days about data representation. How to express and manipulate complex data structure, provide high-level representation, graph running data, etc. Thus my current interests in Software Visualization, end-user 'big data', alternative representations for common tasks, etc. And in that context, I'm playing with automated graphing tools, for instance for network usage patterns, and so on, and trying things like Cacti, RRDTool. Somewhat too much sysadmin-oriented to my taste, but that's just a piece in the puzzle.
Back to the Airport: what about graphing the bandwidth usage, number of clients and see when my laptop is connected, etc. The Airport base station does have SNMP support, but a simple
Actually, Apple did release a MIB for Airport Express/Extreme base stations a while ago, but I did not find any useful information about how to exploit these, among with some comments 'great, but how do I access these paramters'. Motivation for further digging, so here is my findings. I must confess I was a SNMP absolute beginner, so most of this is probably very common.
- Download the MIB file for Airport Express/Extreme base stastions on http://docs.info.apple.com/article.html?artnum=120227
- Copy it in a directory where snmpwalk / snmpget will find it. For instance /usr/share/snmp/mibs on OS X
- The trick is that apparently a simple snmpwalk will not return airport-specific stuff, but if you specify you want these OIDs, it will work. For example:
$ snmpget -v 2c -c yourBasePassword 10.0.1.1 AIRPORT-BASESTATION-3-MIB::sysConfFirmwareVersion.0AIRPORT-BASESTATION-3-MIB::sysConfFirmwareVersion.0 = STRING: 5.5
- Give a look into the MIB file itself, there's some interesting stuff about the access point (name, location, firmware version, DHCP status and clients, physical interfaces) and connected clients (number of connected clients, noise, rates). Interesting enough, client information is actually provided by the client itself, the base station requesting the latest info for a client when needed. From the comments in the MIB, the level of support for non-apple drivers is unclear.
- You can actually do a snmpwalk and get all airport-specific information, if you provide a starting point:
$ snmpwalk -m AIRPORT-BASESTATION-3-MIB -Os -v 2c -c yourBasePassword 10.0.1.1 SNMPv2-SMI::enterprises.apple.airportsysConfName.0 = STRING: AirGeek BaseHere is a full dump
sysConfContact.0 = STRING: Olivier Gutknecht
sysConfUptime.0 = INTEGER: 512881
sysConfFirmwareVersion.0 = STRING: 5.5
wirelessNumber.0 = INTEGER: 3
wirelessPhysAddress."".18.104.22.168.97 = Hex-STRING: xx xx xx xx xx xx
wirelessType."".22.214.171.124.97 = INTEGER: wds(2)
wirelessType."".126.96.36.199.195 = INTEGER: sta(1)
wirelessDataRates."".188.8.131.52.87 = STRING: [ 1 2 5.5 11 18 24 36 48 54 ]
wirelessLastRefreshTime."".184.108.40.206.195 = INTEGER: 0
wirelessNoise."".220.127.116.11.87 = INTEGER: -45
wirelessRate."".18.104.22.168.87 = INTEGER: 54
wirelessNumRX."".22.214.171.124.87 = INTEGER: 193498
wirelessNumTXErrors."".126.96.36.199.195 = INTEGER: 1
dhcpNumber.0 = INTEGER: 0
physicalInterfaceCount.0 = INTEGER: 3
physicalInterfaceName.1 = STRING: "wl"
physicalInterfaceName.2 = STRING: "au"
physicalInterfaceState.1 = INTEGER: linkUp(1)
physicalInterfaceState.2 = INTEGER: linkDown(0)
physicalInterfaceState.3 = INTEGER: linkUp(1)
physicalInterfaceDuplex.1 = INTEGER: half(0)
physicalInterfaceDuplex.3 = INTEGER: full(1)
physicalInterfaceNumTX.1 = INTEGER: 2144683
I copied over your post to my site. if you have been able to monitor with cacti please comment there.
Also - may be worth checking out Jon Sevy's tools at http://edge.cs.drexel.edu/GICL/people/sevy/airport/index.html - there's even a tool there to see who's connected to your AP.