In a non-full-mesh BGP-fabric setup, nodes may need to relay traffic
between peers that are not directly connected. This requires forwarding
ipv6 packets between fabric bridges. With the addition of
'force_forwarding' to the Linux kernel, this can be done without
enabling 'all.forwarding', which disables Router Advertisements.

Configure fabric bridges with the required 'post-up'/'post-down'
commands to enable 'force_forwarding'.

Signed-off-by: Lukas Sichert <[email protected]>
---
 pve-rs/src/bindings/sdn/fabrics.rs | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/pve-rs/src/bindings/sdn/fabrics.rs 
b/pve-rs/src/bindings/sdn/fabrics.rs
index 785b537..000ecb7 100644
--- a/pve-rs/src/bindings/sdn/fabrics.rs
+++ b/pve-rs/src/bindings/sdn/fabrics.rs
@@ -774,6 +774,14 @@ pub mod pve_rs_sdn_fabrics {
                             writeln!(interfaces, "iface {name} inet manual")?;
                             writeln!(interfaces, "\tip-forward 1")?;
                             writeln!(interfaces, "\tip6-forward 1")?;
+                            writeln!(
+                                interfaces,
+                                "\tpost-up echo 1 > 
/proc/sys/net/ipv6/conf/{name}/force_forwarding"
+                            )?;
+                            writeln!(
+                                interfaces,
+                                "\tpost-down echo 0 > 
/proc/sys/net/ipv6/conf/{name}/force_forwarding"
+                            )?;
                             // BGP unnumbered uses RAs to discover peer 
link-local
                             // addresses. frr listens for them itself, but the 
kernel
                             // would otherwise install RA-derived routes we 
don't want.
-- 
2.47.3




Reply via email to