Here are some DNS-OARC development highlights from the past months. These updates are sent out on a bi-monthly basis and the previous updates can be found on our Medium page.
Check My DNS Moved to Main Site
The Check My DNS service has been moved to our main site in Fremont CA, this has been done so that we can start planning its move out of beta and into production.
Please let us know if you find anything wrong with the service and remember that as a member you can get access to all the data it has been gathering. We are currently seeing around 50 tests per day.
dnsjit + respdiff
The development of dnsjit, engine for capturing, parsing and replaying DNS, is ongoing at a steady pace. Currently working on a project called “Performance and Responses” that has been funded by Comcast’s Innovation Fund. The performance part was completed during the first week of May and since then effort has been put into handling and matching responses which brings me to respdiff.
respdiff is a set of scripts that are used to gather and compare responses between different resolver software, which is part of the Knot Resolver benchmarking project.
I have been working together with Petr Špaček and Tomáš Křížek from CZ.NIC, to integrate dnsjit so that replaying can be done with drool in the future.
During RIPE76 Petr and I had a short hacking session and got a preliminary setup working. Tomáš recently merged changes to the database so that the integration can be made in a more portable, official and documented way.
These changes will be coming to drool in the following weeks, the development branch of drool has already been rewritten into Lua/dnsjit so it is not far off before we can have a beta release.
Performance of dnsjit
More work has been done around the performance of dnsjit, this time the focus has been threads and how to effectively pass objects between them.
Thread handling has been moved into a core module and with the new channel module there are now two implementations to pass objects between threads.
One uses normal POSIX threads (pthreads) which should be widely supported across different platforms, the other uses concurrencykit (Thanks Ondřej Surý (ISC) for the tip) and it’s SPSC (Single Producer, Single Consumer) ring which is 2–4 times faster.
There is still so much to do within dnsjit so do not expect a stable release any time soon BUT please play with it and please let me know if your having problems running it!