KEA is still a mess IMHO

Started by JamesFrisch, May 06, 2026, 09:34:40 PM

Previous topic - Next topic
I know a lot of work went into KEA and I truly believe that a lot of bugs were ironed out with the recent release.
Still, KEA is IMHO not polished and production ready.

One example:
1. You have a static IPv4 reservation (based on MAC)
2. You create a IPv6  reservation, based on the same MAC

KEA will now ignore your IPv4 reservation. Yes, it worked before, but now no longer works and instead will get an IPv4 from the DHCPv4 range, while IPv6 will do the reservation correctly.

QuoteBut James, you should DUID and not MAC for IPv6
Fine, but then it should not use MAC when I click on the "add static lease" button in the lease tab, but DUID instead.
Also, since the newest update, I can no longer see the DUIDs anymore on OPNsense?


So if you think just because ICE is eol that you should switch to KEA, don't! Don't make the same mistake I did.
There is still no need to make the switch. At least not for now.

Is this about OPNsense core integration or Kea (DHCPv6) in general? I'm unable to tell.


Cheers,
Franco

Quote from: franco on May 07, 2026, 10:46:17 AMI'm unable to tell.

Me too ;) no seriously, I have this issues with OPNsense, but of course it could also be KEA that is the root issue.

I do not believe KEA is the problem; rather, it is DHCPv6. Centralized address allocation runs counter to the design of IPv6, which is predicated on autonomous address assignment.
However, this presents a challenge for the network administrator who wishes to manage and structure their network in distinct zones.
One has two options: either continue using IPv4 for the internal network—retaining the familiar segmentation based on IP addresses—and restrict IPv6 usage solely to external traffic; or, structure the network not by IP addresses, but by interfaces (VLANs), groups, or segments. Given the immense number of potential addresses enabled by IPv6, one could theoretically assign each individual device its own interface with a unique address (via Prefix Delegation down to the host level).
Those who truly leverage IPv6 manage traffic at the boundaries of their network segments (via firewalls), rather than through the micromanagement of static leases.
Supermicro M11SDV-4C-LN4F AMD EPYC 3151 4x 2.7GHz RAM 8GB DDR4-2666 SSD 250GB

That is a little bit off topic, because my issue is more about OPNsense offerin MAC based reservations, which according to some folks on github is against IPv6 philosophy. And because of that, they have not accounted for certain situations and you run into errors.

Maybe I am misunderstanding you, but IMHO your idea falls flat, because I only need static leases for services. And for that I need a static IPv6.


I can't say to NGINX:
My static /48 prefix is 2000:2000:2000::, my service is in the vlan 30, which has the prefix 2000:2000:2000:30:: so proxy pass to 2000:2000:2000:30:: and somewhere in there is my destination, go find it.

Essentially with SLAAC (Router Advertisements) most devices should receive an EUI-64 based "management" IP address, that is stable (based on device MAC address) and static, which can be used for inbound connections.

So DHCPv6 IA_NA address is generally not that important.

As I said on github, the duid missing is a small bug right now that has been fixed in the PR I mentioned there.
Hardware:
DEC740

I don't want to be misunderstood—I am far from being a networking expert. Rather, I am grappling with the very same issues regarding the implementation of fixed IPv6 assignments, network segmentation, and access control. In that sense, I used this thread as an opportunity to better understand—through discussion—how our specific problem might be solved without forcing the IPv6 structure into a straitjacket that runs counter to its fundamental design principles. Couldn't we simply assign a ULA to Nginx instead of relying on a static assignment via DHCPv6? In the IPv6 world, devices are capable of having—and indeed typically do have—more than one address: a GUA assigned via Router Advertisement to enable communication with the outside world, and a ULA for internal purposes, ensuring the device can be reliably located within the local network.
Supermicro M11SDV-4C-LN4F AMD EPYC 3151 4x 2.7GHz RAM 8GB DDR4-2666 SSD 250GB

Quote from: JamesFrisch on Today at 07:33:12 AMI can't say to NGINX:
My static /48 prefix is 2000:2000:2000::, my service is in the vlan 30, which has the prefix 2000:2000:2000:30:: so proxy pass to 2000:2000:2000:30:: and somewhere in there is my destination, go find it.

All my servers use SLAAC. The addresses are stable unless I change the MAC address of the server for some reason. I can then point Caddy (or NginX in your case) at these addresses. DHCPv6 is rarely needed.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Today at 08:34:31 AM #8 Last Edit: Today at 08:38:38 AM by meyergru
Exactly. It is also true that any IPv6 device can have more than one address.

Thus, for the purposes of reachability, you can always have the EUI64-derived addresses. Even in the case of dynamic prefixes, you can use OpnSense's dynamic DNS facilities to handle any EUI-64 in lieu of the device.

If need be, you can use ULAs with fixed MAC- or DUID-derived lower 64 bits for local addressing (with the caveat that IPv4 will be preferred if it exists).

For egress, the actual IPv6 being used is irrelevant and many people even prefer to use IPv6 privacy extensions.

Thus, Patrick is correct in saying that for the most part, DHCPv6 is unneeded, which is why I advise against it here and why I do not notice any Kea DHCPv6 shortcomings - I do not use that for many reasons given in the article.

Maybe the underlying problem is that people try to apply IPv4 concepts to IPv6.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 450 up, Bufferbloat A+