From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 59BE41FF0ED for ; Mon, 27 Jul 2026 15:55:50 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 2918521469; Mon, 27 Jul 2026 15:55:50 +0200 (CEST) From: Lukas Sichert To: pve-devel@lists.proxmox.com Subject: [PATCH docs/manager/network/perl-rs v4 0/6] sdn: enable force_forwarding for ipv6 forwarding Date: Mon, 27 Jul 2026 15:55:01 +0200 Message-ID: <20260727135509.14588-1-l.sichert@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1785160480792 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.069 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) KAM_SHORT 0.001 Use of a URL Shortener for very short URL POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes RCVD_IN_DNSWL_LOW -0.7 Sender listed at https://www.dnswl.org/, low trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: XTJW6772UCEFXEWZUFZ4GCPK74PUGBQK X-Message-ID-Hash: XTJW6772UCEFXEWZUFZ4GCPK74PUGBQK X-MailFrom: l.sichert@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Lukas Sichert X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Gabriel's upstream kernel patch [1] added net.ipv6.conf..force_forwarding. This allows enabling IPv6 forwarding on selected interfaces without requiring net.ipv6.conf.all.forwarding. This is useful for SDN setups because all.forwarding has host-wide side effects. In particular, it disables Router Advertisement processing by default, which can break SLAAC on unrelated interfaces. SDN only needs forwarding on the VNet, exit-node, or fabric interfaces that participate in routed IPv6 traffic. This series generates ifupdown post-up/post-down commands for those interfaces so force_forwarding is enabled when the interface is brought up and reset when it is brought down. /network/interfaces.d/sdn gets regenerated on SDN Apply. This means that removing a VNet also removes the corresponding 'post-down' commands configured to the interface of the VNet. Therefore it cannot happen, that deleting one VNet in the GUI removes force_forwarding on the outgoing interfaces, which might be used by other VNets as well. The tests are adjusted for the generated /etc/network/interfaces.d/sdn output. Also the series rewrites the documentation to reflect the updated behaviour and removes the UI warning to enable 'all.forwarding'. [1] lkml.org/lkml/2025/7/7/577 changes from v3 to v4 (thanks @Stefan): -wrap resolving outgoing interface in eval block -remove unnecessary 'ip6-forward' for vrfbr interface -Drop the fabric edit GUI hint that told users to enable net.ipv6.conf.all.forwarding -remove whitespace formatting changes changes from v2 to v3 (thanks @Gabriel): -Move the IPv6 force_forwarding post-up/post-down commands out of the subnet loop, so they are generated only once for the VNet instead of once per subnet. -Enable ip6-forward and force_forwarding on EVPN L3VNI VRF bridge interfaces, fixing IPv6 forwarding when traffic exits through another node. changes from v1 to v2 (thanks @Gabriel, @Hannes): -add force_forwarding also to bgp fabrics -explicitly mention the force_forwarding flag in the documentation -add a reference link to the sysctl documentation -mention bgp as a fabric with ipv6 support network: Lukas Sichert (2): sdn: evpn: enable force_forwarding for ipv6 forwarding to subnets sdn: simple: enable force_forwarding for ipv6 forwarding to subnets src/PVE/Network/SDN/Zones/EvpnPlugin.pm | 34 ++++++++++++++++++- src/PVE/Network/SDN/Zones/SimplePlugin.pm | 25 +++++++++++++- .../expected_sdn_interfaces | 6 ++++ .../exitnode_snat/expected_sdn_interfaces | 4 +++ .../exitnodenullroute/expected_sdn_interfaces | 6 ++++ .../evpn/ipv4ipv6/expected_sdn_interfaces | 4 +++ .../zones/evpn/ipv6/expected_sdn_interfaces | 4 +++ .../evpn/ipv6underlay/expected_sdn_interfaces | 4 +++ .../simple/ipv4v6/expected_sdn_interfaces | 4 +++ .../simple/ipv6snat/expected_sdn_interfaces | 4 +++ 10 files changed, 93 insertions(+), 2 deletions(-) perl-rs: Lukas Sichert (2): fabrics: openfabric: enable force_forwarding for ipv6 transit traffic fabrics: bgp: enable force_forwarding for ipv6 transit traffic pve-rs/src/bindings/sdn/fabrics.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) manager: Lukas Sichert (1): ui: sdn: remove IPv6 forwarding hint from fabric edit window www/manager6/sdn/fabrics/FabricEdit.js | 59 +++++++++----------------- 1 file changed, 20 insertions(+), 39 deletions(-) docs: Lukas Sichert (1): sdn: drop global ipv6 forwarding workaround from OpenFabric docs pvesdn.adoc | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) Summary over all repositories: 13 files changed, 136 insertions(+), 57 deletions(-) -- Generated by murpp 0.12.0