Clarifies the two independent reachability mechanisms and why they are often
conflated (issue e2b-dev#3625): egress filtering (denyOut / allowPublicTraffic) acts
only on tap->host traffic, while MMDS (169.254.169.254) is a Firecracker
per-microVM service that never egresses the tap and is therefore not affected
by any egress control.
Documents the supported contract: MMDS is sandbox-scoped (instanceID, envID,
address, accessTokenHash) and does not proxy host/cloud IMDS or IAM
credentials; accessTokenHash is a hash, not the token; the 'no real IMDS'
property is partly a deployment contract; and DeniedSandboxCIDRs (incl.
169.254.0.0/16) plus the pre-connect resolved-IP check are the testable egress
boundary. Also notes there is currently no supported way to deny user-workload
access to MMDS without breaking envd /init.
Signed-off-by: AdaAibaby <shaolila@buaa.edu.cn>
Summary
Documents the supported contract requested in #3625: how sandbox egress control (denyOut / allowPublicTraffic) relates to sandbox-local MMDS (169.254.169.254), and why controlling one does not control the other.
Adds a ### Network egress control and sandbox metadata (MMDS) subsection to docs/ARCHITECTURE.md (under Core flows, after Sandbox traffic). No code change.
What it clarifies
Why this is not a duplicate
Verification
Closes #3625
AI assistance
AI assistance was used to trace the firewall/MMDS call chains and draft the documentation. A human submitter has reviewed every line.