Send dhcp-users mailing list submissions to
        dhcp-users@lists.isc.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.isc.org/mailman/listinfo/dhcp-users
or, via email, send a message with subject or body 'help' to
        dhcp-users-requ...@lists.isc.org

You can reach the person managing the list at
        dhcp-users-ow...@lists.isc.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of dhcp-users digest..."


Today's Topics:

   1. Requesting a ipv6 prefix delegation via a conf file
      (VTwin Farriers)
   2. Re: Requesting a ipv6 prefix delegation via a conf file
      (Glenn Satchell)


----------------------------------------------------------------------

Message: 1
Date: Tue, 21 Dec 2021 07:27:40 -0500 (EST)
From: VTwin Farriers <vt...@cox.net>
To: dhcp-users@lists.isc.org
Subject: Requesting a ipv6 prefix delegation via a conf file
Message-ID: <1431413851.2614740.1640089660...@myemail.cox.net>
Content-Type: text/plain; charset="utf-8"

My ISP requires that I send a prefix length hint when negotiating a lease in 
order to get anything other than /64

I am using a Centos 8 machine as a router. Centos uses NetworkManager by 
default to manage its network connections. I have changed NetworkManager's 
default dhcp client from its internal client to dhclient because the internal 
client does not handle prefix delegation. Unfortunately, NetworkManager does 
not allow one to pass parameters to the command-line to control the exact 
dhclient command-line syntax. Thus, it is not possible for me to tell 
NetworkManager to include "--prefix-len-hint 60" on the command line when it 
involkes dhclient.

Without the --prefix-len-hint syntax on the command line, I get assigned a /64 
by default.

NetworkManager *will* create a dhclient.conf file containing various options 
dhclient will use to create its request and interpret responses.

Is there a dhclient.conf option which has the same effect as --prefix-len-hint ?

i tried 

send dhcp6.ia_pd 60

and that did not work. There does not seem to be any other parameter within the 
dhclient.conf syntax which will allow the user to control a prefix-length-hint 
without manually specifying it on the command line.

Without --prefix-len-hint 60, this is the default dhclient command sent by 
NetworkManager

/sbin/dhclient -d -q -6 -N -P -sf /usr/libexec/nm-dhcp-helper -pf 
/run/NetworkManager/dhclient6-enp0s25.pid -lf 
/var/lib/NetworkManager/dhclient6-9f97bb2a-0d9b-30fc-944a-480f62373eb7-enp0s25.lease
 -cf /var/lib/NetworkManager/dhclient6-enp0s25.conf enp0s25

which yields from my ISP:

PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT: X-- IA_NA xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: X-- IA_PD xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: Solicit on enp0s25, interval 1020ms.
XMT: Forming Solicit, 1020 ms elapsed.
XMT: X-- IA_NA xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: X-- IA_PD xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: Solicit on enp0s25, interval 2130ms.
XMT: Forming Solicit, 3150 ms elapsed.
XMT: X-- IA_NA xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: X-- IA_PD xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: Solicit on enp0s25, interval 4080ms.
RCV: Advertise message on enp0s25 from fe80::xxxx:xxxx:xxxx:xxxx.
RCV: X-- IA_NA xx:xx:xx:xx
RCV: | X-- starts 1640085184
RCV: | X-- t1 - renew +1800
RCV: | X-- t2 - rebind +2880
RCV: | X-- [Options]
RCV: | | X-- IAADDR 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
RCV: | | | X-- Preferred lifetime 3600.
RCV: | | | X-- Max lifetime 3600.
RCV: X-- IA_PD xx:xx:xx:xx
RCV: | X-- starts 1640085184
RCV: | X-- t1 - renew +1800
RCV: | X-- t2 - rebind +2880
RCV: | X-- [Options]
RCV: | | X-- IAPREFIX 2601:xxxx:xxxx:xxxx::/64
RCV: | | | X-- Preferred lifetime 3600.
RCV: | | | X-- Max lifetime 3600.
RCV: X-- Server ID: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
RCV: Advertisement immediately selected.

