Very interesting project.
Concerning the IPv6: A /128 is one address, corresponding with the WAN address in IPv4, so you need all IPv4 tricks to do something with it. Rather useless.
The recommended host part of IPv6 is a /64. This is the prefix length where SLAAC automatic address configuration, temporary addresses and so operate on.
All 2**64 addresses are globally accessible. Temporary addresses prevent tracking als long this is not done by cookies and co.
But you get stuck with one /64 if you setup a kind of router. Not only a router, but also e.g. a libvirt based virtual machine. To which /64 should the system route if there are multiple interfaces with the same /64? Then a /56 comes in with prefix delegation: the DHCP6 server gives 256 additional /64 subnets routed to the system asking for delegation, which can be distributed over NIC’s and VLANs.
An /48 extends this over an amount far beyond needs for home use.
What I’ve seen, both NetworkManager and systemd-networkd are possible options. With NetworkManager, do not set an iPv6 address on the “shared” interface. It will perform prefix delegation and sets an /64 subnet automatically based on the v6 address on the WAN interface.
Firewalld will be a bit of a challenge, because it’s normally used to protect the host itself and not the forwarding, which is controlled by policies. So I think for IPv6 you would need a block-all policy with rules for only the address/port combination you want to allow. For IPv4 you have to implement port forwarding in addition.
Be aware of nftables tables created by NetworkManager or systemd-networkd in addition to firewalld generated ones, which might block things allowed by firewalld.
Wireless: check “ip phy phy0 info” for
valid interface combinations:
* #{ AP, mesh point } <= 8,
total <= 8, #channels <= 1
This old USB Wifi adapter allows up to 8 SSID’s as access point. Not tested in detail. but multiple SSID’s on multiple interfaces on one stick worked, so in principle main and guest WiFi should be possible with this device.
Depends on adapter/firmware, my laptop gives “interface combinations are not supported”, so only one SSID possible.