RFC 9432: DNS Katalogové zóny

DNS zónu obvykle obsluhuje více autoritativních serverů, což je dokonce doporučeno z důvodu redundance. Velcí provozovatelé autoritativního DNS dokonce kombinují různé implementace name serverů, aby se vyhnuli úplnému výpadku infrastruktury v případě nějaké softwarové chyby. Pro synchronizaci obsahu zóny mezi autoritativními servery existuje pro DNS specifický mechanismus, který se nazývá transfer zóny. Je to osvědčený mechanismus, který podporují všechny běžné implementace DNS. Umožňuje jak transfer celé zóny (AXFR), tak inkrementální update (IXFR).

Na druhé straně může jeden autoritativní name server obsluhovat více DNS zón. Existuje jasný algoritmus pro výběr správné zóny pro odpověď na každý příchozí dotaz. Množina zón nakonfigurovaných na jednom autoritativním serveru se od úsvitu DNS nazývá katalog zón. Je celkem běžné, že jmenný server obsluhuje velmi mnoho zón (stovky tisíc), např. v případě poskytovatelů hostingu nebo služeb DNS, kteří hostují nebo zrcadlí zóny pro každého zákazníka. To je náročné jak pro programátora DNS implementace, který hledá datové struktury pro zachování výkonu (což je vlastně v oblasti autoritativních DNS serverů důležité i z hlediska bezpečnosti), tak pro provozovatele, který musí server pečlivě nastavit a zavést jeho průběžné monitorování.

Největším problémem při provozu velkého množství zón je však to, že se množina zón neustále mění. Každý den se přidávají nové, některé se ruší a jiné třeba vyžadují změnu konfigurace. Programátor musí jen dbát na to, aby taková změna konfigurace nenarušila odpovídání z ostatních zón, provozovatel však musí každý ze všech provozovaných serverů překonfigurovat zvlášť, obvykle úpravou konfiguračního souboru a jeho znovunačtením. Na rozdíl od standardizovaných transferů obsahu jednotlivých zón neexistuje snadný způsob přenosu konfigurace. Různé DNS implementace navíc nepřekvapivě disponují odlišnými konfiguračními volbami.

Synchronizace množiny nakonfigurovaných zón mezi autoritativními servery je právě tím problémem, který katalogové zóny řeší. Základní myšlenka spočívá v tom, že konfigurace je serializována do běžného formátu zóny a k její úplné (AXFR) nebo inkrementální (IXFR) synchronizaci jsou použity zavedené rutiny zónového transferu. Obsah katalogové zóny by měl být neveřejný a sdílený jen mezi autoritativními servery. Zóny nakonfigurované na základě katalogové zóny se nazývají member zóny.

V roce 2016 se v Bindu 9.11.0a3 objevila první experimentální implementace katalogových zón, popsaná též v odpovídajícím IETF draftu. Kromě mnoha nedoladěných drobností a otevřených problémů ji bylo možné jen stěží učinit interoperabilní, protože přebírala mnoho konfiguračních voleb Bindu a serializovala je do komplikovaného obsahu katalogové zóny. Povídalo se, že se také implementace špatně chovala při vysokém počtu member zón, což bylo nešťastné, protože právě to je parketou katalogových zón. V DNS komunitě však přetrvávala poptávka po schůdném řešení.

Počátkem roku 2020 se ustavila neformální skupina zainteresovaných členů komunity, v níž byli i vývojáři několika open-source DNS implementací. Prvotní myšlenkou bylo, že nové katalogové zóny budou obsahovat pouze sadu member zón a nic jiného. Podrobná konfigurace každé member zóny měla být odvozena ze šablony sdílené všemi zónami, protože většinou vyžadují ekvivalentní konfiguraci. Někdy je však potřeba s některými podmnožinami member zón zacházet odlišně (např. se zónami podepsanými protokolem DNSSEC a nepodepsanými). To bylo vyřešeno definicí omezené sady tzv. vlastností každé member zóny. Vlastnost Group (Skupina) umožňuje přiřadit některým member zónám odlišnou konfigurační šablonu, zatímco vlastnost Coo (Změna vlastnictví) se stará o plynulý přechod member zóny mezi dvěma katalogovými zónami. Je důležité, že tyto vlastnosti jsou dostatečně obecné, aby je mohli implementovat různí dodavatelé softwaru.

Ve výsledku se interoperabilní implementace nových katalogových zón brzy objevily ve verzích Knot DNS 3.1 (srpen 2021), Bind 9.18.3 (květen 2022) a PowerDNS 4.7 (říjen 2022). NSD, přestože investoval mnoho úsilí do standardizace a spolupráce, stále spoléhá na spíše experimentální sadu skriptů spravujících provoz katalogových zón nad nepodporujícím serverem. Společná specifikace byla zveřejněna jako RFC 9432 (červenec 2023) jako „Proposed standard“.

Spolupráci na interoperabilní implementaci katalogových zón spolu s publikovaným RFC považuji za velký úspěch pro DNS komunitu, uživatele a také pro sebe. Věřím, že mnohostranná spolupráce významně přispěla k celkové hodnotě dokumentu. Děkuji za spolupráci a veškerou podporu všem spoluautorům i CZ.NIC.

Vypadá to, že tímto příběh končí, ale čeká nás ještě hodně práce. Na základě zpětné vazby od rostoucího počtu uživatelů této funkce jsme již provedli některá vylepšení v implementaci Knot DNS a jsem si jistý, že budeme dál pokračovat.

Autor:

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..