Switch ns1 zone serial-policy to unixtime
dateserial (YYYYMMDDnn) only has a 2-digit same-day counter held in Knot's journal; a journal reset restarted the counter and let ns1 mint a serial ns2 had already seen with older content, so ns2 never retransferred. unixtime is strictly monotonic per reload, eliminating the shared-serial collision.
This commit is contained in:
@@ -65,15 +65,17 @@ in
|
|||||||
|
|
||||||
# ns1 = primary (master): loads each zone from its file and serves it to ns2.
|
# ns1 = primary (master): loads each zone from its file and serves it to ns2.
|
||||||
# zonefile-load = difference-no-serial lets us edit records without touching the
|
# zonefile-load = difference-no-serial lets us edit records without touching the
|
||||||
# SOA serial; Knot diffs the file, assigns a date-based serial, signs the zone,
|
# SOA serial; Knot diffs the file, assigns a unixtime serial, signs the zone,
|
||||||
# then notifies ns2 and lets it pull the signed zone via AXFR/IXFR.
|
# then notifies ns2 and lets it pull the signed zone via AXFR/IXFR. unixtime is
|
||||||
|
# strictly monotonic per reload, so two zone versions can never share a serial
|
||||||
|
# (the failure mode dateserial's 2-digit daily counter allowed after a journal reset).
|
||||||
services.knot.settings.zone = map (d: {
|
services.knot.settings.zone = map (d: {
|
||||||
domain = d;
|
domain = d;
|
||||||
file = ../../modules/dns/zones + "/${d}.zone";
|
file = ../../modules/dns/zones + "/${d}.zone";
|
||||||
"zonefile-load" = "difference-no-serial";
|
"zonefile-load" = "difference-no-serial";
|
||||||
"zonefile-sync" = "-1";
|
"zonefile-sync" = "-1";
|
||||||
"journal-content" = "all"; # required by difference-no-serial; holds the live signed zone
|
"journal-content" = "all"; # required by difference-no-serial; holds the live signed zone
|
||||||
"serial-policy" = "dateserial";
|
"serial-policy" = "unixtime";
|
||||||
"dnssec-signing" = true;
|
"dnssec-signing" = true;
|
||||||
"dnssec-policy" = "cnx";
|
"dnssec-policy" = "cnx";
|
||||||
notify = [ "ns2" ];
|
notify = [ "ns2" ];
|
||||||
|
|||||||
Reference in New Issue
Block a user