V předchozím díle jsme si vytvořili jednoduchou zónu ve formě zónového souboru a dnes si povíme, jak s takovým souborem pracovat. Jedná se o nejčastější uživatelskou operaci a je užitečné jí porozumět.
Automatická aktualizace zónového souboru
Existuje několik situací, kdy se obsah zóny změní automaticky. Sem patří například automatické podepisování DNSSEC nebo výsledek zónového transferu na sekundárním serveru. Většinou je žádoucí, aby se obsah aktualizované zóny někam uložil pro opětovné vyžití, třeba po restartu démona. Výchozím nastavením Knot DNS je, že se obsah zónového souboru automaticky aktualizuje bezprostředně poté, co má k dispozici nový obsah zóny. Můžeme se o tom přesvědčit výpisem:
$ sudo cat /var/lib/knot/xdp.cz.zone ;; Zone dump (Knot DNS 3.1.2) xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 2 36000 600 864000 300 xdp.cz. 300 NS ns1.xdp.cz. xdp.cz. 300 NS ns2.xdp.cz. xdp.cz. 300 DNSKEY 256 3 13 UGwIkwzLMpQMkfcct1TRfY9yTpf2Tf9g7W2F1j3XEwh2BWNjve3Ul7EA1CYBEDfuQFNvySyv0Vbm07GOwUVPIw== xdp.cz. 300 DNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== xdp.cz. 0 CDS 32114 13 2 3EA51B0EE57236721C664C873A23579D8A2BBF9FFE9DBB2E192D8CD6D173EE5B xdp.cz. 0 CDNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== ns1.xdp.cz. 300 AAAA 2001:1488:ac15:ff30::28 ns2.xdp.cz. 300 AAAA 2001:1488:ac15:ff30::29 ;; DNSSEC signatures xdp.cz. 300 RRSIG NS 13 2 300 20211020181348 20211006164348 16843 xdp.cz. Ti9iWvD5Bg+s7axUeETeu0pc0qhVw5quPgZQOGSDPTnzKLsHV/E4RJk6yf6pOowp5qbOvqFDWevSqeJ0uq6gRA== xdp.cz. 300 RRSIG SOA 13 2 300 20211020181348 20211006164348 16843 xdp.cz. WBpdVCo4Lie8W723QMuJw2fSf9asc+H4iokHt4J23tvBlacE9oGuTGoxF206CRkxgdZNJsF+9LphBXHtksm/qQ== xdp.cz. 300 RRSIG NSEC 13 2 300 20211020181348 20211006164348 16843 xdp.cz. r3Vmv+0T2oa2DtvKK5NTOZuZEBKNRwC9v8Wp0S0Lmyc+7gGJkn6GHHGmCehoc/Sw8HxYA55RPK9jHFzunxGNDQ== xdp.cz. 300 RRSIG DNSKEY 13 2 300 20211020181348 20211006164348 32114 xdp.cz. VvXR/LemDmeqxuYC3Bb2Dcrr9JXl6EXKaOeaIl1X/6nW44ldNWwDSdwLy26yhzt87DlV3MZkjEew/VZLZzAN2w== xdp.cz. 0 RRSIG CDS 13 2 0 20211020181348 20211006164348 32114 xdp.cz. +g42GFh0crOwB03X7xvz6RpQk6EQCAnH9gE1bnfcsnowNgPXDoa1ikImr9zpP+/jCB6vbPNNJZfuqYXxn91VNA== xdp.cz. 0 RRSIG CDNSKEY 13 2 0 20211020181348 20211006164348 32114 xdp.cz. rmiLZIezqVhCFamU+lmE9DN0i9U3pwzowr/tZemyVpldrR8TopXI2/o+izNzxMbfa+9sS2fHDcGhCKnFutqHzQ== ns1.xdp.cz. 300 RRSIG AAAA 13 3 300 20211020181348 20211006164348 16843 xdp.cz. togaA5uet7XtYjeG0n2265V46L4C8VUSa+Tg2K0DRqNh1xc8EqHlm6E3WsdSTvo9ruA5IQrDhgrnRe7qhkY0Pg== ns1.xdp.cz. 300 RRSIG NSEC 13 3 300 20211020181348 20211006164348 16843 xdp.cz. DkQCADKBGf29vlLvqRb5eCDKgqq0B9pl/yn1nZV8d3bj1BzBzzfdOM0BlAnlH10+Hto4VtysOLoxKvfBfsvszQ== ns2.xdp.cz. 300 RRSIG AAAA 13 3 300 20211020181348 20211006164348 16843 xdp.cz. wbJZMA9F1z4sHo3G3qupxDNRH9o5SI0rPLbB5DYl9X/pJs/ugSIUF1fLgnoDTGL9vvvSWbWJch5eL0mN7HFmvw== ns2.xdp.cz. 300 RRSIG NSEC 13 3 300 20211020181348 20211006164348 16843 xdp.cz. 4c6Ni1vEyduKa0lZ4LtcFWQCqqD4u+mHt35NE7NunJ8M5PEMb7gNga787k3jFSQl4CJDsWrZCUnM+Sj1yaowOQ== ;; DNSSEC NSEC chain xdp.cz. 300 NSEC ns1.xdp.cz. NS SOA RRSIG NSEC DNSKEY CDS CDNSKEY ns1.xdp.cz. 300 NSEC ns2.xdp.cz. AAAA RRSIG NSEC ns2.xdp.cz. 300 NSEC xdp.cz. AAAA RRSIG NSEC ;; Written 22 records ;; Time 2021-10-06 20:13:48 CEST
V tuto chvíli často přichází rozčarování uživatelů, kdy zjistí, že přišli o svůj krásně strukturovaný zónový soubor :-). Automatickou aktualizaci zónového souboru je možné ovlivnit volbou zonefile-sync v nastavení zóny, kde hodnota -1 vypne funkci úplně, nebo kladná hodnota stanoví zpoždění synchronizace. To může být vhodné u velkých zón nebo zón, které se mění velmi často.
Zónový žurnál
Aby se neztratila informace o změnách v zóně, nabízí Knot DNS zónový žurnál. To je binární databáze, kam si jednotlivé zóny mohou ukládat svoje změny nebo i kompletní obsah. Pomocí nástroje kjournalprint (budoucí verze bude přebírat cestu k žurnálu z konfigurace) si můžeme vypsat žurnál pro zadanou zónu:
$ sudo kjournalprint /var/lib/knot/journal xdp.cz ;; Changes between zone versions: 1 -> 2, changeset: 1 ;; Removed xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 1 36000 600 864000 300 ;; Added xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 2 36000 600 864000 300 xdp.cz. 300 DNSKEY 256 3 13 UGwIkwzLMpQMkfcct1TRfY9yTpf2Tf9g7W2F1j3XEwh2BWNjve3Ul7EA1CYBEDfuQFNvySyv0Vbm07GOwUVPIw== xdp.cz. 300 DNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== xdp.cz. 0 CDS 32114 13 2 3EA51B0EE57236721C664C873A23579D8A2BBF9FFE9DBB2E192D8CD6D173EE5B xdp.cz. 0 CDNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== xdp.cz. 300 RRSIG NS 13 2 300 20211020181348 20211006164348 16843 xdp.cz. Ti9iWvD5Bg+s7axUeETeu0pc0qhVw5quPgZQOGSDPTnzKLsHV/E4RJk6yf6pOowp5qbOvqFDWevSqeJ0uq6gRA== xdp.cz. 300 RRSIG SOA 13 2 300 20211020181348 20211006164348 16843 xdp.cz. WBpdVCo4Lie8W723QMuJw2fSf9asc+H4iokHt4J23tvBlacE9oGuTGoxF206CRkxgdZNJsF+9LphBXHtksm/qQ== xdp.cz. 300 RRSIG NSEC 13 2 300 20211020181348 20211006164348 16843 xdp.cz. r3Vmv+0T2oa2DtvKK5NTOZuZEBKNRwC9v8Wp0S0Lmyc+7gGJkn6GHHGmCehoc/Sw8HxYA55RPK9jHFzunxGNDQ== xdp.cz. 300 RRSIG DNSKEY 13 2 300 20211020181348 20211006164348 32114 xdp.cz. VvXR/LemDmeqxuYC3Bb2Dcrr9JXl6EXKaOeaIl1X/6nW44ldNWwDSdwLy26yhzt87DlV3MZkjEew/VZLZzAN2w== xdp.cz. 0 RRSIG CDS 13 2 0 20211020181348 20211006164348 32114 xdp.cz. +g42GFh0crOwB03X7xvz6RpQk6EQCAnH9gE1bnfcsnowNgPXDoa1ikImr9zpP+/jCB6vbPNNJZfuqYXxn91VNA== xdp.cz. 0 RRSIG CDNSKEY 13 2 0 20211020181348 20211006164348 32114 xdp.cz. rmiLZIezqVhCFamU+lmE9DN0i9U3pwzowr/tZemyVpldrR8TopXI2/o+izNzxMbfa+9sS2fHDcGhCKnFutqHzQ== ns1.xdp.cz. 300 RRSIG AAAA 13 3 300 20211020181348 20211006164348 16843 xdp.cz. togaA5uet7XtYjeG0n2265V46L4C8VUSa+Tg2K0DRqNh1xc8EqHlm6E3WsdSTvo9ruA5IQrDhgrnRe7qhkY0Pg== ns1.xdp.cz. 300 RRSIG NSEC 13 3 300 20211020181348 20211006164348 16843 xdp.cz. DkQCADKBGf29vlLvqRb5eCDKgqq0B9pl/yn1nZV8d3bj1BzBzzfdOM0BlAnlH10+Hto4VtysOLoxKvfBfsvszQ== ns2.xdp.cz. 300 RRSIG AAAA 13 3 300 20211020181348 20211006164348 16843 xdp.cz. wbJZMA9F1z4sHo3G3qupxDNRH9o5SI0rPLbB5DYl9X/pJs/ugSIUF1fLgnoDTGL9vvvSWbWJch5eL0mN7HFmvw== ns2.xdp.cz. 300 RRSIG NSEC 13 3 300 20211020181348 20211006164348 16843 xdp.cz. 4c6Ni1vEyduKa0lZ4LtcFWQCqqD4u+mHt35NE7NunJ8M5PEMb7gNga787k3jFSQl4CJDsWrZCUnM+Sj1yaowOQ== xdp.cz. 300 NSEC ns1.xdp.cz. NS SOA RRSIG NSEC DNSKEY CDS CDNSKEY ns1.xdp.cz. 300 NSEC ns2.xdp.cz. AAAA RRSIG NSEC ns2.xdp.cz. 300 NSEC xdp.cz. AAAA RRSIG NSEC
Verzovanou změnu zóny nazýváme changeset. Ve výpisu vidíme jeden changeset, který popisuje změnu zóny z verze 1 na verzi 2. Konkrétně jde o prvotní podepsání zóny. Changeset se skládá ze dvou částí (v terminálu barevně odlišených). První část jsou záznamy, které byly ze zóny odebrány. Druhá část popisuje záznamy nově přidané.
Nabízí se otázka, k čemu jsou změny v žurnálu, když máme aktuální zónový soubor? Nejčastějším důvodem je oddělení DNSSEC od samotného obsahu nebo vyšší efektivita zónového transferu, který je dvojího typu:
- Úplný zónový transfer (tzv. AXFR) – bezkontextový přenos kompletní zóny
- Rozdílový zónový transfer (tzv. IXFR) – přenos následných změn zóny od zadané verze
Aby byl primární server schopen poskytnout IXFR, musí si pamatovat jednotlivé změny, a ty jsou právě uloženy v žurnálu.
Úprava zónového souboru
Při ruční správě zónového souboru může být praktické mít ho vyhrazený jen pro běžné záznamy a žurnál pro ukládání rozdílů a generovaného obsahu souvisejícího s DNSSEC. Tuto oblíbenou konfiguraci provedeme rozšířením nastavení zóny na primárním serveru o volby zonefile-sync, zonefile-load a journal-content:
zone: - domain: xdp.cz. notify: secondary acl: acl_secondary dnssec-signing: on zonefile-sync: -1 zonefile-load: difference-no-serial journal-content: all
To zaručí, že nám démon nebude přepisovat zónový soubor a že se při jeho opětovném načtení automaticky vypočítá rozdíl, navýší verze, aktualizuje DNSSEC a uloží do žurnálu. Další možné kombinace použitých voleb jsou popsány v dokumentaci.
Dále vrátíme obsah zónového souboru do úvodní podoby (bez záznamů DNSSEC) a potvrdíme sudo systemctl reload knot. V logu vidíme:
Oct 11 14:13:58 ns1.xdp.cz systemd[1]: Reloaded Knot DNS server. Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] zone file parsed, serial corrected 1 -> 3 Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] zone stored to journal, serial 2 Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: notice: [xdp.cz.] DNSSEC, KSK submission, waiting for confirmation Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, key, tag 32114, algorithm ECDSAP256SHA256, KSK, public, ready, active+ Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, key, tag 16843, algorithm ECDSAP256SHA256, public, active Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, signing started Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, successfully signed Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] loaded, serial 2 -> 3 -> 2, 1731 bytes Oct 11 14:13:59 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, next signing at 2021-10-13T20:13:48+0200
Po rekonfiguraci si démon načetl zónový soubor (verze 1), aplikoval na něj changeset s DNSSEC (verze 2) a pak aktualizoval DNSSEC (verze 3). Protože byl výsledek podepisování beze změny, zůstalo se u verze 2. Celý obsah zóny se také uložil do žurnálu jako speciální changeset (zone-in-journal), který se používá při výpočtu rozdílu oproti zónovému souboru. Tento changeset logicky neobsahuje sekci s odebranými záznamy:
$ sudo kjournalprint /var/lib/knot/journal/ xdp.cz ;; Zone-in-journal, serial: 2, changeset: 1 ;; Added xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 2 36000 600 864000 300 xdp.cz. 300 NS ns1.xdp.cz. xdp.cz. 300 NS ns2.xdp.cz. xdp.cz. 300 DNSKEY 256 3 13 UGwIkwzLMpQMkfcct1TRfY9yTpf2Tf9g7W2F1j3XEwh2BWNjve3Ul7EA1CYBEDfuQFNvySyv0Vbm07GOwUVPIw== xdp.cz. 300 DNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== xdp.cz. 0 CDS 32114 13 2 3EA51B0EE57236721C664C873A23579D8A2BBF9FFE9DBB2E192D8CD6D173EE5B xdp.cz. 0 CDNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== ns1.xdp.cz. 300 AAAA 2001:1488:ac15:ff30::28 ns2.xdp.cz. 300 AAAA 2001:1488:ac15:ff30::29 xdp.cz. 300 RRSIG NS 13 2 300 20211020181348 20211006164348 16843 xdp.cz. Ti9iWvD5Bg+s7axUeETeu0pc0qhVw5quPgZQOGSDPTnzKLsHV/E4RJk6yf6pOowp5qbOvqFDWevSqeJ0uq6gRA== xdp.cz. 300 RRSIG SOA 13 2 300 20211020181348 20211006164348 16843 xdp.cz. WBpdVCo4Lie8W723QMuJw2fSf9asc+H4iokHt4J23tvBlacE9oGuTGoxF206CRkxgdZNJsF+9LphBXHtksm/qQ== xdp.cz. 300 RRSIG NSEC 13 2 300 20211020181348 20211006164348 16843 xdp.cz. r3Vmv+0T2oa2DtvKK5NTOZuZEBKNRwC9v8Wp0S0Lmyc+7gGJkn6GHHGmCehoc/Sw8HxYA55RPK9jHFzunxGNDQ== xdp.cz. 300 RRSIG DNSKEY 13 2 300 20211020181348 20211006164348 32114 xdp.cz. VvXR/LemDmeqxuYC3Bb2Dcrr9JXl6EXKaOeaIl1X/6nW44ldNWwDSdwLy26yhzt87DlV3MZkjEew/VZLZzAN2w== xdp.cz. 0 RRSIG CDS 13 2 0 20211020181348 20211006164348 32114 xdp.cz. +g42GFh0crOwB03X7xvz6RpQk6EQCAnH9gE1bnfcsnowNgPXDoa1ikImr9zpP+/jCB6vbPNNJZfuqYXxn91VNA== xdp.cz. 0 RRSIG CDNSKEY 13 2 0 20211020181348 20211006164348 32114 xdp.cz. rmiLZIezqVhCFamU+lmE9DN0i9U3pwzowr/tZemyVpldrR8TopXI2/o+izNzxMbfa+9sS2fHDcGhCKnFutqHzQ== ns1.xdp.cz. 300 RRSIG AAAA 13 3 300 20211020181348 20211006164348 16843 xdp.cz. togaA5uet7XtYjeG0n2265V46L4C8VUSa+Tg2K0DRqNh1xc8EqHlm6E3WsdSTvo9ruA5IQrDhgrnRe7qhkY0Pg== ns1.xdp.cz. 300 RRSIG NSEC 13 3 300 20211020181348 20211006164348 16843 xdp.cz. DkQCADKBGf29vlLvqRb5eCDKgqq0B9pl/yn1nZV8d3bj1BzBzzfdOM0BlAnlH10+Hto4VtysOLoxKvfBfsvszQ== ns2.xdp.cz. 300 RRSIG AAAA 13 3 300 20211020181348 20211006164348 16843 xdp.cz. wbJZMA9F1z4sHo3G3qupxDNRH9o5SI0rPLbB5DYl9X/pJs/ugSIUF1fLgnoDTGL9vvvSWbWJch5eL0mN7HFmvw== ns2.xdp.cz. 300 RRSIG NSEC 13 3 300 20211020181348 20211006164348 16843 xdp.cz. 4c6Ni1vEyduKa0lZ4LtcFWQCqqD4u+mHt35NE7NunJ8M5PEMb7gNga787k3jFSQl4CJDsWrZCUnM+Sj1yaowOQ== xdp.cz. 300 NSEC ns1.xdp.cz. NS SOA RRSIG NSEC DNSKEY CDS CDNSKEY ns1.xdp.cz. 300 NSEC ns2.xdp.cz. AAAA RRSIG NSEC ns2.xdp.cz. 300 NSEC xdp.cz. AAAA RRSIG NSEC
S vylepšenou konfigurací vyzkoušíme nové chování. Do zónového souboru přidáme záznam, např.:
xdp.cz. TXT "DNSSEC is easy!"
A po potvrzení sudo systemctl reload knot vidíme:
Oct 11 14:43:33 ns1.xdp.cz systemd[1]: Reloaded Knot DNS server. Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] zone file parsed, serial corrected 1 -> 3 Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: notice: [xdp.cz.] DNSSEC, KSK submission, waiting for confirmation Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, key, tag 32114, algorithm ECDSAP256SHA256, KSK, public, ready, active+ Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, key, tag 16843, algorithm ECDSAP256SHA256, public, active Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, signing started Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, successfully signed Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] loaded, serial 2 -> 3, 1873 bytes Oct 11 14:43:33 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] DNSSEC, next signing at 2021-10-13T20:13:48+0200 Oct 11 14:43:34 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::29@53, serial 3 Oct 11 14:43:34 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] IXFR, outgoing, remote 2001:1488:ac15:ff30::29@60466, started, serial 2 -> 3 Oct 11 14:43:34 ns1.xdp.cz knotd[61008]: info: [xdp.cz.] IXFR, outgoing, remote 2001:1488:ac15:ff30::29@60466, finished, 0.00 seconds, 1 messages, 853 bytes
Výsledná zóna verze 3 byla přenesena na sekundární server pomocí IXFR. Obsah žurnálu obsahuje další changeset:
$ sudo kjournalprint /var/lib/knot/journal/ xdp.cz ;; Zone-in-journal, serial: 2, changeset: 1 ;; Added xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 2 36000 600 864000 300 ... ;; Changes between zone versions: 2 -> 3, changeset: 2 ;; Removed xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 2 36000 600 864000 300 xdp.cz. 300 RRSIG SOA 13 2 300 20211020181348 20211006164348 16843 xdp.cz. WBpdVCo4Lie8W723QMuJw2fSf9asc+H4iokHt4J23tvBlacE9oGuTGoxF206CRkxgdZNJsF+9LphBXHtksm/qQ== xdp.cz. 300 RRSIG NSEC 13 2 300 20211020181348 20211006164348 16843 xdp.cz. r3Vmv+0T2oa2DtvKK5NTOZuZEBKNRwC9v8Wp0S0Lmyc+7gGJkn6GHHGmCehoc/Sw8HxYA55RPK9jHFzunxGNDQ== xdp.cz. 300 NSEC ns1.xdp.cz. NS SOA RRSIG NSEC DNSKEY CDS CDNSKEY ;; Added xdp.cz. 300 SOA ns1.xdp.cz. knot-dns.nic.cz. 3 36000 600 864000 300 xdp.cz. 300 TXT "DNSSEC is easy!" xdp.cz. 300 RRSIG SOA 13 2 300 20211025124333 20211011111333 16843 xdp.cz. uzW/45IFKZFM2ZpKPOwdwTI1uhYpE7iiTN/3GvK3Cyl8Ijjxq+esg226f/30clEwOrhVtQZHTFy/9O5xuhFZ/A== xdp.cz. 300 RRSIG TXT 13 2 300 20211025124333 20211011111333 16843 xdp.cz. i3XAmVJswTt7d8c58vwdMQI0p+VD/XMppm5gmsDZP7lU4UbangbwFahLB4+IJiKsp3c0q43oz1igFoR+6YLscA== xdp.cz. 300 RRSIG NSEC 13 2 300 20211025124333 20211011111333 16843 xdp.cz. qwPAxoLJOqBpirkK+OM0hZQpJSjGg7580fa2DIg/McBarXgH5JT7ZEdSQ/4oisBGMXcG5zLI7ck6MDIH02ALfA== xdp.cz. 300 NSEC ns1.xdp.cz. NS SOA TXT RRSIG NSEC DNSKEY CDS CDNSKEY
Na sekundárním serveru žurnál nepotřebujeme a vypneme ho přidáním volby journal-content: none.
Nastavení žurnálu
Databáze žurnálu má několik konfigurovatelných limitů:
- maximální velikost databáze (journal-db-max-size) – společný limit pro všechny zóny; omezuje obsazení diskového prostoru databází a neměl by být nikdy dosažen!
- maximální obsazení zónou (zone-max-usage) – omezení konkrétní zóny na součet velikostí všech jejích changesetů,
- Maximální hloubka historie zóny (zone-max-depth) – omezení konkrétní zóny na počet jejích changesetů.
Tyto limity je třeba zvážit v kontextu s plánovaným počtem zón a s jejich velikostmi. Jejich výchozí hodnoty jsou v dokumentaci. Při dosažení limitu 2. nebo 3. dojde k aktualizaci zónového souboru, pokud není zakázána, a případně ke sloučení nejstarších changesetů. Tím se uvolní místo pro nové changesety. Doporučené nastavení je takové, kdy součet limitů 2. přes všechny zóny je menší než hodnota limitu 1.
Sériové číslo zóny
Správná funkce zónových transferů a žurnálu vyžaduje navyšování sériového čísla zóny (SOA serial) současně se změnami v zóně! O kolik se hodnota bude navyšovat a jaká byla prvotní hodnota, je až na jedno omezení čistě na volbě uživatele. Protože jde o 32bitové neznaménkové číslo, může nabývat hodnot z intervalu [0, 4294967295] a aby byla dodržena sériová aritmetika (RFC 1982), je hodnota maximálního navýšení omezena na 2147483647. Stojí za povšimnutí, že např.:
- 2147483649 < 4294967295
- 2147483649 < 0
- 2147483649 vs 1 není definováno
- 2147483649 > 2
V případě automatické správy sériového čísla je možné zvolit jeho sémantiku. Volba serial-policy u nastavení zóny nabízí tyto interpretace:
- increment – obecné číslo, které se navyšuje o hodnotu 1,
- unixtime – hodnota unixového času v době změny zóny,
- dateserial – kombinace data a revize ve formě YYYYMMDDnn (rok, měsíc, den, revize).
Na primárním serveru rozšíříme konfiguraci zóny o položku serial-policy: dateserial a potvrdíme sudo systemctl reload knot. Démon načetl novou konfiguraci, ale protože se nezměnila zóna, tak sériové číslo zůstalo původní (aktuálně hodnota 5). Příkazem sudo knotc zone-sign xdp.cz donutíme server přepodepsat zónu:
Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] control, received command 'zone-sign' Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] DNSSEC, dropping previous signatures, re-signing zone Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: notice: [xdp.cz.] DNSSEC, KSK submission, waiting for confirmation Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] DNSSEC, key, tag 32114, algorithm ECDSAP256SHA256, KSK, public, ready, active+ Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] DNSSEC, key, tag 16843, algorithm ECDSAP256SHA256, public, active Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] DNSSEC, signing started Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] DNSSEC, successfully signed Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] DNSSEC, next signing at 2021-10-26T16:03:08+0200 Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::29@53, serial 2021101900 Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] IXFR, outgoing, remote 2001:1488:ac15:ff30::29@60586, started, serial 5 -> 2021101900 Oct 19 16:03:08 ns1.xdp.cz knotd[70458]: info: [xdp.cz.] IXFR, outgoing, remote 2001:1488:ac15:ff30::29@60586, finished, 0.00 seconds, 1 messages, 2507 bytes
Vidíme, že se sériové číslo povýšilo na hodnotu 2021101900. Můžeme ověřit i dotazem:
$ kdig @ns1.xdp.cz xdp.cz soa ;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 1510 ;; Flags: qr aa rd; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0 ;; QUESTION SECTION: ;; xdp.cz. IN SOA ;; ANSWER SECTION: xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021101900 36000 600 864000 300 ;; Received 77 B ;; Time 2021-10-19 16:12:03 CEST ;; From 2001:1488:ac15:ff30::28@53(UDP) in 0.0 ms
Mrazení zóny
Abychom zamezili souběhu úpravy zóny přes zónový soubor a změny zóny démonem, je možné pozastavit automatické zásahy tzv. zmrazením zóny. Toho docílíme zavoláním příkazu sudo knotc -b zone-freeze xdp.cz. Parametr -b zajistí, že příkaz vyčká na dokončení operace. Ověříme příkazem:
$ sudo knotc zone-status xdp.cz +freeze [xdp.cz.] freeze: yes
Když je zóna zmrazená, můžeme bez obav upravovat zónový soubor. Po dokončení ručních úprav, zónu rozmrazíme příkazem sudo knotc zone-thaw xdp.cz, abychom odblokovali automatické operace.
Na první pohled se může zdát správa zóny složitá, což je dáno velkou různorodostí uživatelských požadavků, ale jakmile si najdete jeden svůj přístup, který konzistentně dodržuje, stane se z toho rutinní záležitost.
V příštím díle se podíváme na zónové transfery.