Bug 830040 - dhclient6 errors when using -P -N
dhclient6 errors when using -P -N
Product: Fedora
Classification: Fedora
Component: dhcp (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Jiri Popelka
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2012-06-07 23:42 EDT by H. Peter Anvin
Modified: 2012-06-08 12:18 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2012-06-08 07:11:13 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description H. Peter Anvin 2012-06-07 23:42:37 EDT
Description of problem:

When using dhclient6 with the -P -N options (meaning: get an upstream address via IA_NA, -N, as well as delegate a prefix via IA_PD, -P) the upstream address fails to configure.

This appears to be because of two independent problems:

a. /sbin/dhclient-script assumes that the presence of either old_ip6_prefix or new_ip6_prefix means nothing needs to be done:

dh6config() {
    if [ -n "${old_ip6_prefix}" ] ||
       [ -n "${new_ip6_prefix}" ]; then
        echo Prefix ${reason} old=${old_ip6_prefix} new=${new_ip6_prefix}
        exit_with_hooks 0

b. When receiving a REBIND6 event, new_ip6_address and new_ip6_prefixlen are not sent from the core program to the script, which means that if a lease already exists, the interface is not configured.

Version-Release number of selected component (if applicable):

How reproducible:
Every time

Steps to Reproduce:
1. Use dhclient6 -P -N on a network which supports both IA_NA and IA_PD.
2. Observe that the actual upstream address is never configured.
Comment 1 H. Peter Anvin 2012-06-07 23:45:18 EDT
Specifically, in /etc/sysconfig/network-script/ifcfg-<if>:

DHCPV6C_OPTIONS='-P -N -cf /etc/dhcp/dhclient6.conf'
Comment 2 Jiri Popelka 2012-06-08 07:11:13 EDT
thanks for the report.

The 'IP assignment' and 'prefix delegation' mechanisms serve different purposes and I'm sure they can't be safely used together.

See dhclient(8):

  -6 ... The -S -T -P -N and -D arguments provide more control over aspects of the DHCPv6 processing.  Note: it is not recommended to *mix* queries of different types *together* or even to share the lease file between them.

  -P ... This implies -6 and also *disables* the normal address query.  See -N to restore it.

  -N ... It is used to restore normal operation *after* using -T or -P.
Comment 3 H. Peter Anvin, Intel 2012-06-08 12:18:47 EDT
Fair enough.  That means that the bug is actually in initscripts/NetworkManager, because currently there is only support for a single dhclient run on a specific interface, and what you are saying is that each query type should run a separate instance.

For the record, this is not something required by the protocol, and as such it is still a shortcoming in dhclient (I have also filed a bug report with ISC on this.)  The ISP expectation seems to be that these should come in under a single DUID although with separate IAIDs.

Note You need to log in before you can comment on or make changes to this bug.