<div dir="ltr"><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><br></div></div></div></div></div></div></div></div><div class="gmail_quote">On Thu, Apr 7, 2016 at 11:49 PM, Trevor Cordes <span dir="ltr">&lt;<a href="mailto:trevor@tecnopolis.ca" target="_blank">trevor@tecnopolis.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">On 2016-04-07 Adam Thompson wrote:<br>
&gt; Trevor, why don&#39;t you just pay $5/month for a VPS somewhere out on<br>
&gt; the &#39;net (in Canada, even!) with static IP addresses and use that as<br>
&gt; your central coordination point?  If it&#39;s still just the principle of<br>
&gt; the thing, well, keep flogging away at it.<br>
<br>
</span>This isn&#39;t that thing (and any other &quot;things&quot; I may have had are<br>
already on static IP).  The issue here is the mitigation of a problem I<br>
had a couple of months ago where a Major US Hosting Provider I have an<br>
app on decided to block my DNS. App went completely mental and crashed<br>
nearly everything.<br>
<br>
Investigating the code paths it is very clear I need to do some<br>
delicate things with the results of DNS queries.  To do this reliably I<br>
need to know that DNS is working.  That means if Hosting Provider<br>
blocks me, I want to stop doing delicate things.  If my own named dies<br>
(now that I don&#39;t rely on said hosting provider&#39;s DNS server), I want to<br>
stop doing delicate things.<br>
<br>
It&#39;s funny, but not much discussion of this out on the net... I guess<br>
no one else needs a reliable way to tell if DNS is &quot;working&quot;.  And if<br>
they do, they&#39;re coming up with proprietary solutions (as I am, it<br>
seems).  Granted, the app in question is doing some stuff that not many<br>
others are doing...<br>
<br>
I have some good ideas now, mostly just an aggregation of a bunch of<br>
mini tests I can run whenever a lookup fails.  Then, if the tests fail<br>
(i.e. DNS is &quot;down&quot;) I can just &quot;pause&quot; my app until situation is<br>
resolved. Add in some time-caching so as to not waste too many cycles<br>
on this, and voila, I should be able to better survive any of myriad<br>
possible DNS issues... In theory. I didn&#39;t want to code it myself, but<br>
looks like I&#39;ll have to.<br></blockquote><div><br></div><div>Have you looked at running multiple recursive resolvers on your system and using a load balancer to always hit a live one?</div><div><a href="http://dnsdist.org/">http://dnsdist.org/</a></div><div><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Theo</div></div></div></div></div></div></div></div></div></div>