<div dir="ltr"><p>Hi Slawek,</p>
<p>Thanks for the detailed explanation. I checked my hosts database and I can now confirm the following:</p>
<ol>
<li>
<p>The subnet 1XX.9.3.0/24 (id=4) currently has 57 host reservations in the hosts database.</p>
</li>
<li>
<p>The dynamic pool contains 5 addresses (1XX.9.3.250–254).</p>
</li>
<li>
<p>This matches exactly what Stork reports as total-addresses = 62.</p>
</li>
<li>
<p>There are no hosts with a NULL dhcp4_subnet_id, and no additional reservations outside this subnet.</p>
</li>
</ol>
<p>So it appears that Stork is correctly counting only:</p>
<ul>
<li>
<p>the addresses in the dynamic pool, and</p>
</li>
<li>
<p>the explicit reservations that already exist in the hosts database for this subnet.</p>
</li>
</ul>
<p>Since I only create reservations manually when they are needed, most addresses in the /24 do not exist yet as Kea reservations. I now understand why Stork does not include them in the statistics.</p>
<p>Just to confirm: is this the expected behavior in Stork — that the subnet statistics include only pool addresses and existing reservations, and do not consider the rest of the subnet unless those addresses are explicitly configured?</p>
<p>Thanks again for your help,<br>
Oliver</p><p><br></p></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">El lun, 8 dic 2025 a las 10:10, Slawek Figiel (<<a href="mailto:slawek@isc.org">slawek@isc.org</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Oliver!<br>
<br>
Stork differentiates between three types of host reservations:<br>
<br>
1. Global reservations - the reservations defined in the top-level <br>
"reservations" node.<br>
2. Subnet in-pool reservations - the reservations defined in the <br>
"subnetX" node that are included by any pool of this subnet<br>
3. Subnet out-of-pool reservations - the reservations defined in the <br>
"subnetX" node that are not included by any pool of this subnet<br>
<br>
The subnet statistics count the addresses from all pools of this subnet <br>
and all reservations defined in this subnet. However, it doesn't count <br>
global reservations, even if the reserved address belongs to the subnet.<br>
<br>
I understand that you have a pool with 4 addresses and 251 reservations.<br>
<br>
Could you please tell me more about your setup? How did you specify the <br>
reservations in Kea?<br>
<br>
1. Are they specified in the subnetX node or in the top-level node <br>
(global reservations)?<br>
2. Did you specify them in the JSON file or in the hosts database?<br>
3. Is there anything special with 58 reservations that are already <br>
counted in the "total-addresses" statistic?<br>
4. Please use kea-shell to send the "statistic-get-all" command to Kea. <br>
Does the output show incorrect/unexpected values?<br>
<br>
Regards,<br>
Slawek Figiel<br>
<br>
<br>
On 12/7/25 8:40 PM, Oliver wrote:<br>
> Hi everyone,<br>
> <br>
> I’m running Kea DHCP4 together with Stork, and I’ve encountered <br>
> something I don’t fully understand regarding how Stork calculates the <br>
> total number of addresses in a subnet.<br>
> <br>
> I have a *1XX.9.3.0/24* subnet configured, with only a very small <br>
> dynamic pool:<br>
> <br>
> |pools: - pool: 1XX.9.3.250-1XX.9.3.254 |<br>
> <br>
> All other addresses in the /24 are used exclusively as *static host <br>
> reservations*.<br>
> <br>
> However, Stork reports the following:<br>
> <br>
>   *<br>
> <br>
>     *Total addresses:* 62<br>
> <br>
>   *<br>
> <br>
>     *Assigned:* 51<br>
> <br>
>   *<br>
> <br>
>     *Free:* 11<br>
> <br>
>   *<br>
> <br>
>     *Usage:* 82.3% (yellow warning shown)<br>
> <br>
> My question is:<br>
> <br>
> <br>
>       *Why does Stork calculate only 62 total usable addresses for this<br>
>       subnet, when the subnet is actually a full /24?*<br>
> <br>
> I understand that my dynamic pool only contains 5 addresses, but I <br>
> expected Stork to consider the rest of the /24 as part of the subnet, <br>
> since I use those addresses for reservations.<br>
> <br>
> Is this the expected behavior?<br>
> Does Stork count only “usable” addresses as those inside dynamic pools <br>
> plus explicitly configured reservations?<br>
> Is there a recommended way to have Stork recognize the entire /24 range <br>
> so it doesn’t trigger a high-usage warning?<br>
> <br>
> Operationally everything works fine — I can continue creating <br>
> reservations without any issue — but I’d like to confirm whether this <br>
> behavior is normal or whether I might be missing something in the <br>
> configuration.<br>
> <br>
> Thanks in advance,<br>
> Oliver<br>
> <br>
> <br>
<br>
</blockquote></div>