~droyo/mdns-proxy

proxy mdns requests to a local DNS server

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~droyo/mdns-proxy
read/write
git@git.sr.ht:~droyo/mdns-proxy

You can also use your local clone with git send-email.

mdns-proxy: proxy mDNS requests to a unicast server and back

This allows you to use the DNS server of your choice to serve
mDNS requests.

BUILD

dune build
dune install

USAGE

If your DNS server is listening on 127.0.0.1:53, and you
want to receive mDNS requests on the interface ens0:

	mdns-proxy udp!127.0.0.1!53 ens0

NOTES

The backend DNS server should only serve records for which
it considers itself the authority.

mdns-proxy sets the cache-flush bit for A/AAAA/CNAME records
and leaves it unset for SRV records, with the assumption that
SRV records are probably shared among other hosts on the network,
while A/AAAA/CNAME records probably refer to a single host.

mdns-proxy does not (yet) implement conflict resolution, probing,
or unsolicited announcement of records.

I wrote this as a way to give human-readable names that were usable on my home
network to containers and VMs running on my computers.  The experience of
writing this program has taught me that you have to implement enough of the
(m)DNS protocols that passing requests off to another server does not save any
code, and it adds enough complexity around deployment and change detection that
this approach is inferior to integrating a full-fledged mDNS responder in my
application.

So I am unlikely to develop this much further, and have just uploaded it
for posterity.
Do not follow this link