Package: dhcp3-client Version: 3.0.6.dfsg-1 Severity: important When dhclient renewed a lease, it *should* call dhclient-script with RENEW. If it failed, it *should* call the script with EXPIRE.
However, dhclient calls the script with EXPIRE as soon as the lease
expires, issues a PREINIT, and *then* seeks to renew the lease and
issues a BOUND event when successful. This is quite stupid as the
machine goes offline for a second, and it's also not what the
manpages says:
The DHCP client has failed to renew its lease or
acquire a new one, and the lease has expired. The IP
address must be relinquished, and all related parameters
should be deleted, as in RENEW and REBIND.
I noticed this while developing netconf. Look at its debug output
during a normal renew:
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_server_identifier',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_lease_time', '30']
dhclientProxy_eth0: DEBUG: received pair: ['old_ip_address', '192.168.14.125']
dhclientProxy_eth0: DEBUG: received pair: ['pid', '3106']
dhclientProxy_eth0: DEBUG: received pair: ['old_expiry', '1199826651']
dhclientProxy_eth0: DEBUG: received pair: ['old_broadcast_address',
'192.168.14.127']
dhclientProxy_eth0: DEBUG: received pair: ['old_subnet_mask', '255.255.255.128']
dhclientProxy_eth0: DEBUG: received pair: ['PATH',
'/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin']
dhclientProxy_eth0: DEBUG: received pair: ['interface', 'eth0']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name_servers',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name',
'stranger.oerlikon.madduck.net']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_message_type', '5']
dhclientProxy_eth0: DEBUG: received pair: ['old_routers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['reason', 'EXPIRE']
dhclientProxy_eth0: DEBUG: received pair: ['old_filename',
'/debian-installer/i386/pxelinux.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_network_number', '192.168.14.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_netbios_name_servers',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: processing data received from dhclient...
dhclientProxy_eth0: INFO: got EXPIRE/FAIL: removing address from interface eth0
dhclientProxy_eth0: DEBUG: queueing event: <Event id=132 type=IPADDR
completed=0 params={'ACTION': 'delete', 'PREFIXLEN': '255.255.255.128',
'IFACE': 'eth0', 'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: DEBUG: received event: <Event id=132 type=IPADDR completed=0
params={'ACTION': 'delete', 'PREFIXLEN': '255.255.255.128', 'IFACE': 'eth0',
'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: INFO: deleting addresses on interface eth0: inet 192.168.14.125/25
MainThread: DEBUG: received SIGCHLD
dhclientProxy_eth0: DEBUG: received pair: ['interface', 'eth0']
dhclientProxy_eth0: DEBUG: received pair: ['PATH',
'/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin']
dhclientProxy_eth0: DEBUG: received pair: ['reason', 'PREINIT']
dhclientProxy_eth0: DEBUG: received pair: ['pid', '3106']
dhclientProxy_eth0: DEBUG: processing data received from dhclient...
dhclientProxy_eth0: INFO: got PREINIT: upping interface eth0
dhclientProxy_eth0: DEBUG: queueing event: <Event id=133 type=IPLINK
completed=0 params={'LINK_STATE': 'up', 'IFACE': 'eth0'}>
MainThread: DEBUG: received event: <Event id=133 type=IPLINK completed=0
params={'LINK_STATE': 'up', 'IFACE': 'eth0'}>
MainThread: INFO: bringing interface eth0 up
MainThread: DEBUG: received SIGCHLD
dhclientProxy_eth0: DEBUG: received pair: ['new_filename',
'/debian-installer/i386/pxelinux.0']
dhclientProxy_eth0: DEBUG: received pair: ['pid', '3106']
dhclientProxy_eth0: DEBUG: received pair: ['old_expiry', '1199826651']
dhclientProxy_eth0: DEBUG: received pair: ['new_broadcast_address',
'192.168.14.127']
dhclientProxy_eth0: DEBUG: received pair: ['new_domain_name',
'stranger.oerlikon.madduck.net']
dhclientProxy_eth0: DEBUG: received pair: ['PATH',
'/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin']
dhclientProxy_eth0: DEBUG: received pair: ['new_dhcp_lease_time', '30']
dhclientProxy_eth0: DEBUG: received pair: ['old_filename',
'/debian-installer/i386/pxelinux.0']
dhclientProxy_eth0: DEBUG: received pair: ['new_dhcp_server_identifier',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_domain_name_servers',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_network_number', '192.168.14.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_message_type', '5']
dhclientProxy_eth0: DEBUG: received pair: ['new_routers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_dhcp_message_type', '5']
dhclientProxy_eth0: DEBUG: received pair: ['new_netbios_name_servers',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_ip_address', '192.168.14.125']
dhclientProxy_eth0: DEBUG: received pair: ['old_netbios_name_servers',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_lease_time', '30']
dhclientProxy_eth0: DEBUG: received pair: ['new_expiry', '1199826682']
dhclientProxy_eth0: DEBUG: received pair: ['old_broadcast_address',
'192.168.14.127']
dhclientProxy_eth0: DEBUG: received pair: ['new_subnet_mask', '255.255.255.128']
dhclientProxy_eth0: DEBUG: received pair: ['old_routers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['interface', 'eth0']
dhclientProxy_eth0: DEBUG: received pair: ['old_network_number', '192.168.14.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_server_identifier',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['reason', 'BOUND']
dhclientProxy_eth0: DEBUG: received pair: ['old_subnet_mask', '255.255.255.128']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name_servers',
'192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name',
'stranger.oerlikon.madduck.net']
dhclientProxy_eth0: DEBUG: received pair: ['old_ip_address', '192.168.14.125']
dhclientProxy_eth0: DEBUG: processing data received from dhclient...
dhclientProxy_eth0: INFO: got BOUND/REBOOT: configuring interface %s eth0
dhclientProxy_eth0: DEBUG: queueing event: <Event id=134 type=IPADDR
completed=0 params={'ACTION': 'set', 'PREFIXLEN': '255.255.255.128', 'IFACE':
'eth0', 'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: DEBUG: received event: <Event id=134 type=IPADDR completed=0
params={'ACTION': 'set', 'PREFIXLEN': '255.255.255.128', 'IFACE': 'eth0',
'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: INFO: seting addresses on interface eth0: inet 192.168.14.125/25
MainThread: DEBUG: received SIGCHLD
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.23-1-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages dhcp3-client depends on:
ii debconf [debconf-2.0] 1.5.17 Debian configuration management sy
ii debianutils 2.28.2 Miscellaneous utilities specific t
ii dhcp3-common 3.0.6.dfsg-1 common files used by all the dhcp3
ii libc6 2.7-5 GNU C Library: Shared libraries
dhcp3-client recommends no packages.
-- debconf information:
dhcp3-client/dhclient-needs-restarting:
* dhcp3-client/dhclient-script_moved:
--
.''`. martin f. krafft <[EMAIL PROTECTED]>
: :' : proud Debian developer, author, administrator, and user
`. `'` http://people.debian.org/~madduck - http://debiansystem.info
`- Debian - when you have better things to do than fixing systems
digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)

