ESP32 Border Router external communication issue

586 views
Skip to first unread message

Steven

unread,
Feb 17, 2022, 11:41:12 AM2/17/22
to openthread-users
Hello everyone,

I am currently developing on an ESP32 Border Router. Starting from the example provided by ESP-IDF and an ESP32 coupled to an RCP, the OpenThread network is well created and I can add nodes. Unfortunately, I have a problem with external communication outside the OpenThread network. I can't ping from the border router or from a node outside the OpenThread network, either my home computer or a remote server.

When I look at similar issues on the net, I see that it's usually a prefix or route issue. When I use the "netdata show" command I can see that there are already generated routes and prefixes. I still tried to modify the prefixes with several different solutions, without success. I am far from being a network expert, I still have some difficulties on IPv6. Do you have any idea what the problem is or things I could try ?

Using a Border Router on RPi I don't have this problem, I can send packets from a node to a remote server correctly. However, I am unable to send packets from the border router itself (from the RPi). Is it possible to send packets from the RPi (or ESP32) in Border Router mode ?

By using a Border Router on RPi, I therefore manage to send packets from a node to the server with the prefix "64:ff9b::" followed by the IPv4 address of the server. However I can't send packets with the server's IPv6. Is it a route problem too ?

Thank you,

Steven

Jonathan Hui

unread,
Feb 18, 2022, 3:08:42 PM2/18/22
to Steven, openthread-users
Have you tried following the ESP32 Border Router guide? Bi-directional IPv6 connectivity should be supported.

If you can't ping from the border router, then the routing issue is independent of the Thread network.

As for IPv4 vs. IPv6 connectivity to your server, can you provide more details of your setup? Is the server on the public Internet? If so, to communicate via IPv6, you'll need your ISP to provide an IPv6 prefix for your Thread network.

--
Jonathan Hui



--
You received this message because you are subscribed to the Google Groups "openthread-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/5b1b3596-b675-46f0-99d9-1e62ec364f8fn%40googlegroups.com.

Steven

unread,
Feb 20, 2022, 9:02:53 AM2/20/22
to openthread-users
Hi,

I have followed the ESP32 Border Router guide either on the openthread site or on the github.

Locally, from my computer, I manage to ping a thread node, then I get an error. I can no longer ping the node: "Transmit failed. General failure". Otherwise, from node, I can't ping my computer.
The server is on the public internet. It has an IPv4 and IPv6 address. My ISP does provide an IPv6 prefix, which I entered in the "netdata" of my OpenThread network. Unable to ping it.

So if I summarize today, I absolutely cannot ping a device outside the OpenThread network, whether local or public, in IPv4 or in IPv6. I keep looking and trying to make it work.
The final objective would be to have something functional without the ISP giving an IPv6 prefix because all ISP do not yet have this option ON by default.

Steven

Steven

unread,
Feb 22, 2022, 4:17:49 AM2/22/22
to openthread-users
Hi,

I finally managed to ping locally on my node from a computer and my computer from the node. The problem came from a firewall with IPv6.

Now I am looking to ping the server from node. I can either use the server's IPv4 or its IPv6. In case I use IPv4, I have to use NAT64 to convert an IPv6 address to IPv4. But I don't have the impression that the Border Router under ESP32 embeds this functionality. To communicate directly with its IPv6, I need to know a route to access outside the network. Unfortunately, I still have no idea where to find it.

Steven 

Jonathan Hui

unread,
Feb 22, 2022, 2:07:04 PM2/22/22
to Steven, openthread-users
Does your ISP provide an IPv6 prefix that you can assign to your Thread network? Note that you can not share the same IPv6 prefix assigned to your Thread network as with another (e.g. Wi-Fi/Ethernet) network.

If so, you'll need to assign the ISP-provided IPv6 prefix to your Thread network and configure a IPv6 route in your ISP router that points to the Thread network so that your router knows where to deliver traffic. As for traffic out of Thread network, you can simply set the default route flag when configuring the on-mesh prefix with the ISP-provided IPv6 prefix.

--
Jonathan Hui



Message has been deleted
Message has been deleted
Message has been deleted

Jonathan Hui

unread,
Feb 25, 2022, 12:53:20 AM2/25/22
to Steven, openthread-users
Yes, I agree that IPv6 infrastructure may not exist and it is useful to have a way to fallback to IPv4.

Global IPv6 reachability will only work if your ISP is capable of providing more than one /64 prefix so that one /64 prefix can be assigned to your Thread network and not shared with any other IPv6 network.

--
Jonathan Hui



On Thu, Feb 24, 2022 at 9:48 PM Steven <bebin....@gmail.com> wrote:
Hi,

My ISP gives me an IPv6 address prefix but I would still avoid going through IPv6 for two reasons:
- Not everyone has an IPv6 ISP box at home
- This requires creating a route at the ISP box level in order to include the OpenThread network

So it's difficult to market because there are prerequisites and it only works for some people. 
Reply all
Reply to author
Forward
0 new messages