Through relay mode, all devices connected to the LAN can configure IPv6 addresses normally, but there are several problems.
The br-lan interface can obtain dhcpv6 and ra messages normally, but why can't the ipv6 address be configured correctly?
Do wan_6 interface need to configure relay parameters? Is it still valid if the LAN relay mode is not configured?
What is the function of the dhcpv6 clientid parameter? Is it a completely randomly generated string, or there are specific generation rules, such as whether it contains the mac host name
Relay mode should only be used when the ISP only routes a single /64 to your line and there is no separate prefix. This is generally the case with LTE connections. Land-based ISPs should send a separate prefix and relay mode is not needed.
In relay mode the lan interface(s) do not themselves hold a GUA IP. Since there is no prefix from the ISP, setting ip6assign on a lan can only assign ULAs. The endpoints on the LAN use the router's link local address as the lan's gateway, DNS etc.
Yes the wan interface (which does hold a /64 GUA) needs to be set as the relay master.
There are different ways to form a v6 client id documented in RFC 8415. OpenWrt config requires any custom client id be entered as a hex string for any form. I think that a MAC based client id is used by default.
Services running inside the router can be reached at either an interface's LLA or the router's GUA (held by wan). In OpenWrt services should be configured to listen on all interfaces then the firewall used to restrict to certain interfaces if desired.
In the Linux kernel (without firewall) an incoming connection with a destination of any interface's IP can be served on that interface or any other as well.
I know there are other workarounds to achieve this requirement, but that would be too tortuous and poor in consistency, or I would like to know if there is a way to automatically assign addresses to the br-lan interface directly.
In addition, I found that when upstream devices send dhcpv6 and ipv6-pd messages in a timely manner, only if the wan interface is pppoe protocol, the router-related RA dhcpv6 service can work normally in server mode. When the wan interface uses dhcp wan_6 and uses dhcpv6, it cannot work normally. I think this is a flaw.
I should have mentioned that is one thing ULA addresses can do. You can give lan devices (including the router) static ULAs that won't depend on assignment from an ISP. This is very useful for remote sites connected by VPN since machines at those sites can always be reached at the same ULA address even if they change to a different ISP.
It does happen automatically if there is address space available from a prefix received (or statically configured) on a wan interface. I don't have experience with ppp to say what may be wrong there though-- if ifstatus wan_6 shows an empty prefix, and you are supposed to have one, there is a problem negotiating with the ISP.
Perhaps it is because the upstream dhcpv6 dhcpv6 response message does not have an IA_PD field in the wan_6 interface, and the IPv6-PD field is sent through a RA message, so it is not working properly. Now I am trying to make the br-lan interface able to respond to the RA message to generate the address. Some people say that sysctl -w net.ipv6.conf.br-lan.accept_ra = 2, but my test is not successful. Maybe I can only write a script to implement it myself.
This also means ULA addresses remain fully usable if the ISP connection is down for one reason or another - and they remain the same if your ISP IPv6 addresses change (which may be daily or after reconnects).