Report information
The Basics
Id:
48048
Status:
open
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Cc:
AdminCc:

BugTracker
Version Fixed:
(no value)
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
4.4.2
Priority:
(no value)
Severity:
(no value)
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
(no value)
Area:
(no value)

Dates
Created:Wed, 08 Aug 2018 14:56:02 -0400
Updated:Thu, 09 Aug 2018 06:44:42 -0400
Closed:Not set



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

From: "James Ko" <jim.list@hotmail.com>
Date: Wed, 8 Aug 2018 18:55:57 +0000
To: "dhcp-suggest@isc.org" <dhcp-suggest@isc.org>
Subject: ISC-DHCP:v6 suggestion/patch to support of multiple instance of options

While trying to add multiple MPL parameters (RFC-7774) I found that isc-dhcp v6 does not support multiple entries of an option per the DHCPv6 method.  In DHCPv4 options would be concatenated as an array of option parameters instead of separate instances of the option as required by DHCPv6 (RFC-7227 Ch 16 & RFC-3315 Ch 22).


I propose adding support for multiple instances of DHCPv6 options using the "append" keyword. 


Attached is a patch that works with the below example.conf but perhaps there is a cleaner patch as I don't have a full understanding of how the option cache is constructed and laid out and how the options parsing is performed (multiple passes?).


sample dhcpv6.conf

# MPL Parameter Configuration Option (RFC-7774)
# MPL Default Parameters Option 104
option dhcp6.mpl-default-parameters code 104 = {
    unsigned integer 8,     # flags, 0x80 - proactive
    unsigned integer 8,     # tunit
    unsigned integer 16,    # se_lifetime
    unsigned integer 8,     # dm_k
    unsigned integer 16,    # dm_imin
    unsigned integer 8,     # dm_imax
    unsigned integer 16,    # dm_t_exp
    unsigned integer 8,     # c_k
    unsigned integer 16,    # c_imin
    unsigned integer 8,     # c_imax
    unsigned integer 16     # c_t_exp
};

# MPL Domain Parameters Option 104
option dhcp6.mpl-domain-parameters code 104 = {
    unsigned integer 8,     # flags, 0x80 - proactive
    unsigned integer 8,     # tunit
    unsigned integer 16,    # se_lifetime
    unsigned integer 8,     # dm_k
    unsigned integer 16,    # dm_imin
    unsigned integer 8,     # dm_imax
    unsigned integer 16,    # dm_t_exp
    unsigned integer 8,     # c_k
    unsigned integer 16,    # c_imin
    unsigned integer 8,     # c_imax
    unsigned integer 16,    # c_t_exp
    ip6-address             # MPL Domain
};

# The standard ISC-DHCP server does not support multiple DHCPv6 options with
# the same code and only the last "option" specified with a code is saved.
#
# The ISC-DHCP client (which uses the same configuration option parser)
# supports "prepend" and "append" options to override or add defaults for
# options.  The parser does this by concatenating the additional configurations
# as array members to an option as supported in DHCPv4.
#
# RFC-7227 Ch 16 describes expected format for non-singleton options.
# RFC-3315 Ch 22 states an option appearing multiple times must be a separate
# instance and MUST NOT be concatenated.
#
# A patched version of the ISC-DHCP server is required to support the following
# dhcpv6 options as separate instances.
option dhcp6.mpl-default-parameters 0x80 100   18000 1 1    3   3   1 1    9   10;
# payload delay sensitive domain parameters
append dhcp6.mpl-domain-parameters  0x80 100   18000 4 5    16  3   4 20   16  2  ff03::153;
# delay insensitive domain parameters
append dhcp6.mpl-domain-parameters  0x80 100   18000 2 1200 4   15  3 1800 4   20 ff03::154;

Regards,

James



Message body is not shown because sender requested not to inline it.

Hello James: Thank you for your submission, we will take it into consideration for a future release. Whatever the outcome of our analysis, we will update you via this ticket. We value user contributions highly and will try to have a disposition for you in the near future. As a small, non-profit we have to commit our resources carefully and ask for your patience in awaiting a disposition. Sincerely, Thomas Markwalder ISC Software Engineering On Wed Aug 08 18:56:03 2018, jim.list@hotmail.com wrote: > While trying to add multiple MPL parameters (RFC-7774) I found that > isc-dhcp v6 does not support multiple entries of an option per the > DHCPv6 method. In DHCPv4 options would be concatenated as an array of > option parameters instead of separate instances of the option as > required by DHCPv6 (RFC-7227 Ch 16 & RFC-3315 Ch 22). > > > I propose adding support for multiple instances of DHCPv6 options > using the "append" keyword. > > > Attached is a patch that works with the below example.conf but perhaps > there is a cleaner patch as I don't have a full understanding of how > the option cache is constructed and laid out and how the options > parsing is performed (multiple passes?). > > > sample dhcpv6.conf > > # MPL Parameter Configuration Option (RFC-7774) > # MPL Default Parameters Option 104 > option dhcp6.mpl-default-parameters code 104 = { > unsigned integer 8, # flags, 0x80 - proactive > unsigned integer 8, # tunit > unsigned integer 16, # se_lifetime > unsigned integer 8, # dm_k > unsigned integer 16, # dm_imin > unsigned integer 8, # dm_imax > unsigned integer 16, # dm_t_exp > unsigned integer 8, # c_k > unsigned integer 16, # c_imin > unsigned integer 8, # c_imax > unsigned integer 16 # c_t_exp > }; > > # MPL Domain Parameters Option 104 > option dhcp6.mpl-domain-parameters code 104 = { > unsigned integer 8, # flags, 0x80 - proactive > unsigned integer 8, # tunit > unsigned integer 16, # se_lifetime > unsigned integer 8, # dm_k > unsigned integer 16, # dm_imin > unsigned integer 8, # dm_imax > unsigned integer 16, # dm_t_exp > unsigned integer 8, # c_k > unsigned integer 16, # c_imin > unsigned integer 8, # c_imax > unsigned integer 16, # c_t_exp > ip6-address # MPL Domain > }; > > # The standard ISC-DHCP server does not support multiple DHCPv6 options > # with > # the same code and only the last "option" specified with a code is > # saved. > # > # The ISC-DHCP client (which uses the same configuration option parser) > # supports "prepend" and "append" options to override or add defaults > # for > # options. The parser does this by concatenating the additional > # configurations > # as array members to an option as supported in DHCPv4. > # > # RFC-7227 Ch 16 describes expected format for non-singleton options. > # RFC-3315 Ch 22 states an option appearing multiple times must be a > # separate > # instance and MUST NOT be concatenated. > # > # A patched version of the ISC-DHCP server is required to support the > # following > # dhcpv6 options as separate instances. > option dhcp6.mpl-default-parameters 0x80 100 18000 1 1 3 3 1 > 1 9 10; > # payload delay sensitive domain parameters > append dhcp6.mpl-domain-parameters 0x80 100 18000 4 5 16 3 4 > 20 16 2 ff03::153; > # delay insensitive domain parameters > append dhcp6.mpl-domain-parameters 0x80 100 18000 2 1200 4 15 3 > 1800 4 20 ff03::154; > > Regards, > > James