2.9 KiB
Network Topology Specification
This document defines the intended network topology for ThreeGate and the reasons it is required.
ThreeGate relies on security by topology, not on “trust the model.”
Networks
ThreeGate uses three Docker networks:
llmnet(internal)fetchnet(internal)egressnet(non-internal)
1) llmnet (internal)
Members
- CORE
- FETCH
- TOOL-EXEC
- LLM gateway (RoleMesh or equivalent)
Purpose
- Provide access to local/proxied LLM endpoints
- Provide strictly internal inter-service connectivity
Properties
- Docker
internal: true(no external routing)
2) fetchnet (internal)
Members
- FETCH
- proxy
Purpose
- Force FETCH to use proxy as its only internet path
- Avoid direct routing from FETCH to the host’s default route
Properties
- Docker
internal: true
3) egressnet (non-internal)
Members
- proxy only (recommended)
Purpose
- Provide the proxy container a route to the public internet
Properties
- Docker
internal: false
Connectivity Requirements
CORE
- Must only attach to
llmnet - Must not have internet route
- Must not be able to talk directly to proxy
FETCH
- Must attach to
llmnetandfetchnet - Must not attach to
egressnet - Must use proxy via
http_proxy/https_proxyenv vars - Must not have direct internet route
TOOL-EXEC
- Must attach only to
llmnet - Must default to no network inside execution sandbox
- Must not attach to
fetchnetoregressnet
PROXY
- Must attach to
fetchnetandegressnet - Should be the only container on
egressnet(recommended)
Defense in Depth: Host Enforcement
Docker topology is necessary but not sufficient.
A host-level firewall policy MUST also enforce:
- Deny egress from ThreeGate internal subnets by default
- Allow only proxy egress to tcp/443 and DNS
This is implemented via:
DOCKER-USERchain rules (authoritative)- Optional UFW reinforcement (defense in depth)
Why This Topology Matters
Prevents “browsing CORE”
CORE is the component most exposed to adversarial prompt content. If CORE had internet access, an injection could escalate immediately.
Prevents “executing FETCH”
FETCH touches hostile web content. If FETCH could execute, it could be coerced into running malicious code.
Prevents “internet-enabled execution”
TOOL-EXEC is the highest-risk capability. If it had internet by default, it becomes a general-purpose exfiltration engine.
Recommended Hardening (Future)
For production:
- Use explicit IPAM subnets for each network
- Pin proxy IP to a known address
- Apply DOCKER-USER rules at boot via systemd
- Keep proxy allowlists narrow and auditable
Summary
The ThreeGate network design is a security primitive, not a convenience. Any change that increases connectivity must be treated as a security change.