Jak se rodil náš Knot DNS

Předminulý týden, při vydání první ostré verze autoritativního DNS serveru Knot DNS, jsme vám slíbili článek, který by přiblížil jeho vývoj od počátku až k finální verzi. Ten nám ale posléze narostl pod rukama do rozměrů už nevhodných pro publikaci na blogu, a tak vám zde nabídneme alespoň malou ochutnávku. Kde najdete více se pro jistotu dozvíte až na konci textu :-).

Opatrné začátky
Už je to téměř dva a půl roku, co začal v Laboratořích CZ.NIC pomalu vznikat nový autoritativní DNS server Knot DNS. Na podzim roku 2009 to začalo řadou experimentů a testů, zaměřených hlavně na výběr vhodné datové struktury pro ukládání zónových dat. Ta byla implementována jako první a kolem ní byl následně vystavěn první prototyp serveru s velmi jednoduchou síťovou vrstvou, který dočasně využíval knihovnu ldns pro ukládání dat specifických pro DNS.

Hlavní důraz byl kladen na modularitu návrhu tak, aby kteroukoliv část bylo možné kdykoliv nahradit lepší implementací. Velká část původního návrhu byla zachována i do finální verze. Na funkčním prototypu jsme si ověřili vhodnost zvolené datové struktury a také její potenciál pro vysokou rychlost vyhledání potřebných dat pro zodpovězení příchozího dotazu.

Jde do tuhého
Když na podzim roku 2010 přibyli do týmu další lidé, vývoj se výrazně rozhýbal. Knihovna ldns byla nahrazena vlastní DNS knihovnou, vznikla nová síťová vrstva a obsluha vláken. Během následujících měsíců byly některé části návrhu upraveny tak, aby nás co nejvíce přibližovaly našemu hlavnímu cíli – vyvinout vysoce výkonný DNS server. Při vývoji jsme však nezanedbali ani důkladné testování jak jednotlivých částí, tak celého serveru. Časem vznikl komplexní testovací framework integrující testy na různých úrovních, který je jednoduše rozšířitelný o další funkce a testovací scénáře.

Cílová rovinka (či spíš překážková dráha)
Po dvou letech vývoje, na podzim roku 2011, jsme si byli dostatečně jistí poskytovanou funkcionalitou, a proto jsme představili první veřejné vydání Knot DNS (verze označená jako 0.8). Již krátce po prezentaci na RIPE 63 ve Vídni, a také u nás na konferenci LinuxAlt v Brně, jsme začali dostávat první připomínky od uživatelů, které nám v následujících měsících pomohly vylepšit Knot DNS a opravit mnohé chyby, které jsme „nevychytali“ během předchozího vývoje. Verze 0.9 vydaná na začátku roku 2012 přinesla několik nových funkcí a oprav. Po ní jsme se intenzivně soustředili už jen na testování, hledání chyb a ladění, které nakonec vyústilo v první produkční verzi. Její Release Candidate byl zveřejněn na Valentýna a finální verze 1.0 pak byla vydána ve skutečně výjimečný den 29. února.

A jsme na konci tohoto blogpostu a tedy u toho, kde se o Knot DNS můžete dozvědět více. Jestli jsem vás navnadil, pokračujte v dalším čtení na Root.cz, pro který jsme připravili text skutečně mnohem obsáhlejší.

Ľuboš Slovák

Autor:

Zanechte komentář