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 [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]