Using free Yandex DNS service in an automated way


This DNS story started when I bought a domain with a specific need — to dynamically create and delete DNS records for Nuage Networks components we use during Proof Of Concepts and customers trials.

Earlier I used to rely on Dynamic DNS services (i.e. whenever I needed a DNS name for my public endpoints. But this approach has two drawbacks:

  1. To use if for free you have to manually prolong you hostname once in a month. Drove me mad every time!
  2. In PoCs/trials you want your domain represent your product. Using in front of a customer is not something that speaks well for your product. And we all know that devil is in the details.

Therefore I decided to buy a domain that will represent a product we are offering and park it to some provider which offers robustfree and API-enabled DNS service. Google cloud DNS and DynDNS while being both cheap are not free. So I kept looking and ended up with Yandex DNS which has all three traits I was looking for. Lastly I automated this DNS workflow so everyone in my team could provision their own DNS entries via one shared tool.

You got it right, in this post I am going to tell you about a completely free DNS service from Yandex with a decent API you can use for your personal needs. And yes, this post is accompanied with a python script which leverages API and automates DNS records provisioning.


DNS Terminology #

The DNS is defined in literally dozens of different RFCs. The terminology used by implementers and developers of DNS protocols, and by operators of DNS systems, has sometimes changed in the decades since the DNS was first defined. This document gives current definitions for many of the terms used in the DNS in a single document.

I saw this RFC has just been published and decided to save it here for further reference since DNS was always a mine field for me.