ADR 0168: a converged machine is filtered by the mesh alone, and the host says what else refuses (group 7)
Designs 08 and 05 revised; 141 resolved by ADR 0140 and 084 by ADR 0102 and issue 128, both by reading; 143 and 144 decided, built on the matching branches in mesh-host and mesh-controller, resolved when the home server's record names the predecessor's chain.
This commit is contained in:
@@ -9,6 +9,7 @@ code:
|
||||
- mesh-host internal/apply (the service that reflects a rule set)
|
||||
updated: 2026-10-02
|
||||
decisions:
|
||||
- 02-DECISIONS/0168-a-converged-machine-is-filtered-by-the-mesh-alone.md
|
||||
- 02-DECISIONS/0167-a-membership-carries-what-its-module-receives-and-who-the-mesh-is.md
|
||||
- 02-DECISIONS/0148-the-meshs-names-are-resolved-not-copied-into-containers.md
|
||||
- 02-DECISIONS/0151-a-routes-internal-name-is-composed-under-the-node-that-serves-it.md
|
||||
@@ -710,6 +711,38 @@ needs no new filter; a declared port is reachable from off the private network a
|
||||
not; no address of a machine's own networks appears in a rendered filter, asserted on the text; and a
|
||||
machine reporting no outward link is refused in the control plane with its existing filter left alone.
|
||||
|
||||
### A converged machine is filtered by the mesh alone, and the host says what else refuses
|
||||
|
||||
*2026-10-02, [ADR 0168](../../02-DECISIONS/0168-a-converged-machine-is-filtered-by-the-mesh-alone.md),
|
||||
from [issues 143](../../04-ISSUES/143-converging-does-not-retire-the-firewall-it-found/00-report.md) and
|
||||
[144](../../04-ISSUES/144-the-predecessors-rules-outlive-the-firewall-it-was-found-as/00-report.md).*
|
||||
|
||||
Retiring the found firewall was a step the flip took once, and said it had taken whatever happened;
|
||||
on the first machine with one it did not take, and a hand's work fifty minutes later was recorded as
|
||||
the mesh's. And "the firewall found" named one front end while a predecessor's chain in the container
|
||||
runtime's user hook — legacy iptables on one machine, invisible to a reader of nftables — filtered the
|
||||
forwarded path, refused ports the mesh declared open, and carried an allowance every module reaching
|
||||
another by the machine's own name relied on.
|
||||
|
||||
**Convergence is a state the host keeps.** Every converged apply reads whether the found firewall is in
|
||||
force; enabled again, it is retired again and said; the record says whether the mesh disabled it or
|
||||
found it inactive, and a skipped step is said. **The host reports what filters the machine**, every
|
||||
apply, adopted or converged: every table and legacy chain that refuses, with an owner — the mesh's,
|
||||
the found firewall's, the runtime's own plumbing, a ban, or *other*, which is where the runtime's user
|
||||
chain's refusals go. **The mesh says which:** `node show` lists them; `status` names a converged machine
|
||||
anything *other* filters and is not well; the converge preview lists what filters the machine and the
|
||||
fate of each — retired with the front end, left as the runtime's, left as a ban, or *left in force and
|
||||
not the mesh's*. The mesh removes none of it; adoption's threshold does not move.
|
||||
|
||||
*How it is checked:* host tests over rulesets captured from three machines of this mesh classify every
|
||||
refusing chain (a predecessor's chain in the legacy filter as *other*, a ban list reached through the
|
||||
user chain as a ban, a leftover front-end chain as *other*); a fake front end enabled again on a
|
||||
converged machine is retired again and said, found inactive is recorded as found; the report carries
|
||||
the filters and the found firewall's state and a change in them is worth an unasked report; controller
|
||||
tests over a fixture report check the recording, the preview's fates, the status JSON and the well
|
||||
predicate. Live: the home server's record names the predecessor's chain as *other* and `status`
|
||||
names the machine until the chain is removed by hand.
|
||||
|
||||
## 5 — Certificates
|
||||
|
||||
**Two authorities, kept separate on purpose.**
|
||||
|
||||
Reference in New Issue
Block a user