Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I modified the TTL value for a particular Host Record of type A in the dns management --right click that record-->properties--> changed TTL vale. But when I called the DNSQuery() function to retieve the modified TTL value of that record I am getting the same default TTL value.

But when I viewed that record's TTL value in the dns management it is displaying the modified value only..

After changing the TTL of a particular dns record do I need to restart DNS service??

plz correct me if I missed anything step while changing TTL.......

thanks for your concern. Steps I followed:

changed ttl for a RR from 20minutes to 24 minutes, after more than 20min I called the below query

  ulRet = DnsQuery(
                    hName.c_str(),
                    DNS_TYPE_A,
                    DNS_QUERY_BYPASS_CACHE,
                    pSrvList,
                    &pHost,
                    NULL
                    );
    dnsTTL=pHost->dwTtl;
    cout<<"Current DNS TTL value"<<dnsTTL<<"\n";

but still Iam getting the output as Current DNS TTL value 1200( means 20 minutes in sec) instead of 1440 sec(means 24 min)

share|improve this question

migrated from stackoverflow.com Oct 20 '09 at 10:58

This question came from our site for professional and enthusiast programmers.

add comment

1 Answer 1

If you have Active Directory enabled DNS, are you sure you're querying the same DNS server as you're writing the change to? If not, make sure you allow time for replication.

If it's not AD-enabled, are you closing the DNS console before querying? I'm pretty sure I read something about changes not being committed until you close it - sounds nuts, doesn't it, but I've never had non-integrated DNS so I've never been able or needed to test this.

EDIT

Is this what you're using? It says this "When the DNS_QUERY_STANDARD option is set, DNS uses the resolver cache, queries first with UDP, then retries with TCP if the response is truncated, and requests that the server to perform recursive resolution on behalf of the client to resolve the query."

If you've looked up the record before making the change, it'll be in your local DNS cache. If you're using this option, the function will check your cache and won't go to the server if it finds the record in there.

ipconfig /flushdns

should clear your cache.

ipconfig /displaydns

will show you all cached records.

If this doesn't solve it, it gets more complicated as DNS servers can cache records as well, depending on their configuration.

If you've made the change and the (original) TTL period has expired (by which time it should be out of all of the caches) and you're still not seeing it in DNSQuery, I'd talk to your DNS Admins.

share|improve this answer
    
yes it is active directory enabled dns and iam querying the same DNS server on which I changed the record's TTL –  Anonymous Oct 20 '09 at 6:58
    
After changing the TTL of a particular dns record do I need to restart DNS service?? –  Anonymous Oct 20 '09 at 7:28
    
Updated main post with DNS Cache thoughts. –  serialhobbyist Oct 20 '09 at 9:24
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.