Private DNS provider

Hi everyone :slight_smile:
First thank you very much for the superbe piece of software you are building.
I’m discovering all the very exciting features, and i really enjoy everything rancher provides. The only thing i cannot find is a private DNS provider for internal use in a company.
What i need would be a private DNS server like bind9, that makes the same thing you did with the external dns services (wich are great by the way)

So i was thinking about creating a bind9 service, with a rest api to add / remove subdomains (based on the same idea as https://github.com/ajclark/bind-restapi) and add a provider in https://github.com/rancher/external-dns/tree/master/providers to make it available.

So would this be ok, or did i miss something and such a feature is already available ?

Thank you.

There is not anything like this today and would be a useful addition; other people have asked about it.

The external-dns integration is pretty straightforward. The harder part will be if you want to make a template for deploying bind and particularly making it fault-tolerant/scalable past one container

seems no so hard to add a another provider like this. We are also interested to make either stock dynamic DNS updates or something works with delegation or a API you mentioned.

What about jwilder/nginx-proxy?

@hwinkel if you like etcd https://github.com/skynetservices/skydns would probably work well. Our internal DNS is based on the same underlying library (mikeg/dns) for all the low-level protocol. And a proper etcd installation would provide the fault-tolerant store and API for external-dns to manipulate.

@ragaar Not really the same thing… external-dns creates actual DNS records which work for services that aren’t http-based.

@vincent May I have an api list of external-dns must have, to evaluate the local DNS provider?

@Ryan.Cui not sure if I understand what you’re asking, but the interface for an external-dns to implement is https://github.com/rancher/external-dns/blob/master/providers/provider.go#L10-L16

@vincent Yes, that’s I was asking for, thank you! :grinning:

Has anyone got this working?

I would really like to see this feature, in my set up i don’t want to use an external dns service as everything accessed will be via local subnets

I have done a first draft for a bind9 provider with a rfc pr at https://github.com/rancher/external-dns/pull/35

How does this work with rancher?

I created an environment with VXLAN and BIND9 (which is from your repo)
If i start a service in this env + stack, the FQDN is not set in the API.

I’ve read the external DNS manual with AWS but it doesn’t tell me how to do it with BIND9