Summary
The Network Rules doc states: "Loopback, link-local, and unspecified addresses, including the cloud metadata address 169.254.169.254, are always blocked."
Observed on 0.1.1 (local Docker driver, macOS): a workload process connecting to 127.0.0.1:8081 where a native AF_INET listener is bound to 127.0.0.1 succeeds with HTTP 200. Loopback-to-loopback traffic is allowed in practice. What is actually blocked is the v4-mapped flow class — an AF_INET connect to a dual-stack [::] listener — which is reset with no OCSF event (filed separately: #3735).
Reproduction (0.1.1, local Docker driver)
# inside the sandbox:
python3 -m http.server 8081 --bind 127.0.0.1 & # native AF_INET listener
python3 -c "import urllib.request; print(urllib.request.urlopen('http://127.0.0.1:8081/', timeout=4).status)"
# -> 200 (doc says loopback destinations are always blocked)
Request
Align the docs with actual enforcement: state which traffic is denied (v4-mapped flows to dual-stack listeners) vs which is allowed (native AF_INET loopback→loopback), or align enforcement with the doc. As written, the 'always blocked' claim sends users debugging in the wrong direction — we initially attributed the silent resets in #3735 to a loopback destination block.
Summary
The Network Rules doc states: "Loopback, link-local, and unspecified addresses, including the cloud metadata address 169.254.169.254, are always blocked."
Observed on 0.1.1 (local Docker driver, macOS): a workload process connecting to 127.0.0.1:8081 where a native AF_INET listener is bound to 127.0.0.1 succeeds with HTTP 200. Loopback-to-loopback traffic is allowed in practice. What is actually blocked is the v4-mapped flow class — an AF_INET connect to a dual-stack
[::]listener — which is reset with no OCSF event (filed separately: #3735).Reproduction (0.1.1, local Docker driver)
Request
Align the docs with actual enforcement: state which traffic is denied (v4-mapped flows to dual-stack listeners) vs which is allowed (native AF_INET loopback→loopback), or align enforcement with the doc. As written, the 'always blocked' claim sends users debugging in the wrong direction — we initially attributed the silent resets in #3735 to a loopback destination block.