Replacing dnsmasq with unbound+odhcpd

Hi!
I'm trying to replace dnsmasq with unbound and odhcpd.
I followed the steps from here:

It works for the most part but some things aren't working.

  1. Static DHCP Leases, static ip is given out correctly but the configured hostname is not used
  2. DHCP leases disappear from luci status overview page
  3. local domain resolution only works on the router and not on the clients
unbound conf
config unbound
	option dns64 '0'
	option edns_size '1280'
	option extended_stats '0'
	option hide_binddata '1'
	option protocol 'default'
	option rebind_protection '1'
	option root_age '9'
	option ttl_min '120'
	option unbound_control '1'
	option verbosity '1'
	option enabled '1'
	option rebind_localhost '1'
	option validator '1'
	option validator_ntp '1'
	option localservice '1'
	option manual_conf '0'
	option listen_port '53'
	option dhcp_link 'odhcpd'
	option dhcp4_slaac6 '1'
	option domain_type 'static'
	option domain 'lan'
	option add_local_fqdn '3'
	option add_wan_fqdn '0'
	option add_extra_dns '3'
	list trigger_interface 'lan'
	list trigger_interface 'wan'
	option resource 'medium'
	option recursion 'passive'
	option query_minimize '1'
	option query_min_strict '1'

config zone
	option fallback '1'
	option url_dir 'https://www.internic.net/domain/'
	option zone_type 'auth_zone'
	list server 'lax.xfr.dns.icann.org'
	list server 'iad.xfr.dns.icann.org'
	list zone_name '.'
	list zone_name 'arpa.'
	list zone_name 'in-addr.arpa.'
	list zone_name 'ip6.arpa.'
	option enabled '1'
dhcp conf
config odhcpd 'odhcpd'
	option maindhcp '1'
	option leasefile '/tmp/hosts/odhcpd'
	option leasetrigger '/usr/lib/unbound/odhcpd.sh'
	option loglevel '6'

config dhcp 'lan'
	option interface 'lan'
	option start '10'
	option leasetime '1d'
	option force '1'
	option dhcpv4 'server'
	option dhcpv6 'server'
	option ra 'server'
	option ra_management '1'
	option limit '91'

config dhcp 'wan'
	option interface 'wan'
	option ignore '1'

config host
	option name 'pc'
	option ip '10.0.0.x'
	option mac '14:DA:E9:x:x:x'
	option dns '1'
	option hostid '1'
	option duid '0001000xxxxxxxxxxxxxxxxxxxxxxxx'

config host
	option name 'phone'
	option ip '10.0.0.x'
	option mac '84:55:A5:x:x:x'
	option dns '1'

config host
	option name 'cam'
	option ip '10.0.0.x'
	option mac 'b0:c5:54:x:x:x'
	option dns '1'

config host
	option name 'tv'
	option ip '10.0.0.x'
	option mac '00:e0:91:x:x:x'0
	option dns '1'

Someone has an idea?

// edit
When i run the netalyzr app from http://netalyzr.icsi.berkeley.edu/
The app telling the ipv6 server can't handle packet larger then 1280 bytes.
I guess because of the edns_size option.
However for ipv6 no errors are reported.
Also ipv6 reverse lookups don't work. But i had this problem also with dnsmasq.
I'm not sure if this a bug in the app or a problem with my setup.

3. I had to add local domain name on the clients as additionally search domain either in GUI or resolv.conf / dhcp.conf

Thanks for your input.

Local domain name resolution suddenly started to work after some time.
I don't know why.
However i switched over to the following setup:
unbound as main dns server + dnsmasq for local domain name resolution + dhcpv4
Because dnsmasq seems better integrated into luci.

Now i have a different problem with uhttpd.
It doesn't bind to the specific ipv6 address at startup.
I have to restart it manually to make it work.

Dnsmasq treats static IP like preassigned leases and attached clients generate a lease entry with infinite duration. Odhcpd may be assuming it isnt technically a lease and not create an entry. This depends on if the host solicits, renews, or confirms its IP. Unbound scripts will pick up what odhcpd writes in the lease file.