Page MenuHomeFreeBSD

Support configuration of an interface to use a DHCPv6 client.
Needs RevisionPublic

Authored by dab on Jul 5 2016, 6:38 PM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 22 2023, 9:47 PM
Unknown Object (File)
Nov 28 2023, 4:41 PM
Unknown Object (File)
Sep 20 2023, 10:47 AM
Unknown Object (File)
Jul 4 2023, 2:22 AM
Unknown Object (File)
Jun 19 2023, 3:56 AM
Unknown Object (File)
May 8 2023, 6:27 PM
Unknown Object (File)
Apr 26 2023, 3:49 PM
Unknown Object (File)
Apr 9 2023, 6:16 AM
Subscribers

Details

Reviewers
badger
hrs
vangyzen
Group Reviewers
network
manpages
Summary

This is a set of changes that allow an interface to be configured to
use a DHCPv6 client to get address information. The configuration is similar to
that for the existing DHCP (v4) usage except that it uses the keywords DHCP6
and SYNCDHCP6 instead of DHCP and SYNCDHCP.

These changes were discussed during BSDCan 2016.

Test Plan

These changes are tested internally at Dell using the ISC DHCPv6
client. Note that no default DHCPv6 client is established by these changes.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 4510
Build 4562: arc lint + arc unit

Event Timeline

dab retitled this revision from to Support configuration of an interface to use a DHCPv6 client..
dab updated this object.
dab edited the test plan for this revision. (Show Details)
dab added reviewers: vangyzen, badger.
  • Update the rc.conf(5) man page for DHCP6. While here, fix a few problems pointed out by igor(1).
dab updated this object.
hrs requested changes to this revision.Jul 15 2016, 6:39 PM
hrs edited edge metadata.

I do not think that a way similar to IPv4's DHCP keyword in rc.conf works for DHCPv6 because DHCPv6 has several cases including invocation of DHC by RA or not, stateful or stateless, and IA_NA and/or IA_PD. A typical case is combination of RA for the default router and DHCPv6 for other information. In this case, it is expected in our implementation that DHCPv6 is initiated by rtsold(8) after processing RA. If a system had this patch and an ifconfig line in rc.conf had "DHCP6", DHCP client would be invoked multiple times. Another typical example which many ISPs offer is combination of RA and IA_NA for the uplink interface and IA_PD for the LAN interface. Both will not work well with the "DHCP6" keyword.

Could you please clarify what use case you have in your mind? The definition of "DHCP6" keyword is vague. Although certainly we can have DHCP6 keyword in ifconfig line in rc.conf, accepting RA must still be enabled for the default router in most cases and rtsold_flags="-O script" is the best way to handle most of the scenarios. I do not want people to learn "you should set DHCP6 keyword when you use DHCPv6" because configurations for stateful/stateless and/or IA_NA/IA_PD are totally different from each other and honoring flags in RA, which is the best current practice, requires no special keyword in the ifconfig line.

This revision now requires changes to proceed.Jul 15 2016, 6:39 PM

@hrs : Thanks for your comments. My specific use case is a system that is using stateful DHCPv6. It is entirely possible that I have simply missed other facilities for handling this configuration. I'm not familiar with the rtsold method to which you refer (the -O option). I have played around with this a bit and can't seem to get it to work based on just the man page. Can you point me to some description of how to use the method you reference? I'm happy to abandon this method if there is one already in place that I can get working!

Thanks.

@hrs (or anyone else): Can you supply any answers to the questions I asked wrt your comments? This review has been languishing for a while. If I did take a wrong turn with this change, I'd like to make the appropriate course corrections. Right now I don't think I have the information needed to do so.

Thanks.

@hrs so should one supply DHCP6 RA as arguments and make that work? Or what else?

wblock added inline comments.
share/man/man5/rc.conf.5
2827

The \& is not needed here.