Hi:
I have a debian VM (subnet 172.17.1.1/24) with four containers running in it:
+----------------+---------+---------------------+------+-----------+-----------+
|      NAME      |  STATE  |        IPV4         | IPV6 |   TYPE    | SNAPSHOTS |
+----------------+---------+---------------------+------+-----------+-----------+
| Nextcloud      | RUNNING | 172.17.1.193 (eth0) |      | CONTAINER | 12        |
+----------------+---------+---------------------+------+-----------+-----------+
| OGSelfHosting  | RUNNING | 172.17.1.19 (eth0)  |      | CONTAINER | 9         |
+----------------+---------+---------------------+------+-----------+-----------+
| SysAdmin-22-04 | RUNNING | 172.17.1.102 (eth0) |      | CONTAINER | 10        |
+----------------+---------+---------------------+------+-----------+-----------+
| haproxy        | RUNNING | 172.17.1.230 (eth0) |      | CONTAINER | 0         |
+----------------+---------+---------------------+------+-----------+-----------+
The VM itself has access to 172.16.50.1/24 (which I need), but I have isolated the containers so they only have internet access AND, currently, access to the subnet of the vm (172.17.1.1/24), which is not quite what I want but I am a little stuck. Ideally, I want the haproxy reverse proxy container to be able to access the other three containers so it can direct web traffic TO the other three containers, but I can either get it so they can either all talk to each other - OR none of them can talk to each other. I want slightly better fidelity, if it’s possible.
Here’s my public-only ACL, which I stole unashamedly from one of Stephane’s posts (thank you!):
name: public-only
description: ""
egress:
- action: allow
  state: enabled
- action: allow
  destination: 172.17.1.0/24
  state: enabled
- action: reject
  destination: 10.0.0.0/8
  state: enabled
- action: reject
  destination: 192.168.0.0/16
  state: enabled
- action: reject
  destination: 172.16.0.0/12
  state: enabled
ingress:
- action: allow
  state: enabled
config: {}
used_by:
- /1.0/networks/incusbr0
project: default
I tried modifying the above public-only acl by adding ‘source 172.17.1.230’, which intuitively is what I think I want (see below), but unsurprisingly it didn’t work - I can still ping from any container to any other, and I am a little lost on how to achieve my desired level of isolation (if it’s possible). Can I modify this (how) or do I need a different acl? Can someone syntax point me or advise please?
name: public-only
description: ""
egress:
- action: allow
  state: enabled
- action: allow
  source: 172.17.1.230    # <<--my attempt at further isolation
  destination: 172.17.1.0/24
  state: enabled
- action: reject
  destination: 10.0.0.0/8
  state: enabled
- action: reject
  destination: 192.168.0.0/16
  state: enabled
- action: reject
  destination: 172.16.0.0/12
  state: enabled
ingress:
- action: allow
  state: enabled
config: {}
used_by:
- /1.0/networks/incusbr0
project: default
Thank you!
Andrew