[RndTbl] programatically determine if DNS is down or blocked?

Robert Keizer robert at keizer.ca
Wed Apr 6 15:12:25 CDT 2016


Why don't you use dig+grep+sed in bash?
On Apr 6, 2016 14:44, "Trevor Cordes" <trevor at tecnopolis.ca> wrote:

> I have a program that needs to do DNS lookups, etc.  Things will go Really
> Wonky if there's a problem with DNS (from a client perspective).  Thus,
> I'd like the program to be able to check if DNS isn't working.  In this
> particular setup, the box runs its own named with a view setup for
> resolution/caching.
>
> In particular, I want to test that:
> 1. named is running and answering calls to its port
> 2. named is getting real answers from the net (i.e. doing its recursive
> resolution properly; and port 53 to outside NS's isn't being blocked)
> 3. (rare) root NS's aren't getting DDoS'd / whole world's DNS is down
>
> I want to do this inside a perl or php program, but any language
> pseudo-code will be fine as a template.  I don't want to run a full-blown
> monitoring program separately.
>
> Ideally, I'll have some php like:
> function IsDnsOk() {
>   check named
>   check resolution ok
> }
>
> To be used possibly like:
> while (!IsDnsOk()) {
>   sleep 10;
> }
> $important_dns_result=gethostbyname($host);
>
>
> But I want any check to be fairly lightweight.  I don't want to fire off
> useless DNS lookups to root name servers at a potential rate of thousands
> a minute.  Plus, I guess I have to worry about cached results making
> things look ok when they are really not.  Any solution I implement will
> probably be designed to only run these tests once a minute or something,
> which won't catch the instant DNS goes down, but will mitigate the damage
> caused.
>
> I can think of a number of fairly simple tests I can try, but they feel
> kind of kludgy.  Is there a better way?
>
> Ideally, the PHP calls, like gethostbyname would be able to return a
> "down" status, but they decided to lump in to the same return value
> failure due to no dns record and failure due to any other reason.
>
> Thanks!
> _______________________________________________
> Roundtable mailing list
> Roundtable at muug.mb.ca
> http://www.muug.mb.ca/mailman/listinfo/roundtable
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.muug.mb.ca/pipermail/roundtable/attachments/20160406/3a0b001a/attachment.html>


More information about the Roundtable mailing list