Re: DHCPv6 IA_PD - how-to

From: Karl Denninger <karl_at_denninger.net>
Date: Wed, 24 Jul 2024 01:48:15 UTC
On 7/23/2024 13:23, Roy Marples wrote:
> Hi
>
> ---- On Tue, 23 Jul 2024 18:11:18 +0100cross+freebsd@distal.com  wrote ----
>
>
>> tl;dr; anyone have a good IPv6 network setup based on an IA_PD from
>> their provider? Any details or advice to share?
>>
>> The current router is x86_64 FreeBSD 11.x, but I’m building the FreeBSD
>> 14.1 system to replace it now. What to install on it for this is a pending
>> question.
>>
>> Hello all. I have been running a FreeBSD router for years and years. I have
>> this year been trying to figure out how to use an IPv6 allocation from my
>> provider (Verizon FiOS). They are using the PD feature of DHCPv6 to give
>> a delegation, and not given an address (NA) when asked.
>>
>> There are, unfortunately, _many_ programs that can help me with this,
>> and google yielded no clear best-path. I have not been able to get
>> ISC dhclient to work for me so far, and I did get dhcpcd working, but
>> only with command-line options rather than config file, and that
>> application doesn’t have the smarts to configure things based on
>> the PD, so I’d have to code all of that myself.
>
> I'm upstream for dhcpcd.
> All options related to PD are configurable in the dhcpcd.conf(5) configuration file. There are also some examples.
>
>
> What are you struggling with specifically?
>
>
> Roy

Hi Roy;

I'd like to replicate this that is currently being sent up via dhcp6c, 
which is not quite-clear to me from the docs on how to do that.

#
# This configuration will attempt to get /56 or a /60 from the
# ISP and assign a /64 internally.
# Note that if you have a /60 you can have four /64s defined; if you have a
# /56 then obviously you can have 16 internal networks.  For most "house"
# size networks four separate delineations is enough, for most "moderate"
# sized corporate environments 16 is enough.  BE AWARE THAT THE SLA-LEN MUST
# MATCH THE DIFFERENCE BETWEEN THE LOCAL PREFIX AND THE REMOTE ONE!  If
# you ask for a /56 then sla-len is 8, if you ask for a /60 then the sla-len
# is 4 (difference between the requested prefix length and 64, 
respectively.)
#

interface igb0 {
      send ia-pd 1;
      send ia-na 1;
      send rapid-commit;
      script "/usr/local/etc/dhcp6c.script";
};

id-assoc na 1 {

};

id-assoc pd 1 {
   prefix ::/56 1800;

   prefix-interface igb1 {
     sla-id 0;
     sla-len 8;
   };

};

igb1 is the "normal" internal network; igb0 is the external one.

The ISP hands out /56s (although at one time I could choose either a /56 
or /60); I have routines in the script file that then generate dynamic 
updates for DNS so the gateway has its pointers updated if/when the 
address changes (I run my own zones)

Its not entirely-clear how to replicate that in the config file for 
dhcpcd; I can figure out the script I'm sure, but the base config is not 
clear to me.

-- 
Karl Denninger
karl@denninger.net
/The Market Ticker/
/[S/MIME encrypted email preferred]/