Appearance
Owner network
By default, every box on a microVM host shares one open network segment — any box can reach any other, across owners. With --owner-network the daemon isolates boxes per owner and gives them names.
yaml
# /etc/hopbox/hopboxd.yaml
compute: microvm
owner-network: trueWhat it does
- Isolation. A box reaches only its own owner's boxes (same SSH-key fingerprint) plus the host gateway (agent hub, metadata API, egress NAT). A different owner's boxes are unreachable — the traffic is dropped at layer 2.
- Names. Inside a box,
<name>.hboxresolves to your own box of that name. Another owner's name returnsNXDOMAIN— you can neither resolve nor reach it.
sh
# two boxes of the same key:
ssh worker@host 'python3 -m http.server 8080 &'
ssh api@host 'curl http://worker.hbox:8080' # → works (same owner)How it works
The bridge stays flat (one /24, one gateway) — the single gateway keeps serving hub, metadata, NAT, and DNS unchanged. Isolation is an nftables ruleset in the bridge family: box↔gateway is allowed, same-owner box↔box is allowed via a set the daemon keeps in sync with the live fleet, and every other box↔box pair is dropped. Names come from a small owner-scoped resolver on the gateway (<subnet>.1:53) that identifies the querying box by its source IP — the same credential-free identity model as the metadata API.
Fail-closed. If the nft ruleset can't be programmed (e.g. nft isn't installed), the daemon refuses to start rather than run boxes on an open segment. It needs the nft binary on the host.
Notes
- microVM backend only (
--compute microvm); off by default. - Isolation is per owner (key fingerprint), not per box — all of your boxes form one private network and resolve each other by name.
- Egress to the internet is unchanged and still governed by the box egress fence.
Reference
--owner-network— the flag.- Identity & tiers — what "owner" means.