[asterisk-users] No retry after DNS failure

John Marvin jm-asterisk at themarvins.org
Tue Aug 22 00:32:50 MST 2006


James Harper wrote:

> Are you sure that it was Asterisk? Did you try an nslookup after the
> network came up while Asterisk wasn't working? How long did you leave it
> before taking matters into your own hands?

Fairly sure. I didn't realize there was a problem until about 6 hours 
after the power outage. Local calls go out via the PSTN, so I didn't 
notice the problem until I tried to make a long distance call. It took a 
few minutes to diagnose the problem. It was when I did a "sip show 
peers" and noticed it was missing my outbound voip providers that I 
realized there was a problem. A "sip reload" immediately brought them back.

> 
> DNS will do negative caching as well as positive. If sip.sometel.com
> failed to resolve (because it doesn't exist or because your network
> wasn't up), your caching dns server or resolver or both may remember
> this as a 'negative cache' entry, so that it remembers that it doesn't
> exist.
>

I'm fairly sure there is a different error response between "name 
doesn't exist" as opposed to a failure to connect to an authoratative 
name server in the chain. For example if the name servers responsible 
for .com said that sometel.com didn't exist, or the nameservers for 
sometel.com said that sip.sometel.com didn't exist then that should be 
negatively cached. But if the name servers for .com said that the IP 
address for the name servers for sometel.com are xx.xx.xx.xx and then 
your dns server can't connect to xx.xx.xx.xx then a different error 
response is returned, and I don't believe that is or should be 
negatively cached.

> If your asterisk server is responsible for the network connection, then
> the ifup/pon script should take care of flushing the dns cache for you
> for exactly this reason.
> 
> If you have another server or router that is responsible for the
> connection then the server running asterisk will have no idea that its
> negative cache is no longer valid.

Well, you may have hit upon a reason why others may not see this 
problem. The asterisk server is not responsible for the connection, an 
external DSL modem/router is responsible. However, I run a local DNS 
server, so it is available to Asterisk. Perhaps Asterisk is more robust 
when it can't contact the DNS server, as opposed to it being able to 
contact the DNS server and the DNS server responds with an error. 
Perhaps Asterisk doesn't differentiate how it behaves depending on the 
type of error.

John



More information about the asterisk-users mailing list