Changing $TTL for many zones

Kevin Darcy kcd at daimlerchrysler.com
Wed Aug 4 21:27:41 UTC 2004


Barry Margolin wrote:

>In article <cemtb9$1nvg$1 at sf1.isc.org>,
> Kevin Darcy <kcd at daimlerchrysler.com> wrote:
>
>  
>
>>Barry Margolin wrote:
>>
>>    
>>
>>>In article <cemkbf$14n1$1 at sf1.isc.org>,
>>>Kevin Darcy <kcd at daimlerchrysler.com> wrote:
>>>
>>> 
>>>
>>>      
>>>
>>>>Exactly. I would go further and suggest that, since the SOA needs to be 
>>>>changed anyway, just give an explicit TTL to the SOA RR, and thus 
>>>>dispense with the $TTL directive completely (my assumption here is that 
>>>>the SOA RR is the first RR in the zone file).
>>>>   
>>>>
>>>>        
>>>>
>>>What is this supposed to accomplish?  Putting an explicit TTL on the SOA 
>>>record doesn't create a default for the rest of the file; that's what 
>>>$TTL is for.
>>>
>>>      
>>>
>>Giving the first RR in the zone file an explicit TTL is functionally 
>>equivalent to establishing a default TTL value, if none of the other 
>>records have an explicit TTL.
>>    
>>
>
>I've never heard of that.  TTL is not automatically inherited from one 
>record to the next.  Any records that don't have an explicit TTL get the 
>default that's specified in $TTL.
>
>If you don't have $TTL specified, the default will come from the MinTTL 
>field of the SOA record, for backward compatibility with BIND versions 
>that predated $TTL.
>
 From doc/misc/migration:

2.1. Strict RFC1035 Interpretation of TTLs in Zone Files

BIND 9 strictly complies with the RFC1035 and RFC2308 rules regarding
omitted TTLs in zone files.  Omitted TTLs are replaced by the value
specified with the $TTL directive, or by the previous explicit TTL if
there is no $TTL directive.

If there is no $TTL directive and the first RR in the file does not
have an explicit TTL field, the zone file is illegal according to
RFC1035 since the TTL of the first RR is undefined.  Unfortunately,
BIND 4 and many versions of BIND 8 accept such files without warning
and use the value of the SOA MINTTL field as a default for missing TTL
values.

BIND 9.0 and 9.1 completely refused to load such files.  BIND 9.2
emulates the nonstandard BIND 4/8 SOA MINTTL behavior and loads the
files anyway (provided the SOA is the first record in the file), but
will issue the warning message "no TTL specified; using SOA MINTTL
instad".


                                                                         
               - Kevin




More information about the bind-users mailing list