I think that part of your problems are the huge addresses you are using causing a variety of conflicts (i.e. f000/4 is conflicting with link-local and ULA's). wg21 should always be /64 or even /120. none the less, I think we got the information. as long as we keep off fe8, fc or fd addresses, at appears to work.
yes, this is probably what is bugging us... although the package should be dropped at the interface then, not during routing as we change the source address in POSTROUTING. NAT6 was a late addition to ipv6 so this may be cause by out-dated software in our routers (or hardware as Broadcom could be involved).
yes, this appears to be the two available options. like choosing between 2 bad deceases.
guess the preferred choice would be to convert your ULA to something reserved, like changing the 2 first numbers from "fd" to "aa" and to minimize conflict risk to slim down wg21 range to /120.
so if your ULA if
fdff:aaaa:bbbb:cccc:dddd::/64
change to reserved space:
aaff:aaaa:bbbb:cccc:dddd::/64
add a unique subnet outside /64 and slim down range:
aaff:aaaa:bbbb:cccc:dddd
:100::
/120
The first address is then our wg21 address:
aaff:aaaa:bbbb:cccc:dddd:100::
1/120
and wg21 devices will be
aaff:aaaa:bbbb:cccc:dddd:100::2 - aaff:aaaa:bbbb:cccc:dddd:100::ff
from this point is would be best to NPT this over to our WAN address, like:
Code:
ip6tables -t mangle -I POSTROUTING -s aaff:aaaa:bbbb:cccc:100::/120 -o wg11 -j SNPT --src-pfx aaff:aaaa:bbbb:cccc::/64 --dst-pfx <wanIpv6Prefix>/64
ip6tables -t mangle -I PREROUTING -i wg11 -d <wanIpv6Prefix>:100::/120 -j DNPT --src-pfx <wanIpv6Prefix>/64 --dst-pfx aaff:aaaa:bbbb:cccc::/64
So, what is basically happening is that all packages cooming in to wan within
<wanIpv6Prefix>:100::/120
Will be one-to-one translated to
<aaULAIpv6Prefix>:100::/120
Since no connection tracking is needed then address translation would be much more efficient and you will be able to recieve icmpv6 critical flow control messages.
I'll just need to work on getting these commands automated using nvram varables (help!)
but ofcource the Masquarading rule is more convenient...