I am using LEDE-17.01-snapshot. I have a rather special setup (advertising public IPv6 prefixes on both LAN and WAN port, which I get through HE tunnelbroker). Now I want to set up ULA as well. But I can only assign them automatically with option ip6assign which doesn't work well because this will also be applied to the tunnelbroker prefixes and that messes up my setup.
Can I somehow add a second IPv6 address to the interfaces? My idea is to specify the ULA address manually, additionally to the GUA address. But I can only set one IPv6 per interface in the network config.
EDIT: Seems like it's possible in /etc/config/network with using list ip6addr instead of option ip6addr, but LuCi doesn't support this setting.
ip6assign doesn't work well, because the HE tunnel delegates me two prefixes (one /64 and one /48), and I wanna use both. If I use ip6assign now, OpenWrt will try to advertise both prefixes on both WAN and LAN, breaking network connectivity.
It works perfectly now that I set both prefixes manually with list ip6addr, however LuCi doesn't support this. I don't know if LuCi supports this in newer versions. And I can't find the source for LuCi in LEDE where you define the network interfaces.
@lleachii What does this option do? I can't seem to find it in the wiki.
Could you explain a bit more what your problem is?
I used to have IPv6 from HE until recently along with ULA addresses on all interfaces and didn't face any issue.
Also post your uci show network for reference.
ip6class : Filter for prefix classes to accept on this interface (e.g. wan6 will only assign prefixes with class “wan6” but not e.g. “local”)
I get IPv6 from HE and terminate the tunnel on my OpenWRT box. HE assigns me two prefixes, one /48 and one /64. I want to advertise the /64 for devices connected to WAN port, and the /48 for devices on LAN.
The problem is, if I set ip6prefix, and then use ip6assign for either WAN or LAN, OpenWRT will assign addresses from both the /64 and the /48 to these interfaces. But I want the /64 strictly limited to WAN, and /48 strictly limited to LAN. With the config below it works now. But I cannot change it with LuCi, because LuCi doesn't accept multiple IPv6 addresses in static configuration.
So if I wanna do it automatically and use ip6assign instead of ip6addr...what would I have to set ip6class to for each interface? What does ip6class local exactly do? The wiki page is a bit limited on the background things happening.
These 2 are pointless, because you are not delegating anything downstream.
I would remove the /64 from henet.ip6prefix and change lan from static to ip6assign=64 or whatever you want there. ip6class doesn't make too much sense in your case, as you want to assign ipv6 from both henet and ULA if I understand correctly.
I think you have confused the advertisements and the delegations.
Your interface already has the 'ip6addr', so, unless specified differently, it will send out Router Advertisements in the lan. RAs contain the network prefix, the gateway, and possibly the NS.
DHCPv6, implemented with odhcpd in OpenWrt can send some more information to the hosts, including some specific address to use, NS, and Prefix Delegated for downstream routers.
That means that if you connect another router on the LAN and you have specified an ip6prefix, it will be offered to the downstream router in order to autoconfigure.
Then use 'local' for the ip6class and define manually the henet ip6address.
You are right. I thought I need to specify ip6prefix for RA, but now I tried only with ip6addr and it works. So I only need ip6prefix if I want to delegate a prefix using DHCPv6 (I am only using SLAAC)?
I'll try that another time. For now I'll have it work with manual assignment. Especially since I am not quite satisfied with ULA alone. I thought I would be able to have multicast between segments, but seems like I need another daemon/proxy for that.