Re: Problem with different TTL
Aurelien Requiem <[email protected]> Tue, 12 Jan 2010 02:46:02 +1100
| Newsgroups | gmane.network.dns.bind9.dlz |
|---|---|
| Message-ID | <[email protected]> |
Tim, I have created a minor patch for dlz in order to accept the TTL like it's done in the text files. Basically, we only log the information in debug mode only. Nothing else. I don't think we should do more than logging compared to the text files behavior... Also, I don't know who's in charge of "sdb.c" but the same problem is present (same code). Please find the patch attach to this email. All comments are welcome. Thanks On 6/01/2010 6:47 AM, Aurelien Requiem wrote: > Tim, > > I'll try to work today on a cleaner patch and post it there for a code > review. > If it's well accepted by the community, I'll submit it into the code > repository. > I guess the change will be fairly simple and minor. I just need to > figure out what's the good way to log with warnings ;-) > > Thanks > > Aurelien > On 6/01/2010 2:00 AM, Tim Tessier wrote: > >> Aurelien, >> >> WARNING - not a file config example merely a RR example >> >> www IN A 127.0.0.1 TTL 25 >> www IN A 127.0.0.2 TTL 50 >> >> This is a problem because it's like saying that there are two separate TTL's >> for >> the same resource even though they are logically the same resource >> regardless if >> they are different physical resources. >> >> www IN A 127.0.0.1 TTL 25 >> www IN A 127.0.0.1 TTL 25 >> >> Alternatively, this does nothing for the configuration and is a possible >> hint at configuration >> problems or some other issue arising due to abnormal means. >> >> $TTL 86400 >> SOA ... >> www IN A 127.0.0.1 TTL 25 >> www IN A 127.0.0.2 TTL 50[defaulting to 8600] would be bad >> >> >> $TTL 86400 >> SOA ... >> www IN A 127.0.0.1 TTL 25 >> www IN A 127.0.0.2 TTL 50[defaulting to 25] and outputting a critical >> warning without failing is desired >> >> I agree however, that this shouldn't break the system. >> I believe you are on the right track. The better approach would be to log a >> warning and not >> break the system. I do believe however that the TTL information will have to >> be removed >> from the record information or duplicated from the first because if it is >> not specified, then >> it might default to the default TTL for the zone which would be bad. >> I believe a quick look at the bind sources is in order or a double check of >> what happens when >> that Bad TTL is not returned. I can't locate the RFC that says this but I am >> assuming that it is most definitely >> there and required, but also, should be handled by the dns configuration >> system. Of course, if I understood >> the problem correctly. >> >> Thanks, >> Tim Tessier >> >> -------------------------------------------------- >> From: "Aurelien Requiem"<[email protected]> >> Sent: Tuesday, January 05, 2010 5:00 AM >> To:<[email protected]> >> Subject: Re: [Bind-dlz-testers] Problem with different TTL >> >> >> >>> Tim, Rob, >>> >>> Rob, where did you get the information about the TTL please ? If you >>> could point this in a document or RFC that would be very good. >>> >>> Tim, the main goal of my patch is to have dlz behave like bind. Nothing >>> more. >>> As explained, with a flat file with bind, if 2 different TTLs are set, >>> only the 1st one is return for all records. >>> With dlz, nothing is returned. The patch allow dlz to behave just like >>> bind. >>> >>> Thanks >>> >>> PS : I know what you mean about VS and gdb ;-) Instead of gdb, try using >>> ddd :-) >>> >>> Aurelien >>> >>> On 5/01/2010 4:05 AM, Rob Butler wrote: >>> >>> >>>> DNS requires all the TTL's for a RRset be the same. A RR set is all the >>>> records of the same type (like A, TXT, MX) for the same name. Thus, if >>>> you have two records with the same name and of the same type with >>>> different TTL's, your data is incorrect. >>>> >>>> Rob >>>> >>>> ----- Original Message ---- >>>> >>>> >>>> >>>>> From: Tim Tessier<[email protected]> >>>>> To: [email protected] >>>>> Sent: Mon, January 4, 2010 10:56:52 AM >>>>> Subject: Re: [Bind-dlz-testers] Problem with different TTL >>>>> >>>>> Aurelien, >>>>> >>>>> I have taken a quick look at this, it appears that you are right about >>>>> the >>>>> db being >>>>> read properly at this point. And with your modification, are you trying >>>>> to >>>>> avoid >>>>> errors, is that the main goal? If you are trying to get the different >>>>> ttls >>>>> to appear >>>>> then this most likely will require a patch to bind itself. >>>>> >>>>> I am looking deeper into this however, as I need a little bit more time >>>>> to >>>>> set up >>>>> a mysql env to actually test this properly. Currently I have sqlite as >>>>> the >>>>> db, and although >>>>> I believe your assumptions to be correct I would like to be sure. Also, >>>>> it >>>>> was easy for me >>>>> to debug this little piece of code in windows using visual studio ( >>>>> point >>>>> and click ), please don't >>>>> make fun, as I am not as familiar with gdb as I am with VS. >>>>> >>>>> Thanks, >>>>> Tim Tessier >>>>> >>>>> -------------------------------------------------- >>>>> From: "Aurelien Requiem" >>>>> Sent: Saturday, January 02, 2010 4:09 PM >>>>> To: >>>>> Subject: Re: [Bind-dlz-testers] Problem with different TTL >>>>> >>>>> >>>>> >>> ------------------------------------------------------------------------------ >>> This SF.Net email is sponsored by the Verizon Developer Community >>> Take advantage of Verizon's best-in-class app development support >>> A streamlined, 14 day to market process makes app distribution fast and >>> easy >>> Join now and get one step closer to millions of Verizon customers >>> http://p.sf.net/sfu/verizon-dev2dev >>> _______________________________________________ >>> Bind-dlz-testers mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/bind-dlz-test >>> >>> >> ------------------------------------------------------------------------------ >> This SF.Net email is sponsored by the Verizon Developer Community >> Take advantage of Verizon's best-in-class app development support >> A streamlined, 14 day to market process makes app distribution fast and easy >> Join now and get one step closer to millions of Verizon customers >> http://p.sf.net/sfu/verizon-dev2dev >> _______________________________________________ >> Bind-dlz-testers mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/bind-dlz-testers >> >> > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > Bind-dlz-testers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/bind-dlz-testers > ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Bind-dlz-testers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bind-dlz-testers
ttl.patch
(text/plain, 457 B)
--- lib/dns/sdlz.c.orig 2010-01-03 08:02:38.000000000 +1100 +++ lib/dns/sdlz.c 2010-01-12 02:41:41.000000000 +1100 @@ -1518,7 +1518,9 @@ ISC_LIST_APPEND(lookup->lists, rdatalist, link); } else if (rdatalist->ttl != ttl) - return (DNS_R_BADTTL); + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, + DNS_LOGMODULE_DLZ, ISC_LOG_DEBUG(2), + "Inconsistent TTL."); rdata = isc_mem_get(mctx, sizeof(dns_rdata_t)); if (rdata == NULL)