Skip to content

REQ 133

sergio velderrain edited this page Nov 12, 2026 · 1 revision

REQ-133: Bind unique loopback ports to each native run

Requirement

The native provisioning profile shall bind a unique set of loopback host forwards to the exact run before VM dispatch.

Rationale

Another running VM may already own the default WinRM, RDP, or Actor-relay host ports. Reusing the same static values can route control or capture traffic to the wrong guest or cause a partially imported VM to remain stranded.

Fit Criterion

The planner reserves or selects a unique loopback port set before consuming the one-use permit, includes the selected mapping in the canonical host-profile/run digest, and rejects occupied, duplicate, wildcard, or externally bound addresses before dispatch. After import it verifies the forwarding table against the same mapping and verifies every request still targets the sealed VM UUID. No port conflict triggers automatic retries with changed arguments.

Verification

TEST-134 runs with a pre-existing VM occupying default ports, verifies a distinct loopback-only mapping is selected and bound to the new run, and injects collisions or non-loopback bindings that must refuse before VM creation.

Source

SYS-REQ-034; REQ-129; epic #250; P2 #255

Priority

High

TestID

TEST-134

TestArtifact

Planned policy/profile hashes, exact before/after port maps, and fake-listener collision fixtures. This is distinct from a native firewall/NAT source qualification.

CodeRef

Candidate port validation exists in scripts/assisted_benchmark_virtualbox.py, but selected ports are not yet allocated and bound into the host profile/run policy.

Status

Planned; fixed default forwards fail closed on conflict, and per-run allocation is not yet implemented.

Clone this wiki locally