The idea is to provide a dns server which resolves dns queries by a hashmap which is updated by a heartbeat mechanism. This means that client send heartbeats in a certain interval. These messages contain the hostname and the ip address. The server takes these heartbeats and updates the entries in it's hashmap.
When later a client sends a query to the server it'll resolve it by the filled hashmap. If no entry is found the server asks all clients if it's their hostname.
As a communication base rabbit is used for heartbeats and also for other communications like active querying
It's a hobby project and more as a proof of concept. It's not intended to be used in production.
Either compile it (never checked if it's working on another machine).
For using it you need 2 hosts which can connect to a rabbitmq instance
On server:
go run main.go amqp://guest:guest@localhost:5672/ server
On client
go run main.go amqp://guest:guest@localhost:5672/ client $interface
On the server side Try to resolve a dns name with dig
dig -p 5553 clientname.$interface @127.0.0.1
You can also run client and server on the same machine