A configuração que levou a esta pergunta e a solução abaixo para tornar a vida mais simples para a próxima pessoa.
Eu tenho um roteador dd-wrt. Ele conecta eth1, eth2 e vlan1. Ele os roteia através da vlan2 que possui a porta wan. Meu entendimento é absolutamente péssimo para ipv6, ou o roteador dd-wrt, ou ambos. Eu tenho T-mobile como um provedor. O ipv6 deles é ótimo, até você tentar rodar pelo seu próprio roteador, aí que /64 eles te dão golpes. Se eu deixar o dispositivo lidar com o DHCP, tudo funciona: ipv4, ipv6. O problema é que preciso configurar endereços DHCP para determinados dispositivos. Não tem como fazer isso.
em um formato mais visual:
vlan2 (internet)(routed) -> br0 (bridge of: eth1, eth2, vlan1)
Portanto, a solução parece ser a ponte entre o ipv6 e o roteamento ipv4. Crédito a esta pergunta para essa informação: https://serverfault.com/questions/322718/can-i-bridge-ipv4-while-routing-ipv6-on-the-same-two-interfaces
Em formato mais visual novamente:
ipv4: vlan2 (internet)(routed) -> br0 (bridge of: eth1, eth2, vlan1)
ipv6: br0 (bridge of: eth1, eth2, vlan1, vlan2)
No entanto, tentar fazer uma ponte em uma ponte gera este erro:
device br0 is a bridge device itself; can't enslave a bridge device to a bridge device.
A solução é:
Fonte: http://blog.iopsl.com/ipv6-behind-openwrt-router/
Voltei para mudar essa resposta porque minha solução era uma porcaria, e achei que funcionava mas tinha muitos problemas. Isso funciona muito melhor. Basicamente você faz a ponte entre as duas conexões. Em seguida, roteie tudo o que não é IPv6