O SNPT / DNPT foi criado especificamente para NPTv6 leve, feito exclusivamente na tabela "mangle" e é incompatível com o rastreamento de conexão.
Se o rastreamento de conexão é empregado, então há um alvo NETMAP que pode fazer a conversão de prefixo de rede IPv6. Assim, a documentação não é clara sobre isso, eu suspeito por razões políticas / religiosas (alvo NETMAP é realmente uma forma de NAT66, que é odiada por muitos).
Portanto, se 2607:xxx::/64
for prefixo externo, fda3:xxx::/64
for prefixo interno e eth0.99
for a interface de saída, faça o seguinte:
ip6tables -t nat -A POSTROUTING -o eth0.99 -j NETMAP --to 2607:xxx::/64 -s fda3:xxx::/64
ip6tables -t nat -A PREROUTING -i eth0.99 -j NETMAP -d 2607:xxx::/64 --to fda3:xxx::/64
Agora, para ser claro: NETMAP faz tradução de endereços 1: 1 (NAT), mas não tenho certeza se segue RFC6296 no que diz respeito a ser neutro em checksum, ou como ele diverge de NPTv6 compatível com RFC de alguma outra forma , mas é bom o suficiente para mim e funciona.