Projects: Yeti DHCP Server


Project: Work for DirectConnect Office
Timeline: April 2006 – May 2008
Application Type: DHCP Server
Status: Complete, maintained
Technologies: Java, DHCP, Microsoft SQL
Partners: None


Yeti is the DHCP server at the heart of the Internet connection process for dorm residents at the University of Montana. It is a DHCP server which hooks to an SQL backend to indentify what pools to put certain computers into. This way, our office can control who gets Internet access. Unregistered machines have their web access redirected through a setup server, which provides them with necessary updates and virus protection software. We use a program called VSF, from Western Washington University, to flag residents clean in our database, which means they can pull a clean IP.

This project taught me a lot about low-level network programming. Orginally, I had written a simple DHCP API myself, so I have in-depth knowledge about the lease request process at the packet level. It also taught me how demanding a task it can be to write a server -- with 2500+ clients, even a small amount of downtime will result in phone calls.

If I could re-do the project, I'd concentrate a little more on the architecture. Much of it was designed to be modular -- for example, it was very easy to code both a GUI and a command-line interface, but in the end I came to a time crunch, and needed to finish the product. I also would have someone else review the code. One error we had that kept causing the server to crash was that I had a try-catch block around the entire main loop of the program, instead of inside the loop. That meant that whenever an exception was thrown, the server terminated. Another coder's eyes might have caught such a simple, but thorny, problem.