Simple Resolver example
yaronr
Member since: 2015-01-07 15:07
|
Added: 2015-01-07 15:09
|
Hi
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! |
Unlogic
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?
|
yaronr
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: http://www.multicloud.io
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?
|
Unlogic
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. |