Comment 3 for bug 291902

Revision history for this message
Jamie Lokier (jamie-shareable) wrote : Re: Previously working DHCP on wired ethernet is assigned static IP from unrelated interface after upgrade to Intrepid

<i>For NM everything in /etc/network/interfaces are just connection configuration - which are not bound to a particular device ... unless the names match devices NMis supposed to manage. So NM will consider them for devices that don't have any other explicit configuration.</i>

This seems a very odd behaviour, as it's contrary to what /etc/network/interfaces means.

Does NM do anything else surprising with /etc/network/interfaces, like parse the comments, look for special keywords, or invent random numbers? I'm just wondering, because taking a static IP configuration for one interface and automatically applying it to a different interface seems like would never be the right thing to do. Is there a rationale for this behaviour - i.e. a situation where it makes sense?

(By the way, why does it use the unrelated interface configurations as possible configs for eth0, but not for wlan0?)

If it makes no sense, I suggest removing it! But if there are scenarios where it makes sense - it really could do with being a controllable option.

I do still want to use NM, as it works quite well for wireless interfaces when roaming. (When it handles Bluetooth 3g broadband, that will be really nice.)

In Hardy it worked for wired ethernet too - if that was plugged in, it used it, and if not, it looked for a wireless signal. (On Hardy, I still had to kill and restart NM whenever I used 3g broadband or PPP, but NM's wired/wireless behaviour is very useful).

If I follow your suggestion of putting eth0 in NM, that would prevent NM from managing eth0 wouldn't it? But managing eth0 - like wireless - is useful behaviour that worked in Hardy. The useful behaviour was detecting when a cable is plugged in, and running DHCP.

In my situation, does NM also touch the tap0 / tap1 / tap2 / tun0 / bnep0 / pan0 interfaces which are found on my laptop, or does it just manage eth0 and wlan0?

From reading /usr/share/doc/network-manager/README.Debian, I guess it won't manage tap0 / tap1 / tap2 because those are mentioned in /etc/network/interfaces - but it _will_ try to manage tun0 (which is created by OpenVPN) and bnep0 (which is created by Bluez pand), and pan0 (which is created by something I don't know about, but connected with Bluetooth somehow). Is that correct?

Your suggestion to try managed=true is... puzzling. README.Debian explains that this causes NM to manage all the interfaces - but what I (think I) need is for NM to manage eth0 and wlan0, but not any other interfaces (whether mentioned in /etc/network/interfaces or not), and not to read the configurations of unrelated interfaces from /etc/network/interfaces as potential eth0 configurations.

Neither managed=false nor managed=true will achieve that according to my reading of the docs.

But I'll try managed=true, since I'm curious what "managed all the interfaces in /etc/network/interfaces and honours all the DHCP / static settings" really means :-)

Ok, tried it. Restarted /etc/init.d/NetworkManager restart. The GUI shows exactly the same as before: "ifupdown (tap0)" (+ tap1 and tap2) under Wired Networks, and when a wire is plugged in I expect it to use a faulty static config from tap1 as before. There is no visible change.

What is managed=true supposed to change?

Broadening this to a couple of constructive suggestions for the future:

   1. What would be useful, I think, are options like:

       manage_interfaces_wired=eth0
       manage_interfaces_wireless=wlan0

   2. Many of us with multiple interfaces would basically like NM to manage the usual ones, and to not do anything with the rest - except detecting they exist and are up for the ONLINE/OFFLINE purposes. But not all up interfaces mean ONLINE - for example tun0 for VPN and tap0 for local VMs may not, depending on user's preferences (e.g. whether Firefox should say it's offline, or should attempt to visit a VM's server). So in addition to the above:

       report_online_if_up=eth0,wlan0

   3. The above options should be entries in /etc/network/interfaces for those interfaces listed in that file: the presence of keywords "network_manager yes (no)" in each interface section, and "report_online_if_up yes (no)".

   4. Right now, NM will let you select a wireless AP on wlan0 to connect to, or the wired interface on eth0 if there's a signal. When Bluetooth 3g is added, that's like more wireless APs to choose from, but on another interface. In general, exclusively selecting just one interface according to an available connection, and disabling the others (except for scanning on wireless and cable detection on wired) is a really nice policy for roaming machines.

      But alongside that, it would be a nice feature if the GUI were able to manage _other_ interfaces in the sense of bringing them up and down _independently_. For interfaces with just one configuration, these would be tickboxes rather than radio buttons, when user-controllable, and greyed out tickboxes for non-user-controllable interfaces (if you want them in the NM-visible list.) For interfaces with multiple selectable configurations, the probably should each have a section just like the current Wired Networks and Wireless Networks sections, and under each section have the list of config choices for that interfaces. You can imagine how this generalises a little to support profiles, with some (groups of) interfaces managed together, and some independently. I'm thinking this would cover 90% of the cases of users who have a more complicated setup than "computer with 1 wired + 1 wireless interface", making NM of more general utility.

Thanks.