vm-admin:~ # dig router; <<>> DiG 9.16.6 <<>> router;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20656;; flags: qr aa rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 1232;; QUESTION SECTION:;router. IN A;; ANSWER SECTION:router. 3600 IN A 10.1.100.1router. 3600 IN A 10.1.200.1router. 3600 IN A 10.2.30.1router. 3600 IN A 10.2.20.1router. 3600 IN A 10.2.10.1router. 3600 IN A 10.1.1.1router. 3600 IN A 10.2.1.1;; Query time: 0 msec;; SERVER: 10.1.1.1#53(10.1.1.1);; WHEN: Sun Jul 17 13:53:39 EDT 2022;; MSG SIZE rcvd: 163
That's a feature of the Unbound integration in OPNsense. I use BIND and manage my zones manually for that reason among others.
You probably don't need a static lease, but you can use a host override. If it's a name that does not yet exist.