Hi Andrew,

On Wed, May 22, 2013 at 11:21:51PM +0200, Andrew Shadura wrote:
> Hello,
> 
> On Wed, 22 May 2013 22:13:21 +0100
> Matthew Foulkes <[email protected]> wrote:
> 
> > Since ifupdown 0.7.43 entered testing, I have noticed "ifup -v lo" and
> > "ifdown -v lo" attempting to bring the loopback interface up/down
> > twice.
> 
> Please elaborate that. I have specifically changed the internal
> definition of the loopback interface so that it is *not* brought up
> twice. If that's not working, it must be a bug.

My old amd64 desktop running Debian testing has been continuously
upgraded for some years. The external eth0 interface is managed by
network manager. The only other network interface is lo:

> root@bee:~# /sbin/ifconfig
> eth0      Link encap:Ethernet  HWaddr 00:23:7d:46:35:93  
>           inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
>           inet6 addr: fe80::223:7dff:fe46:3593/64 Scope:Link
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:69562 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:36327 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000 
>           RX bytes:94305442 (89.9 MiB)  TX bytes:5700800 (5.4 MiB)
>           Interrupt:19 Memory:f3000000-f3020000 
> 
> lo        Link encap:Local Loopback  
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           inet6 addr: ::1/128 Scope:Host
>           UP LOOPBACK RUNNING  MTU:16436  Metric:1
>           RX packets:56 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0 
>           RX bytes:3504 (3.4 KiB)  TX bytes:3504 (3.4 KiB)
>

I have not changed the default networking configuration as far as I can
remember. 

If /etc/network/interfaces is blank, I get the following:

> root@bee:~# ifdown -v lo
> Configuring interface lo=lo (inet)
> run-parts --verbose /etc/network/if-down.d
> run-parts: executing /etc/network/if-down.d/upstart
> run-parts: executing /etc/network/if-down.d/wpasupplicant
> run-parts --verbose /etc/network/if-post-down.d
> run-parts: executing /etc/network/if-post-down.d/avahi-daemon
> run-parts: executing /etc/network/if-post-down.d/wpasupplicant
> ip link set down dev lo 2>/dev/null
>
> root@bee:~# ifup -v lo
> ip link set up dev lo 2>/dev/null
> Configuring interface lo=lo (inet)
> run-parts --verbose /etc/network/if-pre-up.d
> run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
> run-parts --verbose /etc/network/if-up.d
> run-parts: executing /etc/network/if-up.d/avahi-daemon
> run-parts: executing /etc/network/if-up.d/mountnfs
> run-parts: executing /etc/network/if-up.d/openssh-server
> run-parts: executing /etc/network/if-up.d/upstart
> run-parts: executing /etc/network/if-up.d/wpasupplicant

However, if /etc/network/interfaces contains the lines

> auto lo
> iface lo inet loopback

the output changes to:

> root@bee:~# ifdown -v lo
> Configuring interface lo=lo (inet)
> run-parts --verbose /etc/network/if-down.d
> run-parts: executing /etc/network/if-down.d/upstart
> run-parts: executing /etc/network/if-down.d/wpasupplicant
> run-parts --verbose /etc/network/if-post-down.d
> run-parts: executing /etc/network/if-post-down.d/avahi-daemon
> run-parts: executing /etc/network/if-post-down.d/wpasupplicant
> Configuring interface lo=lo (inet)
> run-parts --verbose /etc/network/if-down.d
> run-parts: executing /etc/network/if-down.d/upstart
> run-parts: executing /etc/network/if-down.d/wpasupplicant
> run-parts --verbose /etc/network/if-post-down.d
> run-parts: executing /etc/network/if-post-down.d/avahi-daemon
> run-parts: executing /etc/network/if-post-down.d/wpasupplicant
> ip link set down dev lo 2>/dev/null
> 
> root@bee:~# ifup -v lo
> ip link set up dev lo 2>/dev/null
> Configuring interface lo=lo (inet)
> run-parts --verbose /etc/network/if-pre-up.d
> run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
> run-parts --verbose /etc/network/if-up.d
> run-parts: executing /etc/network/if-up.d/avahi-daemon
> run-parts: executing /etc/network/if-up.d/mountnfs
> run-parts: executing /etc/network/if-up.d/openssh-server
> run-parts: executing /etc/network/if-up.d/upstart
> run-parts: executing /etc/network/if-up.d/wpasupplicant
> Configuring interface lo=lo (inet)
> run-parts --verbose /etc/network/if-pre-up.d
> run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
> run-parts --verbose /etc/network/if-up.d
> run-parts: executing /etc/network/if-up.d/avahi-daemon
> run-parts: executing /etc/network/if-up.d/mountnfs
> run-parts: executing /etc/network/if-up.d/openssh-server
> run-parts: executing /etc/network/if-up.d/upstart
> run-parts: executing /etc/network/if-up.d/wpasupplicant

It seems that ifdown and ifup are running all of the if-down-*.d and
if-up-*.d scripts twice.

> > Unless ifup/ifdown can be made smarter about dealing with multiple
> > definitions, perhaps you should recommend that all mention of lo be
> > omitted from /etc/network/interfaces from now on? The documentation
> > available via "man interfaces" and in /usr/share/doc/ifupdown/examples
> > would need changing to reflect this.
> 
> I don't think that's needed. New systems won't have this definition
> from start, old systems don't need a change either.

Then why should the examples and man pages encourage users to add this
obsolete definition?

Although I am no expert on Linux or networking, I'd be happy to carry
out some further testing given instructions.

Thanks for your help.

Best wishes, Matthew

-- 
**************************************************
  email: [email protected]
  phone: (020) 8286 9910
**************************************************


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to