8000 Unit 2 follow-up: R2.2 egress enforcement (relay-layer frame inspection) + R2.4 dynamic port-mapping · Issue #553 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

Unit 2 follow-up: R2.2 egress enforcement (relay-layer frame inspection) + R2.4 dynamic port-mapping #553

Closed as not planned

Description

@norrietaylor

Split from #499 (Unit 2) per the design decision recorded there: the proved spike (docs/spikes/2026-06-21-gvproxy-attachment.md §5) established that gvproxy v0.8.9 has no per-client egress ACL API, and its management API is unix-socket-only / unreachable from a PTask — contradicting the 192.168.127.254:8080 HTTP assumption in the task body and architecture.md. Egress enforcement therefore cannot be "POST the rules to gvproxy"; it must be a relay-layer mechanism. This task owns that design.

Scope

  • R2.2 — egress allowlist enforcement via relay-layer frame inspection: parse Ethernet/IP headers in the net::switch relay and drop frames whose destination falls outside the session's allow_subnets / allow_protocols. Owns the security-mechanism design (header-parse surface, drop-vs-reject semantics, performance, fail-closed default).
  • R2.4 — dynamic port-mapping transport: define the correct control path (the management API is unix-socket-only, not the gateway IP), distinct from the static POST /services/forwarder/{expose,unexpose} path already landing in feat(minimald,minvmd): egress/ingress policy enforcement, VM-wide egress, and integration tests #499.
  • Docs: correct architecture.md §"Unit 2" (the 192.168.127.254:8080 management-endpoint claim) to match the spike — unix-socket control surface; egress filtering at the relay.

Acceptance

References

This is a security-control design; likely warrants /spec (or a spike) before execution rather than direct dispatch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0