V úvodním dílu jsme si zprovoznili automatickou synchronizaci zóny na sekundárním serveru. Dnes si ukážeme jaké jsou další možnosti nastavení zónových transferů a co je jejich obsahem.
Ještě připomeňme, že DNS vyžaduje pro správný chod nejen protokol UDP, ale i protokol TCP. Zónové transfery využívají výhradně TCP!
Role serveru
Zónový transfer (tzv. XFR) probíhá vždy mezi dvěma servery, a to vždy v jednom, předem stanoveném, směru. Tento směr je určen rolí serveru:
- Primární (master) server – zdroj obsahu zóny,
- Sekundární (slave) server – příjemce obsahu zóny.
Poznámka: dříve se označení „primární server“ používalo v trochu jiném kontextu, ale na základě RFC 8499 je zavedeno nové označení „primární master“. Nicméně jde spíše o historický koncept, který nemá v praxi významný užitek.
Na jeden server může mít nakonfigurováno více zónových transferů a pro jednu zónu může být v roli primárního i sekundárního serveru (vždy vzhledem k jinému vzdálenému serveru). Role serveru se u Knot DNS rozlišuje pouze na základě konfigurační volby master v nastavení zóny, kdy její přítomnost určuje, že jde o sekundární server.
Definice vzdáleného serveru
Pro konfiguraci transferu je nutné nejprve definovat vzdálený server v sekci remote. Jeho pojmenování je libovolné a nejdůležitějším parametrem je jeho síťová adresa. Na primárním serveru máme již tuto definici:
remote: - id: secondary address: 2001:1488:ac15:ff30::29
V praxi je DNS server velmi často dostupný pod více adresami. Většinou má alespoň jednu IPv4 a jednu IPv6 adresu. Toho můžeme využít i při komunikaci mezi servery, kdy výpadek některé z adres neovlivní funkci zónových transferů. Pro ukázku přidejme v definici sekundárního serveru jednu (nefunkční) IPv4 adresu 192.168.1.29:
remote: - id: secondary address: [192.168.1.29, 2001:1488:ac15:ff30::29]
Po načtení nové konfigurace a explicitním poslání NOTIFY příkazem sudo knotc zone-notify xdp.cz vidíme v logu první neúspěšný pokus s nefunkční adresou, ale s další adresou ze seznamu už operace proběhla v pořádku (případné další adresy v pořadí by se už nezkoušely):
Oct 26 11:56:37 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] control, received command 'zone-notify' Oct 26 11:56:37 ns1.xdp.cz knotd[130576]: warning: [xdp.cz.] notify, outgoing, remote 192.168.1.29@53, failed (network is unreachable) Oct 26 11:56:37 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::29@53, serial 2021101900
Dalším častým scénářem je více sekundárních nebo dokonce i primárních serverů. V konfiguraci definujeme další (nefunkční) server broken_secondary se dvěma adresami:
remote: - id: secondary address: [192.168.1.29, 2001:1488:ac15:ff30::29] - id: broken_secondary address: [192.168.1.27, 2001:1488:ac15:ff30::27]
Dále rozšíříme seznam příjemců NOTIFY v nastavení zóny notify: [secondary, broken_secondary]. Po načtení nové konfigurace a poslání NOTIFY vidíme:
Oct 26 12:35:23 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] control, received command 'zone-notify' Oct 26 12:35:23 ns1.xdp.cz knotd[130576]: warning: [xdp.cz.] notify, outgoing, remote 192.168.1.29@53, failed (network is unreachable) Oct 26 12:35:23 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::29@53, serial 2021101900 Oct 26 12:35:23 ns1.xdp.cz knotd[130576]: warning: [xdp.cz.] notify, outgoing, remote 192.168.1.27@53, failed (network is unreachable) Oct 26 12:35:26 ns1.xdp.cz knotd[130576]: warning: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::27@53, failed (connection reset) Oct 26 12:35:26 ns1.xdp.cz knotd[130576]: error: [xdp.cz.] zone event 'notify' failed (failed)
Oproti předchozí situaci s více adresami je zde jeden významný rozdíl. Operace NOTIFY se vykonala pro všechny uvedené servery, bez ohledu na to, zda pro některý z nich byla úspěšná. U druhého serveru ale nebyla funkční ani jedna adresa a výsledkem je chyba.
Protože se jedná o častou chybu v návrhu konfigurace, ještě stručný souhrn. Při konfiguraci více adres, jakožto adresátů NOTIFY nebo primárních serverů, je uvedeme:
- v rámci jedné definice remote, když se jedná o seznam alternativních adres,
- jako více definic remote, když adresy patří k nezávislým serverům.
Pokud lokální server poslouchá na více adresách, je na operačním systému, kterou adresu použije jako zdrojovou při komunikaci se vzdáleným serverem! V některých nasazení to může být problém a je nutné explicitně specifikovat zdrojovou adresu. Toho docílíme přidáním položky via do popisu vzdáleného serveru. Například:
remote: - id: secondary address: 2001:1488:ac15:ff30::29 via: 2001:1488:ac15:ff30::28
Zabezpečení komunikace
Nejstarším a nejčastějším prostředkem pro zajištění autentičnosti a integrity komunikace mezi autoritativními DNS servery je protokol TSIG, který využívá kryptografickou hašovací funkci v kombinaci s tajným klíčem. Nevýhodou je, že klíč je sdílen mezi všemi komunikujícími servery a je uložen v konfiguraci. Takto zabezpečená DNS zpráva obsahuje navíc záznam TSIG, který se skládá z kryptografického haše, časových údajů o jeho platnosti a pár dalších informací. Klíč můžeme vygenerovat následujícím příkazem, jehož jediným povinným parametrem je název klíče:
$ keymgr -t key.xdp.cz. # hmac-sha256:key.xdp.cz:be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo= key: - id: key.xdp.cz. algorithm: hmac-sha256 secret: be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo=
Zakomentovaný řádek lze využít jako parametr do nástroje kdig. Zbytek zkopírujeme do konfigurace primárního serveru a klíč uvedeme u popisu serveru:
key: - id: key.xdp.cz. algorithm: hmac-sha256 secret: be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo= remote: - id: secondary address: 2001:1488:ac15:ff30::29 key: key.xdp.cz.
Obdobně upravíme konfiguraci na sekundárním serveru:
key: - id: key.xdp.cz. algorithm: hmac-sha256 secret: be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo= remote: - id: primary address: 2001:1488:ac15:ff30::28 key: key.xdp.cz.
Při řešení problémů nejen u zónových transferů je výhodné zapnout ladící režim logování, kdy se zobrazí i logy týkající se vyhodnocení ACL pravidel. To provedeme uvedením debug v sekci log konfigurace:
log: - target: syslog any: debug
Po načtení nové konfigurace a například přepodepsání zóny, vidíme na primárním serveru úspěšný transfer s využitím TSIG:
Oct 26 13:57:13 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::29@53, serial 2021102602 Oct 26 13:57:13 ns1.xdp.cz knotd[130576]: debug: [xdp.cz.] ACL, allowed, action query, remote 2001:1488:ac15:ff30::29@60702, key 'key.xdp.cz.' Oct 26 13:57:13 ns1.xdp.cz knotd[130576]: debug: [xdp.cz.] ACL, allowed, action transfer, remote 2001:1488:ac15:ff30::29@60702, key 'key.xdp.cz.' Oct 26 13:57:13 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] IXFR, outgoing, remote 2001:1488:ac15:ff30::29@60702, started, serial 2021102600 -> 2021102602 Oct 26 13:57:13 ns1.xdp.cz knotd[130576]: info: [xdp.cz.] IXFR, outgoing, remote 2001:1488:ac15:ff30::29@60702, finished, 0.00 seconds, 1 messages, 4873 bytes
A výsledek na sekundárním serveru:
Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: debug: [xdp.cz.] ACL, allowed, action notify, remote 2001:1488:ac15:ff30::28@49112, key 'key.xdp.cz.' Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: info: [xdp.cz.] notify, incoming, remote 2001:1488:ac15:ff30::28@49112, serial 2021102602 Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: info: [xdp.cz.] refresh, remote 2001:1488:ac15:ff30::28@53, remote serial 2021102602, zone is outdated Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: info: [xdp.cz.] IXFR, incoming, remote 2001:1488:ac15:ff30::28@53, started Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: info: [xdp.cz.] IXFR, incoming, remote 2001:1488:ac15:ff30::28@53, finished, 0.00 seconds, 1 messages, 4873 bytes Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: info: [xdp.cz.] refresh, remote 2001:1488:ac15:ff30::28@53, zone updated, 0.01 seconds, serial 2021102600 -> 2021102602 Oct 26 13:57:13 ns2.xdp.cz knotd[117506]: info: [xdp.cz.] zone file updated, serial 2021102600 -> 2021102602
Během provedené synchronizace zóny byl TSIG použit k:
- zabezpečení zprávy NOTIFY,
- ověření zprávy NOTIFY,
- zabezpečení dotazu SOA, který se používá pro zjištění aktuální verze zóny,
- ověření dotazu SOA,
- zabezpečení dotazu na IXFR,
- ověření odpovědi na IXFR.
Pro úplnost ještě uvedeme ukázku sitace, kdy na sekundárním serveru chybí nastavení TSIG:
Oct 26 13:54:13 ns1.xdp.cz knotd[130576]: warning: [xdp.cz.] notify, outgoing, remote 2001:1488:ac15:ff30::29@53, server responded with error 'BADKEY' Oct 26 13:54:13 ns1.xdp.cz knotd[130576]: error: [xdp.cz.] zone event 'notify' failed (failed)
A sekundární server:
Oct 26 13:54:13 ns2.xdp.cz knotd[117506]: debug: [xdp.cz.] ACL, denied, action notify, remote 2001:1488:ac15:ff30::28@49110, key 'key.xdp.cz.
S postupným trendem šifrování síťového provozu se začíná uplatňovat TLS i k zabezpečení zónových transferů. Tato funkce by měla být dostupná v některé z dalších verzi Knot DNS.
Autorizace operací
Jak již bylo uvedeno, některé DNS požadavky vyžadují explicitní oprávnění. Sem patří přijetí NOTIFY na sekundárním serveru a přijetí žádosti o XFR na primárním serveru. Pro definici autorizovaných operací slouží konfigurační sekce ACL. Každé pravidlo má opět svůj identifikátor a jedinou povinnou položkou je action, což je výčet autorizovaných operací. Přítomnost dalších položek omezuje účinnost pravidla. Většinou se pravidlo vztahuje ke konkrétním adresám, adresním rozsahům či konkrétním serverům remote. Případně v kombinaci s jedním nebo více klíči TSIG. Kdybychom v našem příkladu:
acl: - id: acl_secondary remote: secondary action: transfer
nechtěli použít odkaz na jeden remote secondary, ale chtěli povolit třeba dva adresní rozsahy /64 a 192.168.1.1-192.168.1.10 a vyžadovali autorizaci klíčem key.xdp.cz., použili bychom variantu:
acl: - id: acl_secondary address: [2001:1488:ac15:ff30::29/64, 192.168.1.1-192.168.1.10] key: key.xdp.cz. action: transfer
Když jsou všechna potřebná pravidla připravená, tak se uvedou ve vhodném pořadí jako seznam hodnot položky acl v nastavení příslušné zóny. Pravidla jsou vyhodnocována zleva doprava.
Inspekce transferů
Někdy se může hodit ručně dotazovat zónový transfer. K tomu můžeme využít kdig. Kompletní zónu získáme zasláním dotazu na AXFR (parametr -y je popis klíče TSIG):
$ kdig @ns1.xdp.cz xdp.cz axfr -y hmac-sha256:key.xdp.cz:be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo= ;; AXFR for xdp.cz. xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021102701 36000 600 864000 300 xdp.cz. 300 IN NS ns1.xdp.cz. xdp.cz. 300 IN NS ns2.xdp.cz. xdp.cz. 300 IN TXT "DNSSEC is easy!" xdp.cz. 300 IN RRSIG NS 13 2 300 20211110135944 20211027122944 16843 xdp.cz. aXO3URV6xFdOaDSMH4uYWJQqXCeUYbprf0I+1lvGpj237S8Zcbie7jU2q65pzaQnQs0a7K829z2ySGQivo5OBw== xdp.cz. 300 IN RRSIG SOA 13 2 300 20211110135944 20211027122944 16843 xdp.cz. Tf07Ok5uNcTkufOjjis027Atv+sjBKxSv/YR6xsEbWGUlRv2UWcZO1C5mAEp//Zm8m0aABnoPYaPUhpxRc57uA== xdp.cz. 300 IN RRSIG TXT 13 2 300 20211110135944 20211027122944 16843 xdp.cz. wHfRMI9rbunNivAwA2xgYdEkQtdprBX1sBqsYwWm4cTEDFGeb6J/fuP9aAG3Qsy0ESbD132gUdaPNqfp60NlpA== xdp.cz. 300 IN RRSIG NSEC 13 2 300 20211110135944 20211027122944 16843 xdp.cz. GYzV6DNbfNHoDULeXx0K9h4jwWhoTdO++f67vH+dmTZT4YFkJ5raVW2+YvZ6DDTz4tC2oNMXdz5lQ9b8+/HJ5Q== xdp.cz. 300 IN RRSIG DNSKEY 13 2 300 20211110135944 20211027122944 32114 xdp.cz. ecKL0F++90FqNBFzDrwQkgMco9mlxZk+nN3kTV8P8BYnvoThsToSkQKcQWb9ESNCc+7l+YNE5wu97Ya7A0JhFw== xdp.cz. 0 IN RRSIG CDS 13 2 0 20211110135944 20211027122944 32114 xdp.cz. JCzZjjwbkSQlA6CPZrNJgADgownaa5bsLu1T4AequEC2Z2BIOOKPaXKazDz1cPZiaL4Dy7B0fVQA3vf6+E4JjQ== xdp.cz. 0 IN RRSIG CDNSKEY 13 2 0 20211110135944 20211027122944 32114 xdp.cz. 4mZPHOKFDBAKOAuSP8fhpZDqvDwLW2tUxr+114/zsXXpQ8FA2ZPhf7j81sQkYa78h3icP6J7R9bt1+SmOAXfdg== xdp.cz. 300 IN NSEC ns1.xdp.cz. NS SOA TXT RRSIG NSEC DNSKEY CDS CDNSKEY xdp.cz. 300 IN DNSKEY 256 3 13 UGwIkwzLMpQMkfcct1TRfY9yTpf2Tf9g7W2F1j3XEwh2BWNjve3Ul7EA1CYBEDfuQFNvySyv0Vbm07GOwUVPIw== xdp.cz. 300 IN DNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== xdp.cz. 0 IN CDS 32114 13 2 3EA51B0EE57236721C664C873A23579D8A2BBF9FFE9DBB2E192D8CD6D173EE5B xdp.cz. 0 IN CDNSKEY 257 3 13 ONGSk6Yko2ZDmzlASEh6H8ZOnVv2lrjLU2CCJKH6QEaevH1vlH42sSDd+kCngJ4FKvXGpazCtAPbjHby67iBxA== ns1.xdp.cz. 300 IN AAAA 2001:1488:ac15:ff30::28 ns1.xdp.cz. 300 IN RRSIG AAAA 13 3 300 20211110135944 20211027122944 16843 xdp.cz. XrAZCOEqF1xaWbJel3lxGNiPQg+6RaLP9Nrwn4Nt1rkbrn81d9gFzKe9IAmfVKGRvOUNjBgu4Hdy1UX2g554Iw== ns1.xdp.cz. 300 IN RRSIG NSEC 13 3 300 20211110135944 20211027122944 16843 xdp.cz. JYL3wX1Ip1rFNKczb+VJ+mJYSpIHPEhrapkYMPIw2AiRZZn57qIBs07A50+cgpsMDjdEARKhYFHqb4NZj7M44g== ns1.xdp.cz. 300 IN NSEC ns2.xdp.cz. AAAA RRSIG NSEC ns2.xdp.cz. 300 IN AAAA 2001:1488:ac15:ff30::29 ns2.xdp.cz. 300 IN RRSIG AAAA 13 3 300 20211110135944 20211027122944 16843 xdp.cz. Ocj77JWAT5kOoTCAsYbWLCBa5izwl6Ckh/j3cVL2fN0EjcVAPBCJYipYeoiFxlnMjk/GVxarTQb6YJ5fN7n4lA== ns2.xdp.cz. 300 IN RRSIG NSEC 13 3 300 20211110135944 20211027122944 16843 xdp.cz. 1dJNHed0CUzx+A7SFAKv74IEaivIALdycFw+/TjSGPRRdXKpbPDBaO0pnlSpbp8yzT/LNFLcSyBJkAAvbZUYMw== ns2.xdp.cz. 300 IN NSEC xdp.cz. AAAA RRSIG NSEC xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021102701 36000 600 864000 300 key.xdp.cz. 0 ANY TSIG hmac-sha256. 1635343251 300 32 LGBLgjnCTmvcN/nDUsKJTWhVb5ivHf2IgXYTtpVnpak= 19922 NOERROR 0 ;; Received 1845 B (1 messages, 25 records) ;; Time 2021-10-27 16:00:51 CEST ;; From 2001:1488:ac15:ff30::28@53(TCP) in 9.0 ms
Struktura odpovědi se skládá z úvodního a koncového záznamu SOA a mezi nimi je obsah zóny. Jako poslední je záznam TSIG, který se po ověření na sekundárním serveru odstraní a není součástí zóny. Odpověď na XFR může být obsažena i v sekvenci více DNS zpráv.
V případě rozdílového transferu použijeme dotaz ve tvaru IXFR=initial_serial. Např. pro rozdíl od verze 2021102700:
$ kdig @ns1.xdp.cz xdp.cz ixfr=2021102700 -y hmac-sha256:key.xdp.cz:be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo= ;; IXFR for xdp.cz. xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021102701 36000 600 864000 300 xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021102700 36000 600 864000 300 xdp.cz. 300 IN RRSIG NS 13 2 300 20211109121318 20211026104318 16843 xdp.cz. vUf9hJYJkDIVWW/k1qi2dpUArAnOdjIREA0XxeJISpw4BmMe/PFHLKO/6ubwDF3PZ3ErweF2ZCOAaJ8h04I3Dg== xdp.cz. 300 IN RRSIG SOA 13 2 300 20211110135910 20211027122910 16843 xdp.cz. z0OHZolM1u+eowmotT51L9MUR7dnKGfq1FykWxgUuy70d/R2Zg6tJmRykBWgKGV6PdOyolxI8I4y0JaRvATUcQ== xdp.cz. 300 IN RRSIG TXT 13 2 300 20211109121318 20211026104318 16843 xdp.cz. 4YM8OE6jwys8Rum1+Qi/S/gnfkC8SqlW3uVJUolfZgQEM3bkn6xAXqUn39a0YYr/gjq0FYqweOE+Jte93YeZvQ== xdp.cz. 300 IN RRSIG NSEC 13 2 300 20211110135910 20211027122910 16843 xdp.cz. zNoqUJPQQDt4wm2rBN+CtKNZJmgJx8e7s6mbUA/e7cUSlToFthgUICjsQnHCgSjTA6/j8rZ/jN6Zwy1c5uGrCg== xdp.cz. 300 IN RRSIG DNSKEY 13 2 300 20211109121318 20211026104318 32114 xdp.cz. mLVYNkZ74+iMLPm2mphUqUytq56yI3pVV993b10SjPbtf6dkVU+SoDLBbeyGJfPbTq6FUn/3g7JbnBAKe3vHig== xdp.cz. 0 IN RRSIG CDS 13 2 0 20211109121318 20211026104318 32114 xdp.cz. A5v8jNIKbMu5VBRpa7a0WfbN5LPbC5MuH1FCgevEBNHMR/JT/gSsZg47T+vj2bVRFe1umvTzxSFsCV4gbOOlMA== xdp.cz. 0 IN RRSIG CDNSKEY 13 2 0 20211109121318 20211026104318 32114 xdp.cz. y45WD9RWukHloFWhW55CyyhQyu1ql6l/5vJSuWgCVv8BmFRKIx/SXQysKISR3GBBBUs9dw7gS1Ldnvc9X5fPSg== ns1.xdp.cz. 300 IN RRSIG AAAA 13 3 300 20211109121318 20211026104318 16843 xdp.cz. wN+o7t1yYLLuUGXK/3F856zOtmqIqD73FmhJrKNLDvRLWVEjIe9SUXcwZSatVr21tgFCvYR2lUEJ9SnEGZmCrQ== ns1.xdp.cz. 300 IN RRSIG NSEC 13 3 300 20211109121318 20211026104318 16843 xdp.cz. +VU3ya9BieVXWPS4ngDx+v0fwbxR0PcUIPRhwcfj9nBJiNAhlzohMztmNlAoJK2lzl6Zir5puLcnX6/0dp2NJA== ns2.xdp.cz. 300 IN RRSIG AAAA 13 3 300 20211109121318 20211026104318 16843 xdp.cz. i+jDdtD07GBshV0VXiEeYqQjQYRHJkSFUC70w2mQpRNm339lmwx5PPhpmf39Ba/l0JF9XuVCSlBuY19bSNXbOg== ns2.xdp.cz. 300 IN RRSIG NSEC 13 3 300 20211109121318 20211026104318 16843 xdp.cz. J2iFKbiSqnE802rWX9oOcljTQ7qBBeb3xxU+2j6NdyDb2db7H2NUuT/EtuRgjOUkFKpTxiVuHnGm7opsFRN+zQ== xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021102701 36000 600 864000 300 xdp.cz. 300 IN RRSIG NS 13 2 300 20211110135944 20211027122944 16843 xdp.cz. aXO3URV6xFdOaDSMH4uYWJQqXCeUYbprf0I+1lvGpj237S8Zcbie7jU2q65pzaQnQs0a7K829z2ySGQivo5OBw== xdp.cz. 300 IN RRSIG SOA 13 2 300 20211110135944 20211027122944 16843 xdp.cz. Tf07Ok5uNcTkufOjjis027Atv+sjBKxSv/YR6xsEbWGUlRv2UWcZO1C5mAEp//Zm8m0aABnoPYaPUhpxRc57uA== xdp.cz. 300 IN RRSIG TXT 13 2 300 20211110135944 20211027122944 16843 xdp.cz. wHfRMI9rbunNivAwA2xgYdEkQtdprBX1sBqsYwWm4cTEDFGeb6J/fuP9aAG3Qsy0ESbD132gUdaPNqfp60NlpA== xdp.cz. 300 IN RRSIG NSEC 13 2 300 20211110135944 20211027122944 16843 xdp.cz. GYzV6DNbfNHoDULeXx0K9h4jwWhoTdO++f67vH+dmTZT4YFkJ5raVW2+YvZ6DDTz4tC2oNMXdz5lQ9b8+/HJ5Q== xdp.cz. 300 IN RRSIG DNSKEY 13 2 300 20211110135944 20211027122944 32114 xdp.cz. ecKL0F++90FqNBFzDrwQkgMco9mlxZk+nN3kTV8P8BYnvoThsToSkQKcQWb9ESNCc+7l+YNE5wu97Ya7A0JhFw== xdp.cz. 0 IN RRSIG CDS 13 2 0 20211110135944 20211027122944 32114 xdp.cz. JCzZjjwbkSQlA6CPZrNJgADgownaa5bsLu1T4AequEC2Z2BIOOKPaXKazDz1cPZiaL4Dy7B0fVQA3vf6+E4JjQ== xdp.cz. 0 IN RRSIG CDNSKEY 13 2 0 20211110135944 20211027122944 32114 xdp.cz. 4mZPHOKFDBAKOAuSP8fhpZDqvDwLW2tUxr+114/zsXXpQ8FA2ZPhf7j81sQkYa78h3icP6J7R9bt1+SmOAXfdg== ns1.xdp.cz. 300 IN RRSIG AAAA 13 3 300 20211110135944 20211027122944 16843 xdp.cz. XrAZCOEqF1xaWbJel3lxGNiPQg+6RaLP9Nrwn4Nt1rkbrn81d9gFzKe9IAmfVKGRvOUNjBgu4Hdy1UX2g554Iw== ns1.xdp.cz. 300 IN RRSIG NSEC 13 3 300 20211110135944 20211027122944 16843 xdp.cz. JYL3wX1Ip1rFNKczb+VJ+mJYSpIHPEhrapkYMPIw2AiRZZn57qIBs07A50+cgpsMDjdEARKhYFHqb4NZj7M44g== ns2.xdp.cz. 300 IN RRSIG AAAA 13 3 300 20211110135944 20211027122944 16843 xdp.cz. Ocj77JWAT5kOoTCAsYbWLCBa5izwl6Ckh/j3cVL2fN0EjcVAPBCJYipYeoiFxlnMjk/GVxarTQb6YJ5fN7n4lA== ns2.xdp.cz. 300 IN RRSIG NSEC 13 3 300 20211110135944 20211027122944 16843 xdp.cz. 1dJNHed0CUzx+A7SFAKv74IEaivIALdycFw+/TjSGPRRdXKpbPDBaO0pnlSpbp8yzT/LNFLcSyBJkAAvbZUYMw== xdp.cz. 300 IN SOA ns1.xdp.cz. knot-dns.nic.cz. 2021102701 36000 600 864000 300 key.xdp.cz. 0 ANY TSIG hmac-sha256. 1635343281 300 32 9QlarnEVTMZ/+OHThbCgVvzpVihlO67k2VvHZpPLDqY= 6092 NOERROR 0 ;; Received 2579 B (1 messages, 26 records) ;; Time 2021-10-27 16:01:21 CEST ;; From 2001:1488:ac15:ff30::28@53(TCP) in 7.1 ms
Struktura rozdílové odpovědi se rovněž skládá z úvodního a koncového SOA záznamu, ale mezi nimi je sekvence jednotlivých changesetů. Každý changeset má dvě části, kde každá část rovněž začíná záznamem SOA. Stojí za povšimnutí, že IXFR nemusí být vždy datově úspornější než AXFR.
Posledním užitečným příkladem je ruční zaslání dotazu NOTIFY s volitelným parametrem verze zóny 2021102700 (to je jen nezávazná informace o verzi lokální zóny):
$ kdig @ns2.xdp.cz xdp.cz notify=2021102700 -y hmac-sha256:key.xdp.cz:be99FnOGydC9k4bgEb36YsJLceJ40P9lf+3VPEpNMYo= ;; ->>HEADER<<- opcode: NOTIFY; status: NOERROR; id: 50625 ;; Flags: qr; QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1 ;; QUESTION SECTION: ;; xdp.cz. IN SOA ;; TSIG PSEUDOSECTION: key.xdp.cz. 0 ANY TSIG hmac-sha256. 1635343754 300 32 ynHorwW+T4JYnYu0eehKEF0x+cy/wmNcity6Zxz1gjU= 50625 NOERROR 0 ;; Received 107 B ;; Time 2021-10-27 16:09:14 CEST ;; From 2001:1488:ac15:ff30::29@53(UDP) in 3.2 ms
Odpovědí je jen úspěšné přijetí NOTIFY. Následně sekundární server ověří stav zóny na primárním serveru a případně si ji stáhne.
Příště se vynoříme ze zónových dat a podíváme na konfiguraci Knot DNS obecněji.