doc: update IPv6 forwarding documentation

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2026-01-30 13:09:19 +01:00
parent 4f876bc58e
commit 93fceb9a5f
2 changed files with 9 additions and 6 deletions
+5 -6
View File
@@ -415,13 +415,12 @@ admin@example:/>
## IPv6 forwarding
Due to how the Linux kernel manages IPv6 forwarding, we can not fully
control it per interface via this setting like how IPv4 works. Instead,
IPv6 forwarding is globally enabled when at least one interface enable
forwarding, otherwise it is disabled.
Forwarding must be enabled on an interface for it to route IPv6
traffic (static or dynamic). The setting is per-interface and works
the same way as IPv4 forwarding.
The following table shows the system IPv6 features that the `forwarding`
setting control when it is *Enabled* or *Disabled:
The following table shows the IPv6 features that the `forwarding`
setting controls when it is *Enabled* or *Disabled*:
| **IPv6 Feature** | **Enabled** | **Disabled** |
|:-----------------------------------------|:------------|:-------------|
+4
View File
@@ -335,6 +335,10 @@ static int netdag_gen_sysctl(struct dagger *net,
err = err ? : netdag_gen_sysctl_setting(net, ifname, &sysctl, 1, "0", node,
"net.ipv4.conf.%s.forwarding", ifname);
/*
* Use force_forwarding for IPv6 (available since Linux 6.17) which provides
* true per-interface control, unlike the legacy forwarding sysctl.
*/
node = lydx_get_descendant(lyd_child(dif), "ipv6", "forwarding", NULL);
err = err ? : netdag_gen_sysctl_setting(net, ifname, &sysctl, 1, "0", node,
"net.ipv6.conf.%s.force_forwarding", ifname);