As you can see, I get a /64. However, if I manually execute the same command 
with a --prefix-len-hint 60, I will get a /60:

[root@router NetworkManager]# /sbin/dhclient -d -v -6 -N -P --prefix-len-hint 
60 -sf /usr/libexec/nm-dhcp-helper -pf 
/run/NetworkManager/dhclient6-enp0s25.pid -lf 
/var/lib/NetworkManager/dhclient6-9f97bb2a-0d9b-30fc-944a-480f62373eb7-enp0s25.lease
 -cf /var/lib/NetworkManager/dhclient6-enp0s25.conf enp0s25
Internet Systems Consortium DHCP Client 4.4.2-P1
[...snip...]
PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT: X-- IA_NA xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: X-- IA_PD xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: | | X-- Request prefix ::/60.
XMT: Solicit on enp0s25, interval 1070ms.
XMT: Forming Solicit, 1070 ms elapsed.
XMT: X-- IA_NA xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: X-- IA_PD xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: | | X-- Request prefix ::/60.
XMT: Solicit on enp0s25, interval 2200ms.
XMT: Forming Solicit, 3270 ms elapsed.
XMT: X-- IA_NA xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: X-- IA_PD xx:xx:xx:xx
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: | | X-- Request prefix ::/60.
XMT: Solicit on enp0s25, interval 4320ms.
RCV: Advertise message on enp0s25 from fe80::xxxx:xxxx:xxxx:xxxx.
RCV: X-- IA_NA xx:xx:xx:xx
RCV: | X-- starts 1640085505
RCV: | X-- t1 - renew +1800
RCV: | X-- t2 - rebind +2880
RCV: | X-- [Options]
RCV: | | X-- IAADDR 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
RCV: | | | X-- Preferred lifetime 3600.
RCV: | | | X-- Max lifetime 3600.
RCV: X-- IA_PD xx:xx:xx:xx
RCV: | X-- starts 1640085505
RCV: | X-- t1 - renew +1800
RCV: | X-- t2 - rebind +2880
RCV: | X-- [Options]
RCV: | | X-- IAPREFIX 2601:xxxx:xxxx:xxxx::/60
RCV: | | | X-- Preferred lifetime 3600.
RCV: | | | X-- Max lifetime 3600.
RCV: X-- Server ID: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
RCV: Advertisement immediately selected.


Is there a dhclient.conf option I am missing somewhere in the documentation 
which will accomplish this?


If not, would it be possible to add a conf file option, such as "send 
dhcp6.prefix-length-hint 60" to allow the user to control this behavior via the 
configuration file rather than the command line?


thanks,

vin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://lists.isc.org/pipermail/dhcp-users/attachments/20211221/3ba0f8cd/attachment-0001.htm>

------------------------------

Message: 2
Date: Wed, 22 Dec 2021 17:13:08 +1100
From: Glenn Satchell <glenn.satch...@uniq.com.au>
To: Users of ISC DHCP <dhcp-users@lists.isc.org>
Subject: Re: Requesting a ipv6 prefix delegation via a conf file
Message-ID: <51fb6ad6381fd35683048355d48c3...@uniq.com.au>
Content-Type: text/plain; charset="us-ascii"; Format="flowed"

Hi Vin,

Have you tried 'send dhcp6.ia-prefix 60'.I'm not sure it will do what 
you want - dhcpd.ia-pd looks like what you want but as you say it 
doesn't work as expected. Can you use snoop or tcpdump to see what is 
being sent to the upstream dhcp server?

Otherwise I'd suggest looking at the source to see what internal options 
gets set by the command line and see if there is a dhclient.conf option 
to match.

option dhcp6.ia-pd string;

