Choosing authoritative nameservers

Elias elias at streamyx.com
Wed Jun 2 08:20:38 UTC 2010


Hi guys,

Does anyone know how BIND chooses which authoritative server to refer to? 
When a referal returns ns1.abc.com, ns2.abc.com and ns3.abc.com, will the 
recursive server randomly send out a request to either ns1, ns2 or ns3 or is 
there a selection algorithm?

I've got a problem resolving www.klse.com.my and its probably caused by a 
broken server along the path. But the problem is I keep hitting the same 
server everytime no matter how many times I flush my caches.

# /usr/local/bin/dig www.klse.com.my +trace

; <<>> DiG 9.7.0 <<>> www.klse.com.my +trace
;; global options: +cmd
.                       491578  IN      NS      c.root-servers.net.
.                       491578  IN      NS      f.root-servers.net.
.                       491578  IN      NS      m.root-servers.net.
.                       491578  IN      NS      j.root-servers.net.
.                       491578  IN      NS      i.root-servers.net.
.                       491578  IN      NS      k.root-servers.net.
.                       491578  IN      NS      d.root-servers.net.
.                       491578  IN      NS      g.root-servers.net.
.                       491578  IN      NS      h.root-servers.net.
.                       491578  IN      NS      a.root-servers.net.
.                       491578  IN      NS      l.root-servers.net.
.                       491578  IN      NS      b.root-servers.net.
.                       491578  IN      NS      e.root-servers.net.
;; Received 504 bytes from 192.168.10.209#53(192.168.10.209) in 13 ms

my.                     172800  IN      NS      dns2.mynic.net.my.
my.                     172800  IN      NS      ns.uu.net.
my.                     172800  IN      NS      ns5.jaring.my.
my.                     172800  IN      NS      ns2.cuhk.edu.hk.
my.                     172800  IN      NS      ns6.jaring.my.
my.                     172800  IN      NS      ns-my.nic.fr.
my.                     172800  IN      NS      dns.mynic.net.my.
my.                     172800  IN      NS      ns20.iij.ad.jp.
;; Received 441 bytes from 192.36.148.17#53(i.root-servers.net) in 182 ms

klse.com.my.            86400   IN      NS      ens1.klse.com.my.
klse.com.my.            86400   IN      NS      ens2.klse.com.my.
;; Received 103 bytes from 61.6.38.139#53(ns5.jaring.my) in 6 ms

www.klse.com.my.        28800   IN      NS      sens2.bursamalaysia.com.
www.klse.com.my.        28800   IN      NS      sens1.bursamalaysia.com.
;; Received 90 bytes from 121.123.146.80#53(ens2.klse.com.my) in 5 ms

www.klse.com.my.        20      IN      A       121.123.146.114
;; Received 49 bytes from 211.25.178.1#53(sens1.bursamalaysia.com) in 7 ms

A dig +trace gives a successful resolution, but the query fails when I try 
to lookup either sens1.bursamalaysia.com or sens2.bursamalaysia.com (the 
query will ALWAYS hits ens2.bursamalaysia.com which is the broken server)

# /usr/local/bin/dig sens1.bursamalaysia.com +trace

; <<>> DiG 9.7.0 <<>> sens1.bursamalaysia.com +trace
;; global options: +cmd
.                       491534  IN      NS      f.root-servers.net.
.                       491534  IN      NS      c.root-servers.net.
.                       491534  IN      NS      b.root-servers.net.
.                       491534  IN      NS      j.root-servers.net.
.                       491534  IN      NS      d.root-servers.net.
.                       491534  IN      NS      a.root-servers.net.
.                       491534  IN      NS      m.root-servers.net.
.                       491534  IN      NS      g.root-servers.net.
.                       491534  IN      NS      l.root-servers.net.
.                       491534  IN      NS      h.root-servers.net.
.                       491534  IN      NS      e.root-servers.net.
.                       491534  IN      NS      i.root-servers.net.
.                       491534  IN      NS      k.root-servers.net.
;; Received 492 bytes from 192.168.10.209#53(192.168.10.209) in 30 ms

com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
;; Received 497 bytes from 192.33.4.12#53(c.root-servers.net) in 428 ms

bursamalaysia.com.      172800  IN      NS      ens1.bursamalaysia.com.
bursamalaysia.com.      172800  IN      NS      ens2.bursamalaysia.com.
;; Received 111 bytes from 192.41.162.30#53(l.gtld-servers.net) in 275 ms

;; Received 41 bytes from 121.123.146.80#53(ens2.bursamalaysia.com) in 5 ms


Does this make sense? 




More information about the bind-users mailing list