Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have 2 DNS on BIND9 working as 1 Primary and 1 Secondary, serving our customers in network A. network A is peered with network C without any congestion.

There is another ISP, say network B owner; B and C is peered but very much congested inbetween.

A and B is not directly peered.

So If A>C, no congestion If A>B, need to go thru upstream or thru C (very congested)

Domain ABC.tld has 2 different IPs for network B and C, and is hosted in both network.

The problem network A have at the moment, is the query from the roots from network A will return network B's IP of ABC.tld instead of network C's, resulting our customer's route to the domain requires longer time or time out.

Question: Is it possible for us to set up a forwarder for that specific .tld? we would like to forward the related tld to the DNS in network C.

              *Web Server*
             |            |
             |            |
             |            |
             |            |
    Uptream provider ---- A
share|improve this question
Your question is virtually impossible to understand. Please proofread your question for proper grammar, spelling, capitalization, and punctuation. – Brett Dikeman Jan 12 '12 at 6:57
Sorry for my bad English. – Eddie Jan 12 '12 at 7:09
Edited for easier understanding – Eddie Jan 12 '12 at 7:32
please draw a diagram. the question still makes no sense. – Alnitak Jan 12 '12 at 8:28
it's still pretty unclear - where are the DNS servers - where are the clients - where's the rest of the internet? I think I can cobble together an answer, but I'm gonna be guessing... – Alnitak Jan 12 '12 at 20:27
up vote 3 down vote accepted

This is a routing problem, and it's difficult to solve those with DNS hacks.

The "easy" solution for you is for ISPs B and C to fix the congestion on their peering link.

The real solution is for the customer's webserver to be multihomed, running within its own BGP4 Autonomous System with Provider Independent IP address space.

They can then stop advertising IP addresses "belonging" to ISP B and C in the DNS, and only advertise their own addresses.

Clients connected via ISP A will then always go over the C to A link, and will not traverse the peering link between B and C, unless for some reason the link between C and A goes down.

share|improve this answer
Thank you Alnitak for your help. – Eddie Jan 16 '12 at 1:48

Try forwarding such queries to either Google Public DNS, or OpenDNS and see whether your problem is solved.

zone "tld" in { type forward; forwarders {;; }; };

share|improve this answer
this has zero to do with recursive DNS. – Alnitak Jan 12 '12 at 8:21
I did this but kind of not working as the DNS mechanism does not allow TLD been forwarded to other server for resolving. PLease correct me if I am wrong – Eddie Jan 12 '12 at 11:59
@Alnitak: Indeed. The English in this question (I answered before the diagram) did not help me. But then again English is not the mother tongue for everyone. – adamo Jan 12 '12 at 20:24
Thank you all for your help. – Eddie Jan 16 '12 at 1:47

In site A, you can enter this in named.conf (for both primary bind and secondary bind):

zone "ABC.tld" in {
    type forward;
    forwarders { my-server-in-site-C ; my-secondary-server-in-site-C; };

All DNS queries will go directly to C servers.

Alternatively you can enter this:

zone "ABC.tld" in {
    file "slave/ABC.tld" ;
    type slave;
    masters { my-server-in-site-C ; my-secondary-server-in-site-C; other-servers; };
    allow-notify { my-server-in-site-C ; my-secondary-server-in-site-C; other-servers; };
    forwarders {}; /* just in case */

All DNS queries will be cached locally in the file and refreshed from C servers as needed. I would recommend this as it handles better temporary outages of connection between A and C.

In both cases, the "my-server-in-site-C" can be either itself a master or a slave for the domain ABC.tld.

share|improve this answer
Thanks. how about if there are several domains in *.tld that need to be redirect in the same way? to be more specific, i.e., .jp, .cn , etc – Eddie Jan 12 '12 at 11:58
I would use many "zone" clauses, don't know if there is any syntax to ease this. – kubanczyk Jan 12 '12 at 14:23
stop thinking about this as a DNS problem - it isn't. DNS is a name -> address mapping system, not a routing system. – Alnitak Jan 12 '12 at 20:33
True. OP does seems misguided, but he asked a question and got it answered. – kubanczyk Jan 12 '12 at 22:47
the comment was intended for the OP, not you. – Alnitak Jan 12 '12 at 22:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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