The ia-pd option is manufactured by clients and servers to create a 
Prefix Delegation binding - to delegate an IPv6 prefix to the client.
It is not directly edited in dhcpd.conf(5) or dhclient.conf(5), but 
rather is manufactured and consumed by the software.

option dhcp6.ia-prefix string;

The ia-prefix option is placed inside ia-pd options in order to identify 
the prefix(es) allocated to the client. It is not directly
edited in dhcpd.conf(5) or dhclient.conf(5), but rather is manufactured 
and consumed by the software.

The ultimate hack is to rename /sbin/dhclient to say dhclient.exe and 
create a script with the original name that contains the extra command 
line options, eg something like this - I haven't tested it, but hope it 
gives you a hint.

#! /bin/sh

exec $0 $@ --prefix-len-hint 60

regards,

Glenn

On 2021-12-21 23:27, VTwin Farriers wrote:

> My ISP requires that I send a prefix length hint when negotiating a 
> lease in order to get anything other than /64
> 
> I am using a Centos 8 machine as a router. Centos uses NetworkManager 
> by default to manage its network connections. I have changed 
> NetworkManager's default dhcp client from its internal client to 
> dhclient because the internal client does not handle prefix delegation. 
> Unfortunately, NetworkManager does not allow one to pass parameters to 
> the command-line to control the exact dhclient command-line syntax. 
> Thus, it is not possible for me to tell NetworkManager to include 
> "--prefix-len-hint 60" on the command line when it involkes dhclient.
> 
> Without the --prefix-len-hint syntax on the command line, I get 
> assigned a /64 by default.
> 
> NetworkManager *will* create a dhclient.conf file containing various 
> options dhclient will use to create its request and interpret 
> responses.
> 
> Is there a dhclient.conf option which has the same effect as 
> --prefix-len-hint ?
> 
> i tried
> 
> send dhcp6.ia_pd 60
> 
> and that did not work. There does not seem to be any other parameter 
> within the dhclient.conf syntax which will allow the user to control a 
> prefix-length-hint without manually specifying it on the command line.
> 
> Without --prefix-len-hint 60, this is the default dhclient command sent 
> by NetworkManager
> 
> /sbin/dhclient -d -q -6 -N -P -sf /usr/libexec/nm-dhcp-helper -pf 
> /run/NetworkManager/dhclient6-enp0s25.pid -lf 
> /var/lib/NetworkManager/dhclient6-9f97bb2a-0d9b-30fc-944a-480f62373eb7-enp0s25.lease
>  
> -cf /var/lib/NetworkManager/dhclient6-enp0s25.conf enp0s25
> 
> which yields from my ISP:
> 
> PRC: Soliciting for leases (INIT).
> XMT: Forming Solicit, 0 ms elapsed.
> XMT: X-- IA_NA xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: X-- IA_PD xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: Solicit on enp0s25, interval 1020ms.
> XMT: Forming Solicit, 1020 ms elapsed.
> XMT: X-- IA_NA xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: X-- IA_PD xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: Solicit on enp0s25, interval 2130ms.
> XMT: Forming Solicit, 3150 ms elapsed.
> XMT: X-- IA_NA xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: X-- IA_PD xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: Solicit on enp0s25, interval 4080ms.
> RCV: Advertise message on enp0s25 from fe80::xxxx:xxxx:xxxx:xxxx.
> RCV: X-- IA_NA xx:xx:xx:xx
> RCV: | X-- starts 1640085184
> RCV: | X-- t1 - renew +1800
> RCV: | X-- t2 - rebind +2880
> RCV: | X-- [Options]
> RCV: | | X-- IAADDR 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
> RCV: | | | X-- Preferred lifetime 3600.
> RCV: | | | X-- Max lifetime 3600.
> RCV: X-- IA_PD xx:xx:xx:xx
> RCV: | X-- starts 1640085184
> RCV: | X-- t1 - renew +1800
> RCV: | X-- t2 - rebind +2880
> RCV: | X-- [Options]
> RCV: | | X-- IAPREFIX 2601:xxxx:xxxx:xxxx::/64
> RCV: | | | X-- Preferred lifetime 3600.
> RCV: | | | X-- Max lifetime 3600.
> RCV: X-- Server ID: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
> RCV: Advertisement immediately selected.
> 
> As you can see, I get a /64. However, if I manually execute the same 
> command with a --prefix-len-hint 60, I will get a /60:
> 
> [root@router NetworkManager]# /sbin/dhclient -d -v -6 -N -P 
> --prefix-len-hint 60 -sf /usr/libexec/nm-dhcp-helper -pf 
> /run/NetworkManager/dhclient6-enp0s25.pid -lf 
> /var/lib/NetworkManager/dhclient6-9f97bb2a-0d9b-30fc-944a-480f62373eb7-enp0s25.lease
>  
> -cf /var/lib/NetworkManager/dhclient6-enp0s25.conf enp0s25
> Internet Systems Consortium DHCP Client 4.4.2-P1
> [...snip...]
> PRC: Soliciting for leases (INIT).
> XMT: Forming Solicit, 0 ms elapsed.
> XMT: X-- IA_NA xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: X-- IA_PD xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: | | X-- Request prefix ::/60.
> XMT: Solicit on enp0s25, interval 1070ms.
> XMT: Forming Solicit, 1070 ms elapsed.
> XMT: X-- IA_NA xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: X-- IA_PD xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: | | X-- Request prefix ::/60.
> XMT: Solicit on enp0s25, interval 2200ms.
> XMT: Forming Solicit, 3270 ms elapsed.
> XMT: X-- IA_NA xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: X-- IA_PD xx:xx:xx:xx
> XMT: | X-- Request renew in +3600
> XMT: | X-- Request rebind in +5400
> XMT: | | X-- Request prefix ::/60.
> XMT: Solicit on enp0s25, interval 4320ms.
> RCV: Advertise message on enp0s25 from fe80::xxxx:xxxx:xxxx:xxxx.
> RCV: X-- IA_NA xx:xx:xx:xx
> RCV: | X-- starts 1640085505
> RCV: | X-- t1 - renew +1800
> RCV: | X-- t2 - rebind +2880
> RCV: | X-- [Options]
> RCV: | | X-- IAADDR 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
> RCV: | | | X-- Preferred lifetime 3600.
> RCV: | | | X-- Max lifetime 3600.
> RCV: X-- IA_PD xx:xx:xx:xx
> RCV: | X-- starts 1640085505
> RCV: | X-- t1 - renew +1800
> RCV: | X-- t2 - rebind +2880
> RCV: | X-- [Options]
> RCV: | | X-- IAPREFIX 2601:xxxx:xxxx:xxxx::/60
> RCV: | | | X-- Preferred lifetime 3600.
> RCV: | | | X-- Max lifetime 3600.
> RCV: X-- Server ID: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
> RCV: Advertisement immediately selected.
> 
> Is there a dhclient.conf option I am missing somewhere in the 
> documentation which will accomplish this?
> 
> If not, would it be possible to add a conf file option, such as "send 
> dhcp6.prefix-length-hint 60" to allow the user to control this behavior 
> via the configuration file rather than the command line?
> 
> thanks,
> 
> vin
> 
> _______________________________________________
> ISC funds the development of this software with paid support 
> subscriptions. Contact us at https://www.isc.org/contact/ for more 
> information.
> 
> dhcp-users mailing list
> dhcp-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://lists.isc.org/pipermail/dhcp-users/attachments/20211222/bf54442c/attachment.htm>

------------------------------

Subject: Digest Footer

_______________________________________________
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

dhcp-users mailing list
dhcp-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/dhcp-users


------------------------------

End of dhcp-users Digest, Vol 158, Issue 7
******************************************

Reply via email to