Debugging IPv6 routing issues

Solution 1:

If you only have one /64 prefix and that prefix is on your WAN side then you can't do IPv6 for your LAN. An ISP is supposed to give you multiple /64s so that you can put a separate /64 on each LAN. It is common for an ISP to give everybody (residential and business) a /48 (65536 /64s). For residential customers they might hand out a /56 (256 /64s). That way you have plenty prefixes to number your network, even if it gets more complicated over time (Internet-of-Things deployment etc).

Some ISPs are still sticking too much to the IPv4 mentality and only giving out a /60 (16 /64s) or so. While that will probably be enough now it will cause problems as IP-capable devices become more common, and you don't really want your living room lighting and AC to be in the same subnet as the children's toys, do you? ;)

ISPs that only hand out a single /64 prevent you from any subnetting at all. If that /64 is on the WAN interface then you'll never get decent IPv6 on your LAN(s). This is the ISPs fault and they should fix this by giving out a decent amount (/48 or /56) of addresses.

Solution 2:

You need to have a prefix in your LAN as well. You could use DHCPv6 prefix delegation. By that the prefix you get on the WAN interface is delegated to the inside. The router must be able do handle this.

But I find it odd that you get only a /64 - should be at least a /56 or so. However, do not subnet a /64! Whatever others tell you, mechanisms like SLAAC will trample on your subnetting.