Linux E X P R E S

Facebook

Ondřej Surý: Chystá se vývoj DNS resolveru, pojďte vybrat název

rozhovor_diktafon160.jpg

Rozhovor s Ondřejem Surým, vedoucím laboratoří CZ.NIC – o DNSSEC a DANE, serveru Knot DNS a chystaném vývoji kešujícího rekurzivního resolveru, o budoucnosti aplikace Datovka a v neposlední řadě též o balíčkování pro Debian.


Představte prosím trochu sebe a svou práci v laboratořích CZ.NIC.

Moje jméno je Ondřej Surý a pracuji pro CZ.NIC jako vedoucí výzkumného oddělení. V rámci mé práce pro CZ.NIC jsem byl u podepsání kořenové zóny, figuruji jako jeden z arbitrů RIPE NCC, skoro čtyři roky jsem spolupředsedal pracovní skupině DANE v IETF, kde jsme dotáhli do úspěšného konce specifikaci protokolu DANE, ale stejně jsou chvíle, kdy nejraději udělám git pull a jdu v Knotovi předělat generování dokumentace z texinfa do sphinxu.

Jste jedním z „vyvolených“, kteří stáli u ostrého spuštění DNSSEC. Nyní statistiky ukazují, že rozšíření DNSSEC u českých domén klesá (i přes poměrně masivní propagaci), čím to podle vás může být?

Osobně bych neřekl, že rozšíření DNSSEC u českých domén klesá, ale spíše stagnuje. Za vysokou penetrací DNSSEC podepsaných domén u českých domén stojí především naši registrátoři, kteří do toho šli s námi a kteří DNSSEC podporují. Odpověď na vaši otázku lze poměrně jednoduše najít v našich statistikách – jsou registrátoři, kterým záleží na bezpečnosti vlastních zákazníků, a jsou registrátoři, kteří to nepovažují za prioritu. Stačí si vedle sebe dát graf „DNSSEC dle registrátorů“ a „Domény dle registrátorů“.

Domnívám se však, že penetrace okolo 40 % je stále i ve světovém měřítku naprosto skvělá, a nyní je důležité se zaměřit spíše na „kvalitu“ než „kvantitu“. Zde bych si dovolil pochválit Fio banku, která kromě vlastní podepsané domény v posledním bezpečnostním upozornění vyzvala své uživatele k používání resolverů s podporou technologie DNSSEC!

Máte povědomí o tom, jak se rozšiřuje podpora DANE v aplikacích (jedinou obecněji známou aplikací je zatím poštovní server Postfix)?

Obecně se dá říct, že se svět dá rozdělit na prohlížeče a zbytek. V případě prohlížečů je situace značně komplikovaná, protože kontrola zabezpečení a vyšší interakce s DNS se příliš neslučuje s nesmyslným honem o nejrychleji načtenou a zobrazenou stránku. Co se týče zbytku světa, tak tam se zdá, že se ledy dávají pomalu, ale jistě do pohybu.

Viktor Dukhovni (stojící za implementací DANE v Postfixu) má rozpracovanou podporu DANE protokolu přímo v OpenSSL. GnuTLS již podporu pro DANE obsahuje.

Osobně se domnívám, že pro podporu protokolů postavených nad DNSSECem bude zapotřebí nové standardní API pro práci s DNS, protože getaddrinfo neposkytuje potřebnou funkcionalitu. Za slibně vyvíjející se projekt na tomto poli považuju getdns.

Podílíte se na vývoji DNS serveru Knot DNS, který proslul především svým výkonem a škálovatelností. Občas ale zaznívají kritické hlasy, že „je bohužel pouze autoritativní“. Neplánujete v budoucnu přidat možnost provozu i v neautoritativním režimu?

Pohled DNS komunity na rozdělení funkcionality autoritativního a rekurzivního DNS serveru je poměrně silný a jasný – míchání těchto dvou funkcí do jednoho kódu nevede k ničemu dobrému. Na začátku vývoje serveru Knot DNS jsme si jasně stanovili, že bude autoritativní a bude svou práci dělat dobře, rychle, spolehlivě a lépe než všichni ostatní. Myslím, že se nám tyto ideály v CZ.NICu daří poměrně dobře naplňovat.

Zároveň musím dodat, že vývoj rekurzivního kešujícího DNS serveru byl již od samého začátku na seznamu projektů, do kterých bychom se rádi pustili, protože dávají smysl. A v tomhle ohledu mám velmi dobrou zprávu, protože se ještě letos do vývoje Knot DNS Resolveru pustíme. Nyní nás čeká nejdůležitější fáze každého projektu a tím je volba jména. Budeme rádi, když se do této zásadní fáze projektu zapojí i čtenáři a navrhnou v komentářích jméno pro tento vznikající projekt.

Oblíbeným programem vznikajícím z CZ.NIC Labs je bezesporu Datovka, včetně svých mobilních verzí. Dospěl již tento program do fáze dokonalosti, kdy už se bude pouze reagovat na změny v ISDS, nebo přijdou ještě nějaká zásadnější vylepšení či jiné změny?

