External DNS Management

Hi,

I was wondering if there is any way to add DNS management for external domains that include different types of records, such as TXT, A, AAAA, CNAME, NS, etc? I’ve been exploring the DNS server in NS but it seems only capable of managing DNS in the internal network if I’m correct?

The idea would be to point the registered domains I have from different providers (such as godaddy, domain.com, 1&1, etc…) to NS and be able to host and manage my own domains from a central interface.

I guess something like BIND - https://www.isc.org/downloads/bind/ - or PowerDNS - https://www.powerdns.com - could be integrated within the DNS server of NS to provide this, with a graphical interface where one could choose the different fields, namely the “Name”, “Type”, “TTL”. “MX priority” and content/destination?

Would it be easy enough for someone with little experience to do? how could I try to integrate any of those projects with NS?

Thanks,

Why do you need this? Do you have some scenarios to show us? We need a real use-case.
Did you face any issue without this feature?

The actual DNS server (dnsmasq) is very tightly coupled with the whole system and can’t be easily replaced.

Take a look to this discussions:

@alefattorini
My idea is to have my own nameservers to where I can point the various domains I have registered with different providers and that are fully managed by myself from one central interface, instead of having to log in to each registrar and edit the DNS entries there.
I noticed that webmin uses bind to provide this… In the meantime I also found that a couple of the providers where I have some VPS’s also offer this functionality from their control panel - I’m currently using one of them to where I’ve pointed all domain names and I manage them all from one central interface. I just thought that perhaps this could be easily implemented in NS with a package like BIND.

@giacomo Thanks for the links. I think they mostly discuss internal DNS server? Perhaps the 2nd link is more in line with what I’m thinking? Will try to install it on the test NS7 to understand better how it works.

I think of Nethserver more as a central server to be installed on a VPS where I can control different aspects of my life/business (websites, dns management, mail server, telephone pbx, web apps, etc…) rather than a server to sit at home/office and manage an internal network. The current DNS features for me have almost no use; instead, having a central interface for DNS management where I can create sub-domains and point them to my various servers would be priceless!

1 Like

Yes, discussions refer to internal DNS.

Sadly we never designed current DNS implementation for such scenario.

Would it be easy to implement though? I wouldn’t mind having a go at it if it is something that could be accomplished without advanced coding or technical skills?

I don’t think so.

You can install BIND on your own, but you will not be able to use any NethServer DNS-related feature. Also you will need to find a suitable GUI for your purpose.

I’d prefer to use unbound instead of bind. unbound is already installed by default, it’s a modern and efficient resolver.

1 Like

In that case, would it be only a question of designing a GUI interface in NS to take advantage of its features?

1 Like

Or looking for a ready to use GUI already available (I googled a bit and found nothing).

1 Like

Yes, I’ve been searching a bit as well and I can’t seem to find anything.

There seem’s to be some interest for it but all I find is instructions on how to configure unbound manually. The few implementations of a webgui in unbound are all in commercial products.
On the other hand there seems to be several solutions available for BIND. The one I’m most familiar is using it as part of webmin.
I also found this interesting article referring how to make unbound and BIND work together in an internal server environment - its mostly cryptic for me but thought it may be interesting to the project:

Unbound DNS cluster with BIND or NSD master server

Unbound is the perfect front line soldier for DNS queries from LAN clients. It is fast, reliable, stable and very secure. BIND (named) or NSD (Name Server Daemon) can be kept on the back end network to be an authoritative DNS to the Unbound cluster. This way you keep your primary DNS data segregated and unencumbered on the BIND or NSD server while the Unbound cluster servers do the resolving, caching and validation of zones for clients.

The idea is to have a few Unbound validating, recursive and caching DNS servers which LAN clients can query. Then use BIND (named) as an authoritative server which can resolve internal LAN names only. LAN clients will NEVER access the BIND DNS server and BIND will never go out to the Internet. BIND’s only job is to serve internal names to the Unbound DNS server cluster. The Unbound cluster will serve all LAN clients. If Unbound needs to resolve a private ip it will ask the BIND server for ips and then cache the response. If the client needs an external ip, lets say from google.com or cnn.com, Unbound will recursively query the Internet root DNS servers and cache the response.

My original idea was to implement some kind of basic webgui for an Authoritative DNS server within Nethserver - something in the lines of the excellent work done by @stephdl with the fail2ban module. Is there an easy way to create such a module with webgui interface in nethserver ? if unbound is already installed, maybe it is just a question of mapping the correct parameters to a webgui?

Of course I have little idea of what I am talking about but let me know if it is a possibility as if it is something relatively simple I would be up for it. Having an authoritative DNS server module in NS7 would be wicked in my opinion.

3 Likes