Simple Resolver example


Member since: 2015-01-07 15:07

Added: 2015-01-07 15:09


I would like to plug in my own resolver, and I was wondering if there's a simple example out there.

Specifically, I'm interested in creating the Message and populating it.

Of course, I reviewed the existing 2 resolvers.


Thank you!


Member since: 2008-01-27 20:43

Added: 2015-01-07 16:15

Hi Yaronr,

Writing a resolver can be somewhat complex and it's actually the part of Eagle DNS that I've spent most time on. Apart from the two bundled resolvers I don't have any more examples.

What is it that your trying to achieve?




Member since: 2015-01-07 15:07

Added: 2015-01-07 16:48

I'm building a multi-cloud platform, you can see the motivation here:

The framework includes the following services (and others):

  • Overlay network
  • Service discovery
  • Service routing
  • IP allocation

The last 3 are related:

  • A service is scheduled to start on one of the nodes. 
  • The service obtains a unique IP from another service that allocates them according to (internal) FQDN
  • Service routing / discovery get updated
  • Service starts
  • A user tries to access the service from any node.
  • The user request goes to the discovery/routing service, which routes the request to one of the available instances of the service

DNS is used to resolve FQDN to IP, and a small DNS instance runs on every single host.

The data on how to resolve is available via API

So (and I hope you're not sorry for asking by now ;))

I would like to write a small resolver that would resolve against this service (I call it DCCP - Distributed Cluster Configuration Protocol) and will forward to public DNS if it fails to resolve.


So - should I write a Resolver? or something else?



Member since: 2008-01-27 20:43

Added: 2015-01-07 16:52 Updated: 2015-01-07 16:53

I think your on the right track here and I think that you can actually use quite a lot of the code the in the AuthoritativeResolver but instead of doing a call to systemInterface.getZone(name) you simply call a custom method to lookup the IP/Zone of the service in question.