all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH docs/manager/network/proxmox{-perl-rs,-ve-rs} v5 0/9] add IPv6 RA / SLAAC support to EVPN zones
@ 2026-10-29 15:41 Hannes Laimer
  2026-10-29 15:41 ` [PATCH proxmox-perl-rs v5 1/9] pve-rs: sdn: add IPv6 RA builder binding Hannes Laimer
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: Hannes Laimer @ 2026-10-29 15:41 UTC (permalink / raw)
  To: pve-devel

This series adds IPv6 Router Advertisement / SLAAC support to EVPN
zones.

RA settings sit on the vnet (`vnets.cfg`), per-prefix overrides on the
subnet (`subnets.cfg`). Defaults are chosen so that most IPv6 subnets
work without explicit per-prefix configuration.

It also sets `accept_untracked_na=2` on every EVPN vnet bridge that has
an IPv6 subnet, so an exit node can reach a guest it has no neighbor
entry for yet. The commit has the details.

Dependencies:
 - proxmox-ve-rs: the new proxmox-frr-templates
 - proxmox-perl-rs: proxmox-ve-rs
 - pve-network: proxmox-perl-rs
 - pve-manager: pve-network
 - pve-docs: none


v5:
 - respect local overrides for ND, like ISIS, note: ospf/openfabric
   should probably as well
 - api: return correct data on pending=1
 - use only one spec for api fields
 - add some tests

v4:
 - rebased onto current master
 - docs rewritten
 - corrected router lifetime default placeholder
 - reorder commits

v3, thanks @Lukas S!:
 - validation no longer rejects valid IPv6 subnets: non-/64 prefixes and IPv6
   subnets using SNAT are accepted and editable again
 - improve FRR config generation so a single malformed subnet or a non-member
   node can no longer break it, and so configured prefix lifetimes are no
   longer silently dropped
 - cleaner EVPN gating and better per-prefix defaults, so most IPv6 subnets
   work without explicit configuration
 - cleanup UI, only persists meaningful settings
 - some smaller fixups


proxmox-perl-rs:

Hannes Laimer (1):
  pve-rs: sdn: add IPv6 RA builder binding

 pve-rs/Makefile                    |  1 +
 pve-rs/src/bindings/sdn/ipv6_ra.rs | 40 ++++++++++++++++++++++++++++++
 pve-rs/src/bindings/sdn/mod.rs     |  1 +
 3 files changed, 42 insertions(+)
 create mode 100644 pve-rs/src/bindings/sdn/ipv6_ra.rs


proxmox-ve-rs:

Hannes Laimer (2):
  frr: add IPv6 router advertisement support
  ve-config: sdn: add IPv6 router advertisement settings

 .../templates/frr.conf.jinja                  |   1 +
 .../templates/nd_interfaces.jinja             |  28 +++
 proxmox-frr/src/ser/mod.rs                    |   6 +
 proxmox-frr/src/ser/nd.rs                     |  56 ++++++
 proxmox-frr/src/ser/serializer.rs             |   6 +-
 proxmox-ve-config/src/sdn/config.rs           | 146 +++++++++++++++-
 proxmox-ve-config/src/sdn/mod.rs              |   1 +
 proxmox-ve-config/src/sdn/nd.rs               | 131 ++++++++++++++
 proxmox-ve-config/tests/nd/main.rs            | 164 ++++++++++++++++++
 .../nd__explicit_lifetimes_are_preserved.snap |   9 +
 .../nd__mixed_subnets_under_one_vnet.snap     |  14 ++
 .../snapshots/nd__no_autoconfig_prefix.snap   |   9 +
 ...sh64_prefix_defaults_to_no_autoconfig.snap |   9 +
 .../nd__off_link_emits_off_link_modifier.snap |   9 +
 ...__preferred_lifetime_clamped_to_valid.snap |   9 +
 ...vel_optional_knobs_are_passed_through.snap |  12 ++
 .../nd__slaac_with_default_lifetimes.snap     |   9 +
 17 files changed, 611 insertions(+), 8 deletions(-)
 create mode 100644 proxmox-frr-templates/templates/nd_interfaces.jinja
 create mode 100644 proxmox-frr/src/ser/nd.rs
 create mode 100644 proxmox-ve-config/src/sdn/nd.rs
 create mode 100644 proxmox-ve-config/tests/nd/main.rs
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__explicit_lifetimes_are_preserved.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__mixed_subnets_under_one_vnet.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__no_autoconfig_prefix.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__non_slash64_prefix_defaults_to_no_autoconfig.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__off_link_emits_off_link_modifier.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__preferred_lifetime_clamped_to_valid.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__ra_level_optional_knobs_are_passed_through.snap
 create mode 100644 proxmox-ve-config/tests/nd/snapshots/nd__slaac_with_default_lifetimes.snap


pve-manager:

Hannes Laimer (1):
  ui: sdn: add IPv6 RA / SLAAC support

 www/manager6/form/SDNVnetSelector.js |   2 +-
 www/manager6/sdn/SubnetEdit.js       | 130 ++++++++++++++++-
 www/manager6/sdn/SubnetView.js       |   7 +-
 www/manager6/sdn/VnetEdit.js         | 202 ++++++++++++++++++++++++++-
 www/manager6/sdn/VnetView.js         |   6 +-
 5 files changed, 339 insertions(+), 8 deletions(-)


pve-network:

Hannes Laimer (4):
  sdn: evpn: derive IP version from CIDR for gateway-less subnets
  sdn: evpn: accept untracked IPv6 neighbor advertisements
  sdn: evpn: add IPv6 RA / SLAAC support
  api: vnets: include the zone type in the vnet list

 src/PVE/API2/Network/SDN/Vnets.pm             |  19 ++
 src/PVE/Network/SDN.pm                        |   1 +
 src/PVE/Network/SDN/Controllers.pm            |  21 +-
 src/PVE/Network/SDN/Controllers/EvpnPlugin.pm |  22 +-
 src/PVE/Network/SDN/Controllers/Plugin.pm     |   2 +-
 src/PVE/Network/SDN/SubnetPlugin.pm           |  64 +++++
 src/PVE/Network/SDN/VnetPlugin.pm             |  85 +++++++
 src/PVE/Network/SDN/Zones/EvpnPlugin.pm       |  16 +-
 src/PVE/Network/SDN/Zones/Plugin.pm           |   6 +
 src/test/run_test_vnets_blackbox.pl           | 226 ++++++++++++++++++
 .../expected_sdn_interfaces                   |   1 +
 .../exitnode_snat/expected_sdn_interfaces     |   1 +
 .../exitnodenullroute/expected_sdn_interfaces |   1 +
 .../evpn/ipv4ipv6/expected_sdn_interfaces     |   1 +
 .../ipv4ipv6nogateway/expected_sdn_interfaces |   1 +
 .../zones/evpn/ipv6/expected_sdn_interfaces   |   1 +
 .../evpn/ipv6underlay/expected_sdn_interfaces |   1 +
 .../evpn/slaac/expected_controller_config     |  53 ++++
 .../zones/evpn/slaac/expected_sdn_interfaces  |  44 ++++
 src/test/zones/evpn/slaac/interfaces          |   7 +
 src/test/zones/evpn/slaac/sdn_config          |  41 ++++
 21 files changed, 608 insertions(+), 6 deletions(-)
 create mode 100644 src/test/zones/evpn/slaac/expected_controller_config
 create mode 100644 src/test/zones/evpn/slaac/expected_sdn_interfaces
 create mode 100644 src/test/zones/evpn/slaac/interfaces
 create mode 100644 src/test/zones/evpn/slaac/sdn_config


pve-docs:

Hannes Laimer (1):
  sdn: add IPv6 RA / SLAAC section

 pvesdn.adoc | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)


Summary over all repositories:
  47 files changed, 1671 insertions(+), 22 deletions(-)

-- 
Generated by murpp 0.12.0




^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-11-02 14:26 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-29 15:41 [PATCH docs/manager/network/proxmox{-perl-rs,-ve-rs} v5 0/9] add IPv6 RA / SLAAC support to EVPN zones Hannes Laimer
2026-10-29 15:41 ` [PATCH proxmox-perl-rs v5 1/9] pve-rs: sdn: add IPv6 RA builder binding Hannes Laimer
2026-10-29 15:41 ` [PATCH proxmox-ve-rs v5 2/9] frr: add IPv6 router advertisement support Hannes Laimer
2026-10-29 15:41 ` [PATCH proxmox-ve-rs v5 3/9] ve-config: sdn: add IPv6 router advertisement settings Hannes Laimer
2026-10-29 15:41 ` [PATCH pve-manager v5 4/9] ui: sdn: add IPv6 RA / SLAAC support Hannes Laimer
2026-11-02 13:53   ` Lukas Sichert
2026-10-29 15:41 ` [PATCH pve-network v5 5/9] sdn: evpn: derive IP version from CIDR for gateway-less subnets Hannes Laimer
2026-10-29 15:41 ` [PATCH pve-network v5 6/9] sdn: evpn: accept untracked IPv6 neighbor advertisements Hannes Laimer
2026-10-29 15:41 ` [PATCH pve-network v5 7/9] sdn: evpn: add IPv6 RA / SLAAC support Hannes Laimer
2026-10-29 15:41 ` [PATCH pve-network v5 8/9] api: vnets: include the zone type in the vnet list Hannes Laimer
2026-10-29 15:41 ` [PATCH pve-docs v5 9/9] sdn: add IPv6 RA / SLAAC section Hannes Laimer
2026-10-30 15:07 ` [PATCH docs/manager/network/proxmox{-perl-rs,-ve-rs} v5 0/9] add IPv6 RA / SLAAC support to EVPN zones Lukas Sichert
2026-10-30 16:30   ` Lukas Sichert
2026-11-02 14:25 ` Lukas Sichert

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