Requesting a ipv6 prefix delegation via a conf file

VTwin Farriers vtwin at cox.net
Tue Dec 21 12:27:40 UTC 2021


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 at 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.htm>


More information about the dhcp-users mailing list