Stávající verze Datovky (a její varianty) je nyní poměrně vyzrálý program, kde pouze opravujeme chyby, které nám její uživatelé nahlásí. Současná verze je psaná v Pythonu a má stejné zobrazovací jádro pro všechny podporované operační systémy, což v praxi znamená hlavně to, že jediný systém, kde je Datovka dobře integrovaná do zbytku prostředí, je Linux.

I proto jsme se rozhodli, že letos začneme pracovat na nové verzi Datovky, která by měla být na jedné straně integrovaná do vizuálních stylů jednotlivých operačních systémů, a na druhé straně bude mít stejný základ, který bude použitelný na všech platformách. Při vývoji nové verze také budeme brát ohledy na zkušenosti, které nám vývoj první generace Datovky přinesl, protože i po několika letech nás stále dokážou uživatelé překvapit kreativními způsoby použití Datovky (ať už je to v množství příjemců odesílané zprávy nebo v množství datových zpráv, které mají v Datovce uloženy).

Poměrně málo známou oblastí působení laboratoří CZ.NIC je tvorba balíčků pro distribuci Debian a odvozené distribuce. Můžete tuto oblast činnosti trochu představit?

Naše tvorba balíčků je v zásadě rozdělena na dvě hlavní části. Jednak tvoříme balíčky k většině našich projektů (Knot DNS, BIRD), kde se neomezujeme jen na Debian a odvozené distribuce, ale například pro Knot DNS máme kromě standardních DEB a RPM např. i balíčky pro Arch Linux a Gentoo. Kromě standardních distribucí máme balíček i pro OpenWRT a osobně mám rozpracovaný homebrew recept pro Mac OS X.

Druhá část našeho balíčkování vychází hlavně z toho, že jsem již čtrnáctým rokem Debian Developer a za tu dobu jsem balíčkoval kde co (včetně epizody v pkg-gnome-gtk teamu). Debian nebo distribuce na něm založené používáme i v CZ.NICu a je poměrně logické, že tuto distribuci podporujeme zpětně i tímto způsobem.

První taková velká oblast je balíčkování DNS a DNSSEC software – ať už je to náš Knot DNS, knihovna ldns nebo DNS server NSD. Zároveň nemá smysl zastírat, že účastí na balíčkování často řešíme i vlastní problémy ve chvílích, kdy je nějaký balík neudržovaný a my jej používáme pro vlastní práci – což byl například případ Ruby on RailsRedmine nebo generátoru statických stránek Pelican, který používáme pro generování stránek projektů.

V případě dalších balíků byla často motivace jen zlepšit neutěšený stav, kde původní maintainer balíku ztratil zájem nebo přestal mít čas balík udržovat. Za velký úspěch považuju sjednocení každého release na jednu verzi Berkeley DB, učesání balíkování PHP a modulů a v nespolední řadě vydání nové verze knihovny GD2, kde jsme společně s Fedora maintainerem dokopali Pierra Joeyeho k vydání kódu, který byl dlouho udržován jen v PHP stromu, do samostatného release. Mimochodem, tento projekt by potřeboval více lidí jako sůl.

Plánujete vývoj nějakých dalších opensource aplikací (navíc k těm, které už se v laboratořích nyní vyvíjejí)?

Malé nahlédnutí pod pokličku budoucího vývoje už jsme udělali v předchozích odstavcích, ale snad bych jenom vypíchl naši práci v rámci projektu Turris, kde se snažíme pracovat na vylepšení OpenWRT pro normální domácí uživatele, a až se zastavíme v té jízdě, kterou jsme kolem projektu Turris měli, chtěli bychom začít pracovat na začleňování našich změn přímo do OpenWRT projektu.

Kolik vývojářů mají laboratoře? Co mají zájemci udělat, pokud by u vás chtěli pracovat? Co je největší výhodou práce v laboratořích CZ.NIC?

V laboratořích CZ.NIC nyní pracuje lehce přes 20 zaměstnanců, osobně však nerad operuji s těmito čísly, protože někteří kolegové jsou stále studenti a nepracují na plné úvazky, proto mohou tato absolutní čísla být poněkud matoucí. Laboratoře CZ.NIC mají kromě Prahy v současné pobočky v Brně a v Plzni, a v Praze jsme již poněkud prostorově omezeni, takže by takoví zájemci měli být ideálně z těchto dvou měst.

Hlavní atributy, které u nových kolegů hledáme, je technická excelence a nadšení pro věc. V CZ.NICu děláme na projektech, které mají zlepšovat používání internetu i moderních technologií, takže také hledáme lidi, kteří by se rádi podíleli na vývoji opensource softwaru, který má šanci měnit svět. A na to musí být člověk i trochu zapálený pro věc, nemyslíte?

Děkujeme za rozhovor.

Diskuze (21) Nahoru