:: Re: [DNG] vdev in chimaera
Góra strony
Delete this message
Reply to this message
Autor: Didier Kryn
Data:  
Dla: dng
Temat: Re: [DNG] vdev in chimaera
Le 08/02/2022 à 01:45, aitor a écrit :
> Hi Didier,
> On 7/2/22 19:21, Didier Kryn wrote:
>> If you
>> remove the "allow-hotplug" and "auto" stanzas, ifup -a will just do
>> nothing, hence no wait. Therefore the solution is to install ifplugd or
>> netplug, configure it, and eliminate the "allow-hotplug" stanzas from
>> /etc/network/interfaces.
> I've found a workaround replacing in the init script:
> if ifup -a $exclusions $verbose && ifup_hotplug $exclusions $verbose
> then
>   log_action_end_msg $?
> else
>   log_action_end_msg $?
> fi
> with this:
> if [ $(runlevel) != "unknown" ] || ! [ -z $(grep '^id:1:initdefault:$' /etc/inittab) ]; then
>    if ifup -a $exclusions $verbose && ifup_hotplug $exclusions $verbose
>    then
>      log_action_end_msg $?
>    else
>      log_action_end_msg $?
>    fi
> fi
> which means: "skip these lines if the boot process still has not switched to the default runlevel,
> unless it is single user". The following script located in /etc/boot.d:
> #!/bin/sh -e
> #
> # networking-restart
> #
> # This script is executed at the end of each multiuser runlevel.
> # Make sure that the script will "exit 0" on success or any other
> # value on error.
> #
> # In order to enable or disable this script just change the execution
> # bits.
>
> if test -x /etc/init.d/networking ; then
>      service networking restart
> fi
> will restart the service and from this moment, both "auto <device>" and "allow-hotplug <device>" will take effect.
> This way, the delay will occur only in the case of a single user default runlevel, which is often not the case.
>

      IIUC this means that network startup is deferred. Does it mean 
starting ntp, ssh and/or web services before the network is available? 
Doesn't this method defeat the whole purpose of the dependencies 
inserted as comments in the headers of the RC scripts? I ask this 
because I'm not sure of my understanding of the whole mechanism. 
Wouldn't it be cleaner to change the priorities?

      Clearly there is a wrong assignment of priorities in the startup: 
there is no reason that the login prompt and all the applications which 
do not depend on the network have to wait until the network startup 
times out. AFAIU your method is a workaround for this misconfiguration. 
But the timeout is still there before you can use the network, while in 
most cases, it should not. And, if you haven't a server like ifupdown or 
netplug, you're going to need to restart networking everytime you 
plug/unplug your Ethernet cable.

      The ifupdown API, driven by the configuration of 
/etc/network/interfaces is well suited for static network configuration; 
it offers a lot of possibilities to the admin, eg bonding. The addition 
of the stanza "inet dhcp" has made it usable with dynamic network 
configuration, and the addition of the stanza "allow-hotplug" in 
replacement of "auto" has made it usable with hotplug network interfaces 
such as USB-Ethernet or USB-WIFI adapters.

      But this does not respond to the cases where one or more 
interfaces are not *always* connected, in particular the case of laptops 
which have one single connection to the network, *alternatively* through 
Wifi and through Ethernet. In this case, the connection is done through 
Ethernet when the Ethernet cable is connected and through Wifi otherwise 
and it is a nonsense to try to bring eth0 up when the Ethernet cable is 
not plugged in. Instead, eth0 must be brought respectively up and down 
when the cable is connected and disconnected, and, simultaneously wlan0 
must be brought down and up.

      I don't know any stanza of the interfaces file which might achieve 
that because there is no feature such as the detection of the Ethernet 
carrier in ifupdown - ifupdown is not a server. This functionality can 
be provided by ifplugd, and AFAIK by netplug. These two servers detect 
changes in the presence of the Ethernet carrier and make use of the 
ifupdown API to bring the interfaces up and down. In this situation, 
stanzas like "auto" and "allow-hotplug" are nothing but nuisances.

      It would be very nice if the installer could provide a dialog to 
configure this, but it does not look like an easy job. Maybe the user 
could be directed to some documentation.


--     Didier