I'm running OpenWrt SNAPSHOT r13649-b1d5ab1a69 on a Linksys WRT-3200ACM. I've got Wireguard configured to connect to Cloudflare Warp. IPv4 works. IPv6 doesn't - LAN clients cannot connect to ipv6.google.com, for example. On the router I can ping6 the Warp peer, but not other IPv6 addresses.
Wireguard config from /etc/config/network:
config interface 'wg0'
option proto 'wireguard'
option private_key 'X'
list addresses '192.168.11.2/32'
list addresses 'fd03:2319:63b0:a80b::2/128'
config wireguard_wg0
option description 'Cloudflare'
option public_key 'bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo='
list allowed_ips '0.0.0.0/0'
list allowed_ips '::/0'
option route_allowed_ips '1'
option endpoint_host '2606:4700:d0::a29f:c001'
option endpoint_port '2408'
option persistent_keepalive '25'
config forwarding
option src 'lan'
option dest 'wan'
which doesn't seem right - allows one to go from lan to wan directly, whereas I think we only want to allow lan to wg0_zone, where wg0_zone is the firewall zone that covers (only) wgo0.
It "works" in the sense I can get to IPv6 sites. While my real IPv4 address is hidden and instead appears to be a Cloudflare IP, my IPv6 address is exposed and is the one from my ISP. Is your IPv6 hidden?
I get a /64 prefix delegated from my ISP. Do I stick that in here instead of fd03:2319:63b0:a80b::2/128? That will be a problem as it is dynamic. Shouldn't Cloudflare provide the publicly visible IPv6, just as it masks my real IPv4?
I thought you wanted to use an IPv6 from Cloudflare. That's the IP subnet you'd assign an address from. You'd also add a route the /128 IP to via the WG tunnel there too.
I don't understand much or perhaps any of this! I have Wireguard running on my router as described. If I go to https://ipv6leak.com it says:
You are already connecting from an IPv6 address 2600:1700:9580:ce80:xxxx:xxxx:xxxx:xxxx
which is one of the IPv6 addresses on interface wan on the router and assigned by my ISP. But I still can't visit https://ipv6.google.com. ipleak.com and ipleak.net don't detect any IPv6 address, only an IPv4 address 8.48.xxx.xxx which is neither my IPv4 address from my ISP nor the 172.16.0.2 address of wg0.
With Wireguard still running as above on my router, I start Wireguard on my Mac lan client. Now from the Mac I can reach https://ipv6.google.com. https://test-ipv6.com says:
Your IPv4 address on the public Internet appears to be 8.45.xx.xx
Your IPv6 address on the public Internet appears to be 2a09:bac0:4::xxxx:xxxx
On the Mac the Wireguard configuration has addresses as 172.16.0.2/32, fd01:5ca1:ab1e:8800:xxxx:xxxx:xxxx:xxxx/128. I tried putting in the 2a09:bac0:4::xxxx:xxxx IPv6 address on the router Wireguard: it connects etc., but still no IPv6.
@lleachii Think I get it now. Cloudflare gives me a single IPv4 and a single IPv6. If I want IPv6 I can either get an appropriate block from Cloudflare or do IPv6 NAT. Which latter I am informed is evil. So no IPv6 via Warp I guess, at least for now.
I was being deliberately provocative when I referred to NAT6 as being 'evil'; it's 'unnecessary' rather than evil. You're right, though: the solution here is to see if Cloudflare can give you a /64 or better, but it seems that few VPN providers do this. Pragmatically, use NAT6 if you have to.