Lowest DNS TTL value

Dear Experts.

     I would like to know the minimum number of TTL of dns. Can I define it lower than 30 seconds.
What's the exact lowest number of TTL ?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Zero is the lowest
I just did one last week at 1 second - it worked like a champ. I don't know this for fact, but I imagine that if you set it for 0 seconds, you are telling other DNS servers to not cache the information.

Whie zero is possible, it is not practical except in very specific circumstances.
Background on minimum ttl values.

"For example, SOA records are always distributed
                with a zero TTL to prohibit caching.  Zero values can
                also be used for extremely volatile data."

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Webinar: Miercom Evaluates Wi-Fi Security

It's not just about Wi-Fi connectivity anymore. A wireless security breach can cost your business large amounts of time, trouble, and expense. Plus, hear first-hand from Miercom how WatchGuard's Wi-Fi security stacks up against the competition in our upcoming webinar!

Some older BIND nameservers enforce a minimum TTL on received DNS information, even if the TTL is zero, and client dns resolvers won't respond that fast if something's in their cache. It's considered bad form for public DNS and most commercial DNS providers will be hard pressed to set it under an hour. In-house if you are hitting the authoritative server anyway, doesn't make much difference.
siratorAuthor Commented:
Dear Sirs,

    After I tried and I always obtained unstable TTL. Let me explain, suppose I obtained A record ( www.abc.com ) to my labtop as I showed it with "ipconfig/displaydns" At first it is 30 seconds as defined in the zone database as indicated following.

$TTL 30
@       IN      SOA     ns.abc.com.  postmaster.abc.com. (
                        2003102401 ; serial
                        28800 ; refresh
                        7200 ; retry
                        604800 ; expire
                        30 ; ttl

@      IN      NS      ns.abc.com.
www              IN      A

subsequently, after the time was used up, and I received another A record, but it turned into 86400 for www.abc.com.

Thus, I changed my name server to other dns servers, the similar result happened. Sometimes the TTL was not 86400 or 30 seconds, sorry I can't recognize it.

What's wrong with my configuration or zone format ?
Please advise.
The local DNS resolver defaults to 86400 on a hit and 900 on a miss:
Value name: MaxCacheTtl
Data type: REG_DWORD
Default value: 86400 seconds
Value name: MaxNegativeCacheTtl
Data type: REG_DWORD
Default: 900 seconds (300 for XP I think)

Obtained a zone record?
Are you authoritative for www.abc.com?
If your server is authoritative for a domain and you make a change to the TTL for from 86400 to 30 seconds in that domain's zone record and reload BIND:
You query nameserver1 - it has no record - it looks up and gets the TTL from your zone record. If it's unreasonably small it SHOULD use it, it may not, but it probably will.
In 15 seconds it will be 15 seconds on that server, etc.

Meanwhile you query nameserverB - it resolved your domain 43200 seconds ago so it's TTL is 43200. Since it is not authoritative it looks up records for you domain and caches them until the TTL expires. It has no way of knowing you changed the TTL.

Now you query nameserverIII - it resolved your domain 86000 seconds ago. TTL? 400

What exactly are you trying to do?

siratorAuthor Commented:
The reason I defined $TTL 30 in the zone database due to the frequently change in IP address,

Let me explain again.
- Suppose, the "abc.com" is under my control. I can manage this domain name. thus I modified TTL as the above to 30 seconds.

Later, I tried each to dial to 3 local ISP and I will then be provided the name server IP from ISPs, right ?

- Assume that I ping to www.abc.com and I obtained the ip address "" after resolving name with the name server of each ISPs.

- Suddenly I command "ipconfig/displaydns" to view the "www.abc.com" record. In fact it should be 30 seconds as defined in the Zone database. It did like that at the first time. So I waited until 30 seconds gone, then I ping it again to cache in my labtop, but it was not that number. It fluctuated to be other number such as 86400, etc ?

This is what I'm doing.
You're looking at your resolver's cache, not the DNS server.
change the default value in the registry entry below to 0

Value name: MaxCacheTtl
Data type: REG_DWORD
Default value: 86400 seconds
BTW you already closed this question
Please open a new question
siratorAuthor Commented:
Dear chicagoan, I will open a new question. And Thanks for your support.
Can you continue to clarify me a bit about DNS anyway I will post in the question.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.