Shared publicly  - 
 
Networking in +systemd - Background

As some of you might have seen, I have recently been working on adding a bit of networking support to systemd. I thought I'd take the opportunity to share a bit about the background of this, what have been done so far and what the (short-term) future plans are.

There are certainly no lack of networking solutions for Linux. On last count, Arch Linux have had four different home-grown solutions over just the last few years (I can only be partially blamed for one of them), I believe the situation is similar for other distros. Additionally, there are also the big ones such as NetworkManager, ConnMan and most recently Wicked. I won't discuss these in any detail, but suffice it to say that (especially the big three) have lots of good things to be said about them, and I have learnt a lot from studying how they work.

However, in my opinion (and this is an opinion shared by some of the respective maintainers) none of them serve the case that I'm primarily interested in: Fast, efficient, minimal network configuration suitable for use in the initrd, during very early boot and during run-time on machines with a static network setup (i.e., I'm not really considering phones/laptops and the like). On top of that, I'd like something that is simple and intuitive to configure by an admin using plain configuration files, and lastly, as it should be suitable for initrds I want something that does not pull in a huge amount of dependencies.

So that's basically the sort of feature I'd like to have in my networking daemon, but I hadn't really considered working on this myself (as it is quite a lot of work, and I'd surely take quite a bit of heat for it). However, a couple of months ago I was contacted by the fine folk over at CoreOS (if you don't already know them, check them out, they are the future http://coreos.com/ ;-) ) who offered to sponsor me to build the basic networking support for systemd. As $DAYJOB was anyway going to be slow these past few months and this was a problem I had been thinking/whining about for a long time, I couldn't in good conscience turn down the opportunity.

So I got in touch with +Lennart Poettering, +Kay Sievers  and +Harald Hoyer to see what they thought about the idea. As luck would have it, they had already been thinking about this, and had a rough plan of how things should fit together, so I popped over to Berlin where we met up for a few days to discuss the details (together with +Marcel Holtmann  and +Daniel Mack ).

Over the next few posts I'll outline what I have been doing since then, what features that brings, and a bit about where we want to go next.
64
10
Victor Yap's profile photoMichael Wakefield's profile photoSwamy Srikant's profile photoGuillaume Fortaine's profile photo
8 comments
 
This may a stupid question, but would moving wireless network handling to lower level layers (e.g. systemd, the kernel) would help have faster reconnect when waking a laptop from sleep?
 
+Michal Parusinski my understanding is that the main problem with waking from sleep is reacquiring the DHCP lease, so the place to work on this would be in the dhcp client. OS X does this much better than Linux (at least in all the cases I have seen), and I think we should be able to basically do the same.
 
I've been happy with editing /etc/network/interfaces and such (Debian) and /etc/rc.conf (BSD).
 
as long as you don't assume you have the same IP address if the SSID is the same like the early iPad did. 
 
introduce some more things to get in the way of people that need to make systems more robust against all the flaws and wickednesses these features introduce.

if it can be tamed to only bring up the management interface for ssh, yet considers this might be used in iscsi boot over ISER or on a bonded vlan interface, and then also doesn't go into limbo when the other daemons (the big three...) that think they own my server come along and so, actually, my networking won't break during boot and it actually lowers the chances of everything going to shit due to a single unrelated issue, THEN please go ahead, this might be something worthwhile.
Add a comment...