Archive for May, 2008

This week's developments

Wednesday, May 28th, 2008

Despite a public holiday on Monday, there hasn’t been that much visible progress.  Fear not, most of the stuff is waiting a Subversion check-in, because it’s not working properly yet.

Here’s the round-up:

  • Database stuff – migration 039 didn’t work on sqlite, which has been fixed, and Layer 2 addresses are now stored in upper-case by default.
  • Network matching – it is now possible to use the ipv4_network? method on a L3Interface to return the Ipv4Network which has the closest match to the IPv4 address.
  • Entity MIB support – the ENTITY-MIB now appears in the mibs/ subdirectory, along with an EntPhysicalElement model and a migration.
  • Testing – a rather major, but subtle, mix-up between = and == has been fixed.  Some tests failed, but they all run cleanly against MySQL and sqlite now.  Fixtures are now being used for testing, thanks to help from Brian Candler.

That’s it.  Keep watching and suggesting features to me – peter.hicks@nethorus.org.

This week's developments

Sunday, May 18th, 2008

What a miserable week it’s been for the weather! Here are the latest developments on NetHorus this week:

  • Error messages – in particular, the flash messages, are now much prettier and will grey the background out to make the user aware something’s gone wrong.
  • Configuration files – NetHorus will now check that a configuration file has been loaded, and raise an error if it hasn’t.
  • Testing – we have some tests for the EventLog model, updated tests for the Ipv4Network models.
  • Interface dependencies using the IF-MIB::ifStackTable are now working, although the table isn’t straightforward to parse. Credit to Brian Candler for explaining the acts_as_tree plugin to me.
  • Model changes – the Ipv4Network model has been tidied up – testing proved that there were some cases where invalid data would be passed and cause errors.
  • Credits – Martin Gleadow is now credited properly for keeping tabs on dependencies for the latest releases – something I should write up in the Wiki soon.
  • Bugfixes – we destroy_all event logs for a device, rather than delete_all-ing them. This removes the data from the table, rather than breaking the device-to-eventlog relationship and leaving the data sitting stale.
  • Interface layout – improvements to make things look prettier and simpler.
  • Device inventorying now uses IF-MIB::ifHighSpeed if present to record the speed of an interface, since it appears generally more accurate than IF-MIB::ifSpeed.

So, that’s the past week. How did this week’s planned features go? Not too well…

  • SNMPv3 support is still incomplete, I will be de-prioritizing this as it isn’t strictly required for any new functionality, but will be a very-nice-to-have.
  • VRF support is lacking – the VRF Lite functionality on my Cisco 877W is slightly limited. I’m aware that full-fat VRF on bigger Cisco boxes works well, and I’m aiming to get started with VRF support this week.
  • ifStackTable support is complete in the back-end database, however I want to come up with a way of displaying interface relationships visually.

And finally, here’s what I have planned for the coming weeks:

  • ARP table polling – read in the ARP table from a device periodically and use it to track the Layer 2 addresses of devices on the network, and will also be useful for device discovery (incidentally, something I despite but I’m aware it’s a good way to get up and running).
  • Layer 2 Forwarding table polling – used in combination with ARP table polling, will allow us to track devices throughout the network.
  • Cisco CDP support – for displaying connected neighbour switches.
  • ATM VC/VP information – for displaying details of virtual circuits and virtual paths on an ATM switch.
  • Frame Relay PVC information – to display PVCs on an interface, their details, etc.
  • Neighbour relationships – automatically detecting which devices share common subnets.
  • Configuration generation – for Nagios primarily, so we can generate configurations based on the topology information stored in NetHorus. No need to set everything up once in NetHorus and again in Nagios!

Phew. That’s a lot of stuff, but it gives you an idea of what I have planned for the future.

As always, your feedback is important – please email me: peter.hicks@nethorus.org.

This week's developments

Sunday, May 11th, 2008

Summer is finally here – the last few days in the UK have been pleasantly warm. Us Brits are much happier when there’s direct sunlight!

Despite first glances, there’s been a lot of work going on this week – here’s a summary:

  • Error handling and testing has been this week’s theme. If the SNMP proxy isn’t working, or we receive errors, there’s a much prettier ‘flash’ that appears on-screen.
  • SNMP improvements – in particular, we now supply MIBs for use with NetHorus as there are some really rather badly maintained MIBs out there. These hang out in mibs/ and will automatically be loaded on startup.
  • Application configuration is taken care of by appconfig.yml. You will need to rename config/appconfig.example to config/appconfig.yml for the application to work properly!
  • SNMP proxy support has been greatly improved, thanks to Brian Candler’s suggestions. The proxy will now daemonize, write a PID file, provide debugging information… much more useful than before.

Features in the pipeline – this week, if I get time amidst reunions with old colleagues and trips to Dublin:

  • SNMPv3 support as suggested by Martin Gleadow. Some of the database schema is already in place.
  • VRF support and the ability to add VRF information in to interface inventories.
  • ifStackTable support so we can identify which interfaces are children of which other interfaces – this will become useful later on in diagramming and monitoring

Please continue to send in your feedback to peter.hicks@nethorus.org – and note I’ve fixed email now so it won’t bounce. Oops.

This week's developments

Monday, May 5th, 2008

Another week has flown by!

  • Code tidyups and lots of them – more comments and more error trapping, some tidier HTML and tidier configuration files.
  • Device inventorying has been improved and we now take notice of the ifConnectorPresent OID for each interface so we can identify physical and logical interfaces.
  • Device-specific information is now in place for ADSL interfaces. If you have an ADSL interface, try examining the interface detail for the interface ending -adsl.
  • SNMP proxy now loads all MIB files.

I gave a very quick and hairy demo of NetHorus to a couple of people I met on Thursday, and I’ve had some vague interest from a few other people.

Please spread the word and mail me with helpful suggestions on what you want to see implemented.