Not just routers: android phones since 4.3 and iOS 12 both include a CLAT implementation to do just that.
clatd https://github.com/toreanderson/clatd/ is a nice and practical CLAT implementation: it does not "require" dns64 but can use it for single stateful translation instead of double
> The offenders can also mostly be fixed using clatd.
I had not heard of https://github.com/toreanderson/clatd before, might be new to others as well:
" It allows an IPv6-only host to have IPv4 connectivity that is translated to IPv6 before being routed to an upstream PLAT (which is typically a Stateful NAT64 operated by the ISP) and there translated back to IPv4 before being routed to the IPv4 internet. "
Typically paired with 464xlat in an IPv6-only environment, for programs that are hard-coded for IPv4.
An excellent `just-works` example is https://github.com/toreanderson/clatd