How does a router broadcast DHCP clients' hostnames?

I'm experiencing significantly different behavior of various (non-OpenWrt) routers with regards to discoverability of hosts in the local network, compared to routers I've used in the past, running OpenWrt and Tomato.

For some reason, those routers kind of work fine for Windows clients, but they don't for Linux hosts.

For example, I've used a TP-Link TL-WR1043ND (v1.0) with a recent version of OpenWrt last summer, and a Linksys WRT54GL with Tomato firmware before it, who allowed any (DHCP client) host in the network be resolved by their hostname, e.g. I could access the MFP network printer by its hostname clx3175fw-laser. Same for any other device that would join the local network and obtained a dynamic IP address.

When I use other routers, e.g. a UPC Connect Box or a Synology RT2600ac router, then GNU/Linux clients don't easily resolve hosts in the local network. If at all, host are only reachable via their FQDN (e.g. foobar.local or foobar.lan).

Related reports are found on the Internet (and people blame it on the client, which I think is misleading or actually wrong from my experience). I'll post links later as I'm not allowed to post more than 2 links as a new forum user. :-/

  • Can someone explain how DHCP and/or DNS is configured in OpenWrt so that it works so well?
  • What do the other routers do wrong? Most of them will probably also run sort of Linuxy open source software components, won't they?

Related reports found on the Internet (people blaming it on the client):

Working devices:

"Broken" devices:

I think the local domain to search is defined in resolv.conf

# cat /etc/resolv.conf
search lan
nameserver 127.0.0.1

It's basic dnsmasq features (DHCP+DNS), nothing complicated.
You can check the config yourself:

# pgrep -a -f dnsmasq
1215 /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c -k -x /var/run/dnsmasq/dnsmasq.cfg01411c.pid

# cat /var/etc/dnsmasq.conf.*
...
expand-hosts
domain=lan
server=/lan/
dhcp-leasefile=/tmp/dhcp.leases
...