[Kea-users] Handling of Prefixdelegation hints
Ede Wolf
listac at nebelschwaden.de
Sun Aug 11 21:22:27 UTC 2024
Hello Arren,
thank you very much for your reply. As for confusion, we are in the same
boat.
In deed, the server logs do claim, the client is requesting the aa80
prefix, but the tcpdump proves otherwise, as I have posted an excerpt of.
And the configuration of the client goes d'accord with the contents of
the tcpdump - both of which contradict the server message.
Here is a snipped from the client config, that, again, seems to get
mirrored with the tcpdump, from systemd-networkd, in case you are
familiar with its syntax:
[DHCPv6]
UseAddress=true
UseDelegatedPrefix=true
PrefixDelegationHint=2001:dead:beef:aa00::/57
...
And, for better readability, here again the snippet from wireshark:
A Prefix
Option: IA Prefix (26)
Length: 25
Preferred lifetime: 0
Valid lifetime: 0
Prefix length: 57
Prefix address: 2001:dead:beef:aa00::
So in fact, the only one who believes, that the aa80 prefix has been
requested, is the server.
And it does not think this way everytime anyway. If above client is the
first one to request a lease (after a full cleanup), it is presented the
aa00 net - with an according hint log. As to be expected.
If another machine came before, this one will get's the aa80 prefix. The
third machine would be assigned the aa00 net again. And so on.
So basically, in this example the server is ignoring the hint every
other time a lease gets requested and is writing into its logs, whatever
subnet it feels it wants to delegate.
In other words: the hint message the server log is writing does not
actually correspond to what the client packet contains as a prefix
request, but to what subnet the server feels it wants to delegate this
time.
Hence my question. And my confusion. But I am hoping, I have been able
to make my issue clearer.
I am aware, that honoring hints is no requirement and optional, but it
would be helpful to know, wether this behaviour is intented or wether we
might have a configuration issue.
If it is works as designed, then this log entry:
... and hint=2001:dead:beef:aa80::
is misleading at best as it almost surely does not refer to the hint
send by the client, unless I have missed something fundamentally. Not
unlikely, though.
As a side note, we've witnessed this behaviour with kea 2.6.1 on FreeBSD
as well.
Thank again for your time.
Ede
Am 10.08.24 um 17:14 schrieb Darren Ankney:
> Hi Ede,
>
> I am not sure I understand what you are asking here but if the client
> is being allocated 2001:dead:beef:aa80::/57 this should be no
> surprise. This prefix pool:
>
> "pd-pools": [
> { "prefix": "2001:dead:beef:aa00::",
> "prefix-len": 56,
> "delegated-len": 57
> } ]
>
> contains two /57 prefix:
>
> 2001:dead:beef:aa00::/57
> 2001:dead:beef:aa80::/57
>
> The client seems to have sent a hint for 2001:dead:beef:aa80:: as
> shown in this log message:
>
> DEBUG DHCP6_PROCESS_IA_PD_REQUEST duid=[00:..], tid=0x..: server is
> processing IA_PD option with iaid=.. and hint=2001:dead:beef:aa80::
>
> Then you said:
>
> "And of course that upper aa80 net is finally being delegated, despite
> the client requesting the lower of the two."
>
> But that doesn't seem to be the prefix for which the client sent a
> hint as was shown in the provided log message.
>
> I am confused.
>
> Thank you,
> Darren Ankney
>
> On Thu, Aug 8, 2024 at 6:59 AM Ede Wolf <listac at nebelschwaden.de> wrote:
>>
>> Hello,
>>
>> new to kea I am having a /56 network, that is being delegated downstream
>> by kea in two /57 nets.
>> Kea seems to assign those two subnets in a round robin fashion to
>> clients, so to have a group of clients receiving a certain subnet, I am
>> using prefix hints containing the netid desired with the /57 length.
>>
>> According to my limited understanding of wireshark, those hints are
>> being sent by the client, but seemingly ignored by kea.
>>
>> The question is, is this likely to be a misconfiguration or sloppieness
>> on my side or just works as designed? I have found astonishingly little
>> about prefix hints and kea, but maybe my google skills lack as well.
>>
>> I am running kea-2.2 as shipped by debian 12
>>
>> From the client solicit:
>> A Prefix
>> Option: IA Prefix (26)
>> Length: 25
>> Preferred lifetime: 0
>> Valid lifetime: 0
>> Prefix length: 57
>> Prefix address: 2001:dead:beef:aa00::
>>
>>
>> But from the server logs:
>> DEBUG DHCP6_PROCESS_IA_PD_REQUEST duid=[00:..], tid=0x..: server is
>> processing IA_PD option with iaid=.. and hint=2001:dead:beef:aa80::
>>
>>
>> And of course that upper aa80 net is finally being delegated, despite
>> the client requesting the lower of the two. And this is a
>> testenvironment, so the pools are certainly not exhausted. Would be kind
>> of impossible anyway.
>>
>> The subnet configuration is pretty much bare minimum:
>>
>> {
>> "subnet": "fde1:dead:beef:16::/64",
>> "interface": "eth0",
>> "id": 11,
>> "pools": [ { "pool": "fde1:dead:beef:16::12 -
>> fde1:dead:beef:16::ffba" } ],
>> "pd-pools": [
>> { "prefix": "2001:dead:beef:aa00::",
>> "prefix-len": 56,
>> "delegated-len": 57
>> } ]
>> }
>>
>>
>> Thanks
>>
>> Ede
>> --
>> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
>>
>> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>>
>> Kea-users mailing list
>> Kea-users at lists.isc.org
>> https://lists.isc.org/mailman/listinfo/kea-users
More information about the Kea-users
mailing list