Hi,just don't use ip for reservations from the dynamic range. This can lead to such effects.KH
If you consider this a serious flaw then feel free to file a bug report with the ISC. There is nothing the OPNSense project can change here. The DHCP server is a 3rd party product. It's been behaving like this for decades. Simply define a limited dynamic range and put fixed assignments outside.
RESERVED LEASESIt’s often useful to allocate a single address to a single client, in approximate perpetuity. Host statements with fixed-address clauses exist to a certain extent to serve this purpose, but because host statements are intended to approximate ´static configuration´, they suffer from not being referenced in a littany of other Server Services, such as dynamic DNS, failover, ´on events´ and so forth.If a standard dynamic lease, as from any range statement, is marked ´reserved´, then the server will only allocate this lease to the client it is identified by (be that by client identifier or hardware address).In practice, this means that the lease follows the normal state engine, enters ACTIVE state when the client is bound to it, expires, or is released, and any events or services that would normally be supplied during these events are processed normally, as with any other dynamic lease. The only difference is that failover servers treat reserved leases as special when they enter the FREE or BACKUP states - each server applies the lease into the state it may allocate from - and the leases are not placed on the queue for allocation to other clients. Instead they may only be ´found´ by client identity. The result is that the lease is only offered to the returning client.Care should probably be taken to ensure that the client only has one lease within a given subnet that it is identified by.Leases may be set ´reserved´ either through OMAPI, or through the ´infinite-is-reserved´ configuration option (if this is applicable to your environment and mixture of clients).It should also be noted that leases marked ´reserved´ are effectively treated the same as leases marked ´bootp´.
I believe the standard response has always been to check your config as the leasing of out-of-pool addresses is for tuning (reservations are not checked). IIRC, configuring dhcpd to use global reservations excludes the possibility of using in-subnet reservations where the default reservation-mode is to permit both in-pool and out-of-pool reservations.
lease 10.0.0.1 { binding state active; reserved; hardware ethernet 01:23:45:67:89:ab;}