public inbox for pve-devel@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
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ 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] 12+ messages in thread

end of thread, other threads:[~2026-10-30 16:30 UTC | newest]

Thread overview: 12+ 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-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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal