[AusNOG] Notch: A command-line RPC abstraction for your network gear

Andreux Fort afort at choqolat.org
Thu May 27 14:16:56 EST 2010


Greetings NOGgers,

Those of you who attended AusNOG last year may remember Daniel
Harrison's talk about the auditing of network state at Google.
Sitting below that program was a network device command-line
abstraction; the client software written by Daniel, et. al., used this
to talk to network devices and execute commands on them.

I've written an open source version of that, which you may use to
build similar sorts of applications.  It's in use at one Australian
provider that I know of presently, and it's at a state where I thought
I'd like to mention it to the list.  It's called Notch: A Network
Operator's Toolkit for Command-line Hacking/Harmony.

This system, by itself, merely exposes your network elements to a
JSON-RPC interface; there is, however, a Python client library you can
use to avoid having to talk JSON-RPC directly, which supports things
like simultaneous asynchronous requests, load-balancing, and
associated jazz.

You can get the code here:

http://code.google.com/p/notch

So far I've written a multi-router command-line interface I've
written, Mr. CLI, available here:

http://code.google.com/p/mr-cli

And a RANCIDy type of tool, PUNC (pick up your network configs)

http://code.google.com/p/punc

And there's documentation on Notch and it's client interface here:

http://www.enemesco.net/notch/index.html

NB: There's a lot more work to do (see the TODO file for the top
items), including HTTP/RPC security - if you're good at these things
or you like network management software, please let me know your
thoughts about it.  You can consider this version a proof of concept
(albeit one that works in this environment for collecting router
configs from a variety of NEs including IOS, JunOS, Alcatel/TimOS,
etc, etc).  More device module support is coming as a result of my
present role.

Thanks,

-- 
Andreux Fort (afort at choqolat.org)



More information about the AusNOG mailing list