WeaveDNS – A distributed DNS service for a weave network
weaveblog.com
weaveblog.com
Weave - https://github.com/zettio/weave
Ambassadord - https://github.com/progrium/ambassadord
Warmhole - https://github.com/vishvananda/wormhole
QTunnel (not docker specific) - https://github.com/getqujing/qtunnel
Flannel - https://github.com/coreos/flannel
I'd love a comparison write up if you guys ever get to it.
https://github.com/zerotier/ZeroTierOne
Docker integration by a third party user: https://github.com/davide/docker-zerotier
ZeroTier isn't Docker-specific, but people are using it there.
(Disclosure: I wrote it.)
No DNS-like component (yet), though it's possible to use mDNS/Avahi or other existing methods. Seems like DNS+Docker wants an orthogonal solution, maybe something built into Docker itself or otherwise transport-agnostic. I can imagine deployments with multiple different kinds of transports running to connect Docker containers to different sorts of things.
The mDNS protocol tries to solve this problem in a more universal platform-independent way, but in my experience it isn't that reliable and doesn't scale well enough for mission-critical infrastructure use. Maybe the right thing to do would be to fix mDNS by changing it over to a Kademelia DHT or something else more intelligent, scalable, and closed-form-provably correct.
Does weaveDNS's use of UDP multicast go beyond simply finding other Weave nodes? i.e. Weave can discover other nodes via UDP multicast but you can also tell it addresses of other nodes if for instance, you are running in an environment that doesn't have UDP multicast available. I'm wondering if this same workaround can be used for weaveDNS.