If, in /etc/network/interfaces, one has "allow-hotplug eth0", the eth0 interface is not brought up by "/etc/init.d/networking start" even though the link is detected: # ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Link partner advertised link modes: Not reported Link partner advertised pause frame use: No Link partner advertised auto-negotiation: No Speed: 100Mb/s Duplex: Full Port: Twisted Pair PHYAD: 2 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbag Wake-on: g Current message level: 0x00000001 (1) Link detected: yes FYI, here's the /etc/network/interfaces file: auto lo allow-hotplug eth0 iface lo inet loopback mapping eth0 script guessnet-wrapper map default: none map debug: true map timeout: 2 iface none inet dhcp iface home inet static address 192.168.0.8 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 test peer address 192.168.0.1 mac 00:00:c5:b4:98:74
[...] Well, it is not clear whether an additional package is needed. If this is the case, interfaces(5) should make that clear, and perhaps a package should be added to "Suggests:" (probably something like ifplugd, except that it doesn't work at boot time, but that's a bug, in fact several bugs).
reassign 550014 netbase thanks Actually, since this is about /etc/init.d/networking (which is responsible of setting up the network through ifup), I should have reported the bug against netbase, but this isn't really clear... I think that the user expects that interfaces with allow-hotplug in /etc/network/interfaces be brought up when they are physically available. Either /etc/init.d/networking should take care of that by executing "ifup --allow=hotplug ..." as the interfaces(5) says: Lines beginning with "allow-" are used to identify interfaces that should be brought up automatically by various subsystems. This may be done using a command such as "ifup --allow=hotplug eth0 eth1", which will only bring up eth0 or eth1 if it is listed in an "allow-hotplug" line. Note that "allow-auto" and "auto" are synonyms. (but according to bug 550240, which is about a similar problem, it won't) or netbase should at least suggest a package that handles allow-hotplug; in theory it could be ifplugd, but it doesn't work as expected at boot time (bugs 204499, 407349, 432612 and 550019).
reassign 550014 ifupdown thanks Thank you for your investigation. I considered using --allow=hotplug but in the end decided that it would be both complex (the script would need to find out which interfaces are actually up) and not really correct (an hotplug-aware interface could have been shutdown manually or the link could be temporarily down, etc). Maybe a possible solution would be to take note of which interfaces are up before shutting them down, but it would require knowledge of implementation details of ifupdown so I am leaving this for its maintainer when he will finally move the init script to his own package.
Hello. This bug is particularly dangerous on remote administration scenarios, where the operator will, unexpectedly, get locked out of the box, requiring physical access to the server. It is expected that "/etc/init.d/networking restart" would actually start again all those interfaces that were already up, if they are available. If you reconfigure an interface to add an IP alias, interfaces will be shut down but will not be brought up again.