home of the madduck/ blog/ feeds/
madduck's Planet vcs-pkg posts

The following blog posts appear on Planet netconf. Please visit my main blog page for all my posts.

If you care about netconf and wonder what's the current status, you might want to ingest the status update I sent to the netconf-devel mailing list.

The most important point probably is: if you want to work on netconf, I'll be readily available for questions on the mailing list, even though I cannot expend much time to hack myself over the next four months.

But I will consider coaching anyone who would like to contribute and wants to be coached in doing so. So don't hesitate and let me know, and consider telling me a bit about what kind of projects you have worked on in the past.

NP: Mono: Under the Pipal Tree

Posted Fri 17 Oct 2008 08:25:58 CEST Tags:

I am very excited to announce that Jonathan Roes has successfully applied to the Google Summer of Code 2008 and will be working on netconf over this summer. With his help, I am confident that netconf 1.0 in Debian "lenny" is no longer a dream.

Jonathan is a soon-to-be computer science graduate from the University of North Carolina at Charlotte, and his application was (by far) the most convincing of the ten I received. He has several years of programming and Linux experience and it's quite obvious that he has understood the philosophy of netconf.

I am looking forward to working with Jonathan!

NP: Underworld: Second Toughest of the Infants

Posted Fri 17 Oct 2008 08:25:58 CEST Tags:

Thank you, Ted Lemon and Paul Vixie for the ISC DHCP server and client! My days would be so boring without them. I revel in your wisdom, experience, and sheer genius when I get behind some of the design decisions you made when writing those pieces of software.

My current favourite is the hook integration into dhclient-script(8). Read what the manpage has to say about it:

[…] the client script checks for the presence of an executable /etc/dhcp3/dhclient-enter-hooks script, and if present, it invokes the script inline, using the Bourne shell . command. The entire environment documented under OPERATION is available to this script, which may modify the environment if needed to change the behaviour of the script.

Hooks which can modify the environment and thus influence all other hooks that follow, as well as the script which applies the network configuration dhclient obtained to the local machine! Yay! Genius!

You are my heroes.

NP: Pluto: Pipeline under the Ocean

Posted Fri 22 Aug 2008 07:25:01 CEST Tags:

You are probably using DHCP on the machine currently in front of you. The "Dynamic Host Configuration Protocol" is a way for your computer to obtain an Internet address from a pool of available addresses, and to return it to the pool when you no longer need it. Basically every Internet service provider uses DHCP, or something similar.

As a network operating system, Linux has DHCP support (and had it for ages). In true Unix fashion, Debian sports at least four DHCP clients. Debian's default is dhcp3-client, also known as dhclient.

The theory is that the client requests an address lease from the server and periodically renews it. This process yields a number of events, to which the operating system can react. For instance, initially, the client issues a PREINIT event to get the interface into a state where it can talk on the network, and a BOUND event as soon as it acquired a lease, or FAIL if it, uh, failed.

After a certain period of time, the client tries to renew the lease. If it succeeds, it issues a RENEW event; if it fails, it yields EXPIRE.

So much for the theory.

It seems that dhclient is rather stupid, which I tried to document in Debian bug #459813 — it does things differently: given a lease, after a certain period of time, it just issues an EXPIRE event, which causes the operating system to deconfigure the interface and take down connectivity. Then, the client spits out a PREINIT event, followed by BOUND or FAIL, as appropriate.

I have not quite investigated what all this means, but this much is for sure: periodically, your machine goes offline, only to come back online a second later. If this were Windows, one would probably knock on wood and be glad that it works at all. But we're on Linux here, Debian even, so this cannot be.

I'd love to be proven wrong, so if you have a minute, please try to verify. One way of doing so is to insert

echo "$(date) got $reason" >> /tmp/dhclient-script.reasons

towards the top of /sbin/dhclient-script and monitor the output file. Once your client renews, it should read:

Wed Jan  9 11:53:27 CET 2008 got RENEW

but instead you'll see

Wed Jan  9 11:53:27 CET 2008 got EXPIRE
Wed Jan  9 11:53:28 CET 2008 got PREINIT
Wed Jan  9 11:53:33 CET 2008 got BOUND

and if you look closely enough, your interface will be unconfigured those seconds between EXPIRE and BOUND.

NP: The Flower Kings: @Live Recording, Uppsala City Theatre, Sweden, 10 February 2003

Posted Fri 22 Aug 2008 07:25:01 CEST Tags:

This message just went out to the debian-devel mailinglist:

Even though I am still somewhat physically limited, my brain today decided to start on the netconf development. And since we all know that the waterfall model is the One True Model and that Extreme Programming no solution, I started by drafting a document, nothing formal, just thoughts on how to implement the various parts of netconf. And open questions I already know need to be answered.

I shall be posting this document to the netconf-devel mailing list sometime soon and am looking for comments (and answers and helpers). The purpose of this message is to get interested people to subscribe. Please do so that we can keep debian-devel free of this and so that I can get more feedback (and potentially help).

If you don't know what I am talking about, check out the wiki page and slides from my last talk. Then subscribe.

Thanks for your attention; that is all.

NP: Trentemøller: The Last Resort

Posted Fri 11 Jul 2008 11:21:04 CEST Tags: