The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Tuesday, July 17, 2007

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, Subversion, darcs, GNU arch, git. 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. 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, 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.


Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.