[dns-operations] good async DNS library

Paul Hoffman phoffman at proper.com
Fri Apr 26 14:50:40 UTC 2019


On 26 Apr 2019, at 4:26, Florian Weimer wrote:

> * Klaus Darilion:
>
>> My current task is to monitor zone freshness on our Anycast cloud. 
>> So,
>> every second, I send SOA requests to every of our 30 global nodes and
>> check the received serial.
>>
>> I currently use Net::DNS::Async as sequential scanning takes to long 
>> -
>> hence with async. I patched Async to allow sending also to 
>> non-standard
>> ports (with only 1 unicast IP, but multiple name server processes, I
>> have to use different ports). But there is still the problem that
>> Timeouts are only with 1 second granularity, but I need timeouts < 
>> 1s.
>>
>> That's why I look for a good replacement of Net::DNS::Async.
>
> In this case, you probably want to take over the packet processing
> completely and only use a preexisting DNS packet builder and parser.
> It's probably easier to write the event dispatching yourself than to
> figure out how to get the desired behavior from some existing DNS
> library and integrate that with an event-handling loop of your choice.

+1 to Florian's suggestion. Even if you got a library to do what you 
want, there's a chance that later it would change to stop doing that, 
particularly around the 1 second timeout. I could absolutely see that 
being changed out from underneath you. Using a library to create 
messages and you sending them through a bespoke async client interface 
will be reliable for a lot longer.

--Paul Hoffman



More information about the dns-operations mailing list