Lately I’ve been using CoreDNS for a work project, and have been experimenting with using it in my local network to replace dnsmasq in my dnsmasq+stubby+pihole configuration.
CoreDNS uses a “plugin” concept where DNS functionality is programmed via plugins that can be chained together. It also has an ENS plugin (https://coredns.io/explugins/ens/) so it can definitely be used as a nameserver for arbitrary protocols.
One of the problems IPNS has is that it’s pretty slow, another problem (whether or not this is a problem to you ultimately depends on your personal preferences/tastes) is that it doesn’t use human readable names.
It might be interesting to consider a LibP2P aware plugin for CoreDNS that allows implementing some sort of DNS style name resolution, but for IPFS. In theory there is probably some way to bind IPNS -> human names