I have an OpenWRT 25.12.2 “Dumb AP” device which is running ipv6 only with a single lan6 interface, and it sits on a LAN with a nat64 at the gateway. I can ping ipv4 sites using the well known prefix just fine, and so the remote PLAT is functioning. All is good for ipv6. For example:
root@openwrt:~# ping6 64:ff9b::8.8.8.8
PING 64:ff9b::8.8.8.8 (64:ff9b::808:808): 56 data bytes
64 bytes from 64:ff9b::808:808: seq=0 ttl=64 time=6.670 ms
64 bytes from 64:ff9b::808:808: seq=1 ttl=64 time=3.006 ms
I would like a CLAT on the AP, to provide seamless ipv4 locally so I install the 464xlat package and reboot. This automatically gives a new interface lan6_4 with protocol Virtual dynamic interface (464XLAT (CLAT)). I do not change any other configuration. I can now see:
root@openwrt:~# cat /proc/net/nat46/control
add 464-lan6_4
config 464-lan6_4 local.v4 192.0.0.1/32 local.v6 2600:bbbb:bbbb:bbbb:aaaa:aaaa:aaaa:aaaa/128 local.style NONE local.ea-len 0 local.psid-offset 0 remote.v4 0.0.0.0/0 remote.v6 64:ff9b::c000:aa/96 remote.style RFC6052 r
root@openwrt:~# ip addr show dev 464-lan6_4
2: 464-lan6_4: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 16384 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet6 fe80::cccc:cccc:cccc:ccc/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
However it doesn’t function unless I manually add the ipv4 address to it:
root@openwrt:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
root@openwrt:~# ip addr add 192.0.0.1/32 dev 464-lan6_4
root@openwrt:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=63 time=4.435 ms
64 bytes from 8.8.8.8: seq=1 ttl=63 time=3.595 ms
64 bytes from 8.8.8.8: seq=2 ttl=63 time=5.078 ms
64 bytes from 8.8.8.8: seq=3 ttl=63 time=7.447 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 3.595/5.138/7.447 ms
I wonder if there is a bug in the /lib/netifd/proto/464xlat.sh script?
Note, the ip routes, ip rules, firewall, snat, etc are all correctly configured automatically. It’s simply missing the address on the automatically created interface itself.