all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Lukas Sichert" <l.sichert@proxmox.com>
To: "Hannes Laimer" <h.laimer@proxmox.com>, <pve-devel@lists.proxmox.com>
Subject: Re: [RFC cluster/docs/ifupdown2/manager/network/proxmox{-ebpf,-ve-rs,-perl-rs} 00/16] sdn: add microsegmentation support
Date: Thu, 18 Jun 2026 15:10:45 +0200	[thread overview]
Message-ID: <DJC77VNCZYLN.K0VA1F1QZV9H@proxmox.com> (raw)
In-Reply-To: <20260609132522.235917-1-h.laimer@proxmox.com>

On 2026-06-09 15:25, Hannes Laimer <h.laimer@proxmox.com> wrote:

> This adds support for microsegmentation using eBPF programs attached to
> interfaces. Mostly the tap/veth interfaces on the guests directly.

I installed and tested this using the .debs from the staff repo.

First, on a standalone node I created some groups and subgroups and
and assigned VMs. After I set some policies and moved the VMs around the
groups. Everything works as expected. Also overriding rules set for
parent groups with subgroup rules works.

After that I set up a 3 node EVPN-VXLAN setup with an IPv6 Openfabric
underlay. Then on different nodes I setup VMs and played around
with goups and policies. Again everything works as expected.

> # feedback wanted
>  - the general desgin, specifically with the agent being one-shot and triggered
>    rather than a running service
>  - I put the VXLAN-GBP flag into the zones that run on vxlan for now, so it has
>    to be enabled on the zone, and will affect all vxlan interfaces that are
>    part of it. The only real alternative is enabling it always, or trying to
>    infer if a nic is assigned a vnet that is in a zone that does vxlan and
>    corss-referencing that with potentially configured microseg
>    groups/assignments. This seemed brittle, and since the needed flag is
>    additionally create-only, a simple flag on the zone appeard to be the better
>    approach
>  - and the ui, very likely needs some polishing, and im very open to
>    alternative approaches

- I only glanced over the EBPF code and the agent call in pve-network
  and did not dive in deeper into every function, but in general making
  the config change triggered rather than a service actively syncing is
  a good idea. This eliminates delays that users might encounter, it
  decreases cpu load and also it makes it easier to see current state of
  the ebpf setup as we don't have to consider, what the service
  currently might doing.

- We have already had a small discussion about whether it would be
  possible to infer which vms belong to groups and only mark these. But
  as the marking happens at the vxland encapsulation and not really at
  egress from the VM, it gets handled by the vxlan interface of the
  host. Therefore IMO it makes most sense to make this a zone
  configuration. Additionally, there is no scenario I can think of where
  this enabled on the zone could cause any packet dropping.

some small UI nits:
- the Add button is greyed out when trying to allow untagged traffic for
  a Group, one can set it only by first making a change, then undoing the
  change
- the error messages for removal are a bit cryptic, specifically I
  encountered:
  - 'delete sdn microseg group failed: group 'gr1-1' is still referenced
    by 'p0-3' (500)', when removing a group that still contained a VM
  - 'delete sdn microseg group failed: group 'gr2' is still referenced
    by 'p0-2' (500)', when removing a group, that still contained a
    policy

- I would love to have something like a move button for VMs instead of
  having to remove and then add again

- IMO the symbols are really nice, especially that the egress and ingress
  from and to other groups can and must be set separatly, but for the
  unstamped traffic I would maybe do something like <-> instead of just
  ->, because this leads to beleave egress also has to bet set

Apart from that I found the UI very intuitive.

As these are all smaller nits, if nothing bigger changes consider for
this and future versions:

Tested-by: Lukas Sichert <l.sichert@proxmox.com>




      parent reply	other threads:[~2026-06-18 13:10 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-09 13:25 [RFC cluster/docs/ifupdown2/manager/network/proxmox{-ebpf,-ve-rs,-perl-rs} 00/16] sdn: add microsegmentation support Hannes Laimer
2026-06-09 13:25 ` [PATCH proxmox-ebpf 01/16] agent: add userspace coordinator and stateless policy subsystem Hannes Laimer
2026-06-09 13:25 ` [PATCH proxmox-ebpf 02/16] bpf: add bridge subsystem Hannes Laimer
2026-06-09 13:25 ` [PATCH proxmox-ebpf 03/16] debian: add packaging and boot-time oneshot unit Hannes Laimer
2026-06-09 13:25 ` [PATCH proxmox-ve-rs 04/16] ve-config: sdn: add microseg config types Hannes Laimer
2026-06-09 13:25 ` [PATCH proxmox-perl-rs 05/16] sdn: add microseg config binding Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-cluster 06/16] cfs: add 'sdn/microseg.cfg' to observed files Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-network 07/16] sdn: microseg: add config and API Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-network 08/16] sdn: zones: trigger microseg apply on tap_plug Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-network 09/16] sdn: zones: add vxlan-gbp option to vxlan and evpn zones Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-network 10/16] evpn: disable vxlan-learning on create if GBP is enabled Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-manager 11/16] ui: sdn: add microsegmentation Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-manager 12/16] network: apply microseg state on reload Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-manager 13/16] ui: sdn: zones: add vxlan-gbp checkbox to vxlan and evpn Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-docs 14/16] sdn: add microsegmentation section Hannes Laimer
2026-06-09 13:25 ` [PATCH pve-docs 15/16] sdn: add VXLAN-GBP flag to evpn/vxlan zone sections Hannes Laimer
2026-06-09 13:25 ` [PATCH ifupdown2 16/16] d/patches: add support for VXLAN-GBP flag Hannes Laimer
2026-06-18 13:10 ` Lukas Sichert [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DJC77VNCZYLN.K0VA1F1QZV9H@proxmox.com \
    --to=l.sichert@proxmox.com \
    --cc=h.laimer@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal