* * * * *

                                   Busy day

Been busy with meetings and research. The meetings I won't bore you with, but
the research is interesting.

We have quite a few routers and the number is expected to increase over the
next year or so. There was also an incident two weeks ago where I got
horribly confused over two T1s and it took a few hours to unravel exactly
what addresses got assigned to which T1.

The problem: while I have copies of all the router configurations, I don't
have said configurations under revision control, which means I only have a
copy of the latest versions. Last week at a meeting, it was brought up that
maybe, just maybe, we might want to consider keeping older versions of the
configuration files.

There are a number of revision control systems to choose from—CVS [1],
Subversion [2], darcs [3], GNU arch [4], git [5]. Yes, they're primarily used
for source code, but any textual data can be historically saved using these
systems. So there's no real problem with revision control of the
configuration files.

It's also easy to get the configurations off the routers. All our routers
support TFTP (Trivial File Transport Protocol). It was pretty straightforward
to set up a TFTP server on our network to collect all the configurations and
to secure it against any unwanted traffic (TFTP is a rather insecure
protocol).

The real problem comes in marrying the TFTP server with a revision control
system. What I'd like is for the TFTP server to accept the configuration from
a router, and immediately dump it into the revision control system. I already
have the habit of issuing both write and copy running-config tftp: on the
router. I don't really want to have to log into the TFTP server to run
revision-control-system-du-jour commit, regardless of how simple it is.

Especially since we're allowing another company to use our TFTP server to
backup their routers (it's a partnership thang), and these other people are
hard-core Windows users (not that there's anything wrong with that)—I'm sure
the last thing they want to think about is logging into a Unix system to
issue revision-control-system-du-jour commit.

So I'm looking into modifying an existing TFTP server. You would think that
TFTP, a protocol so simple that it takes _TCP/IP Illustrated, Volume I: The
Protocols_ [6], a 576 page behemoth of a book, only five pages to cover,
would be a simple program. Even in C. Nope. It's a horribly written maze of
#ifdefs and gotos.

Joy.

[1] http://www.nongnu.org/cvs/
[2] http://subversion.tigris.org/
[3] http://darcs.net/
[4] http://www.gnu.org/software/gnu-arch/
[5] http://git.or.cz/
[6] http://www.amazon.com/exec/obidos/ASIN/0201633469/conmanlaborat-20

Email author at [email protected]