Our Networking Story

Bryan Quigley bryan.quigley at canonical.com
Fri Mar 7 16:25:53 UTC 2014


On Fri, Mar 7, 2014 at 7:44 AM, Robie Basak <robie.basak at ubuntu.com> wrote:
> I don't think it's possible to define "restart networking" in a way that
> everybody understands, and in a way that will always work on complex
> configurations.
>
> Instead, I think that we need to focus on *why* you need to "restart
> networking".
Example:  A user wants to setup a complicated network setup on many
machines via Puppet.  They don't want to have to know the machines
current state for puppet to be able to take it over and do the right
thing.  (that's a key point of using puppet, btw)

>
> Did you change an interface entry in /etc/network/interfaces{,.d}? Then
> ifdown before, and ifup after. Or do others disagree?
The order seems to be something like this:
1. bring down all the related things that might be using interfaces
you plan to change (dhcpclient, manually disable the bond, etc)
2. Ifdown the interfaces you want to change
3. Make the change in interfaces
4.  Ifup the interfaces
5.  Maybe you need to bring some daemons back up?

> adjust all upstart jobs to automatically stop and start daemons as
> required as networking is "restarted". But I'm not sure this makes
> sense.
That doesn't seems illogical to me.

> Thank you for bringing this up. It's certainly important if our
> documentation is wrong, or we're short of clarity on the process. I
> think we should certainly have a blueprint to assign work items to
> ensure that all our understanding and documentation is consistent.
> Exactly what would we discuss in a session, though, that we can't do on
> a mailing list? Is there any controversy here that we need to resolve?

I, and many others, believe that the ifupdown scripts are not good
enough for the general case problem.   Furthermore,
sudo /etc/init.d/networking restart; seems to "Just Work" on 10.04
sudo restart networking;  seems to "Just Work" on 14.04

Why doesn't either of these work on 12.04?   And why can't we
recommend to do "sudo restart networking" on 14.04?

Basically, why is ifupdown better?

> I'd say no, because "restarting networking" as a general concept isn't
> well-defined and unsupported by various components that depend on it
> being there. However, I would certainly like to see particular
> operations work smoothly without requiring a reboot. Are there specific
> cases that do not work well here?

At a basic level, customers want to be assured that when they restart
networking settings it will be equivalent to a restart.   Since they
are operated on in different ways via ifupdown vs Upstart (w/ ifupdown
too), it's my understanding that we can not make that guarantee.
Their interfaces file could be incorrect for a parallel boot, but work
fine w/ ifupdown directly or vice versa.

> It would be great to see some effort on prioritising these bugs, and
> driving them (presumably in Debian also?) as part of a blueprint.
That would definitely be part of the proposed session.

>
>> My understanding is that ifupdown was not designed to handle a parallel
>> boot process like Upstart or systemd.  I'm guessing there are a lot more
>> bugs lurking due to that, aside from some other issues with the codebase
>> [5].
>
> What specific solutions are being proposed here?
A need for more networking QA.




More information about the Ubuntu-devel-discuss mailing list