Package: ifupdown
Version: 0.7.5
Severity: important

Dear Maintainer!

I have noticed a problem with ifup in a local network environment in
such situation:
* both DHCP-server and DHCP-client (Debian Wheezy host) PCs has no
UPSes, so when power fails both DHCP-server and DHCP-client goes down;
* after power resume DHCP-client boots up faster then DHCP-server and
sends first DHCPDISCOVER when there are no DHCP-servers on the
network;
* looking over `ps axjf` immediatly after finishing of a boot process
i've noticed, that `dhclient` is invoked with `-1` option by `ifup` at
boottime, while according to manpage `-1` option forces dhclient to
"Try to get a lease once. On failure exit with code 2." See `ps`
command output which was executed immediatly after finishing boot
process below:

    1   472   472   312 ?           -1 S        0   0:00 ifup
--allow=hotplug eth0
  472  1459   472   312 ?           -1 S        0   0:00  \_ /bin/sh
-c dhclient -1 -v -pf /run/dhclient.eth0.pid -lf
/var/lib/dhcp/dhclient.eth0.leases eth0 ?
 1459  1460   472   312 ?           -1 S        0   0:00      \_
dhclient -1 -v -pf /run/dhclient.eth0.pid -lf
/var/lib/dhcp/dhclient.eth0.leases eth0

* as expected dhclient exits after one attempt, because DHCP-server is
in boot process now and hasnt setup either network interfaces or
started dhcpd yet, so noone can answer on DHCPDISCOVER requests, and
dhclient leaves interface unconfigured;
* after DHCP-server finally boots up and ready to serve DCHP-requests
from clients, there are no other force to start again dhclient at
DHCP-client side, besides the hands of DHCP-client's sysadmin directly
on the client tty or via IP-KVM :(

As outcome of this incident, i've losed remote access to Debian Wheezy
host and forced to go to host tty and run dhclient by hand to set up
ip-address from DHCP-server after it booted up (and to thought about
providing power supply redundancy and failover again sure).

I have looked in current ifupdown source (ifupdown_0.7.5.tar.gz) and
changelog and hg repo and found the reason of such behaviour in commit
http://anonscm.debian.org/hg/collab-maint/ifupdown/rev/7d5db1c9342a :
there is hardcoded `-1` option for all `dhclient` invocations (for
Linux, kFreeBSD and Hurd).

I expect to configure dhclient's (and possibly other DHCP-clients'
too) invocation options (including pid file and lease file name and
place) f.e. in /etc/default/networking config file, with defaults
provided both in the same file and in the source if variable is not
set.
If i will have such possibility out of the box, i will simply delete
`-1` option from /etc/default/networking to allow my DHCP-client to
request DHCP-server for ip-address indefinitely with retry timeouts
provided via standart dhclient.conf file.

Suggested solution can be implemented with adding into
/etc/default/networking smth like:

#DHCLIENT_PID_PATH=/run
#DHCLIENT_LEASE_PATH=/var/lib/dhcp
#DHCLIENT_ARGS="-1 -v"

... sourcing these variables from `/etc/default/networking` at
ifup/ifdown executing and proper checks and variable substituions in
ifupdown.nw.

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages ifupdown depends on:
ii  dpkg         1.16.9
ii  initscripts  2.88dsf-34
ii  iproute      20120521-3
ii  libc6        2.13-35
ii  lsb-base     4.1+Debian8

ifupdown recommends no packages.

Versions of packages ifupdown suggests:
ii  isc-dhcp-client [dhcp-client]  4.2.2.dfsg.1-5+deb70u2
ii  net-tools                      1.60-24.2
pn  ppp                            <none>
pn  rdnssd                         <none>

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to