Skip to content

ffac-private-wan-dhcp: route clients' IPv6 over LTE correctly#185

Merged
maurerle merged 1 commit into
freifunk-gluon:mainfrom
mariuswhm:private-wan-dhcp-ipv6-sqm
Jun 4, 2026
Merged

ffac-private-wan-dhcp: route clients' IPv6 over LTE correctly#185
maurerle merged 1 commit into
freifunk-gluon:mainfrom
mariuswhm:private-wan-dhcp-ipv6-sqm

Conversation

@mariuswhm

@mariuswhm mariuswhm commented Jun 1, 2026

Copy link
Copy Markdown
Contributor
  • update.lua: on uplink up, add an IPv6 policy-routing rule (network.lte_clients, a rule6) that sends the LTE /64 clients into the LTE routing table (lookup 1, priority 9999), using the prefix already derived from wwan0; removed on down. Fixes clients getting an IPv6 address but no connectivity (their traffic fell back to the Freifunk default route).

ffac-web-private-wan-dhcp: fix the IPv6 DNS field reusing the dns_server option id (now uradvd_dns_server).

@maurerle

maurerle commented Jun 1, 2026

Copy link
Copy Markdown
Member

@mariuswhm wouldn't it be better to add cake/SQM for gluon core as a separate part? This would just need to extend the existing SQM package: https://gluon.readthedocs.io/en/main/package/gluon-mesh-vpn-sqm.html#gluon-mesh-vpn-sqm ?

@mariuswhm mariuswhm force-pushed the private-wan-dhcp-ipv6-sqm branch from d75bee9 to d56bdb6 Compare June 1, 2026 15:04
@mariuswhm

mariuswhm commented Jun 1, 2026

Copy link
Copy Markdown
Contributor Author

@maurerle - I've dropped all SQM/cake from this PR, so it's now just the IPv6 policy-routing fix (+ a small web-UI fix for the IPv6 DNS field).

@mariuswhm mariuswhm force-pushed the private-wan-dhcp-ipv6-sqm branch 5 times, most recently from ee8a2cb to 192e6fd Compare June 3, 2026 10:46
…plink

On uplink up, update.lua now also creates an IPv6 policy-routing rule
(network.lte_clients, a rule6) that sends traffic from the LTE /64 into the
LTE routing table (lookup 1, priority 9999), using the prefix already derived
from wwan0; removed on down. Without it the clients received an IPv6 address
but had no connectivity, because their traffic fell back to the main table
whose default route points at the Freifunk mesh. NAT-free, since the cellular
uplink is point-to-point and the whole /64 is routed to the device (RFC 7278).

ffac-web-private-wan-dhcp: fix the IPv6 DNS field reusing the dns_server
option id (now uradvd_dns_server).

Assisted-by: Claude Opus 4.8 <noreply@anthropic.com>
@mariuswhm mariuswhm force-pushed the private-wan-dhcp-ipv6-sqm branch from 192e6fd to 0d83717 Compare June 3, 2026 10:51
@maurerle maurerle changed the title ffac-private-wan-dhcp: route clients' IPv6 over LTE + manage SQM ffac-private-wan-dhcp: route clients' IPv6 over LTE correctly Jun 4, 2026
@maurerle maurerle merged commit a2b6afd into freifunk-gluon:main Jun 4, 2026
4 checks passed
@T-X

T-X commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Noticing this package for the first time but sounds very interesting to have a routed private wifi feature. And I'm wondering if this could be a viable new private-wifi option suitable for upstream.

The main use-case(s) I'd see (and feel free to correct me if that seems different/incompatible to the originally envisioned use-cases): 1) Having a private WiFi, typically for your printer / NAS / TV / sound system / lights / IoT devices, things you don't want accessible from Freifunk networks, which (optionally) allows simultaneous access to the Freifunk network(s). 2) Having a private WiFi which is not accessible from the WAN side. 3) A mode which allows using a private WiFi without an extra home router with most ISPs.

Ideally, for upstream, it would maybe be something like a new role 'uplink-routed'?

(And as a future "vision": Which by default (in the future) would need no extra config, just like you'd expect from a Fritz!Box, maybe with the help of TR-069 or DHCPv6 Prefix Delegation. But would optionally allow customizations for IP addresses etc., maybe even optionally allowing to announce your private subnets via OSPF/RIP/Babel/... to the Freifunk side with customizable firewall rules at some point.) And would also work simultaneously with the current, classic, bridged role 'uplink' via a separate ESSID.

@T-X

T-X commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

And I would actually have a real, current use-case for simultaneous uplink-bridged + uplink-routed modes:

We have a network here with a housing project of ~50 people. With one shared fiber internet access, leased by a club / Verein. It also has a 2D ink printer on it, potentially later also a shared NAS and other digitial collaboration tools dedicated to the local residents (only). There is one common ESSID with WPA for this network (+VLAN). Next there is also an extra VLAN for Freifunk mesh-on-wan on this network.

Now people would either: Set up/use a Gluon router with two WAN VLANs, one for mesh-on-wan and one for the direct, bridged uplink without Freifunk. Or, if they have devices which they don't want to share with other residents (for instance a 3D printer, solar control, private NAS etc.) then they use a non-Gluon router. But then they don't have access to the Freifunk network.

It seems like a new, additional role 'uplink-routed' feature could allow using Gluon devices in more scenarios here.

@maurerle

Copy link
Copy Markdown
Member

Hi @T-X,
thanks for your comments - I think that these should be a separate issue.

The current upstream gluon situation is, that all cellular devices do not expose a routed private wan network, and therefore can not use the private-wifi feature. To solve this, this package exists.

ffac-private-wan-dhcp adds a running dhcp-server on br-wan for situations in which you have an uplink.
When this is needed:

  • your device has cellular uplink (via wwan0) but nothing on WAN/br-wan.
  • your device has DSL uplink using ffac-dsl (and then uplink via pppoe0 instead of br-wan)

What this package does not do:

  • improve situation when cabled WAN and cellular WWAN exists simultanously (this would require mwan3)
  • create a independent subnet on a new network interface, as the 'uplink-routed' feature you described.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants