I figured it out. Perhaps this will help someone in the future.
My DD-WRT wifi access point was, somehow, caching the old 2600 addresses from AT&T and handing them out. I have no DHCP or other services configured on the AP; just solely handles wireless duties. But I could delete the addresses in netsh on Windows, and they'd pop right back up every time.
I have no idea how or why, but as soon as I unplugged that device for a bit, the 2600 addresses vanished and IPv6 works across the board. Nor did they return when I powered the AP back up.
I also fundamentally didn't understand IPv6 number assignments, thinking those 2600 addresses were "private" like 192.168, etc. They are "private" in that they were part of the prefix handed out by AT&T's CPE for local subnets, but are still assigned IP spaces. So when I saw them showing up in the OPNsense logs, I didn't realize what the problem really was (that it was correctly blocking IP addresses it was not responsible for).
So there were two problems: I was not assigning the correct prefix (/56), which dseven showed me how to find; and I had a rogue device doing Bad Things on my network.
Thank you everyone who chimed in. It works!!! And I'm getting the 10 gig speeds I'm paying for, thanks to OPNsense.
My DD-WRT wifi access point was, somehow, caching the old 2600 addresses from AT&T and handing them out. I have no DHCP or other services configured on the AP; just solely handles wireless duties. But I could delete the addresses in netsh on Windows, and they'd pop right back up every time.
I have no idea how or why, but as soon as I unplugged that device for a bit, the 2600 addresses vanished and IPv6 works across the board. Nor did they return when I powered the AP back up.
I also fundamentally didn't understand IPv6 number assignments, thinking those 2600 addresses were "private" like 192.168, etc. They are "private" in that they were part of the prefix handed out by AT&T's CPE for local subnets, but are still assigned IP spaces. So when I saw them showing up in the OPNsense logs, I didn't realize what the problem really was (that it was correctly blocking IP addresses it was not responsible for).
So there were two problems: I was not assigning the correct prefix (/56), which dseven showed me how to find; and I had a rogue device doing Bad Things on my network.
Thank you everyone who chimed in. It works!!! And I'm getting the 10 gig speeds I'm paying for, thanks to OPNsense.