Egress policies

EgressPolicy: which destinations a Space may open connections to, enforced by the host outside the guest.

The egress policy CreateSpaceRequest.egress and SpaceService.SetSpaceEgress take and Space.egress returns, and its host form for HostSpacesService.SetHostSpaceEgress.

Source: libs/cua/proto/cua/daemon/v1/egress.proto, libs/cua/proto/cua/env/v1/host_egress.proto.

Types in cua/daemon/v1/egress.proto#

EgressPolicy#

Which destinations a Space may open connections to. Everything is allowed unless a rule says otherwise: every deny entry blocks that destination, every allow entry is an exception that wins over deny (deny "all" with allow "1.1.1.1" leaves only 1.1.1.1 reachable), and an allow list with no deny blocks nothing. Entries are IPv4/IPv6 addresses or CIDRs; "all" is 0.0.0.0/0 and ::/0; a hostname is refused. DNS works only while the resolver's address is not blocked (or is allowed). Loopback, replies to connections made to the guest and IPv6 neighbor discovery are never filtered.

Field#TypeDescription
allow1repeated stringDestinations that stay reachable where deny blocks them.
deny2repeated stringDestinations that are blocked.

SetSpaceEgressRequest#

Request for SpaceService.SetSpaceEgress.

Field#TypeDescription
space1stringSpace.
egress2EgressPolicyThe whole policy; empty removes it.

SetSpaceEgressResponse#

Response for SpaceService.SetSpaceEgress.

No fields.

Types in cua/env/v1/host_egress.proto#

HostEgressPolicy#

Which destinations a Space may open connections to: every deny entry blocks that destination, every allow entry is an exception that wins over deny. Entries are IPv4/IPv6 addresses or CIDRs; "all" is 0.0.0.0/0 and ::/0; a hostname is refused.

Field#TypeDescription
allow1repeated stringDestinations that stay reachable where deny blocks them.
deny2repeated stringDestinations that are blocked.

SetHostSpaceEgressRequest#

Request for HostSpacesService.SetHostSpaceEgress.

Field#TypeDescription
space1stringThe relay machine of the Space (or its local:<name> on the host).
egress2HostEgressPolicyThe whole policy; empty removes it.

SetHostSpaceEgressResponse#

Response for HostSpacesService.SetHostSpaceEgress.

Field#TypeDescription
enforced1stringWhere the policy is enforced: "host"; empty after a removal.