NATing IPv4 while routing IPv6
- by Hugo
I've the following setup:
client(s) <---> (eth0) router (eth1) <---> wan
I have a static IPv4 address and a /48 IPv6 address block.
I need to connect all the clients to (wan). Each client will have it's own public IPv6.
Meanwhile, I need to NAT those same clients over to (wan).
Everything IPv4-related and the NAT are working fine. The IPv6 communication to/from (eth0)<-(clients) works fine, as does the IPv6 communication from (eth1)<-(wan) works fine.
To provide IPv6 to all my clients, I've thought of too choices:
Having the router as a gateway, which different IP on each interface. This sounds like I need to tell my ISP to route the entire block through that single IP, so it's not really an option.
Transparently pass IPv6 packets to/from eth0<-eth1, so all clients can communicate with the upstream gateway (I would actually have a switch here if it weren't for the need to remain IPv4 compatible).
So, since I've opted for the second choice, I'm in doubt: How can I pass all IPv6 traffic from eth0 to eth1 transparently? What I need is a level 3 bridge, but linux's bridgeutils create a level 2 bridge (which would bridge ipv4 as well, and I can't have that).
This is a DD-WRT device, but it's pretty much an embeded linux, so most suggestions that would work on linux are welcome.
Thanks.