I have setup BIND9 to resolve domain names used by my work group, it contains:

  • public domain names: *.my-company.com
  • our own TLD *.top

but I don't know how to setup clients to add an extra DNS server.

I'll call my DNS server as DNS-mine, and the default DNS servers returned from ADSL as DNS-system.

I must not forward DNS-system through DNS-mine for network-speed reasons and user preferences. (Users are distributed over the world, and DNS-mine is sat in US).

I have tried several ways, as follows:

  1. Add IP4 of DNS-mine ( to resolv.conf:

    nameserver   # DNS-system
    nameserver   # DNS-mine

    however, DNS-mine is never queried. as resolv.conf(5) said the second nameserver is only queried when the first one was timeout, however DNS-system here does never timeout.

    and resolv.conf is reset by network manager, too.

  2. Add zone '*.top.my-company.com' to DNS-mine, and make it the same as .my-company.com zone. Then Change /etc/hostname to a1.my-company.com, a2.my-company.com, etc. in each client. This works as:

    www.top -> www.top.my-company.com == www.my-company.com

    However, I must add all client host names in DNS-mine at the same time, otherwise the client stucks: a1.my-company.com a2.my-company.com a3.my-company.com

    The clients don't have WAN IP(s), as they are behind the firewall. And new clients may join in in any time.

  3. The same as above, but don't change /etc/hostname, add to /etc/resolv.conf instead:

    domain my-company.com

    This works very well, however, the /etc/resolv.conf file is automatically reset by network manager.

  4. Add all names *.top to /etc/hosts file, then just ignore DNS-mine, this works very well, but hard to maintain.


In order to add a new TLD that ICANN doesn't yet recognize (like you are) you have to put a DNS server that considers itself authoritative in the DNS resolution chain. In practice, this means the first hop. In order to use your *.top domain internally, you will have to either point all of your clients at your own DNS server, or maintain /etc/hosts files. One of the two.

As for top.my-domain.com, you have some options. Whichever DNS servers are authoritative for my-domain.com (you don't say) will be able to also serve up top.my-domain.com. This may be your best bet for simplicity's sake. Have your (presumed) DNS hosting service add that subdomain and add the entries you need.

However, hosting a local DNS server is not a bad idea at all really. They're called a Caching DNS server and cache resolved names so they can be retrieved faster than they would be pulling from the Internet. If you add your *.top domain to it, it'll provide all of your needs.

  • Caching DNS server sounds good, but the problem is my DNS server is in US, and the clients are distributed over the world. They would prefer to use their local caching DNS servers. – Xiè Jìléi Sep 26 '10 at 23:40
  • 1
    @谢继雷 In that case, it sounds like your best bet is to use the sub-domain method. – sysadmin1138 Sep 27 '10 at 3:40
  • I decide to use a caching server locally, and use sub-domain over Internet. – Xiè Jìléi Oct 15 '10 at 1:25

I would setup all the work group computers to query your DNS server, if your server doesn't know the answer to a query, then have the DNS server forward it to an Internet DNS server. That way you can have your special domains (or override/filter) domains the Internet DNS servers would resolve.

I use DHCP to push out my DNS settings, but any method that works, works.

  • As I mentioned, I can't forward DNS-default through DNS-mine for network-speed reasons. The workgroup computers are distributed but not centralized in an office and within a same LAN. – Xiè Jìléi Sep 26 '10 at 23:43

All you need to do is delegate *.top.my-company.com NS lookups to your custom DNS-mine server. No changes are needed to the clients, it's a referring looking.


top  IN  NS  DNS-mine.my-company.com

This has all been answered in detail here:

How exactly should I set up DNS to delegate authority for subdomains?

  • I think you may misunderstand that, I didn't describe it so clearly, The DNS-default is the DNS server returned from ADSL(commonly it's a local caching DNS) or set by client manually, e.g. Google DNS ( or OpenDNS( To clarify it, I renamed DNS-default to DNS-system. – Xiè Jìléi Sep 26 '10 at 23:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.