Asking for help in revising bind.9.2.3
Lee Fu-yuan
leefy at csie.nctu.edu.tw
Tue Nov 29 08:20:45 UTC 2005
Dear sir,
I have to first apologize for sending this email to you since
this is not actually a bug report. In fact, I send this mail
to ask some help or advice on revising bind 9.2.3. Please kindly
give me some hints or suggestions. Please. Please... :)
In short, I am trying to let named query other DNS servers
if it cannot find an answer in the database. The problem is
a little complex beause I want named to query other DNS even if
it think itself is the master of the zone.
Consider a simple configuration (a part of my named.conf):
zone com.tw {
type master;
file "/etc/sys/named/zone/com.tw.a";
};
then, in /etc/sys/named/zone/com.tw.a:
$TTL 43200
@ IN SOA com.tw. root.com.tw. (
2005112808
10800
54000
259200
10800
)
IN NS ns.com.tw.
abc IN A 140.113.1.100
As you know, under this configuration, named will not query other
DNS server if it receives a DNS query with domain-name in the
"com.tw" domain. For example, we send a query for "aaa.com.tw",
then we will receive NXDOMAIN from the named.
To let the named turn to query other DNS server, I revise some lines
of query_find() (in bin/named/query.c). Modified codes are listed below.
(around in line 2650)
----------- codes ------------
resume:
CTRACE("query_find: resume");
if((event == NULL)&& (result==DNS_R_NXDOMAIN)){
is_zone=ISC_FALSE;
result=ISC_R_NOTFOUND;
authoritative=ISC_FALSE;
dns_zone_detach(&client->query.authzone);
dns_db_detach(&client->query.authdb);
//myflag=1;
}
----------- codes ------------
This will make named execute the statements in
"case ISC_R_NOTFOUND" and "case DNS_R_DELEGATION" rather than
"case DNS_R_NXDOMAIN".
However, the result is not the same as we expect. After applying
the above modifications, the client would receive SERVFAIL response.
(that is, the named execute the default case, about in line 3200 when
it resumes from query_resume().)
I used sniffer to capture network packets and no DNS messages
were delivered to other DNS servers. (ps. the named will perform
recursive query to other DNSs if the domain-name is not in ".com.tw".
For instance, if we query the named with "www.csie.nctu.edu.tw", we can
obtain the IP address successfully. )
Can anyone give me some hints or suggestion for accomplishing
the abovementioned goals?
Thanks a lot.
With best regards,
--
Lee, Fu-Yuan
Distributed System and Network Security Lab.
Dept. of Comp. Sci. & Info. Eng
Nat'l Chiao Tung Univ.
Hsinchu, Taiwan 30050, ROC
E-Mail: leefy at csie.nctu.edu.tw
More information about the bind-users
mailing list