2026-07-10 15:00:36 +00:00
|
|
|
name: claude-dev
|
|
|
|
|
description: Trust-less claudebox (resources + isolated NIC)
|
|
|
|
|
config:
|
|
|
|
|
limits.cpu: "4"
|
|
|
|
|
limits.memory: 8GiB
|
|
|
|
|
devices:
|
|
|
|
|
eth0:
|
|
|
|
|
type: nic
|
|
|
|
|
network: claudenet
|
|
|
|
|
name: eth0
|
2026-07-14 01:41:18 +00:00
|
|
|
# Boxes must not reach each other. This is the mechanism that actually does
|
|
|
|
|
# it: the kernel bridge's port-isolation flag, which stops two isolated
|
|
|
|
|
# ports exchanging frames at L2.
|
|
|
|
|
#
|
|
|
|
|
# It is not an ACL rule, and it cannot be. Incus ACLs are L3/L4, and two
|
|
|
|
|
# boxes on one bridge are on the same L2 segment — their frames are switched
|
|
|
|
|
# between ports and never traverse the netfilter path an ACL lives on. That
|
|
|
|
|
# is why the ACL's drop on 10.0.0.0/8 (which contains claudenet) and its
|
|
|
|
|
# default ingress drop BOTH looked airtight while box→box was wide open: a
|
|
|
|
|
# live probe found box A's SYN arriving at box B and B answering with a RST.
|
|
|
|
|
security.port_isolation: "true"
|
2026-07-10 15:00:36 +00:00
|
|
|
root:
|
|
|
|
|
type: disk
|
|
|
|
|
pool: default
|
|
|
|
|
path: /
|