-
Hello, We are currently setting up NAT64 for our BR implementation, and all IPv4 ping requests coming from our OTBR (and attached Thread devices) to external IPv4 networks are timing out:
We've followed this guide: https://openthread.io/codelabs/openthread-border-router-nat64#2 and I believe our NAT64 prefix is setup correctly:
Resolving the IPv4 address doesn't seem to work either and also times out:
The tcpdump on our OTBR shows the request going out, and I've disabled the firewall to eliminate any possibilities of the packet being blocked. Does anyone know the possible reason for these timeouts? Side Note: Is the Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 1 reply
-
Update: I'm pinging the IPv4 address from one OTBR to another (using ot-ctl), and checking the tcpdump of each. The receiving device gets the request from the MAC address assigned to the sending OTBR, however it's sending the response to a MAC address assigned to my wifi router instead of the original OTBR device. When pinging directly over wlan0, the ping response is sent back to the original OTBR device. For some reason, when the ping is given over ot0, it's redirecting the response. Not sure why or how to fix this though |
Beta Was this translation helpful? Give feedback.
-
I have currently the same problem, with tcpdump i see the icmp is incoming but the target is unreachable.
I add tayga and here i can dump this:
At both it looks like the back route on Openwrt is missing. Has someone a working solution on Openwrt for this? |
Beta Was this translation helpful? Give feedback.
-
Thx, i found it also. For Openwrt this settings also must be set:
|
Beta Was this translation helpful? Give feedback.
Forgot to post the solution, but what fixed our issue was to add iptable masquerade configs. In our case, the wifi router was receiving and sending out the request, but it didn't know where to send the response since the openthread ipv4 source address 192.168.255.254 wasn't advertised to it. Masquerading this source address will just use the outgoing interface address (wlan0), so the router knew where to send the response.
iptables -t nat -A PREROUTING -i wpan0 -j MARK --set-mark 0x1001
iptables -t nat -A POSTROUTING -m mark --mark 0x1001 -j MASQUERADE
or
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE