verify serials across the nameservers
This block is part of the dns group and was last modified in core v15.0.0.
verify serials across the nameservers v15.0.0 Ask every nameserver which serial it is actually serving, and whether they agree.
- flow
flow - Zone required
valueThe zone name, for example deverence.nl.
- Nameservers required
arrayEach {name, host, port, user, key_path, known_hosts_path}. Paths only : never key material.
- Expected serial
numberThe serial this render produced. Set it to assert the push took, not just that the nodes agree.
- flow
flow - Success
conditionTrue when every node could be asked.
- Zone
valueThe zone that was verified.
- Agree
conditionTrue only when every node answered with the same serial.
- Serial
valueThe serial they agree on, when they do.
- Matches expected
conditionTrue when the agreed serial is the one this render produced.
- Results
arrayPer node: name, host, serial, answered, output.
- Answered count
numberHow many nodes are serving the zone.
- Node count
numberHow many nodes were asked.
- Error
valueWhat disagrees, or which nodes did not answer.
Runs dig SOA for this zone on every nameserver and reports the serial each one is actually serving. Health here is dig, not a status endpoint: serial disagreement is the only failure that matters and it is invisible from the store's own copy, because a push that succeeded on two nodes and silently did nothing on the third looks identical from there. The query runs ON the node against 127.0.0.1, which is a fact about the network rather than a preference: a host cannot reach its own VM's public address (macvlan hairpin), and asking a resolver would answer from a cache. agree is true only when every node answered AND they all gave the same serial. Agreement is checked between the nodes, not against a number computed here : a locally derived serial could be wrong the same way twice. Pass expect_serial (the render's serial) to also assert the push actually took; matches_expected then reports whether the agreed serial is the one just rendered. Each node is {name, host, port, user, key_path, known_hosts_path}: paths only, never key material.
dig soa |
serial agreement |
verify zone |
A typical wiring for verify serials across the nameservers: a function trigger starts the flow; value feeds the zone pin; with values feeds the nodes pin; the flow out pin feeds debug.
Used in these guides
These documentation pages use or explain this block:
Version history
Introduced in v15.0.0.
Back to
dns Return to the main group to view all sub-groups Back to DNS zones Return to the group to view all blocks within this group 